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.runner
和 team.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)
nmcli简介请查看 第 3.3 节 “使用 nmcli 配置 IP 网络”