验证网络绑定(Bonding)的配置

  1. 检查“ip addr show”命令输出中的新接口:
# ip addr show
1: lo: [LOOPBACK,UP,LOWER_UP] mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
4: ens37: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
5: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.12/24 brd 192.168.2.255 scope global bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe54:f720/64 scope link 
       valid_lft forever preferred_lft forever
  1. 还可以使用以下命令验证绑定接口的当前状态以及当前处于活动状态的接口:
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 1
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:f7:20
Slave queue ID: 0
Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:f7:34
Slave queue ID: 0

从上面的命令输出中,我们可以看到 ens33 是绑定中当前活动的从属设备。

Bonding模式

根据你的需求,我们可以将Bonding模式设置为以下 7 种模式之一)

模式策略如何工作容错负载均衡
0Round Robin数据包依次通过每个接口一个接一个地发送/接收。是的
1Active Backup一个 NIC 处于活动状态,而另一个 NIC 处于休眠状态。如果活动 NIC 出现故障,另一个 NIC 将变为活动状态。仅在 x86 环境中受支持。是的
2XOR [exclusive OR]在这种模式下,从 NIC 的 MAC 地址与传入请求的 MAC 匹配,一旦建立此连接,同一个 NIC 将用于发送/接收目标 MAC。是的是的
3Broadcast所有传输都在所有从机上发送是的
4Dynamic Link Aggregation聚合的 NIC 充当一个 NIC,这会导致更高的吞吐量,但也会在 NIC 发生故障的情况下提供故障转移。动态链路聚合需要支持 IEEE 802.3ad 的交换机。是的是的
5Transmit Load Balancing (TLB)根据每个从接口上的当前负载分配传出流量。当前从站接收传入流量。如果接收从站出现故障,另一个从站将接管故障从站的 MAC 地址。是的是的
6Adaptive Load Balancing (ALB)与动态链路聚合不同,自适应负载平衡不需要任何特定的交换机配置。自适应负载平衡仅在 x86 环境中受支持。接收报文通过ARP协商进行负载均衡。是的是的

测试Bonding配置的容错性

  1. 由于这是一种主动-备份绑定配置,当一个接口出现故障时,绑定中的另一个接口成为主动从属接口。
    为了验证此功能,我们将关闭当前界面 ens33.
# ifdown ens33
  1. 如果再次查看bond接口状态,会发现新的active slave是接口ens37.
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens37
MII Status: up
MII Polling Interval (ms): 1
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:f7:34
Slave queue ID: 0

绑定接口也将启动并运行:

# ip add show bond0
5: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.12/24 brd 192.168.2.255 scope global bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe54:f720/64 scope link 
       valid_lft forever preferred_lft forever
CentOS/RHEL 7:如何配置网络绑定(Network Bonding)或者网卡绑定(NIC teaming)

网络接口绑定(Network interface bonding)有多种名称:端口中继(Port Trunking)、通道绑定(Channel Bonding)、链路聚合(Link Aggregation)、NIC 组队(NIC teaming)等。

它将多个网络连接组合或者聚合到单个通道绑定接口中。
这允许两个或者多个网络接口作为一个接口,以增加吞吐量并提供冗余或者故障转移。

Linux 内核附带了用于将多个物理网络接口聚合为单个逻辑接口的绑定驱动程序(例如,将 eth0 和 eth1 聚合为 bond0)。
对于每个绑定接口,我们可以定义模式和链路监控选项。
有七种不同的模式选项,每种模式都提供特定的负载平衡和容错特性,如下表所示。

监控网络Bonding链路

Bonding驱动程序支持两种方法来监视从站的链接状态:

  • MII(媒体独立接口)监视器
  • 这是默认和推荐的链接监控选项。
  • 它监视本地网络接口的载波状态。
  • 我们可以指定监控频率和延迟。
  • 延迟时间允许我们考虑交换机初始化。
  • ARP监控
  • 这会向网络上的对等系统发送 ARP 查询,并将响应用作链路已启动的指示。
  • 我们可以指定监控频率和目标地址。
之路教程 https://onitr oad .com

配置网络绑定(Network Bonding)

创建绑定接口文件

我们可以在 /etc/sysconfig/network-scripts 目录中手动创建绑定接口文件。
首先创建绑定接口,然后将物理网络接口添加到绑定。
这些物理网络接口称为“从设备”。

对于本文中的示例,bond0 接口的从站是 ens33 和 ens37.
启动前,请确保绑定模块已正确加载。
要验证这一点,请使用如下所示的命令:

# lsmod |grep bonding
bonding               122351  0

如果模块未加载,请使用 modprobe 命令加载它。

# modprobe bonding
  1. 下面是一个bonding接口文件的例子:
# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BONDING_OPTS="miimon=1 updelay=0 downdelay=0 mode=active-backup" TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
IPADDR=192.168.2.12
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0
UUID=bbe539aa-5042-4d28-a0e6-2a4d4f5dd744
ONBOOT=yes
  1. 下面的例子将ens33物理网络接口定义为bond0的slave:
# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
NAME=ens33
UUID=817e285b-60f0-42d8-b259-4b62e21d823d
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
  1. 下面的例子将ens37物理网络接口定义为bond0的slave:
# cat /etc/sysconfig/network-scripts/ifcfg-ens37 
TYPE=Ethernet
NAME=ens37
UUID=f0c23472-1aec-4e84-8f1b-be8a2ecbeade
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes
  1. 重启网络服务
    重启网络服务,使能bonding接口。
# systemctl restart network

如果我们不想重新启动网络服务,我们可以单独检测绑定接口:

# ifup bond0
日期:2020-09-17 00:12:01 来源:oir作者:oir