您的位置:首页 > 运维架构 > Linux

linux网卡绑定bond探析

2017-09-28 10:47 183 查看
笔者因为工作需要,要对4网卡服务器做网卡绑定,达到负载均衡的作用,在网上查过使用bond可以达到此目的。

bond介绍

在某些链路冗余、数据容错、传输负载均衡的情境下,bond可以把多个网卡集合为一个逻辑网卡,根据不同的模式,可以达到不同的效果,常用的模式就是主备模式。

bonding模式

mode=1 (active-backup)–主备模式

一个bond中的一块slave网卡处于激活模式,当且仅当当前slave网卡故障,其他slave网卡才会激活。交换机记录的MAC地址只是一个端口的,防止其产生混淆。这个功能可以提供错容功能。

mode=2 (balance-xor)–XOR均衡模式

基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。此模式提供负载平衡和容错能力。

mode=3 (broadcast)–广播模式

用所有的slave传输所有数据,提供容错功能。

mode=4 (802.3ad)

802.3ad动态链路聚合,创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。

先决条件:

Ethtool支持检测每个slave的速率和双工模式。

交换机要支持802.3ad协议和配置。

mode=5 (balance-tlb)–tlb均衡模式

自适应传输负载均衡:不需要对交换机做特殊配置,发送流量根据每个slave的负载进行分散传送;进流量由当前slave进行接收,如果当前slave故障,由剩余slave承接当前MAC地址进行接收。

条件:ethtool支持slave速率检测。

mode=6 (balance-alb)–alb均衡模式

自适应全负载均衡,包含了ipv4下的传送负载均衡和接收负载均衡,并且不需要对交换机做特殊设置。接收负载均衡是通过ARP协商实现的。bonding程序拦截系统发出的ARP回复报文,把硬件地址改为slave唯一的硬件地址,不同的对端使用不同的slave进行通信。

设置
4000
bonding

笔者实验使用centos7,虚拟机,双网卡。

1.进入/etc/sysconfig/network-scripts/文件夹

2. 检查有没有ifcfg-bond0 , ifcfg-ensXX , ifcfg-ensYY(XX,YY指代不同的本地网卡序号),没有则创建它们。

3. ifcfg-bond0内容如下:

DEVICE=bond0
BONDING_OPTS="mode=1 miimon=500"
BOOTPROTO=none
ONBOOT=yes
IPADDR=...
NETMASK=...
GATEWAY=...
DNS1=...


4.ifcfg-ensXX和YY内容如下:

...
MASTER=bond0
SLAVE=yes
...


5.重启网络服务

6.检查ifconfig,bond0网卡有有效IP,其他网卡为slave状态。

结语

bonding是一个很不错的功能,对于大多数服务器的建设来说。

参考:

https://wiki.centos.org/TipsAndTricks/BondingInterfaces

http://sourceforge.net/projects/bonding/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: