网站搜索

如何在 CentOS 8/RHEL 8 中创建 NIC 分组或绑定


NIC 组合是将两个或多个网络链路聚合或绑定为单个逻辑链路,以提供冗余和高可用性。逻辑接口/链路称为组接口。如果活动物理链路出现故障,备份或保留链路之一会自动启动并确保与服务器的连接不间断。

团队术语

在我们大干一场之前,熟悉以下术语至关重要:

  • Teamd – 这是 nic 分组守护进程,它使用 libteam 库通过 Linux 内核与团队设备进行通信。
  • Teamdctl – 这是一个实用程序,允许用户控制 teamd 实例。您可以检查和更改端口状态,以及在备份和活动状态之间切换。
  • Runner – 这些是用 JSON 编写的代码单元,用于实现各种 NIC 分组概念。运行程序模式的示例包括循环、负载平衡、广播和主动备份。

在本指南中,我们将使用主动备份模式配置NIC 分组。在这种情况下,一条链路保持活动状态,而其余链路则处于备用状态并保留为备用链路,以防活动链路出现故障。

在本页

  • 在 CentOS 中安装 teamd 守护进程
  • 在 CentOS 中配置 NIC 分组
  • 测试网络分组冗余
  • 删除网络分组接口

话不多说,让我们开始吧。

步骤1:在CentOS中安装teamd守护进程

Teamd 是负责创建网络团队的守护进程,该网络团队将在运行时充当逻辑接口。默认情况下,它随 CentOS/RHEL 8 一起安装。但是,如果由于某种原因未安装它,请执行以下 dnf 命令来安装它。

sudo dnf install teamd

安装后,通过运行 rpm 命令验证是否已安装 teamd

rpm -qi teamd

步骤 2:在 CentOS 中配置 NIC 组合

要配置 NIC 组合,我们将使用方便的 nmcli 工具,该工具可用于管理 NetworkManager 服务。在我的系统中,我有 2 个 NIC 卡,我将绑定或组合它们来创建逻辑团队接口:enp0s3enp0s8。这对于您的情况可能有所不同。

要确认活动网络接口,请运行:

nmcli device status

输出确认存在 2 个活动网络连接。要收集有关UUID等接口的更多信息,请运行以下命令:

nmcli connection show

要创建网络分组链接或接口(这将是我们的逻辑链接),我们将删除现有的网络接口。此后,我们将使用已删除的接口创建从属接口,然后将它们与分组链路关联。

使用各自的 UUID 执行以下命令来删除链接:

nmcli connection delete e3cec54d-e791-4436-8c5f-4a48c134ad29
nmcli connection delete dee76b4c-9alb-4f24-a9f0-2c9574747807

这次当您检查接口时,您会发现它们已断开连接并且没有提供与服务器的连接。基本上,您的服务器将与网络的其他部分隔离。

nmcli device status

接下来,我们将在主动备份运行器模式下创建一个名为 team0 的团队接口。如前所述,主动备份运行模式使用一个活动接口并保留其他接口以供冗余,以防活动链路出现故障。

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

从输出中,我们可以看到两个链接(enp0s3enp0s8)均已启动,并且活动链接为 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 个或更多网络接口,您可以在任何运行程序模式下配置分组接口,以确保在一个链路意外断开时的高可用性。我们衷心希望本指南对您有所帮助。请联系我们,让我们知道您的体验如何。