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;’设置。如果更改网络掩码并重新启动网络,则更改将被恢复。
仅供参考:
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):
[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(自定义静态):
[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中:
[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网络脚本:
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网络脚本
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,它将不会安装。
发布于 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。
只要把所有这些都放出来,其他有这个问题的人就能找到一些答案。
发布于 2019-06-13 23:26:43
对于从Google搜索获得的任何人来说,下面是我在GCE文档中发现的内容。逐字引述:
要使用/32以外的网络掩码配置接口,您应该使用标志--来宾-os-特性MULTI_IP_SUBNET创建一个映像,并使用它来创建实例。例如,如果使用基于debian-9的映像,可以使用以下命令创建映像:
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_SUBNEThttps://serverfault.com/questions/826457
复制相似问题