目录
背景
年前那一个月一直在整理ansible的相关内容,linux系列的相关内容已经好久没涉及了,这不.....年后一开工就遇到用户在咨询bond的相关内容,今天就说一说bond吧;后续也会把差不多功能的team也展开说下。
简介
bong也叫多网卡绑定,多块网卡虚拟成一张,实现冗余;多张网卡对外显示一张,具有同一个IP;网络配置都会使用Bonding技术做网口硬件层面的冗余,防止单个网口应用的单点故障。
bond分类
bond的种类有七种(0-6)bond0,bind1,bind2,bind3,bind4,bind5,bind6。其中mode1,5,6,不需要交换机设置,mode0,2,3,4,需要交换机设置。
1. mode=0(balance-rr)
balance-rr:平衡轮询策略。交换机需要配置端口聚合。
传输数据包顺序是依次传输,此模式提供负载平衡和容错能力;但是如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。
2. mode=1 (active-backup)
active-backup:主备策略。只有一块网卡是active,另一块是备用的standby,所有流量都在active链路上处理,交换机不用做配置。
只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。MAC地址为active网卡的mac地址,以避免switch(交换机)发生混乱。
此模式只提供了容错能力,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。
3. mode=2(balance-xor)
balance-xor:hash 负载均衡。需要在交换机上做配置。(不常用)
4. mode=3(broadcast)
broadcast:广播策略,需要在交换机上做配置。在每个slave接口上传输每个数据包,此模式提供了容错能力。
5. mode=4(802.3ad)
802.3ad:动态链路聚合。根据802.3ad标准利用所有的slave建立聚合链路。slave接口的出口取决于传输的hash策略,默认策略是简单的XOR策略,而hash策略则可以通xmit_hash_policy选项配置。每个slave网卡支持ethtool获取速率和双工状态。需要在交换机上做配置。
配置mode4的条件如下:1. ethtool支持获取每个slave的速率和双工设定;2. switch(交换机)支持IEEE 802.3ad Dynamic link aggregation;3. 大多数switch(交换机)需要经过特定配置才能支持802.3ad模式。
6. mode=5(balance-tlb)
balance-tlb:适配器传输负载均衡。根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。该模式要求slave接口的网络设备驱动有某种ethtool支持;而且ARP监控不可用。
不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。ethtool支持获取每个slave的速率
7. mode=6(balance-alb)
blance-alb:适配器适应性负载均衡。在mode5的balance-tlb基础上增加了rlb(接收负载均衡receive load balance).不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。
8. 总结
1. mode1,5,6不需要交换配置;
2. mode0,2,3,4需要交换机配置;
3. 常用种类为:mode0,1,4,6.
bond配置案例
示例: 以配置bond1为例
1. 查看初始网卡信息
2. 添加bond连接
3. 配置bond网络信息
4. 添加网卡到bond中
5. 修改bond,ens33,ens37的配置文件
6. 查看网络信息
此时还有一个未连接的ens33链接存在,是因为机器一开在ens33网卡上有二个192.168.194.132的ip。重启network的服务之后就如下
至此bond1配置完成。
1. 常用种类为:mode0,1,4,6;要熟悉相关概念。
2. mode1,5,6不需要交换配置;mode0,2,3,4需要交换机配置;
3. 理解nmcli命令,熟悉如何通过nmcli配置bond,其他mode配置跟上面所示例的配置方法大同小异。