首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google计算将/20子网掩码设置为内部接口

Google计算将/20子网掩码设置为内部接口
EN

Server Fault用户
提问于 2017-01-16 00:38:47
回答 2查看 3.2K关注 0票数 2

Google使用DHCP将IP分配给实例。出于某种原因,即使您是在您自己的/32网络上,他们也会使用一个/20网络掩码来分配地址。我已经发现,如果我将实例公共IP设置为静态,那么我可以进入/etc/syconfig/network/ifcfg-eth0,将BOOTPROTO从DHCP更改为静态,然后手动设置IP设置,并使用/20或/24子网,然后重新启动。但是,这样做之后,我就失去了在内部网络上与该主机通信的能力。如果实例使用的是DHCP参数,则可以在LAN上的主机之间进行通信,而不存在任何问题。

在在线阅读之后,我发现本文https://cloud.google.com/compute/docs/networking有一节讨论如何对DNS和resolv.conf进行更改,并使用dhcp.lease配置进行更改。当我查看这个文件时,我看到它具有‘OptionSubnet-掩码255.255.255;’设置。如果更改网络掩码并重新启动网络,则更改将被恢复。

仅供参考:

代码语言:javascript
复制
instance-2 is using default DHCP and has the IP 10.128.0.5
instance-4 is using my custom static config and has the IP 10.128.0.6

我还比较了具有默认DHCP地址的实例和具有静态IP设置的实例之间的路由表。

实例-2 (DHCP):

代码语言:javascript
复制
[root@instance-2 network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.1      0.0.0.0         255.255.255.255 UH    100    0        0 eth0
10.128.0.5      0.0.0.0         255.255.255.255 UH    100    0        0 eth0
169.254.169.254 10.128.0.1      255.255.255.255 UGH   100    0        0 eth0

实例-4(自定义静态):

代码语言:javascript
复制
[root@instance-4 NetworkManager]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.0      0.0.0.0         255.255.240.0   U     100    0        0 eth0

然后,我手动将不同的路由添加到实例-4中:

代码语言:javascript
复制
[root@instance-4 NetworkManager]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.128.0.1      0.0.0.0         UG    100    0        0 eth0
10.128.0.0      0.0.0.0         255.255.240.0   U     100    0        0 eth0
10.128.0.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
10.128.0.6      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
169.254.169.254 10.128.0.1      255.255.255.255 UGH   0      0        0 eth0

但这也解决不了问题。

实例-4网络脚本:

代码语言:javascript
复制
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=cde7258f-6857-4015-86de-6bb520fcd550
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
MTU=1460
PERSISTENT_DHCLIENT="y"
NETMASK=255.255.240.0
IPADDR=10.128.0.6
DNS1=169.254.169.254
GATEWAY=10.128.0.1

实例-2网络脚本

代码语言:javascript
复制
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=cde7258f-6857-4015-86de-6bb520fcd550
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
MTU=1460
PERSISTENT_DHCLIENT="y"

如何才能使接口正确地使用/32以外的网络掩码,并且仍然能够与局域网上的其他实例进行通信?

操作系统是CentOS 7

我需要一个/32以外的网络掩码,这样我就可以安装FreeIPA了。如果网络掩码是/32,它将不会安装。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2017-01-16 18:38:06

我还没有找到解决GCloud网络掩码问题的方法,但我确实发现IPA项目已经解决了这个问题,并发布了一个更新版本,以使其与GCloud兼容。ipa版本4.4.2及更高版本不会出现此问题。然而,到目前为止,这个版本还没有被支持到centos。

下面是要手动解析的修补程序信息。

https://git.fedorahosted.org/cgit/freeipa.git/commit/?id=dee950d88ec969b36c1271a3ef9fe4e4f5b48b01

这是ipa项目网站上的实际错误报告。

https://fedorahosted.org/freeipa/ticket/5814

以下是我向google提交的关于网络连接方面的bug。

https://code.google.com/p/google-compute-engine/issues/detail?id=522&sort=stars&colspec=ID%20Type%20Component%20Resource%20Service%20Status%20Stars%20Summary%20Log

只要把所有这些都放出来,其他有这个问题的人就能找到一些答案。

票数 2
EN

Server Fault用户

发布于 2019-06-13 23:26:43

对于从Google搜索获得的任何人来说,下面是我在GCE文档中发现的内容。逐字引述:

要使用/32以外的网络掩码配置接口,您应该使用标志--来宾-os-特性MULTI_IP_SUBNET创建一个映像,并使用它来创建实例。例如,如果使用基于debian-9的映像,可以使用以下命令创建映像:

代码语言:javascript
复制
gcloud compute images create debian-9-multi-ip-subnet \
     --source-disk debian-9-disk \
     --source-disk-zone us-west1-a \
     --guest-os-features MULTI_IP_SUBNET
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/826457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档