Show Table of Contents
为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。
5.10. 使用命令行配置网络成组
5.10.1. 使用 nmcli 配置网络成组
运行以下命令查看系统中的可用设备:
~]$ nmcli connection show
NAME UUID TYPE DEVICE
eth1 0e8185a1-f0fd-4802-99fb-bedbb31c689b 802-3-ethernet --
eth0 dfe1f57b-419d-4d1c-aaf5-245deab82487 802-3-ethernet --
请运行以下命令使用名称 team-ServerA 创建新的成组接口:
~]$ nmcli connection add type team ifname team-ServerA
Connection 'team-ServerA' (b954c62f-5fdd-4339-97b0-40efac734c50) successfully added.
NetworkManager 会将其内部参数 connection.autoconnect
设定为 yes
,这样就不会将给出 ipv4.method
的 IP
地址设定为 auto
。NetworkManager 还会将配置写入 /etc/sysconfig/network-scripts/ifcfg-team-ServerA
,其中会将对应的 ONBOOT 设定为 yes
,并将 BOOTPROTO 设定为 dhcp
。
注:再次启用该接口前,NetworkManager 不会意识到对 ifcfg 文件的手动更改。有关使用配置文件的详情,请查看 第 1.9 节 “使用 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[输出结果截选]
因为没有指定任何 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
eth1 0e8185a1-f0fd-4802-99fb-bedbb31c689b 802-3-ethernet --
eth0 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
运行以下命令在
Team0
中添加名为 Team0-port1 的接口 eth0:
~]$ nmcli con add type team-slave con-name Team0-port1 ifname eth0 master Team0
Connection 'Team0-port1' (ccd87704-c866-459e-8fe7-01b06cf1cffc) successfully added.
同样,可使用以下命令添加另一个名为 Team0-port2 的接口 eth1:
~]$ nmcli con add type team-slave con-name Team0-port2 ifname eth1 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 简介请查看 第 2.3 节 “使用 NetworkManager 命令行工具 nmcli”。
5.10.2. 使用 teamd 创建网络成组
注意
使用 teamd 创建的配置不会持久,因此应按照 第 5.10.1 节 “使用 nmcli 配置网络成组” 或 第 5.10.3 节 “使用 ifcfg 文件创建网络成组” 中规定的步骤创建成组接口。
要创建网络成组,作为成组端口或链接接口的虚拟接口需要一个 JSON 格式的配置文件。快捷的方法是复制示例配置文件,然后使用有
root
授权的编辑器进行编辑。请输入以下命令列出可用示例配置文件:
~]$ ls /usr/share/doc/teamd-*/example_configs/
activebackup_arp_ping_1.conf activebackup_multi_lw_1.conf loadbalance_2.conf
activebackup_arp_ping_2.conf activebackup_nsna_ping_1.conf loadbalance_3.conf
activebackup_ethtool_1.conf broadcast.conf random.conf
activebackup_ethtool_2.conf lacp_1.conf roundrobin_2.conf
activebackup_ethtool_3.conf loadbalance_1.conf roundrobin.conf
请使用以下命令查看包含的文件之一,比如 activebackup_ethtool_1.conf
:
~]$ cat /usr/share/doc/teamd-*/example_configs/activebackup_ethtool_1.conf
{
"device": "team0",
"runner": {"name": "activebackup"},
"link_watch": {"name": "ethtool"},
"ports": {
"eth1": {
"prio": -10,
"sticky": true
},
"eth2": {
"prio": 100
}
}
}
创建工作配置目录保存 teamd
配置文件。例如:作为常规用户输入以下格式的命令:
~]$ mkdir ~/teamd_working_configs
将选择的文件复制到工作目录中,并根据需要进行编辑。例如:可使用以下命令格式:
~]$ cp /usr/share/doc/teamd-*/example_configs/activebackup_ethtool_1.conf \ ~/teamd_working_configs/activebackup_ethtool_1.conf
要编辑该文件以适应您的环境(例如更改作为网络成组端口的接口),请打开要编辑的文件,如下:
~]$ vi ~/teamd_working_configs/activebackup_ethtool_1.conf
进行必要的更改并保存文件。有关使用 vi 编辑器或使用首选编辑器的详情,请查看 vi(1)
man page。
注:在该成组内作为端口使用的接口不得处于 active 状态,就是说将其添加到成组设备时,它们必须处于 “down” 状态。运行以下命令检查其状态:
~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 52:54:00:d5:f7:d4 brd ff:ff:ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 52:54:00:d8:04:70 brd ff:ff:ff:ff:ff:ff
在这个示例中可以看到要使用的两个接口都处于 “UP” 状态。
请作为
root
用户,使用以下命令格式禁用接口:
~]# ip link set down em1
根据需要在每个接口中执行这个操作。
要创建基于配置文件的成组接口,请作为
root
用户进入可使用的配置目录(在这个示例中为 teamd_working_configs):
~]# cd /home/userteamd_working_configs
然后运行以下格式的命令:
~]# teamd -g -f activebackup_ethtool_1.conf -d
Using team device "team0".
Using PID file "/var/run/teamd/team0.pid"
Using config file "/home/user/teamd_working_configs/activebackup_ethtool_1.conf"
-g
选项用于显示 debug 信息,-f
选项用于指定要载入的配置文件,-d
选项可让该进程中启动后作为守护进程运行。有关其他选项的详情请查看 teamd(8)
man page。
请作为
root
用户使用以下命令检查成组接口状态:
~]# teamdctl team0 state
setup:
runner: activebackup
ports:
em1
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
em2
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
active port: em1
请作为
root
用户,使用以下命令在网络成组接口 team0 中应用一个地址:
~]# ip addr add 192.168.23.2/24 dev team0
请运行以下命令检查成组接口的 IP 地址:
~]$ ip addr show team0
4: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 16:38:57:60:20:6f brd ff:ff:ff:ff:ff:ff
inet 192.168.23.2/24 scope global team0
valid_lft forever preferred_lft forever
inet6 2620:52:0:221d:1438:57ff:fe60:206f/64 scope global dynamic
valid_lft 2591880sec preferred_lft 604680sec
inet6 fe80::1438:57ff:fe60:206f/64 scope link
valid_lft forever preferred_lft forever
请作为
root
用户,使用以下命令激活该成组接口,或使其处于 “up” 状态:
~]# ip link set dev team0 up
请作为
root
用户,使用以下命令暂时取消激活成组接口,或使其处于 “down” 状态:
~]# ip link set dev team0 down
请作为
root
用户,使用以下命令格式终止或杀死成组守护进程的实例:
~]# teamd -t team0 -k
使用 -k
选项指定要杀死的与设备 team0 关联的守护进程实例。其他选项请查看 teamd(8)
man page。
请运行以下命令获得
teamd
命令行选项帮助信息:
~]$ teamd -h
此外,请查看 teamd(8)
man page。
5.10.3. 使用 ifcfg 文件创建网络成组
要
ifcfg
文件创建网络成组,在 /etc/sysconfig/network-scripts/
目录中创建一个文件,如下:
DEVICE=team0 DEVICETYPE=Team ONBOOT=yes BOOTPROTO=none IPADDR=192.168.11.1 PREFIX=24 TEAM_CONFIG='{"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}'这样可为该成组创建接口,换句话说这就是主接口。
要创建属于 team0 成员的端口,请在
/etc/sysconfig/network-scripts/
目录中创建一个或多个文件,如下:
DEVICE=eth1 HWADDR=D4:85:64:01:46:9E DEVICETYPE=TeamPort ONBOOT=yes TEAM_MASTER=team0 TEAM_PORT_CONFIG='{"prio": 100}'根据要求添加与上述接口类似的附加端口接口,修改 DEVICE 和 HWADDR 字段使其与端口(网络设备)匹配。如果未根据
prio
指定端口优先权,则默认为 0
。该数值可为负数和正数,范围在 -32,767
到 +32,767
之间。
使用
HWADDR
指令指定硬件或 MAC 地址会影响设备命名过程。原因请查看 第 8 章 一致网络设备命名。
请作为
root
运行以下命令启用网络成组:
~]# ifup team0
运行以下命令查看网络成组:
~]$ ip link show
5.10.4. 使用 iputils 在网络成组中添加端口
请作为
root
,使用 ip 工具程序运行以下命令,在网络成组 team0 中添加端口 em1:
~]#根据需要添加附加端口。成组驱动程序会自动启用这些端口。ip link set dev em1 down
~]#ip link set dev em1 master team0
5.10.5. 使用 teamnl 列出成组连接的端口
请作为
root
使用 teamnl 工具程序,运行以下命令查看或列出网络成组中的端口:
~]# teamnl team0 ports
em2: up 100 fullduplex
em1: up 100 fullduplex
5.10.6. 使用 teamnl 配置成组连接选项
请作为
root
使用 teamnl 工具程序,运行以下命令查看或列出当前可用选项:
~]# teamnl team0 options
请作为 root
运行以下命令将网络成组配置为使用 active-backup 模式:
~]# teamnl team0 setoption mode activebackup
5.10.7. 使用 iputils 在网络成组中添加地址
请作为
root
使用 ip 工具程序,运行以下命令在成组接口 team0 中添加地址:
~]# ip addr add 192.168.252.2/24 dev team0
5.10.8. 使用 iputils 在网络成组中激活接口
请作为
root
,使用 ip 工具程序,运行以下命令激活接口,或在网络成组中 “启用” 接口:
~]# ip link set team0 up
5.10.9. 使用 teamnl 查看成组连接的 activeport 选项
请作为
root
,使用 teamnl 程序,运行以下命令查看或列出网络成组中的 activeport
选项:
~]# teamnl team0 getoption activeport
0
5.10.10. 使用 teamnl 设置成组连接的 activeport 选项
请作为
root
,使用 teamnl 工具程序,运行以下命令在网络成组中设置 activeport
选项:
~]# teamnl team0 setoption activeport 5
请作为 root
,使用以下命令检查成组端口选项变更:
~]# teamnl team0 getoption activeport
5
为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。