本文介绍在CentOS/RHEL 8操作系统上配置Network Teaming网络组的方法,也可称为NIC组合。
在RHEL/CentOS 8上配置network teaming daemon
要安装teamd,请在终端中输入以下命令:
sudo dnf -y install teamd
运行rpm -qi teamd命令查看安装的teamd版本:
使用nmcli配置network teaming
首先,确定将用作从属的网络接口:
# ip link show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:8f:8c:86 brd ff:ff:ff:ff:ff:ff
3: enp7s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:74:99:a9 brd ff:ff:ff:ff:ff:ff
4: enp8s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:2b:db:9c brd ff:ff:ff:ff:ff:ff
由于我在RHEL/CentOS 8服务器机器上运行NetworkManager(参考:使用NetworkManager随机化MAC地址的方法),我将使用nmcli网络管理工具:
# nmcli connection show
对于我的设置,我将使用两个网络设备:enp7s0和enp8s0,在开始配置之前,请删除与nmcli的连接:
这两个设备现在应处于断开连接状态:
$ nmcli device status
创建新的team接口,名称为team0:
$ nmcli connection add type team con-name team0 ifname team0 \
config '{ "runner": {"name": "loadbalance"}, "link_watch": {"name": "ethtool"}}'
你可以使用activebackup、broadcast、lacp、random、roundrobin命令替换loadbalance。
NetworkManager会将配置文件写入/etc/sysconfig/network-scripts/ifcfg-team-team0,要查看分配的其他值,请运行:
$ nmcli con show team0
使用以下命令查看刚配置的Team接口:
$ nmcli con show
为team接口分配IP地址、DNS和自动连接:
nmcli con mod team0 ipv4.addresses 192.168.121.10/24
nmcli con mod team0 ipv4.gateway 192.168.121.1
nmcli con mod team0 ipv4.dns 8.8.8.8
nmcli con mod team0 ipv4.method manual
nmcli con mod team0 connection.autoconnect yes
将Network Slave添加到team中:
nmcli con add type team-slave con-name team0-slave0 ifname enp7s0 master team0
nmcli con add type team-slave con-name team0-slave1 ifname enp8s0 master team0
样本输出如下:
Connection 'team0-slave0' (daa6fc23-cdef-40b1-9b9d-5157d6ff3910) successfully added.
Connection 'team0-slave1' (a20cf7ee-fb08-4270-a6e7-b6e20cb490dc) successfully added.
确认连接:
重新启动连接:
nmcli connection down team0 && nmcli connection up team0
应该看到分配的IP信息了:
$ ip addr show dev team0
8: team0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:74:99:a9 brd ff:ff:ff:ff:ff:ff
inet 192.168.121.10/24 brd 192.168.121.255 scope global noprefixroute team0
valid_lft forever preferred_lft forever
inet6 fe80::4c51:96b:c24e:ede9/64 scope link noprefixroute
valid_lft forever preferred_lft forever
$ ping -c 1 192.168.121.1
PING 192.168.121.1 (192.168.121.1) 56(84) bytes of data.
64 bytes from 192.168.121.1: icmp_seq=1 ttl=64 time=0.134 ms
--- 192.168.121.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.134/0.134/0.134/0.000 ms
也可以使用teamdctl检查team状态:
$ teamdctl team0 state
setup:
runner: loadbalance
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
使用nmcli删除Team
运行nmcli connection show命令显示连接:
Bring down team连接:
nmcli connection down team0
删除slaves:
$ nmcli connection delete team0-slave0 team0-slave1
Connection 'team0-slave0' (daa6fc23-cdef-40b1-9b9d-5157d6ff3910) successfully deleted.
Connection 'team0-slave1' (a20cf7ee-fb08-4270-a6e7-b6e20cb490dc) successfully deleted.
删除team created:
$ nmcli connection delete team0
Connection 'team0' (f763a709-3956-497f-b92c-5c06f848bee7) successfully deleted.
确认删除:
$ nmcli connection show
使用ifcfg文件创建Network Team
要使用ifcfg文件创建Network Team,请在/etc/sysconfig/network-scripts/目录中创建一个文件,如下所示:
$ cat /etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
NAME=team0
DEVICETYPE=Team
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.121.10
PREFIX=24
GATEWAY=192.168.121.1
TEAM_CONFIG='{"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}'
要创建一个端口作为team0的member,请在/etc/sysconfig/network-scripts/目录中创建一个或多个文件,如下所示:
$ cat /etc/sysconfig/network-scripts/ifcfg-team0-slave0
NAME=team0-slave0
DEVICE=enp7s0
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
$ cat /etc/sysconfig/network-scripts/ifcfg-team0-slave1
NAME=team0-slave1
DEVICE=enp8s0
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
启动team interface:
$ sudo ip link set enp7s0 down
$ sudo ip link set enp8s0 down
$ sudo ifup team0
列出team端口:
$ teamnl team0 ports
4: enp8s0: up 4294967295Mbit FD
3: enp7s0: up 4294967295Mbit FD
附:关于管理managing Team的主要说明
相关主题