linux 多网卡绑定聚合(bond)
是什么(什么是网卡的bond)
bond 中文含义是纽带,绑定,与...建立联系(粘合在一起),所以顾名思义,bond 技术就是把两张网卡绑定为一张网卡的意思,更专业一点来讲是将多张物理网卡绑定为一个逻辑网卡使用同一个IP地址(mac的配置不一定相同)对外提供服务,通过配置不同的工作模式达到高可用、负载均衡、等效果
为什么(为什么我们需要linux 的网卡bond技术)
其实还是实际业务的需求,比如高并发的网络IO需求,金融场景下的高可靠性需求,已经当预算有限的情况下提高网络带宽,无法再追加硬件成本的情况下如何通过软件设置的方式提高性能。
怎么做(如何配置,每种配置的含义和应用场景)
特点:传输数据包的顺序是依次传输,此模式提供负载均衡和容错能力
mode0 下bond 所绑定的两张网卡使用同一个mac地址,如果两张网卡接入到同一个交换机,那么交换机中对应的arp表里mac对应的端口就会有多个,然后让交换机不知道往哪里转发,解决办法:交换机的端口采用聚合模式(每个厂家的交换机的聚合模式名字不太一样以实际环境为准)当交换机端口聚合之后,聚合的端口也被绑定为同一个mac地址
mod=1(主备策略)
特点:只有一个设备处于活动状态,当主网卡挂掉之后备用网卡转换为主网卡,从外部看mac地址是唯一的,不需要配置交换机
mod =2 (平衡策略)
特点:基于指定的哈希策略选择网卡
mod =3 (广播策略)
特点:在每个网卡上都发送一遍数据包
mod =4 动态链路聚合
表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy).标准要求所有设备在聚合操作时,要在同样的速率和双工模式。
特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应性。
mod =5(适配器传输负载均衡)
特点:并行发送,无法并行接收,解决了数据发送的瓶颈。 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。
mod=6
特点: 并行发送,并行接收