混合网络模式和二层网络模式的结合
此示例配置使用两台服务器,一台采用混合绑定模式,一台采用二层非绑定模式,以及一个 VLAN。首先将服务器配置为通过 VLAN 相互通信,然后配置为通过混合绑定模式服务器和 VLAN 为二层模式的服务器提供 Internet 访问。
将服务器连接到 VLAN
将 VLAN(ID 为 1001)连接到混合绑定模式下服务器上的 bond0。

将同一 VLAN(ID 为 1001)连接到服务器上的 eth1,采用第 2 层非绑定模式。

配置混合绑定模式服务器
通过 SSH 进入并配置混合绑定模式服务器。
首先,启用 VLAN 支持。
modprobe 8021q
echo "8021q" >> /etc/modules
从您选择的子网中选择一个 IP 地址分配给服务器。例如,192.168.2.0/24。由于混合绑定模式不支持未标记的 VLAN 流量,请添加并配置子接口 bond0。
ip link add link bond0 name bond0.1001 type vlan id 1001
ip addr add 192.168.2.1/24 dev bond0.1001
启动子接口并检查其是否已启动。
ip link set dev bond0.1001 up
ip -d link show bond0.1001
配置第 2 层未绑定服务器
通过 SSH 进入并配置第 2 层非绑定模式服务器。
请注意,此节点处于纯二层网络模式;此服务器没有公网连接,您需要使用 SOS/OOB 控制台 进行连接。如果您被锁定,可以随时将网络模式切换回三层或混合模式,然后通过公网 IPv4 地址使用 SSH 重新连接。
在我们最新的 Ubuntu 镜像中,接口不再别名为 eth1 和 eth0。在本例中,控制台中的 eth1 对应于 Ubuntu 中的 enp1s0f1。
配置 VLAN 支持并从绑定接口中移除 eth1。
modprobe 8021q
echo "8021q" >> /etc/module
ip link set enp1s0f1 nomaster
由于这是混合非绑定模式,您还可以从旧 IP 地址中删除默认路由并完全删除绑定接口。
ip route delete default via <old_IP>
ip link delete dev bond0
为 VLAN 分配一个与混合绑定模式服务器位于同一子网的 IP 地址。由于目前只有这一个 VLAN 连接到此服务器,因此流量必须不加标签,所以请直接配置 eth1 接口。
ip addr add 192.168.2.2/24 dev enp1s0f1
启动接口并检查其是否已恢复。
ip link set dev enp1s0f1 up
ip -d link show enp1s0f1
另外,为了准备启用此服务器的 Internet 访问,请添加一条来自混合绑定模式服务器 IP 地址的路由。并将其设置为默认路由。
ip route add 192.168.2.0/24 via 192.168.2.1 dev enp1s0f1
ip route add default via 192.168.2.1 dev enp1s0f1
配置 IP 转发
此时,您的混合绑定模式服务器和二层非绑定模式服务器节点可以相互通信,但二层服务器无法访问互联网。要使其能够访问互联网,您必须在混合绑定模式服务器上配置 IP 伪装。
确保混合模式服务器上启用了 IP 转发。
sysctl net.ipv4.ip_forward=1
现在向 NAT 表中添加一条新的 IP 地址伪装规则,规则值为 iptables。这条规则会将来自任何私有 IP 地址的流量路由到混合模式服务器上的面向 Internet 的网络接口,在本例中为 bond0。
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o bond0 -j MASQUERADE
现在,如果您通过 SSH 进入第 2 层模式服务器,它应该能够 ping 通外部 Internet。