Linux七种网卡绑定模式

轮询策略Round-robin

  • mod=0
  • 传输数据包顺序是依次传输(第一个包走eth0,下一个包走eth1……如此循环)
  • 此模式提供负载平衡和容错能力;但是我们知道如果一个链接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降
  • 这模式的特点是增加了带宽,同时支持容错能力

主备策略active-backup

  • mod=1
  • 只有一个网卡属于活动状态,当一个宕掉立马由备份转换为主设备。
  • mac地址是外部可见的,从外面看来,bond的mac地址是唯一的,以避免switch发生混乱,此模式只提供了容错能力;由此可见此算法的优点是可以提高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在N个网络接口的情况下,资源利用率为1/N

平衡策略balance-xor

  • mod=2
  • 基于制定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址)%slave数量。其他的传输策略可以通过xmit_hash_policy选项制定,此模式提供负载平衡和容错能力
  • 交换机端口需要配置为“port channel”,这模式是通过源和目标mac做hash因子来做xor算法选路

广播策略broadcast(fault-tolerance)

  • mod=3
  • 在每个slave接口上传输每个数据包,此模式提供了容错能力
  • 这种模式的特点是一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效,我们感觉不到任何downtime,但此法过于浪费资源
  • 这种模式有很好的容错机制,适用于金融业,他们需要高可靠性的网路,不允许出现任何问题

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

  • mod=4
  • 创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在一个激活的聚合体下。外出流量的slave选举时基于传输hash策略,该策略可以通过xmit_has_policy选项从缺省的XOR策略改变到其他策略。需要注意的是,并不是所有的传输策略都是802.3ad适应的。不同的实现可能会有不同的适应性
  • 必要条件
    • ethtool支持获取每个slave的速率和双工设定
    • switch支持IEEE802.3ad动态链路聚合Dynamic link aggregation
    • 大多数switch需要经过特定配置才能支持802.3ad模式

适配器传输负载均衡adaptive transmit load balancing

  • mod=5
  • 不需要任何特别的switch支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址
  • 必要条件:ethtool支持获取每个slave的速率

适配器适应性负载均衡adaptive load balancing

  • mod=6
  • 该模式包含了balance-tlb模式,同时加上针对IPv4流量的接收负载均衡,而且不需要任何switch的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写成bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信

你可能感兴趣的:(Linux七种网卡绑定模式)