网卡的7种bond模式

一、bond模式

Mode=0(balance-rr) 表示负载分担round-robin,和交换机的聚合强制不协商的方式配合

Mode=1(active-backup) 表示主备模式,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的

Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)

Mode=3(broadcast) 表示所有包从所有interface发出,这个不均衡,只有冗余机制…和交换机的聚合强制不协商方式配合

Mode=4(802.3ad) 表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)

Mode=5(balance-tlb) 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave

Mode=6(balance-alb) 在5的tlb基础上增加了rlb

模式

策略

特点

负载均衡

交换机配置

bond0

(balance-rr)Round-robin policy 平衡轮询策略

依次传输(即:第一次包走eth0,下一个包走eth1…一直循环下去,直到最后一个传输完毕)


静态聚合

bond1

(active-backup)Active-backup policy 主-备份策略

只有一个端口处于活动状态,当一个宕掉后另一个马上状态由备变为主,mac地址唯一



bond2

(Banlance-xor)XOR policy 平衡策略

基于指定的HASH策略传输数据包


静态聚合

bond3

(broadcast)broadcast 广播策略

每个slave接口上传输每个数据包


静态聚合

bond4

(802.3ad)IEEE 802.3ad Dynamic link aggregation (IEEE 802.3ad 动态链接聚合)

创建一个聚合组,他们共享相同的速率和双工设定,根据802.3ad规范将多个slave工作在同一个激活的聚合体下


支持IEEE 802.3ad动态聚合

bond5

(balance-tlb)Adaptive transmit load balancing 适配器传输负载均衡

根据每个slave的负责情况选择salve进行发送,接收时使用当前轮到的slave



bond6

(balance-alb)Adaptive load balancing 适配器适应性负载均衡

先把eth0流量占满,再占eth1…ethX。该模式包含了balance-tlb模式,同时加上针对IPV4流量的接受负载均衡(reveive load balance rlb)



二、交换机设置

mode 1、5、6不需要交换机设置
  mode 0、2、3需要交换机设置静态聚合,mode 4需要交换机支持802.3ad

三、网卡配置文件

2个物理网口分别是:eth0,eth1

绑定后的虚拟口是:bond0

服务器IP是:192.168.0.100

1)修改eth0配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  BOOTPROTO=none
  MASTER=bond0
  SLAVE=yes
  ONBOOT=yes

2)修改eth1配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth1
  DEVICE=eth1
  BOOTPROTO=none
  MASTER=bond0
  SLAVE=yes
  ONBOOT=yes

3)修改bond0配置文件

vim /etc/sysconfig/network-scripts/ifcfg-bond0
  DEVICE=bond0
  BOOTPROTO=static
  IPADDR=192.168.0.100
  NETMASK=255.255.255.0
  ONBOOT=yes

4)修改bonding配置文件

CentOS6追加写/etc/modprobe.d/dist.conf,CentOS7新建写/etc/modprobe.d/bonding.conf

alias bond0 bonding
options bond0 miimon=100 mode=6

5)加载bonding模块

modprobe bonding

确认模块是否加载成功

lsmod |grep bonding

6)重启网络

service network restart

查看bond

cat /proc/net/bonding/bond0

四、设置多个bond

1)多个bond口的模式设成相同

alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=2 miimon=100 mode=6

2)不同的bond口mode设成不一样

alias bond0 bonding
options bond0 miimon=100 mode=1
install bond1 /sbin/modprobe bonding -o bond1 miimon=100 mode=0

miimon:监视网络链接的频度,单位是毫秒,我们设置的是100毫秒

max_bonds:配置的bond口个数

mode:bond模式,在一般的实际应用中,0和1用的比较多

官方介绍:

  • mode=0 (Balance Round Robin) per packet
  • mode=1 (Active backup)
  • mode=2 (Balance XOR)
  • mode=3 (Broadcast)
  • mode=4 (802.3ad)
  • mode=5 (Balance TLB)
  • mode=6 (Balance ALB)

Modes of bonding :

RHEL bonding supports 7 possible “modes” for bonded interfaces. These modes determine the way in which traffic sent out of the bonded interface is actually dispersed over the real interfaces. Modes 0, 1, and 2 are by far the most commonly used among them.

  • Mode 0 (balance-rr)
    This mode transmits packets in a sequential order from the first available slave through the last. If two real interfaces are slaves in the bond and two packets arrive destined out of the bonded interface the first will be transmitted on the first slave and the second frame will be transmitted on the second slave. The third packet will be sent on the first and so on. This provides load balancing and fault tolerance.
  • Mode 1 (active-backup)
    Mode 1 places one of the interfaces into a backup state and will only make it active if the link is lost by the active interface. Only one slave in the bond is active at an instance of time. A different slave becomes active only when the active slave fails. This mode provides fault tolerance.
  • Mode 2 (balance-xor)
    Transmits based on XOR formula. (Source MAC address is XOR’d with destination MAC address) modula slave count. This selects the same slave for each destination MAC address and provides load balancing and fault tolerance.
  • Mode 3 (broadcast)
    The broadcast mode transmits everything on all slave interfaces. This mode is least used (only for a specific purpose) and provides only fault tolerance.
  • Mode 4 (802.3ad)
    The 802.3ad mode is known as Dynamic Link Aggregation mode. It creates aggregation groups that share the same speed and duplex settings. This mode requires a switch that supports IEEE 802.3ad Dynamic link. Slave selection for outgoing traffic is done according to the transmit hash policy, which may be changed from the default simple XOR policy via the xmit_hash_policy option. Note that not all transmit policies may be 802.3ad compliant, particularly in regards to the packet mis-ordering requirements of section 43.2.4 of the 802.3ad standard. Differing peer implementations will have varying tolerances for noncompliance.
  • Mode 5 (balance-tlb)
    This is called as Adaptive transmit load balancing. The outgoing traffic is distributed according to the current load and queue on each slave interface. Incoming traffic is received by the current slave.
  • Mode 6 (balance-alb)
    This is Adaptive load balancing mode. This includes balance-tlb + receive load balancing (rlb) for IPV4 traffic. The receive load balancing is achieved by ARP negotiation. The bonding driver intercepts the ARP Replies sent by the server on their way out and overwrites the src hw address with the unique hw address of one of the slaves in the bond such that different clients use different hw addresses for the server.

参考链接

https://www.cloudibee.com/network-bonding-modes/