NIC teaming是将两个或多个网络链接聚合或结合成一个逻辑链接,以提供冗余和高可用性。逻辑接口/链接称为团队接口。在活动物理链接中断的情况下,其中一个备份或保留链接将自动恢复并确保与服务器的不间断连接。
Teamd - 这是nic teaming守护程序,它使用libteam库通过Linux内核与团队设备进行通信。
Teamdctl- 这是一个允许用户控制Teamd实例的实用程序,你可以检查和改变端口状态,以及在备份和活动状态之间切换。
Runner - 这些是用JSON编写的代码单元,用于实现各种NIC组合概念。Runner 模式的例子包括 Round robbin、负载均衡、广播和主动备份。
在本文中,我们将使用主动备份模式来配置NIC teaming。在这种情况下,一条链路保持活跃,而其余的链路处于待机状态,并保留为备用链路,以防活跃链路中断。
1、在CentOS中安装teamd守护程序
Teamd是负责创建网络团队的守护进程,它将在运行时作为逻辑接口。CentOS/RHEL 8会自带安装它,但如果因为某种原因没有安装,请执行下面的dnf命令来安装它。
$ sudo dnf install teamd
安装完毕后,通过运行rpm命令来验证teamd是否已经安装。
$ rpm -qi teamd
2、在CentOS中配置NIC Teaming。
为了配置NIC Teaming,我们将使用nmcli工具,可以用来管理NetworkManager服务。在我的系统中,我有两块网卡,我要将它们绑定或组合起来创建一个逻辑团队接口:enp0s3和enp0s8。您的实际情况可能有所不同。
要确认活动的网络接口,请运行:
$ nmcli device status
输出确认存在2个活动的网络连接。要收集更多关于接口的信息,如UUID,请运行命令。
$ nmcli connection show
为了创建一个NIC Teaming链接或接口,这将是我们的逻辑链接,我们将删除现有的网络接口。然后,我们将使用已删除的接口创建从属接口,然后将它们与teaming链接关联起来。
使用它们各自的UUID执行下面的命令来删除链接。
$ nmcli connection delete e3cec54d-e791-4436-8c5f-4a48c134ad29
$ nmcli connection delete dee76b4c-9alb-4f24-a9f0-2c9574747807
这个时候,当您检查接口时,您将注意到它们是断开连接的,并且没有提供到服务器的连接。基本上,您的服务器将与网络的其余部分隔离。
$ nmcli device status
接下来,我们要在active-backup runner模式下创建一个名为team0的team接口。如前所述,active backup runner模式使用一个active接口,并保留其他接口,以备活动链接中断时使用。
$ nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
要查看分配给team0接口的属性,请运行命令。
$ nmcli connection show team0
此时,我们只有一个接口了,就是team0接口,如图所示。
$ nmcli connection show
接下来,使用nmcli命令为team0接口配置IP地址,如图所示。请确保根据您的网络子网和IP寻址方案来分配IP。
$ nmcli con mod team0 ipv4.addresses 192.168.2.100/24
$ nmcli con mod team0 ipv4.gateway 192.168.2.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
此后,创建从属链接并将从属链接关联到团队链接。
$ nmcli con add type team-slave con-name team0-slave0 ifname enp0s3 master team0
$ nmcli con add type team-slave con-name team0-slave1 ifname enp0s8 master team0
再检查一下链接的状态,你会发现从属链接现在是活动的。
$ nmcli connection show
接下来,停用并激活团队链接。这将激活从属链接和团队链接之间的连接。
$ nmcli connection down team0 && nmcli connection up team0
接下来,验证团队链接连接的状态,如图所示。
$ ip addr show dev team0
我们可以看到,这个链接是用我们之前配置的正确IP地址建立起来的。
要检索团队链接的其他细节,请运行命令。
$ sudo teamdctl team0 state
从输出中,我们可以看到两个链接(enp0s3和enp0s8)都已启动,并且活动链接是enp0s8。
步骤3:测试网络分组冗余
要测试我们的活动备份分组模式,我们将断开当前活动的链接enp0s3–并检查其他链接是否插入。
$ nmcli device disconnect enp0s3
$ sudo teamdctl team0 state
当检查分组接口的状态时,您会发现该链接enp0s8已启动并正在提供与服务器的连接。这确认我们的设置正在运行!
4、删除网络分组接口
如果您希望删除分组接口/链接并恢复为默认网络设置,请首先关闭分组链接:
$ nmcli connection down team0
接下来,删除从站。
$ nmcli connection delete team0-slave0 team0-slave1
最后,删除分组界面。
$ nmcli connection delete team0
此时,所有接口均已关闭,服务器无法访问。要激活您的网络接口并重新获得连接,请运行以下命令:
$ sudo ifconfig enp0s3 up
$ sudo ifconfig enp0s8 up
$ sudo systemctl restart NetworkManager
NIC组合为网络冗余提供了出色的解决方案。使用2个或更多网络接口,您可以在任何运行程序模式下配置成组接口,以确保在一个链路意外断开的情况下实现高可用性。