linux下多网卡绑定

  • A+
所属分类:系统运维

场景

1:解决服务器上的业务把一块网卡流量跑满了,其他网卡还是空闲状态。
2:解决一块网卡坏了,服务挂了问题

原理

linux操作系统下网卡绑定mode共有七种模式。

第一种模式:mod=0 ,即:(balance-rr)Round-robin policy(平衡抡循环策略)

优点:传输数据包顺序是依次传输,此模式提供负载平衡和容错能力,也有效的扩充了带宽容量。

不足:内网不出交换机的情况下问题不大,但是出了网关如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。

第二种模式:mod=1,即: (active-backup)Active-backup policy(主-备份策略)

优点:可以确保网卡高可用,有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力。

不足:但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

第三种模式:mod=2,即:(balance-xor)XOR policy(平衡策略)

优点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址)% slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力。

不足:当一块网卡出问题,通过HASH指定的数据包会丢失。

 

第四种模式:mod=3,即:broadcast(广播策略),在每个slave接口上传输每个数据包,此模式提供了容错能力

第五种模式:mod=4,即:(802.3ad)IEEE 802.3ad Dynamic link aggregation(IEEE802.3ad 动态链接聚合),这种模式我不怎么用也没具体了解过

第六种模式:mod=5,即:(balance-tlb)Adaptive transmit load balancing(适配器传输负载均衡),没有特殊策略,第一个设备传不通就用另一个设备接管第一个设备正在处理的mac地址

第七种模式:mod=6,即:(balance-alb)Adaptive load balancing(适配器适应性负载均衡),来自服务器端的接收流量也会被均衡。当本机发送ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave

配置

我们通常用的最多的还是mod=0或者mod=1

下来,我给大家说说配置方法:

首先 在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下:

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
BROADCAST=192.168.2.255
IPADDR=192.168.2.1
NETMASK=255.255.255.0
GATEWAY=192.168.2.250

其次 分别修改eth*的配置文件
ifcfg-eth*内容:

DEVICE=eth*
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

再次 配置并加载modprobe.conf文件,没有就在/etc/目录下新创建一个,编辑打开添加如下内容:

alias bond0 bonding
options bond0 miimon=100 mode=0

注:1,millmon表示链路监测时间间隔,单位为ms,millmon=100表示每100ms监测一次链路连接状态。2,mode表示两张网卡的运行方式,0 表示load blance,1 表示热备。

配置完成后,执行modprobe bonding 命令加载一下,然后通过lsmod | grep bonding 确认是否加载上

 

最后执行如下命令

ifenslave bond0 eth0 eth1

service network restart

然后就可以测试了,怎么测试我就不说了,另外最重要的一点就是要确保你需要绑定的网卡都把网线插上

最后把这个命令加入系统自启动:ifenslave bond0 eth0 eth1

 

 

 

 

 

 

 

  • 安卓客户端下载
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar