如何更改 Google 计算实例主网络设备 eth0 网络掩码 /32

如何更改 Google 计算实例主网络设备 eth0 网络掩码 /32

当我在默认 VPC 中创建一个实例并检查 ifconfig 时,它显示网络掩码是/32,如下所示:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1460
        inet 10.138.0.2  netmask 255.255.255.255  broadcast 10.138.0.2
        inet6 fe80::4001:aff:fe8a:2  prefixlen 64  scopeid 0x20<link>
        ether 42:01:0a:8a:00:02  txqueuelen 1000  (Ethernet)
        RX packets 4728  bytes 39926123 (38.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3900  bytes 442039 (431.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

问题是我尝试安装的应用程序不允许/32子网。我尝试创建一个测试 VPC 网络,但如果我使用它,我就无法再 ssh 到实例。如果尝试将辅助范围添加到默认子网,但没有成功。我尝试扩展网络掩码,但sudo ifconfig eth0 10.138.0.2 netmask 255.255.255.0 ssh 连接冻结(使用 Web 浏览器进行 ssh)。之后我无法 ssh 到实例。还有其他方法吗?

我在这里看到了问题,但看起来似乎没有得到解答:Google Cloud Compute 将 /20 子网掩码设置为内部接口

答案1

不幸的是,这些参数是这样设置的,以便更好地与 Google Cloud Platform 集成。

关于为什么在创建新的VPC时无法使用SSH,您必须创建新的防火墙规则,因为它们只适用于一个VPC,所以旧的防火墙规则不适用于新的VPC。

我强烈建议向应用程序支持部门提出一个问题,以便与 Google Cloud Platform 集成。

答案2

对于通过 Google 搜索到达此处的任何人,以下是我在 GCE 文档中找到的内容。逐字引用:

要配置具有 /32 以外的网络掩码的接口,您应该使用标志 --guest-os-features 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_SUBNET

相关内容