2024年4月18日发(作者:)

本文介绍linux下(de)bonding技术,linux2.4.x(de)内核中采用了这种技

术,利用bonding技术可以将多块网卡接口通过绑定虚拟成为一块网卡,在

用户看来这个聚合起来(de)设备好像是一个单独(de)以太网接口设备,通

俗点讲就是多块网卡具有相同(de)IP地址而并行连接聚合成一个逻辑链

二、bond(de)几种算法

Linux(de)bond支持7种工作模式,可以参考内核源码包文件:

Documentation/networking/.这里逐一介绍.

模式1:mode=0,即:(balance-rr)Round-robinpolicy(平衡轮循策略)

特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走

eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和

容错能力;但是我们知道如果一个连接或者会话(de)数据包从不同(de)接

口发出(de)话,中途再经过不同(de)链路,在客户端很有可能会出现数据

包无序到达(de)问题,而无序到达(de)数据包需要重新要求被发送,这样

网络(de)吞吐量就会下降.

模式2:mode=1,即:(active-backup)Active-backuppolicy(主-备份策

略)

特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为

主设备.mac地址是外部可见得,从外面看来,bond(de)MAC地址是唯一(de),

以避免switch(交换机)发生混乱.此模式只提供了容错能力;由此可见此

算法(de)优点是可以提供高网络连接(de)可用性,但是它(de)资源利用率

工作.

较低,只有一个接口处于工作状态,在有N个网络接口(de)情况下,资源利

用率为1/N

模式3:mode=2,即:(balance-xor)XORpolicy(平衡策略)

特点:基于指定(de)传输HASH策略传输数据包.缺省(de)策略是:(源MAC

地址XOR目标MAC地址)%slave数量.其他(de)传输策略可以通过

xmit_hash_policy选项指定,此模式提供负载平衡和容错能力.

模式4:mode=3,即:broadcast(广播策略)

特点:在每个slave接口上传输每个数据包,此模式提供了容错能力.

模式5:mode=4,即:(802.3ad)IEEE802.3adDynamiclinkaggregation

(IEEE802.3ad动态链接聚合)

特点:创建一个聚合组,它们共享同样(de)速率和双工设定.根据802.3ad

规范将多个slave工作在同一个激活(de)聚合体下.

外出流量(de)slave选举是基于传输hash策略,该策略可以通过

xmit_hash_policy选项从缺省(de)XOR策略改变到其他策略.需要注意(de)

是,并不是所有(de)传输策略都是802.3ad适应(de),尤其考虑到在

802.3ad标准43.2.4章节提及(de)包乱序问题.不同(de)实现可能会有不

同(de)适应性.

必要条件:

条件1:ethtool支持获取每个slave(de)速率和双工设定

条件2:switch(交换机)支持IEEE802.3adDynamiclinkaggregation

条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式