服务器网卡bonding配置浅读

最近看了下服务器网卡bonding驱动的文档,网络比较关心,和大家分享下,文档参见Linux内核目录($KERNEL_DIR/Documentation/networking/bonding.txt)

我看的是内核linux-2.6.32.60的,源码和文档可以去www.kernel.org下载。

网卡绑定支持7中模式,使用mode选项来配置,具体如下:

balance-rr or 0
这是默认配置,即服务器开启bond,但是不配mode选项的话,默认就是mode 0,也就是轮询,我的理解是,从网络上看,服务器2块网卡使用同一个MAC地址,

每一个miimon内,同时只有一块网卡在工作,也就是说从交换机上看,这个MAC一会在这个端口,一会在另一个端口,但同时只能有一个端口存在流量,所以瓶颈

是1块网卡的极限。而且该mode如果交换机不配port-channel的话,会出现严重的MAC地址抖动。

active-backup or 1
主备模式,也是线上用的比较多的一种,服务器端只会有一块网卡是活动状态,只有当activce slave网卡down掉后,另外的slave才会切换到active状态,也

就是说交换机无需任何特殊配置即可和服务器正常通信。

balance-xor or 2
异或模式,传输路线会根据异或的结果来选择,默认是拿源MAC和目的MAC做异或操作来决定走哪块网卡,通过xmit_hash_policy参数来修改策略。

broadcast or 3
广播模式,在所有网卡上接受所有的数据包,只提供冗余,不提供负载均衡。

802.3ad or 4
LACP模式,也是线上用的最多的一种,双网卡使用一个MAC和IP同时工作,网卡性能是所有slave之和。需要支持ethtool获取所有slave的speed和duplex;

交换机支持802.3ad;

balance-tlb or 5
不需要交换机特殊支持,bond程序会选择一块网卡作为active网卡收包,而出方向则是根据slave上的traffic来的;如果bond选择的slavedown掉了,会有另外

的slave会接管之前失效的MAC地址来收发包。总之就是单进双出。

balance-alb or 6
在balance-tlb的基础,增加了入方向rlb,字面上看就是 receive load balance,同样不需要交换机配LACP,但是需要服务器网卡支持ethtool获取speed和duplex,

且网卡支持设置网卡硬件地址,和mode 4一样,需要配置updelay参数,文档原话:“The updelay parameter (detailed below) mustbe set to a value equal or

greater than the switch'sforwarding delay so that the ARP Replies sent to the peers will not be blocked by the switch.”


mode 802.3ad线上用的比较多,就对802.3ad中可以设置的一些参数做一下介绍:

1、ad_select

该参数制定链路聚合策略,有以下几种:

stable or 0
按照最大带宽去聚合;
在所有slave down的情况,或者active聚合组没有slave的情况下会重新聚合;

bandwidth or 1
和stable一样,只是重新聚合的条件不一样;
一个slave的加入或者删除会重新聚合;
任何slave的状态改变会重新聚合;
任何slave的802.3ad协议状态的改变会重新聚合;
bond状态改变也会重新聚合;

count or 2
按照端口数量最大来聚合,个人最这个最多端口和最大带宽理解还不是太懂,具体要看实验的表现;
重新聚合发生在“bandwidth”参数的设置;

2、lacp_rate

该参数指定LACPDU报文发送速率,有以下2种:

slow or 0
30s一次,默认就是slow;

fast or 1
1s一次;

3、miimon

该参数指定链路检测频率,驱动程序推荐是miimon=100,也就是100ms一次,default是0;

4、xmit_hash_policy

layer2
使用2层(source MAC XOR destination MAC) 来hash;

layer2+3
使用2+3层(((source IP XOR dest IP) AND 0xffff) XOR( source MAC XOR destination MAC )) 来hash;IP地址XOR完毕后,取低16 bits,再和MAC地址做一次XOR。

layer3+4
使用3+4层((source port XOR dest port) XOR((source IP XOR dest IP) AND 0xffff)来hash;

最后贴一个mode 4配置:
cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding miimon=100 mode=4 xmit_hash_policy=2


mode 1 主要的几个选项:

1、primary
设置主网卡

2、updelay

该参数的配置是为了防止交换机重启后端口UP起来,但是还未进入forwarding状态引起服务器出现流量上来的问题

最后贴一个mode 1配置:
cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding miimon=100 mode=1 primary=eth0 updelay=600000



有啥理解不对的地方还请指出,谢谢。近期会对所有mode和想了解的参数测试一遍,看看服务器和交换机的具体表现。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值