如何在 Google Cloud Linux VM 上配置网络

如何在 Google Cloud Linux VM 上配置网络

我在 Google Cloud 上有一个带有两个 NIC(每个都有一个公共 IP)的 Ubuntu 16.04LTS VM。我需要以某种方式配置它,使端口 2000 上的所有流量都通过接口 1,而端口 2001 上的所有流量都通过接口 2。我已经通过 gcloud 设置了防火墙,并且运行正常。

我还有 2 条 IP 规则和 2 条 IP 路由来将流量推送到正确的 NIC。

echo 300 guest >> /etc/iproute2/rt_tables
ip route add 10.2.0.2/32 dev interface2 table guest
ip route add default via 10.2.0.1 dev interface2 table guest
ip rule add from 10.2.0.2/32 table guest
ip rule add to 10.2.0.2/32 table guest

我正在努力解决的是如何将这些更改应用于启动。我想我可以将上述内容添加到/etc/network/interfaces或通过此文件引用的任何文件(位于 with 中)/etc/network/interfaces.dsource但这似乎没有任何区别。

以下是我添加的内容/etc/network/interfaces

auto interface2
iface interface2 inet dhcp
         post-up ip route add 10.2.0.2/32 dev interface2 table guest
         post-up ip route add default via 10.2.0.1 dev interface2 table guest
         post-up ip rule add from 10.2.0.2/32 table guest
         post-up ip rule add to 10.2.0.2/32 table guest

这只有我这样做才有效ifdown interface2 && ifup interface2

我也遵循了以下

# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}

因此,当虚拟机启动时,它会以某种方式设置具有两个 NIC 的网络并忽略上述内容。有人可以向我解释一下应该如何做到这一点吗?

非常感谢

答案1

如果您希望每次 VM 实例启动时使用脚本完成此操作,请使用启动脚本。

检查他们的文档https://cloud.google.com/compute/docs/startupscript

相关内容