4.4. 使用 nmcli 配置 NIC team
要在命令行上配置网络接口控制器(NIC)team ,请使用 nmcli
工具。
NIC team 在 Red Hat Enterprise Linux 9 中已弃用。考虑使用网络绑定驱动程序作为替代方案。详情请参阅 配置网络绑定。
前提条件
-
已安装
teamd
和NetworkManager-team
软件包。 - 在服务器中安装两个或者两个以上物理或者虚拟网络设备。
- 要将以太网设备用作组的端口,必须在服务器中安装物理或者虚拟以太网设备并连接到交换机。
要使用 bond、bridge 或 VLAN 设备作为团队的端口,您可以在创建团队时创建这些设备,或者预先创建它们,如下所述:
流程
创建团队接口:
nmcli connection add type team con-name team0 ifname team0 team.runner activebackup
# nmcli connection add type team con-name team0 ifname team0 team.runner activebackup
Copy to Clipboard Copied! 此命令创建一个名为
team0
的 NIC team ,它使用activebackup
runner 。可选:设置链接监视器。例如,要在
team0
连接配置文件中设置ethtool
链接监视器:nmcli connection modify team0 team.link-watchers "name=ethtool"
# nmcli connection modify team0 team.link-watchers "name=ethtool"
Copy to Clipboard Copied! 链路监视器支持不同的参数。要为链路监视器设置参数,请在
name
属性中以空格分隔的方式来指定它们。请注意,name 属性必须用引号括起来。例如,要使用ethtool
链接监视器,并将其delay-up
参数设置为2500
毫秒(2.5 秒):nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2500"
# nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2500"
Copy to Clipboard Copied! 要设置多个链路监视器,每个都使用特定的参数,不同的连接监视器以逗号分隔。以下示例使用
delay-up
参数设置ethtool
链接监视器,使用source-host
和target-host
参数设置arp_ping
链路监视器:nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2, name=arp_ping source-host=192.0.2.1 target-host=192.0.2.2"
# nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2, name=arp_ping source-host=192.0.2.1 target-host=192.0.2.2"
Copy to Clipboard Copied! 显示网络接口,并记录您要添加到团队中的接口名称:
nmcli device status
# nmcli device status DEVICE TYPE STATE CONNECTION enp7s0 ethernet disconnected -- enp8s0 ethernet disconnected -- bond0 bond connected bond0 bond1 bond connected bond1 ...
Copy to Clipboard Copied! 在本例中:
-
没有配置
enp7s0
和enp8s0
。要将这些设备用作端口,请在下一步中添加连接配置集。请注意,您只能在没有分配给任何连接的团队中使用以太网接口。 -
bond0
和bond1
已有连接配置文件。要将这些设备用作端口,请在下一步中修改其配置集。
-
没有配置
为团队分配端口接口:
如果没有配置您要分配给团队的接口,为其创建新的连接配置集:
nmcli connection add type ethernet port-type team con-name team0-port1 ifname enp7s0 controller team0 nmcli connection add type ethernet port--type team con-name team0-port2 ifname enp8s0 controller team0
# nmcli connection add type ethernet port-type team con-name team0-port1 ifname enp7s0 controller team0 # nmcli connection add type ethernet port--type team con-name team0-port2 ifname enp8s0 controller team0
Copy to Clipboard Copied! 这些命令为
enp7s0
和enp8s0
创建配置文件,并将它们添加到team0
连接中。将现有的连接配置文件分配给团队:
将这些连接的
controller
参数设置为team0
:nmcli connection modify bond0 controller team0 nmcli connection modify bond1 controller team0
# nmcli connection modify bond0 controller team0 # nmcli connection modify bond1 controller team0
Copy to Clipboard Copied! 这些命令将名为
bond0
和bond1
的现有连接配置文件分配给team0
连接。重新激活连接:
nmcli connection up bond0 nmcli connection up bond1
# nmcli connection up bond0 # nmcli connection up bond1
Copy to Clipboard Copied!
配置 IPv4 设置:
要为
team0
连接设置静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器设置,请输入:nmcli connection modify team0 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 team0 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
Copy to Clipboard Copied! - 要使用 DHCP,不需要进行任何操作。
- 如果您计划将此团队设备用作其它设备的端口,则不需要任何操作。
配置 IPv6 设置:
要为
team0
连接设置静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器设置,请输入:nmcli connection modify team0 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 team0 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
Copy to Clipboard Copied! - 如果您计划将此团队设备用作其它设备的端口,则不需要任何操作。
- 要使用无状态地址自动配置(SLAAC),则不需要任何操作。
激活连接:
nmcli connection up team0
# nmcli connection up team0
Copy to Clipboard Copied!
验证
显示团队状态:
teamdctl team0 state
# teamdctl team0 state setup: runner: activebackup ports: enp7s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp8s0 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp7s0
Copy to Clipboard Copied! 在这个示例中,两个端口都是上线的。