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驱动。

 
 sudo apt-get install ifenslave 

 

修改配置文件 /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/