bond

Ubuntu server 14.04 LTS 多网卡绑定实现负载均衡
    多网卡绑定还必须要在交换机上配置端口汇聚,否则会在多网卡之间不断进行Mac地址切换,造成网络卡顿、丢包,将两张网卡绑定,共用一个IP,实现冗余效果。实际上linux双网卡的绑定模式有7种:
mode=0 表示 load balancing (round-robin)为负载均衡方式,两块网卡都工作。
mode=1 表示 fault-tolerance (active-backup)提供冗余功能,工作方式是主 从的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。
mode=2 表示 XOR policy 为平衡策略。此模式提供负载平衡和容错能力
mode=3 表示 broadcast 为广播策略。此模式提供了容错能力
mode=4 表示 IEEE 802.3ad Dynamic link aggregation 为 IEEE 802.3ad 为 动态链接聚合。该策略可以通过 xmit_hash_policy 选项从缺省的 XOR 策略改变到其他策略。
mode=5 表示 Adaptive transmit load balancing 为适配器传输负载均衡。该 模式的必要条件:ethtool 支持获取每个 slave 的速率
mode=6 表示 Adaptive load balancing 为适配器适应性负载均衡。该模式包含 了 balance-tlb 模式,同时加上针对 IPV4 流量的接收负载均衡(receive load balance, rlb),而且不需要任何 switch(交换机)的支持。

1.安装负载软件

apt-get install ifenslave

2.加载模块及配置负载
vi /etc/modules
#添加
bonding mode=0 miimon=100
#miimon是10ms监测一次网卡状态

3.配置bond0
注:bond IP与成员口的IP不能一致,如果不想成员口IP获得本网段地址,可以随便配置一个。
 auto lo
 iface lo inet loopback

 auto em1
 iface em1 inet static
         address 192.168.1.11
         netmask 255.255.255.0
 #bond-master bond0

 auto em2
 iface em2 inet static
         address 192.168.1.12
         netmask 255.255.255.0
 #bond-master bond0

 auto bond0
 iface bond0 inet static
         address 192.168.1.13
         netmask 255.255.255.0
         network 192.168.1.0
         broadcast 192.168.1.255
         gateway 192.168.1.1
         dns-nameservers 114.114.114.114
 #bond-mode 0
 #bond-miimon 100
         up ifenslave bond0 em1 em2
         down ifenslave -d bond0 em1 em2
4.重启reboot

5.确认bond0状态
cat /proc/net/bonding/bond0

提示up即成功:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: em2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: *:*:*:*:*:*
Slave queue ID: 0

Slave Interface: em5
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: *:*:*:*:*:*
Slave queue ID: 0

而down表示未启用可能没有auto(自动
启用),可以尝试手工启动:
ifconfig bond0 up
上一篇:ROS ERROR: “Qt5::Gui“ references the file “/usr/lib/x86_64-linux-gnu/libEGL.so“ not exist


下一篇:Win11 在 Edge 浏览器中报名教师资格证