3.3. 使用 nmcli 配置网络绑定
要在命令行上配置网络绑定,请使用 nmcli
工具。
先决条件
- 在服务器中安装两个或者两个以上物理或者虚拟网络设备。
-
主机在 Red Hat Enterprise Linux 9.4 或更高版本上运行。这个版本引入了
port-type
,controller
,connection.autoconnect-ports
选项。以前的 RHEL 版本改为使用slave-type
、master
和connection.autoconnect-slaves
。 - 要将以太网设备用作绑定的端口,必须在服务器中安装物理或者虚拟以太网设备。
要使用 team、bridge 或 VLAN 设备作为绑定的端口,您可以在创建绑定时创建这些设备,或者预先创建它们,如:
步骤
创建绑定接口:
# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
这个命令会创建一个使用
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 device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet disconnected -- enp8s0 ethernet disconnected -- bridge0 bridge connected bridge0 bridge1 bridge connected bridge1 ...
在本例中:
-
没有配置
enp7s0
和enp8s0
。要将这些设备用作端口,请在下一步中添加连接配置集。 -
bridge0
和bridge1
都有现有的连接配置文件。要将这些设备用作端口,请在下一步中修改其配置集。
-
没有配置
为绑定分配接口:
如果没有配置您要分配给绑定的接口,为其创建新的连接配置集:
# nmcli connection add type ethernet port-type bond con-name bond0-port1 ifname enp7s0 controller bond0 # nmcli connection add type ethernet port-type bond con-name bond0-port2 ifname enp8s0 controller bond0
这些命令为
enp7s0
和enp8s0
创建配置文件,并将它们添加到bond0
连接中。要将现有的连接配置文件分配给绑定:
将这些连接的
controller
参数设置为bond0
:# nmcli connection modify bridge0 controller bond0 # nmcli connection modify bridge1 controller bond0
这些命令将名为
bridge0
和bridge1
的现有连接配置文件分配给bond0
连接。重新激活连接:
# nmcli connection up bridge0 # nmcli connection up bridge1
配置 IPv4 设置:
如果您计划将此绑定设备用作其它设备的端口,请输入:
# nmcli connection modify bond0 ipv4.method disabled
- 要使用 DHCP,不需要进行任何操作。
要为
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
配置 IPv6 设置:
如果您计划将此绑定设备用作其它设备的端口,请输入:
# nmcli connection modify bond0 ipv6.method disabled
- 要使用无状态地址自动配置(SLAAC),则不需要任何操作。
要为
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-port1 bond-port.<parameter> <value>
激活连接:
# nmcli connection up bond0
验证端口是否已连接,并且
CONNECTION
列是否显示端口的连接名称:# nmcli device DEVICE TYPE STATE CONNECTION ... enp7s0 ethernet connected bond0-port1 enp8s0 ethernet connected bond0-port2
当您激活连接的任何端口时,NetworkManager 也激活绑定,但不会激活它的其它端口。您可以配置 Red Hat Enterprise Linux 在启用绑定时自动启用所有端口:
启用绑定连接的
connection.autoconnect-ports
参数:# nmcli connection modify bond0 connection.autoconnect-ports 1
重新激活桥接:
# nmcli connection up bond0
验证
从其中一个网络设备临时移除网线,并检查绑定中的其他设备是否在处理流量。
请注意,无法使用软件工具正确测试链路失败事件。停用连接的工具(如
nmcli
),只显示绑定驱动程序可以处理端口配置的更改,而不是实际的链接失败事件。显示绑定状态:
# cat /proc/net/bonding/bond0