分享

Linux下的多网卡冗余实现方法...

 拿破仑小子 2017-12-14

一、简介

我们常说的网卡冗余就是用工具把多张网卡绑定为同一个IP地址(bond0属于虚拟网卡)来使用。这种方法尤其在大中小企业无比受用。如下图所示:

Linux下的多网卡冗余实现方法

使用多网卡的绑定的优点:

1、可以扩大服务器的网络带宽

2、可以有效均衡负载和提高容错能力,避免单点失效

3、一旦发生故障,无缝切换网卡。

二、实现环境

虚拟机环境下加上本地的和添加的一共3张网卡分别是:eth0、eth1、eth2

IP:192.168.0.153/24

(同样物理机的不过是物理添加网卡,或者是多网卡服务器,一样可以作绑定)

三、搭建

首先大家可以看到主机上面的几张网卡,列出来

Linux下的多网卡冗余实现方法

Linux下的多网卡冗余实现方法

下面我们把eth0-2都绑成bond0的虚拟网卡,先去修改eth0-2的网卡配置信息

Linux下的多网卡冗余实现方法

Linux下的多网卡冗余实现方法

# DEVICE=物理设备名

IPADDR=IP地址

NETMASK=掩码值

NETWORK=网络地址

BROADCAST=广播地址

GATEWAY=网关地址

ONBOOT=[yes|no](引导时是否激活设备)

USERCTL=[yes|no](非root用户是否可以控制该设备)

BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)

HWADDR = 你的MAC地址

有的参数并非必需。

还有其实参数,比如PEERDNS=[yes|no],如果是通过DHCP获取IP,是否要将DNS写入/etc/resolv.conf,应该会覆盖原来的内容!

【注意1】

Max_bonds=2 多个bonding的情况下需要这个参数等于2代表有两个bond0 比如:4个网卡,两两绑定

如果系统存在多块网卡,eth0,eth1,eth2,eth3,我们现在希望两两做备份,这样在系统就可以配置多个bonding了,需要在加载bonding的时候加载一个参数,max_bonds,比如:

modprobe bonding max_bonds=2

我们可以加入

alias bond0 bonding

options bonding mod=blance-rr miimon=100 max_bonds=2

alias bond1 bonding

options bonding mod=active-backup miimon=100 primary=eth2 max_bonds=2

多个bonding,最好加上这个参数,否则可能在网络重启后会提示找不到BOND1之类的消息!

【注意2】

如果网卡参数里不写MASTER=bond0和SLAVE=yes,就要执行

在/etc/rc.d/rc.local 加入如下一行(启动时执行此行命令)

ifenslave bond0 eth0 eth1

如果写了的话,这一步就可有可无了!我这里都写了!

所以网卡的配置信息完毕,下面配置bond0模式绑定:

[root@linuxidc network-scripts]# vim /etc/modprobe.d/bonding.conf
#增加这两条信息,相关的网卡驱动alias bond0 bondingoptions bond0 miimon=120 mode=1

【bonding.conf配置文件解析以及绑定的模式】

modprobe.conf配置文件中的解释:

miimon是用来进行链路检测的。比如miimon=100,那么系统每隔100毫秒就检测一次链路的 链接状态,如果一条线路不通就转入另外一天链路

mode的值表示bonding的工作模式,一个有0、1、2、3、4、5、6七种模式,常用的有0、1两种,可以根据工作模式适当的选择:

0、(balance-rr)Round-robin policy:(平衡轮循环策略):传输数据包的顺序是一次传输,知道最后一个传输完毕,此模式提供负载均衡和容错能力(这个好像要交换机支持,不知道什么意思), 在这种情况下,带宽理论上是双倍的,断开一个网卡只是带宽减少了

1、(active-backup)Active-backup policy:(主-备策略):只有一个设备处于活动的状态。一个如果宕掉了则立马有备份转移到另外一个主设备。mac地址是外部可见的。这个模式提供了容错能力,在这种情况下,ETH1作为备份,是NO ARP状态的,可以使用ifconfig查看到,只有ETH0断开,它才会接管

2、(blance-xor)XOR policy:(广播策略):将所有数据包传输给所有接口。此模式提供了容错能力

3、(blance-xor)XOR policy:(平衡策略):传输根据源地址布尔值选择传输设备。此模式提供负载平衡和容错能力

4、(802.3 ad)IEEE 802.3ad Dynamic link aggregation:(IEEE 802.3ad动态链接聚合):创建共享相同的速度和双工设置的聚合组

5、(balance-tlb)Adaptive transmit load balancing:(适配器传输负载均衡):没有特殊策略,第一个设备传不通就用另一个设备接管第一个设备正在处理的mac地址,帮助第一个进行传输

6、(balance-alb)Adaptive load balancing:(适配器传输负载均衡):大致意思是包括mod5,bonding驱动程序截获ARP在本地系统发送的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是服务器上不同的人使用不同的硬件地址一样(这个好像不用交换机支持)

最后执行命令生效或者重启:

Linux下的多网卡冗余实现方法

Linux下的多网卡冗余实现方法

四、总结

如果是在物理机上面做测试是非常方便的,比如绑定4个网卡eth0-3

那么4跟网线都接上了,然后ping着网关。你只要不是4跟网线都拔完,随机的拔掉3根都不会影响它的连通性。

这就是冗余容错的效果,1根网线100M的话。插上4根就是400M的出口流量了。

注意:配置的时候看清楚参数


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多