Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来 使用,用于网络负载均衡及网络冗余;
bonding一共有7种工作模式:
0:(balance-rr) Round-robin policy: (平衡轮询策略):传输数据包顺序是依次传输,直到最后一个传输完毕, 此模式提供负载平衡和容错能力。
1:(active-backup) Active-backup policy:(活动备份策略):只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。 此模式提供了容错能力。
2:(balance-xor) XOR policy:(平衡策略):传输根据[(源MAC地址xor目标MAC地址)mod 设备数量]的布尔值选择传输设备。 此模式提供负载平衡和容错能力。
3:(broadcast) Broadcast policy:(广播策略):将所有数据包传输给所有设备。 此模式提供了容错能力。
4:(802.3ad) IEEE 802.3ad Dynamic link aggregation. IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。此模式提供了容错能力。每个设备需要基于驱动的重新获取速度和全双工支持;如果使用交换机,交换机 也需启用 802.3ad 模式。
5:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡):通道绑定不需要专用的交换机支持。发出的流量根据当前负载分给每一个设备。由当前设备处理接收,如果接受的设 备传不通就用另一个设备接管当前设备正在处理的mac地址。
6:(balance-alb) Adaptive load balancing: (适配器负载均衡):包括mode5,由 ARP 协商完成接收的负载。bonding驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。
mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作,带宽加倍。
mode=1表 示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。bonding只能提供链 路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续 使用;
安装软件 :ifenslave一种粘合和分离式的软件,可以将数据包有效的分配到bonding驱动。
|
修改配置文件 /etc/network/interfaces
------------------------------------------------------------------------------------------
auto lo
iface lo inet loopback
配置模式为轮询策略;模式代号是0,轮询间隔100ms;
up ifenslave bond0 eth0 eth1
down ifenslave bond0 -d eth0 eth1
bond-mode 0
bond-miimon 100
设置bondIP
auto bond0
iface bond0 inet static
address 192.168.161.123
netmask 255.255.255.0
gateway 192.168.161.2
---------------------------------
也可设置bond的虚拟ip(非必须)
auto bond0:0
iface bond0:0 inet static
address 192.168.162.123
netmask 255.255.255.0
gateway 192.168.162.2
---------------------------------------------------------------------------------------
加载bond模块 :sudo modprobe bonding
---------------------------------------------------------------------------------------
vi /etc/modules ------------------------>bonding
---------------------------------------------------------------------------------------------
重启计算机,如果成功,bond0、eth0、eth1的MAC地址均会变成原来eth0的MAC!!
----------------------------------------------------------------------------------------------
虚拟机下清空eth0的ip的方法:sudo ip addr flush dev eth0
============================================
原参考文地址:http://www.mike.org.cn/articles/ubuntu-nic-balancing/