Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.10. 使用命令行配置网络团队

8.10.1. 使用 nmcli 配置网络合作

查看系统中可用的连接:
~]$ nmcli connection show
NAME  UUID                                  TYPE            DEVICE
enp2s0  0e8185a1-f0fd-4802-99fb-bedbb31c689b  802-3-ethernet  --
enp1s0  dfe1f57b-419d-4d1c-aaf5-245deab82487  802-3-ethernet  --
查看系统中可用的设备:
~]$ nmcli device status
DEVICE      TYPE      STATE                                  CONNECTION
virbr0      bridge    connected                              virbr0
ens3        ethernet  connected                              ens3
要创建新团队接口,名称为 ServerA
~]$ nmcli connection add type team ifname ServerA
Connection 'team-ServerA' (b954c62f-5fdd-4339-97b0-40efac734c50) successfully added.
NetworkManager 会将其内部参数 connection.autoconnect 设为 yes,因为没有为 ipv4.method 指定任何 IP 地址 NetworkManager 还将配置文件写入 /etc/sysconfig/network-scripts/ifcfg-team-ServerA,其中对应的 ONBOOT 设为 yes,BOOTPROTO 将设置为 dhcp
请注意,在接口下次启动之前,NetworkManager 不会注意到对 ifcfg 文件的手动更改。有关使用配置文件的更多信息,请参阅 第 2.7 节 “使用 NetworkManager 和 sysconfig 文件”
查看分配的其他值:
~]$ nmcli con show team-ServerA
connection.id:                          team-ServerA
connection.uuid:                        b954c62f-5fdd-4339-97b0-40efac734c50
connection.interface-name:              ServerA
connection.type:                        team
connection.autoconnect:                 yes

ipv4.method:                            auto
[output truncated]
由于没有指定 JSON 配置文件,因此应用默认值。如需有关团队 JSON 参数及其默认值的更多信息,请参阅 teamd.conf(5) man page。请注意,名称是从接口名称中派生而来的,方法是在类型前附加。或者,使用 con-name 选项指定一个名称,如下所示:
~]$ nmcli connection add type team con-name Team0 ifname ServerB
Connection 'Team0' (5f7160a1-09f6-4204-8ff0-6d96a91218a7) successfully added.
要查看刚才配置的组接口,请输入以下命令:
~]$ nmcli con show
NAME                UUID                                  TYPE            DEVICE
team-ServerA        b954c62f-5fdd-4339-97b0-40efac734c50  team            ServerA
enp2s0                0e8185a1-f0fd-4802-99fb-bedbb31c689b  802-3-ethernet  --
enp1s0                dfe1f57b-419d-4d1c-aaf5-245deab82487  802-3-ethernet  --
Team0               5f7160a1-09f6-4204-8ff0-6d96a91218a7  team            ServerB
要更改分配给团队的名称,以以下格式输入命令:
nmcli con mod old-team-name connection.id new-team-name
要为已存在的团队加载团队配置文件:
nmcli connection modify team-name team.config JSON-config
,您可以将团队配置指定为 JSON 字符串,或者提供包含配置的文件名。文件名可以包含路径。在这两种情况下,存储在 team.config 属性中的 JSON 字符串。如果是 JSON 字符串,请在字符串两边使用单引号,并将整个字符串粘贴到命令行。
查看 team.config 属性:
nmcli con show team-name | grep team.config
设置 team.config 属性时,所有其他团队属性将相应地更新。
也可以更灵活地公开和设置特定团队选项,而无需直接修改对应的 JSON 字符串。您可以使用其他可用的团队属性来逐个将相关的团队选项设置为所需的值。因此,team.config 属性被更新为与新值匹配。
例如,要设置允许指定一个或多个 link -watchers 的 team.link -watchers 属性,以以下格式输入命令:
nmcli connection modify team-name team.link-watchers "name=ethtool delay-up=5, name=nsna_ping target-host=target.host"
所需的 link-watchers 是用逗号分开的,并且属于同一 link-watcher 的属性由空格分隔。
要设置 team.runnerteam.link-watchers 属性,以以下格式输入命令:
nmcli connection modify team-name team.runner activebackup team.link-watchers "name=ethtool delay-up=5, name=nsna_ping target-host=target.host"
这等同于将 team.config 属性设置为对应的 JSON 字符串:
nmcli connection modify team-name team.config '{"runner": {"name": "activebackup"}, "link_watch": [{"name": "ethtool", "delay_up": 5},{"name": "nsna_ping", "target_host ": "target.host"}]'
要将接口 enp1s0 添加到 Team0,名称为 Team0-port1,请按以下方式发出命令:
~]$ nmcli con add type ethernet con-name Team0-port1 ifname enp1s0 slave-type team master Team0
Connection 'Team0-port1' (ccd87704-c866-459e-8fe7-01b06cf1cffc) successfully added.
同样,要添加另一个接口 enp2s0,名称为 Team0-port2,请按如下方式发出命令:
~]$ nmcli con add type ethernet con-name Team0-port2 ifname enp2s0 slave-type team master Team0
Connection 'Team0-port2' (a89ccff8-8202-411e-8ca6-2953b7db52dd) successfully added.
nmcli 仅支持以太网端口。
要打开团队,必须首先启动端口:
~]$ nmcli connection up Team0-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
~]$ nmcli connection up Team0-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
您可以验证组接口是否通过激活端口激活,如下所示:
~]$ ip link
3:  Team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 52:54:00:76:6f:f0 brd ff:ff:ff:ff:ff:f
另外,发出以下命令以打开团队,如下所示:
~]$ nmcli connection up Team0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)