多网卡绑定bonding

linux下多网卡绑定bonding

Linux bonding 驱动提供了一个将多个物理网络端口捆绑为单个逻辑网络端口的方法,用于网络负载均衡、冗余和提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站, 都有类似的问题。因此使用bond或Linux teaming来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)。

Linux的多网卡绑定功能使用的是内核中的"bonding"模块,关于此模块可以参考Linux Ethernet Bonding Driver文档, 但是目前发布各个Linux版本内核均已包含了此模块,大多数情况下不需要重新编译内核。 Linux 的 bonding 驱动提供了绑定/集成(bond)多个网卡为一个虚拟逻辑网口的功能。

bond主要模式介绍:

mode=0(balance-rr)(平衡抡循环策略)

链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路。交换机需要配置聚合口,思科叫port channel

特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降

mode=1(active-backup)(主-备份策略)

这个是主备模式,只有一块网卡是active,另一块是备用的standby,所有流量都在active链路上处理,交换机配置的是捆绑的话将不能工作,因为交换机往两块网卡发包,有一半包是丢弃的

特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N

mode=2(balance-xor)(平衡策略)

表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合

特点:基于指定的传输HASH策略传输数据包。此模式提供负载平衡和容错能力

mode=3(broadcast)(广播策略)

表示所有包从所有网络接口发出,这个不均衡,只有冗余机制,但过于浪费资源。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。需要和交换机的聚合强制不协商方式配合

特点:在每个slave接口上传输每个数据包,此模式提供了容错能力

mode=4(802.3ad)(IEEE 802.3ad 动态链接聚合)

表示支持802.3ad协议,和交换机的聚合LACP方式配合,标准要求所有设备在聚合操作时,要在同样的速率和双工模式,而且,和除了balance-rr模式外的其它bonding负载均衡模式一样,任何连接都不能使用多于一个接口的带宽

特点:创建一个聚合组,它们共享同样的速率和双工设定

mode=5(balance-tlb)(适配器传输负载均衡)

根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave

特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。

mode=6(balance-alb)(适配器适应性负载均衡)

在tlb的基础上增加了rlb(接收负载均衡).不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的.

特点:该模式包含了balance-tlb,同时加上针对IPV4流量的接收负载均衡,而且不需要任何switch(交换机)的支持。接收负载均衡通过ARP协商实现。

常用mode0,mode1,mode6

 

bond接口的命令生成

nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.100 ---- 生成bond0的主备份模式端口并设定ip地址

watch -n 1 'cat /proc/net/bonding/bond0' ---- 接口bond0的监控命令

此时接口不能ping通,因为没有真实的物理设备对他进行支撑,我们需要设定网卡为接口服务

首先要删除网卡的配置文件 /etc/sysconfig/network-scripts

设定网卡eth0为接口服务:nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0 

设定网卡eth1为接口服务:nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0 

此时从监控中可以看到,eth0正在为接口提供物理设备的服务

ifconfig eth0 down ---- 使eth0网卡关闭,此时接口仍可ping通,监控显示此时eth1正在工作

ifconfig eth0 up ---- 恢复eth0网卡,此时eth1仍然在工作,需要等eth1网卡出现问题再由eth0网卡工作

 

bond接口的配置文件生成

/etc/sysconfig/network-scripts 网络配置文件中:

新建ifcfg-bond0,内容如下:

DEVICE=bond0

ONBOOT=yes

BOOTPROTO=none

IPADDR=172.25.254.100

NETMASK=255.255.255.0

TYPE=Bond

BONDING_OPTS=mode=active-backup

新建网卡配置文件,内容如下:

MASTER=bond0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=none 

重启网络服务,bond接口生成,正常运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值