Linux多网卡绑定(bond)及网络组(team)
很多时候,由于生产环境业务的特殊需求,我们需要对服务器的物理网卡实施特殊的配置,从而来满足不同业务场景下对服务器网络的特殊性要求。如高并发的网络IO型业务,需要高速的网络IO,即对网卡的收收发包处理能力及网卡最大带宽速度等性能指标提出了更高的要求;事务处理型的系统,如金融交易系统、电商平台等,对物理网络线路、网卡等物理设备的稳定可靠性提出了更高的要求。
Linux系统中,可以通过多网卡绑定(bonding)和网络组(team)等技术,通过软件的方式来实现,来满足不同业务场景下的各种特殊需求。
Linux多网卡绑定(bond)
bond基本原理
bond技术是将多块物理网卡绑定同一IP地址对外提供服务,通过不同的模式配置,从而达到高可用、负载均衡及链路冗余等效果。我们知道,两块物理网卡是不可以直接配置同一个IP地址的,多网卡bond技术的基本原理就是通过虚拟出一块逻辑网卡对外提供网络连接。
bond基本工作原理如下图:
bond七种工作模式及特性详解
bond技术提供了(0-6)共7种工作模式,分别如下:
mode=0 round-robin轮询策略(balance-rr)
mode=1 active-backup主备策略(active-backup)
mode=2 load balancing (xor)异或策略(balance-xor)
mode=3 fault-tolerance (broadcast)广播策略(broadcast)
mode=4 lacp IEEE 802.3ad 动态链路聚合(IEEE 802.3ad Dynamic link aggregation) (802.3ad)
mode=5 transmit load balancing适配器传输负载均衡(balance-tlb)
mode=6 adaptive load balancing适配器负载均衡(balance-alb)
以上7种工作模式的定义如下:
- mode=0 round-robin轮询策略(balance-rr)
cat /proc/net/bonding/bond0
Bonding Mode: load balancing (round-robin)
此模式下,链路处于负载均衡状态,数据以轮询方式向每条链路发送报文,基于per packet方式发送。即每条链路各一个数据包。这模式好处在于增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。该模式下,交换机端需要配置聚合口,在cisco交换机上叫port channel。
mode0工作模式图如下:
- mode=1 active-backup主备策略(active-backup)
cat /proc/net/bonding/bond0
Bonding Mode: fault-tolerance (active-backup)
此模式下,一个端口处于主状态,一个处于备状态,所有流量都在主链路上发出和接收,备用链路不会有任何流量。当主链路端口down掉时,备用端口立即启动接管主状态,从而达到链路冗余热备目的。这种模式接入不需要交换机端支持。
mode1工作模式图如下: