linux网卡bond的几种模式

linux的网卡bond:将两个物理网卡(或port)映射为具有同一个逻辑ip的接口。bond技术跟交换机之间的端口汇聚以及san技术中常用的存储多路径(multiputh)类似。
作用:增加带宽,例如两个前兆的一台网卡通过bond后可以将本地host的单个ip的带宽增加两倍。
           增加可用性,做HA保护,单个网口down后ip地址仍然可用。
          
        bond接触很久了,最初的项目中心机房的业务服务器跟数据库服务都是设置bond的。目前的项目主要用bond来增加数据带宽。
        网上有非常详细的英文资料介绍:http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding#Requirements_for_specific_modes
        这里总结下几种bond模式的区别:          
mode 1 active-backup
     最简单的主从热备方式,当前只使用bond中的一个物理网口,如果当前主网口down,则立刻启用备用网口。
mode 2 banlance-xor
     最简单的负荷分担模式,当前所有的物理端口均可用,bond驱动简单计算hash值选择数据包的物理端口。规则是取source跟destination的异或值,然后除以bond中物理网口个数取余,结果就是选中的网口的编号。
mode 4 802.3ad
     类似mode2,负荷分担模式,当前所有的物理端口均可用。跟mode2的区别在端口选择策略。mod4采用802.3ad协议规定的xmit_hash_policy。
     要求:ethtool能够识别物理端口的速度和是否双工。
                 switch支持802.3ad协议规定的动态链路聚合。

mode 5 banlance-tlb  

       端口负载选择策略比mode 2智能一些,在做端口hash时考虑了本地不同的bond port速度。不像mode 4一样需要switch的特殊支持。

       要求:ethtool能够识别物理端口的速度和是否双工。

说明:

          mode 2跟mode 5均不需要switch的特殊支持。此种模式下,bond驱动修改了底层的arp协议栈。当配置bond的host主机 回复arp的reply消息时,bond驱动会把arp reply消息中的本地mac地址,修改为bond驱动指定的物理端口的mac。 对于同一个局域网的两个不同的外部主机host2和host3,他们看到配置bond的host1的mac地址可能是不同的。如果配置bond的host1主机跟局域网外部通信,那么所有的mac层包的destination均相同,这种情况采用mode 2、4  、5都会导致只有一个物理端口做收发包。


mode 0 banlance-rr     

        负荷分担模式,唯一一种模式,可以将同一个tcp socket以stripe方式负荷分担到所有物理网口。bond驱动将同一个socket上packet,以rond-robin的方式依次选择不同的物理端口发送出去,类似于raid 0。需要switch支持trunking或etherchannel。

        这种方式可能导致tcp报文的乱序发送和接收,因此需要调整host主机的tcp重传的系统参数:net.ipv4.tcp_reordering 。

         mode 0保证了host主机tcp发包的stripe方式,但是host在收报时是否可以做到stripe,要看switch是否支持tcp的stripe。很多交换机在一个ether channel发包时,仅仅是根据tcp/udp的端口号取个hash值去选择物理端口,这样同一个tcp的socket报文每次只能发到固定物理端口上。此时,mode 0的stripe仅仅是单向而不是双工的。

说明:

          etherchannel其实就是讲多个物理端口映射为同一个逻辑的物理端口,cisco switch的一项技术。802.3ad则是etherchannel的一个公开的标准,是同一个种技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值