方法如何在Linux上设置以太网绑定

以太网绑定将两个或多个网络接口组合到单个虚拟NIC卡中,从而增加了带宽并提供了NIC卡冗余。

在Linux上,可以使用称为绑定的特殊内核模块来绑定多个网络接口。由于在Linux上启用了此功能,因此您可以创建一个称为bond的新虚拟接口。有两个NIC卡ens33和ens34。这篇文章显示了RHEL 7和CentOS 7上的步骤。

目录

  • 1)启用绑定模块
  • 2)创建绑定通道接口
  • 3)配置物理接口
  • 4)激活绑定通道
  • 结论

1)启用绑定模块

第一步,您需要检查绑定模块是否已激活。您可以使用以下命令进行检查

# modinfo bonding
modinfo: ERROR: Module alias bonding not found.

如果没有,则可以使用以下命令:

# modprobe --first-time bonding

您可以再次检查。我得到以下结果

# modinfo bonding

方法如何在Linux上设置以太网绑定

您可以从命令中获取结果并查看内容描述行。

2)创建绑定通道接口

首先,在bonding.conf中创建一个新的文件名 /etc/modprobe.d/ 目录。该名称可以是任何名称,只要它以.conf扩展名结尾即可。驱动程序名为bonding的配置文件

# vim /etc/modprobe.d/bonding.conf
alias bond0 bonding

插入以上内容,保存并退出。对于每个已配置的通道绑定接口,对应的条目为 /etc/modprobe.d/bonding.conf 档案

现在,您可以创建通道绑定界面。为此,您需要创建一个文件 /etc/sysconfig/network-scripts/ 目录称为 ifcfg-bond0 作为您先前创建的别名。请注意您使用包含网络接口文件的文件夹。

# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.43.100
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=1 miimon=100"

注意BONDING_OPTS行上的指令。使用各种选项和模式进行绑定。模式如下:

  • 模式0 平衡rr:设置容错和负载平衡的循环策略。
  • 模式1活动备份:设置容错活动备份策略。
  • 模式2平衡异或:设置XOR(异或)模式以实现容错和负载平衡。
  • 模式3广播节目:设置容错广播策略。所有传输都在所有从接口上发送。
  • 模式4802.3ad:设置IEEE 802.3ad动态链接聚合策略。创建共享相同速度和双工设置的聚合组。
  • 模式5平衡表:设置传输负载平衡(TLB)策略以实现容错和负载平衡。根据每个从属接口上的当前负载分配传出流量。当前从站接收到传入流量。如果接收方从站发生故障,则另一个从站将接管发生故障的从站的MAC地址。此模式仅适用于内核绑定模块已知的本地地址,不能在与虚拟机桥接的后面使用。
  • 模式6平衡白布:设置自适应负载平衡(ALB)策略以实现容错和负载平衡。包括出站和入站负载平衡 IPv4 交通。

您有以下选择:

  • miimon =time_in_milliseconds: 指示检查链接状态是否发生链接故障的频率(以毫秒为单位)。如果需要高可用性,这很有用,因为使用MII来确保NIC处于活动状态
  • arp_interval = time_in_Milliseconds:指定进行ARP监视的频率(以毫秒为单位)。在模式0或模式2(两个负载平衡模式)下使用此设置时,必须将网络交换机配置为在NIC上平均分配数据包。

3)配置物理接口

下一步是编辑物理接口以进行绑定。 MASTER=bond0SLAVE=yes 指向配置文件的指令。这意味着通道绑定接口是主接口,要绑定的接口称为从接口。每个通道绑定接口的配置文件可以几乎相同,并且只能从ifcfg-bond0设置,因此请从每个文件中注释掉IP地址,网络掩码,网关和硬件地址或者以上文件需要删除。确保将MASTER和SLAVE配置添加到这些文件。

对于ens33接口,配置如下

# vim /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33
NAME=bond0-slave
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

对于ens34界面,文件如下所示:

# vim /etc/sysconfig/network-scripts/ifcfg-ens34

DEVICE=ens34
NAME=bond0-slave
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

4)激活绑定通道

激活所有从站以激活绑定。如果在更改期间已经激活了该接口,则需要事先停用该接口。

因此,首先停用界面

# ifdown ifcfg-ens33
Device 'ens33' successfully disconnected.

# ifdown ifcfg-ens34
Device 'ens34' successfully disconnected.

然后重新激活界面

# ifup ifcfg-ens33
Connection successfully activated (D-Bus active path: 
/org/freedesktop/NetworkManager/ActiveConnection/5)

# ifup ifcfg-ens34
Connection successfully activated (D-Bus active path: 
/org/freedesktop/NetworkManager/ActiveConnection/6)

或重新加载所有接口

# nmcli con reload

您可以使用以下命令检查配置。

# ifconfig 
bond0: flags=5187 mtu 1500
 inet 192.168.43.100 netmask 255.255.255.0 broadcast 192.168.43.255
 inet6 fe80::20c:29ff:feb4:f30a prefixlen 64 scopeid 0x20
 ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet)
 RX packets 26 bytes 4705 (4.5 KiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 22 bytes 3711 (3.6 KiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33: flags=6211 mtu 1500
 ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet)
 RX packets 13 bytes 2196 (2.1 KiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 12 bytes 2072 (2.0 KiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens34: flags=6211 mtu 1500
 ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet)
 RX packets 13 bytes 2509 (2.4 KiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 10 bytes 1639 (1.6 KiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
 inet 127.0.0.1 netmask 255.0.0.0
 inet6 ::1 prefixlen 128 scopeid 0x10
 loop txqueuelen 1 (Local Loopback)
 RX packets 1172 bytes 86468 (84.4 KiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 1172 bytes 86468 (84.4 KiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

您会看到只有绑定接口具有IP地址。同时使用以下命令检查配置

# 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): 100
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:b4:f3:0a
Slave queue ID: 0

Slave Interface: ens34
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b4:f3:14
Slave queue ID: 0

有关以太网绑定的更多信息,请参见linuxfoundation页面。

结论

可以使用miimon或arp_interval参数启用链接监视。 miimon监视基础网络设备检测到的运营商状态,而arp监视器(arp_interval)监视与本地网络上另一主机的连接。如果未配置链接监视,则绑定驱动程序将无法检测到链接故障,并假定所有链接始终可用。如果启用了链接监视,则故障设备将被禁用。活动备份模式将故障转移到备份链接;其他模式将忽略失败的链接。

另请阅读:

  • 如何通过示例使用Linux中的IP命令
  • 14 tcpdump命令捕获Linux上的网络流量
Sidebar