3.3. 使用 nmcli 配置网络绑定
要在命令行上配置网络绑定,请使用 nmcli 工具。
先决条件
- 在服务器中安装两个或者两个以上物理或者虚拟网络设备。
- 要将以太网设备用作绑定的端口,必须在服务器中安装物理或者虚拟以太网设备。
要使用 team、bridge 或 VLAN 设备作为绑定的端口,您可以在创建绑定时创建这些设备,或者预先创建它们,如:
流程
创建绑定接口:
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令会创建一个使用
active-backup模式、名为bond0的绑定。要额外设置介质独立接口(MII)监控间隔,请在
bond.options属性中添加miimon=interval选项,例如:nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"
# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示网络接口以及您要添加到绑定中的接口名称:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中:
-
没有配置
enp7s0和enp8s0。要将这些设备用作端口,请在下一步中添加连接配置集。 -
bridge0和bridge1都有现有的连接配置文件。要将这些设备用作端口,请在下一步中修改其配置集。
-
没有配置
为绑定分配接口:
如果没有配置您要分配给绑定的接口,为其创建新的连接配置集:
nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname enp7s0 master bond0 nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname enp8s0 master bond0
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname enp7s0 master bond0 # nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname enp8s0 master bond0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些命令为
enp7s0和enp8s0创建配置文件,并将它们添加到bond0连接中。要将现有的连接配置文件分配给绑定:
将这些连接的
master参数设为bond0:nmcli connection modify bridge0 master bond0 nmcli connection modify bridge1 master bond0
# nmcli connection modify bridge0 master bond0 # nmcli connection modify bridge1 master bond0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些命令将名为
bridge0和bridge1的现有连接配置文件分配给bond0连接。重新激活连接:
nmcli connection up bridge0 nmcli connection up bridge1
# nmcli connection up bridge0 # nmcli connection up bridge1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 IPv4 设置:
要为
bond0连接设置静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器设置,请输入:nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24' ipv4.gateway '192.0.2.254' ipv4.dns '192.0.2.253' ipv4.dns-search 'example.com' ipv4.method manual
# nmcli connection modify bond0 ipv4.addresses '192.0.2.1/24' ipv4.gateway '192.0.2.254' ipv4.dns '192.0.2.253' ipv4.dns-search 'example.com' ipv4.method manualCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 要使用 DHCP,不需要任何操作。
- 如果您计划将此绑定设备用作其它设备的端口,则不需要执行任何操作。
配置 IPv6 设置:
要为
bond0连接设置静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器设置,请输入:nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd' ipv6.dns-search 'example.com' ipv6.method manual
# nmcli connection modify bond0 ipv6.addresses '2001:db8:1::1/64' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd' ipv6.dns-search 'example.com' ipv6.method manualCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 要使用无状态地址自动配置(SLAAC),不需要采取任何操作。
- 如果您计划将此绑定设备用作其它设备的端口,则不需要执行任何操作。
可选:如果要在绑定端口上设置任何参数,请使用以下命令:
nmcli connection modify bond0-port1 bond-port.<parameter> <value>
# nmcli connection modify bond0-port1 bond-port.<parameter> <value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 激活连接:
nmcli connection up bond0
# nmcli connection up bond0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证端口是否已连接,并且
CONNECTION列是否显示端口的连接名称:nmcli device
# nmcli device DEVICE TYPE STATE CONNECTION ... enp7s0 ethernet connected bond0-port1 enp8s0 ethernet connected bond0-port2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当您激活连接的任何端口时,NetworkManager 也激活绑定,但不会激活它的其它端口。您可以配置 Red Hat Enterprise Linux 在启用绑定时自动启用所有端口:
启用绑定连接的
connection.autoconnect-slaves参数:nmcli connection modify bond0 connection.autoconnect-slaves 1
# nmcli connection modify bond0 connection.autoconnect-slaves 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新激活桥接:
nmcli connection up bond0
# nmcli connection up bond0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
从其中一个网络设备临时拔掉网线,并检查绑定中的其他设备是否在处理流量。
请注意,无法使用软件工具正确测试链路失败事件。停用连接的工具(如
nmcli),只显示绑定驱动程序可以处理端口配置的更改,而不是实际的链接失败事件。显示绑定状态:
cat /proc/net/bonding/bond0
# cat /proc/net/bonding/bond0Copy to Clipboard Copied! Toggle word wrap Toggle overflow