GCP单台实例配置多IP实践

作者:MeshCloud脉时云公有云架构师 严大淇

引言

默认情况下,VPC 网络中的每个虚拟机实例只有一个网络接口,一个公网IP。但是,您可以配置具有多个网络接口的实例,通过此功能,可以让单台服务器具备多网络接口。在网络接口绑定公网IP后,相当于单台云服务器具备了多个公网IP。通过该⽅案,可以让用户更⾼效地使⽤云服务器的计算能⼒。

整体架构

单台实例添加多个网络接口,再添加公网IP到网络接口上

目标

实现单台实例通过不同的公网IP访问到公网,公网也能访问到实例上的多个公网IP

准备工作

  • 在创建实例之前,请验证是否已创建所有必需的网络。如果您需要创建网络,请参阅创建和修改虚拟私有云 (VPC) 网络。
  • 验证每个网络是否具有适当的防火墙规则(允许您要允许进出具有多个接口的虚拟机的流量)。如果您需要创建防火墙规则,请参阅使用防火墙规则。
  • 如果您使用 IPv6 地址将虚拟机连接到多个网络,请安装 google-guest-agent 版本 20220603.00 或更高版本。如需了解详情,请参阅我无法连接到次要接口的 IPv6 地址。

实施步骤

本实践流程会根据一台CentOS云服务器配置两个公网IP场景进行具体的操作介绍。

大概的流程⾛势:

创建子网———创建实例配置网卡及公网IP———配置政策路由

1、创建VPC和子网

根据⾃身情况先规划好相关⽹段,这里子网是172.31.0.0/20

GCP单台实例配置多IP实践


2、创建实例配置多网络接口

GCP单台实例配置多IP实践
GCP单台实例配置多IP实践

对于Primary internal IP,选择以下选项之一:

  • Ephemeral,可分配新的临时 IPv4 地址
  • 列表中的预留 IPv4 地址
  • Static,可分配新的静态 IPv4 地址

对于External IPv4 address,选择以下选项之一:

  • Ephemeral,可分配新的临时 IPv4 地址
  • None,不分配外部 IPv4 地址
  • 列表中的预留 IPv4 地址
  • Create new IP address,可分配新的静态 IPv4 地址
GCP单台实例配置多IP实践

创建实例IP信息如图:

GCP单台实例配置多IP实践

此时默认的nic0是可以ping通的,但是新配置的nic1不通

GCP单台实例配置多IP实践

3、配置政策路由

配置如下:
echo “1 rt1” | sudo tee -a /etc/iproute2/rt_tables (创建一条rt1路由表,如果添加第二个网络接口,需要改编号,如 “2 rt2” )
sudo ip route add GATEWAY src IP_ADDRESSdev NIC table rt1 (设置发到网关的网络包源地址)
sudo ip route add default via GATEWAY dev NIC table rt1 (添加默认网关)
sudo ip rule add from IP_ADDRESS/PREFIX_LENGTH table rt1 (通过rt1路由表路由来自IP_ADDRESS/PREFIX_LENGTH的数据包)
sudo ip rule add to IP_ADDRESS/PREFIX_LENGTH table rt1 (通过rt1路由表路由发送到IP_ADDRESS/PREFIX_LENGTH的数据包)

替换以下内容:

  • NIC:要为其添加路由的网络接口。例如 eth1。
  • IP_ADDRESS:接口上配置的 IP 地址。
  • GATEWAY:接口的默认网关 IP 地址。
  • PREFIX_LENGTH:已配置的 IP 地址的前缀长度。

示例:
连接到服务器,输入命令:

echo "1 rt1" | sudo tee -a /etc/iproute2/rt_tables
sudo ip route add 172.31.0.1 src 172.31.0.2 dev eth1 table rt1
sudo ip route add default via 172.31.0.1 dev eth1 table rt1
sudo ip rule add from 172.31.0.2/32 table rt1
sudo ip rule add to 172.31.0.2/32 table rt1

验证

1、Ping测试

GCP单台实例配置多IP实践

2、wget绑定IP测试

GCP单台实例配置多IP实践

补充

1、只能在创建实例时配置网络接口。

2、虚拟网络接口数量根据 vCPU 数量扩缩,最小 2 个,最多 8 个。

GCP单台实例配置多IP实践

3、实例和子网必须在同一地域,可以是不同可用区。

4、不能将多个网络接口连接到同一个 VPC 网络

参考文档:https://cloud.google.com/vpc/docs/create-use-multiple-interfaces#max-interfaces举报

发表评论

您的电子邮箱地址不会被公开。