bond模式详解

发布时间 2023-06-13 16:28:06作者: 葫芦小金刚·

bond模式详解

  1. 什么是bond

    • 网卡bond就是通过把多张网卡绑定成为一张逻辑网卡,实现本都网卡的冗余,带宽扩容和负载均衡,同bond技术让多块网卡看起来是一个单独的以太网卡接口设备并具有相同的IP地址

  2. 为什么使用bond

    •  Bond可以将多张网卡绑定到一起,让两个或者多个接口,作为一个接口使用,同事提高带宽,同时提供了网络链路的冗余,当其中有一快网卡出现故障时,不会中断服务器的业务

  3. bond模式介绍

    • Mode=0 平衡抡循环策略
      balance-rr(round-robin policy)
      特点:传输数据包是一次传输(就是第一个包走eth0,第二个包走eth1,一直循环下去,知道最后一个包传输完毕),但是,一个连接或者会话的数据包,从不同的接口发送出来的话,中途再经过不同的链路,那么在客户端就很有可能会出现无序到达的情况,而无序到达的数据包会被要求重新发送,这样网络的吞吐量必然会降低

    • Mode=1 主-备份策略
      active-backup(active-backup policy)
      特点:只有一个设备处于活动状态,当活动端口宕掉以后,马上切换为备用端口,mac地址外部可见,从外面看起来,bond和组成bongd的端口的mac地址是相同的,以避免交换机发送混乱。此模式只提供了容错能力,由此可见短发的优点是可以提高网络连接的可用性,但是资源利用率较低,只有一个接口处于活动状态,在有N个接口组成的bond中,其资源利用率只有1/N
      *在配置Mode1模式的bond网口时,可手动选择是否配置主端口
      配置主端口后,在主端口网络断开后,会自动切换至备用端口,当主端口恢复网络通信后,即使备用端口网络正常,仍然会自动切换回主端口使用
      未配置主端口时,在主端口网络断开时,自动切换至备用端口,但是当主端口恢复网络通信时,不会自动切换至主端口,而是继续使用备用端口通信
      也就是只有当前使用的端口网络通信断开之后,才会切换至另外的端口

    • Mode=2 平衡策略
      balance-xor(XOR policy)
      特点:基于指定的HASH策略传输数据包,其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供了负载平衡和容错能力

    • Mode=3 广播策略
      broadcast
      特点:在每个slave接口上传输每个数据包,提供强大的容错能力

    • Mode=4 IEEE 802.3ad 动态链路聚合
      802.3ad(IEEE 802.3ad Dynamic link aggregation)
      特点:创建一个聚合组,共享同样的速率和双工设定,根据802.3ad规范将多个slace工作在同一个激活的聚合体下
      另外流量的alave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变为其他策略。需要注意的是,并不是所有的传输策略都是802.3ad适应的,尤其在考虑到802.3ad策略第43.2.4章节提到的包乱序的问题,不同的实现肯会有不同的适应性
      必要条件:    1)ethtool支持获取每个slave的速率和双工设定
                           2)大多数交换机需要经过特定配置才能支持802.3ad模式
                           3)交换机支持IEEE 802.3ad Dynamic link aggregation

    • Mode=5 适配器传输负载均衡
      balance-tlb(Adaptive transmit load balancing)
      特点:不需要特别的交换机支持的通道bonding,在每个slave上根据当前的负载(根据速度计算)分配外出流量,如果正在接收数据的slave出故障了,另一个slave接管其mac地址
      必要条件:    1)ethtool支持获取每个slave的速率

    • Mode=6 适配器适应性负载均衡
      balance-alb(Adaption load balancing)
      特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance,rlb),而且不需要任何交换机的支持,接收负载均衡是通过ARP协商实现的,bonding启动截获本机发送的ARP应答,并且把源硬件地址修改为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信
      必要条件:    1)ethtool支持获取每个slave的速率
                           2)底层驱动支持设置某个硬件的硬件地址,从而使得总是有个slace使用bond的硬件地址,同时保证bond中的每个slave都有其唯一的硬件地址,如果curr_active_slave出故障,那么他的硬件地址就会被新的curr_active_slave接管
  4. 补充

    • Mode0和Mode6的区别

      1. Mode6会先把eth0流量占满,然后继续占用eth1、eth2......,所以可以发现mode6中的第一个端口流量很高,而第二个端口的流量只有一小部分。

      2. Mode0则是把流量进行均分,两个端口之间的流量会比较稳定,且基本相同。

    • ARP(地址解析协议)

      1. ARP(Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议,主机发送信息时,将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址,收到返回消息后将该IP地址和物理地址存入本机的ARP缓存,并保留一段时间,下次请求时会直接查询ARP缓存以节约资源
        地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络中的主机可以自主发送ARP应答消息,其他主机在收到应答消息时不会检测该报文的真实性就将其存入ARP缓存中,由此攻击者就可以向某一主机发送伪ARP应答,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了ARP欺骗。