在 Debian 11 / Debian 10 上配置多网卡绑定
在 Debian 11 / Debian 10 上配置网络网卡组合
网络 NIC 组合可以定义为将多个网络接口组合成单个网络组。这是工作站冗余和高可用性的主要解决方案。通过将多个网络接口组合在一起以创建更大的流量管道,可以防止服务器因单个链路/接口故障而导致的服务丢失,从而提高容错能力。
除了容错之外,首选网络 NIC 成组,因为:
- 它易于配置。
- 软件应用程序可供免费下载。
- 由于互联网速度的提高,为用户提供快速的浏览体验
网络 NIC 组合有几个概念,包括:
- Teamd – 这是一个分组守护程序,它使用 libteam 库通过 Linux 内核与团队设备进行通信。
- Teamdctl – 一个允许控制成组实例的实用程序。您可以检查和更改端口状态,以及在备份和活动状态之间切换。
- 运行器 – 它们是以 JSON 格式编写的单元,用于实现各种 NIC 分组概念。
有几种跑步者(团队跑步模式)包括:
- 802.3ad – 这是链路聚合模式。此方法符合 IEEE 链路聚合标准,并提供容错和增加带宽
- 广播数据是从所有从接口转出的,因此这种特定绑定方法的“广播”名称
- 负载平衡 – 它基于活动的 Tx 负载平衡和基于 BPF 的 Tx 端口选择器。流量在所有网卡之间传输
- 主动备份 – 只有一个网络接口处于活动状态,而组中的其他接口等待故障以激活它们。
- 轮循机制 – 网络数据包通过组成绑定接口的每个网络接口卡轮换。
在 Debian 11 / Debian 10 上配置网络网卡组合可以通过以下步骤实现。
第 1 步 – 在 Debian 11 / Debian 10 上安装 Teamd。
为了能够配置 NIC Teaming,我们需要在 Debian 11 / Debian 10 上安装 Teaming 守护程序。
sudo apt install teamd
确保已安装网络管理器。
sudo apt-get install network-manager
启动启用网络管理器
sudo systemctl start NetworkManager.service sudo systemctl enable NetworkManager.service
步骤 2 – 在 Debian 11 / Debian 10 上配置网络网卡组合
本指南演示了在 Debian 11 / Debian 10 上配置网络网卡组合的两种方法:
- 使用网络管理器 NMCLI
- 手动地
方法 1 – 使用 NMCLI 在 Debian 11 / Debian 10 上配置网络网卡组合。
使用网络管理器的实用程序工具,我们可以轻松配置网络 NIC 组合。首先识别网络设备,如下所示。
nmcli device status
输出:
从输出中,我们将使用并创建一个网络团队。获取有关设备的详细信息。enp1s0
enp9s0
nmcli connection show
示例输出:
在继续之前,请使用提供的 UUID 断开两个设备的连接。
sudo nmcli connection delete 40a3c011-f9c1-4dfc-b73b-3d80c8e291ac sudo nmcli connection delete 4c1a8752-53c3-4f0c-933c-95e52b023835
现在验证设备是否已断开连接:
完成上述配置后,我们可以继续创建一个网络团队(team1),其中运行器(活动备份)如下。
sudo nmcli connection add type team con-name team1 ifname team1 config '{"runner": {"name": "activebackup"}}'
创建后,使用以下命令查看团队信息:
$ nmcli connection show team1 connection.id: team1 connection.uuid: 71581079-6012-420b-84e2-1ddcb878d88b connection.stable-id: -- connection.type: team connection.interface-name: team1 connection.autoconnect: yes connection.autoconnect-priority: 0 connection.autoconnect-retries: -1 (default) connection.multi-connect: 0 (default) connection.auth-retries: -1 connection.timestamp: 0 connection.read-only: no connection.permissions: -- connection.zone: -- connection.master: -- connection.slave-type: -- connection.autoconnect-slaves: -1 (default) connection.secondaries: --
继续并配置团队的 IP 地址、DNS 和自动连接,如下所示。
sudo nmcli con mod team1 ipv4.addresses 192.168.205.50/24 sudo nmcli con mod team1 ipv4.gateway 192.168.205.1 sudo nmcli con mod team1 ipv4.dns 8.8.8.8 sudo nmcli con mod team1 +ipv4.dns 8.8.4.4 sudo nmcli con mod team1 ipv4.method manual sudo nmcli con mod team1 connection.autoconnect yes
然后将这两个设备添加并作为从设备添加到上面创建的组中。enp1s0
enp9s0
sudo nmcli con add type team-slave con-name team1-slave0 ifname enp1s0 master team1 sudo nmcli con add type team-slave con-name team1-slave1 ifname enp9s0 master team1
验证是否已添加从属服务器。
$ nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 560ba0ac-36ac-477d-877a-84cfe96a7a42 ethernet enp10s0 team1 71581079-6012-420b-84e2-1ddcb878d88b team team1 team1-slave0 773fcccd-5f0c-4684-9b49-10d8aadce24e ethernet enp1s0 team1-slave1 02dd3e54-b37b-43fe-b0bb-790a19cd19f7 ethernet enp9s0
最后,通过重新启动团队来应用更改。
sudo nmcli connection down team1 && sudo nmcli connection up team1
查看团队的状态。
ip addr show dev team1
输出:
此外,使用该实用程序,您可以查看团队的状态。teamdctl
sudo teamdctl team1 state
输出:
从上面的输出中,我们可以确定正在使用的运行器(活动备份),组上的从站以及运行器中的活动端口(enp1s0)。
测试团队功能。
现在,我们可以测试主动备份策略是否按预期工作。为此,请断开活动接口的连接,如下所示。
sudo nmcli device disconnect enp1s0
现在检查以查看活动从站。
sudo teamdctl team1 state
输出:
此输出演示了团队的功能,主动节点已切换到另一个可用的接口
删除团队。
要删除网络团队,请先断开团队的连接。
sudo nmcli connection down team1
现在删除连接的从属服务器。
sudo nmcli connection delete team1-slave0 team1-slave1
继续并删除团队。
sudo nmcli connection delete team1
验证团队是否已被删除。
$ nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 560ba0ac-36ac-477d-877a-84cfe96a7a42 ethernet enp10s0
方法 2 – 在 Debian 11 / Debian 10 上手动配置网络网卡组合。
还有一种简化的方法可以通过编辑 /etc/network/interface 上的网络脚本来创建网络绑定
首先,确保绑定模块安装在 Debian 11 / Debian 10 上。
sudo apt-get install ifenslave
重新加载模块。
sudo modprobe bonding
将配置加载到内核中,以便系统在引导时自动选取这些配置。
echo 'bonding' | sudo tee -a sudo /etc/modules
现在编辑 /etc/network/interfaces,如下所示。
sudo vim /etc/network/interfaces
在文件中,适当地添加您的 Bond 名称和从属接口。
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # Teaming physical interfaces auto enp1s0 iface enp1s0 inet manual auto enp9s0 iface enp9s0 inet manual ##The Bond Configuration## auto bond0 iface bond0 inet static address 192.168.205.150 netmask 255.255.255.0 gateway 192.168.205.1 bond-mode 1 bond-primary enp9s0 bond-slaves enp9s0 enp1s0 bond-miimon 100 bond-downdelay 400 bond-updelay 800
保存上面的文件并激活网络绑定。
sudo ifdown enp1s0 enp9s0 sudo ifup bond0
随着网络绑定的建立,检查其状态;
sudo ifconfig
示例输出:
您还可以获取详细的债券信息,如下所示。
sudo cat /proc/net/bonding/bond0
示例输出:
就是这样,我们已经成功地在 Debian 11 / Debian 10 上配置了 Network NIC Teaming。
https://computingforgeeks.com/configure-network-nic-teaming-on-debian/
BRCTL网桥配置命令、网卡的链路聚合
命令方式管理桥接接口-brctl命令介绍
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
注:以上命令均为配置临时网桥
网卡的链路聚合-bond
- 1
- 2
- 3
- 4
- 5
- 6
创建一个bond口,将原有网卡删除,从设备管理器添加两块网卡,并添加至bond0,使用nmcli connection show命令查看设备连接列表。
同时开启监控窗口,查看bond0当前使用状态。
使用ifconfig eth1 down命令使eht1断开。这里可以看到,只有eth2是活跃状态,而eth1已经显示为断开。
网卡的链路聚合-Team接口
Team和bond0功能类似,不过Team不需要手动加载相应的内核模块,并且支持8块网卡,具有更强的拓展性。
- 1
- 2
- 3
- 4
- 5
- 6
创建一个team0设备,并将两块设备依次加入team0网路组后,使用teamdctl team0 state命令查看team0当前使用状态。
测试网络的连通性
断开eth0设备
此时网络连通性仍旧良好