如何在 Linux 中设置以太网绑定

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVEFPWEMozL_iloDMv-KAicy_xLnMr8y_zL_iloDMvyDMvw==,size_14,color_FFFFFF,t_70,g_se,x_16

以太网绑定是一种将两个或多个网络接口组合(连接)到单个虚拟 NIC 卡中的方法,它可以增加带宽并提供 NIC 卡的冗余。

Linux 允许我们使用名为绑定的特殊内核模块绑定多个网络接口。该功能在 Linux 上启用,因此我们可以创建一个称为绑定的新虚拟接口。我们有两张网卡 ens33 和 ens34。该帖子显示了 RHEL 7 和 CentOS 7 上的过程。

1) 启用绑定模块

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

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

如果它不存在,您可以使用以下命令:

# modprobe --first-time bonding

你可以再检查一下。你会得到下面的结果

# modinfo bonding

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVEFPWEMozL_iloDMv-KAicy_xLnMr8y_zL_iloDMvyDMvw==,size_20,color_FFFFFF,t_70,g_se,x_16

您可以看到该命令为我们提供了一个结果,您可以查看描述行。

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行,bonding 使用了多种选项和模式。模式可以是:

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

选项可以是:

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

3)配置物理接口

MASTER=bond0 下一步是通过将andSLAVE=yes 指令添加到其配置文件来编辑用于绑定的物理接口。这意味着通道绑定接口是 接口,要绑定的接口称为接口。每个通道绑定接口的配置文件几乎相同,您需要注释或删除每个文件中的IP 地址、网络掩码、网关和硬件地址,因为设置只能来自 ifcfg-bond0上面的文件。确保在这些文件中添加 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) 激活绑定通道

要激活bonding,请调出所有slave。如果修改时接口已经激活,则需要先去激活接口。

所以我们先去激活界面

# 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<UP,BROADCAST,RUNNING,MASTER,MULTICAST> 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<link>
 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<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> 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<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> 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<UP,LOOPBACK,RUNNING> mtu 65536
 inet 127.0.0.1 netmask 255.0.0.0
 inet6 ::1 prefixlen 128 scopeid 0x10<host>
 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

有关以太网绑定的更多详细信息,请参阅 Linux 基础页面。

结论

可以通过 miimon 或 arp_interval 参数启用链路监控,其中 miimon 监控由底层网络设备感知的运营商状态,而 arp 监控器 (arp_interval) 监控与本地网络上另一台主机的连接。如果未配置链路监控,则绑定驱动程序将无法检测链路故障,并假定所有链路始终可用。启用链路监控后,故障设备将被禁用。主动备份模式将故障转移到备份链路,其他模式将忽略故障链路。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值