欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux Bonding配置详解

程序员文章站 2023-08-28 18:11:55
这篇文章主要介绍了Linux Bonding配置详解,Linux Bonding即绑定两块或多块网卡的配置,需要的朋友可以参考下... 15-08-10...

一、什么是bonding
多块网卡绑在一起,作为一个网卡用,实现负载均衡和提高带宽,linux双网卡绑定一个ip地址,实质工作就是使用两块网卡虚拟为一块,使用同一个ip地址,是我们能够得到更好的更快的服务。

二、配置过程
配置很简单,一共四个步骤:

实验的操作系统是redhat linux enterprise 3.0

绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的bios芯片。

1.编辑虚拟网络接口配置文件,指定网卡ip


复制代码
代码如下:
vi /etc/sysconfig/ network-scripts/ ifcfg-bond0</p> <p>[root@rhas-13 root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0

2 #vi ifcfg-bond0

将第一行改成 device=bond0


复制代码
代码如下:
# cat ifcfg-bond0</p> <p>device=bond0</p> <p>bootproto=static</p> <p>ipaddr=172.31.0.13</p> <p>netmask=255.255.252.0</p> <p>broadcast=172.31.3.254</p> <p>onboot=yes</p> <p>type=ethernet

这里要主意,不要指定单个网卡的ip 地址、子网掩码或网卡 id。将上述信息指定到虚拟适配器(bonding)中即可。


复制代码
代码如下:
[root@rhas-13 network-scripts]# cat ifcfg-eth0</p> <p>device=eth0</p> <p>onboot=yes</p> <p>bootproto=dhcp</p> <p>[root@rhas-13 network-scripts]# cat ifcfg-eth1</p> <p>device=eth0</p> <p>onboot=yes</p> <p>bootproto=dhcp

3 # vi /etc/modules.conf

编辑 /etc/modules.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0

 

加入下列两行


复制代码
代码如下:
alias bond0 bonding</p> <p>options bond0 miimon=100 mode=1

说明:miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。

mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。

mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.

bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用

4 # vi /etc/rc.d/rc.local

加入两行


复制代码
代码如下:
ifenslave bond0 eth0 eth1</p> <p>route add -net 172.31.3.254 netmask 255.255.255.0 bond0

到这时已经配置完毕重新启动机器.

重启会看见以下信息就表示配置成功了

................

bringing up interface bond0 ok

bringing up interface eth0 ok

bringing up interface eth1 ok

bonding的工作模式


linux bonding默认使用轮转策略。

基本类别是主备模式与负载均衡两种模式:
balance-rr (mode=0)

轮转(round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力。
active-backup(mode=1)

活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的mac地址只有一个外部端口上可见。在bongding的2.6.2及其以后的版本中,主备模式下发生一次故障迁移时,bonding将在新激活的slave上会送一个或者多个gratuitous arp.bonding的主salve接口上以及配置在接口上的所有vlan接口都会发送gratuitous arp,只要这些接口上配置了至少一个ip地址。vlan接口上发送的的gratuitous arp将会附上适当的vlan id。本模式提供容错能力,primary option,documented below会影响本模式的行为。
balance-xor(mode=2)

xor策略:基于所选择的传送hash策略。
本模式提供负载均衡和容错的能力。
broadcast(mode=3)

广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力。
802.3ad(mode=4)

ieee 802.3ad 动态链路聚合。创建共享相同的速率和双工模式的聚合组。能根据802.3ad规范利用所有的slave来建立聚合链路。salve的出站选择取决于传输的hash策略,默认策略是简单的xor策略,而hash策略则可以通xmit_hash_policy选项加以改变。需要注意的是:不是所有的传输策略都与802.3ad兼容,尤其是802.3ad标准的43.2.4章节中关于 packet mis-ordering要求的地方。不同个体的实现往往出现很大的不兼容。
先决条件:
1. 每个slave的基本驱动支持ehtool获取速率和双工状态。
2.交换机支持ieee 802.3ad动态链路聚合。大多数的交换机都需要使用某种配置方式来启用802.3ad模式。
balance-tlb(mode=5)

自适应传输负载均衡:信道绑定不需要特殊的交换机支持。出口流量的分布取决于当前每个slave的负载(计算相对速度)。进口流量从当前的slave的接收。如果接收salve出错,其他的slave接管失败的slave的mac地址继续接收。
先决条件:
每个slave的基本驱动支持ehtool获取速率状态。
balance-alb(mode=6)

自适应负载均衡:包括balance-tlb(模式5)以及用于ipv4流量的接收负载均衡,并且不需要特殊的交换机支持。接收负载均衡通过arp协商实现。bonding的驱动拦截本机发出的arp replies(arp回应报文),并且用bond的某一个slave的硬件地址改写arp报文的源地址,使得本服务器对不同的设备使用不同的硬件地址。本服务器建立的连接的接收流量也是负载均衡的。当本机发送arp request时,bonding驱动通过arp报文复制并保存节点的ip信息。当从其他节点接收到arp reply,bonding驱动获取节点的硬件地址并且会回应一个包含绑定好的slave的硬件地址的arp reply给发送的节点。用arp协商的负载均衡的有一个问题是每次用bond的硬件地址广播arp报文,那么其他节点发送的数据全部集中在一个slave上,处理arp更新给其他所有节点的时候,每个节点会重新学习硬件地址,导致流量重新分配。当新加入一个slave或者一个非激活的slave重新激活的时候也会导致接收流量重新分配。接收流量负载是串行(轮转)的分配在bond的一组速率最高的slave上。
当一个链路重连或者一个新的slave加入的时候,bond会重新初始化arp replies给所有的客户端。updelay参数的值必须等于或者大于交换机的forwarding delay,以免arp replies被交换机阻塞。
先决条件:
1.每个slave的基本驱动支持ehtool获取速率状态。

2. 基本驱动支持当设备打开时重新设置硬件地址。也要求每一个slave具有唯一的硬件地址。如果curr_active_slave失败,它的硬件地址被新选上的curr_active_slave硬件地址来替换