在Linux中,网卡绑定有七种模式:
bond0 … bond6

其中最常见的有三种:0 / 1 / 6。

它们的详细描述如下:
=0: (balance-rr) Round-robin policy: (平衡抡循环策略):传输数据包顺序是依次传输,直到最后一个传输完毕, 此模式提供负载平衡和容错能力。
=1: (active-backup) Active-backup policy:(主-备份策略):只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。 此模式提供了容错能力。
=2:(balance-xor) XOR policy:(平衡 策略): 传输根据原地址布尔值选择传输设备。 此模式提供负载平衡和容错能力。
=3:(broadcast) broadcast policy: (广播策略):将所有数据包传输给所有接口。 此模式提供了容错能力。
=4:(802.3ad) IEEE 802.3ad Dynamic link aggregation. IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。(我不是太懂。)
=5:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡):没有特殊策略,第一个设备传不通就用另一个设备接管第一个设备正在处理的mac地址,帮助上一个传。
=6:(balance-alb) Adaptive load balancing: (适配器传输负载均衡):大致意思是包括mode5,bonding驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。

这些选项可以用命令:# modinfo bonding 来查看。

下面,会在实验环境里,将Linux上的两块网卡绑定为一块虚拟网卡,借此说明网卡绑定的技术细节。
————————————————————————

查看当前的系统的网络设备:

可以看到,当前系统确实有两块网卡。

看看它们当前的状态与配置文件的状态:

在继续配置前,先关闭服务【NetworkManager】:

该服务启用的时候,对网卡的配置文件做了任何修改,都会被立即应用网卡。

为了将两块网卡绑定成一块虚拟网卡,上面的两块网卡的配置文件,需要修改。
修改后如下:

创建绑定后的虚拟网卡的配置文件:

配置内核模块:

写入开机脚本:

执行:

配置好内核模块后,查看bonding信息:

然后,重启网络服务,上面的网卡绑定就生效了:

这时候,网卡1 / 2,随便断掉其中的任何一个网络连接都应该是存活的,除非两块网卡都失效。

测一下:
两个网卡都存活的时候:
both_reachable

只有其中一个网卡存活的时候:
one_unreachable_1

one_unreachable_2

两个网卡都不存活的时候:
both_unreachable
———————————
其他:
写成脚本:
#!/bin/sh
modprobe -r bonding
modprobe bonding miimon=100 mode=6
ifconfig bond0 虚拟网卡IP netmask 255.255.248.0 up
route add default gw 虚拟网卡网关 bond0
#ifenslave bond0 eth0 eth1 eth2 eth3 eth4 eth5
ifenslave bond0 eth0 eth1
service network restart
———————————

如何取消bond?
1. 将上面配置过的地方还原后,重启系统。
2. 不重启系统取消bond设置:

还原配置文件:

重启网络服务:

注意
这里的报错与本文的话题没有关系,而是因为【/etc/sysconfig/network-scripts/】中缺少【ifconfig-lo】。

可以看到,【bond0】居然还在。

这时候需要这样删除:

然后,重启服务,【bond0】就被清理干净了:

———————————
Done。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装