linux下多网卡绑定的测试及其结论
一、主备:优先级设置(线路在两不同交换机上) 即:band mode=1
1、band mode=1 或:=active-backup
可以,band0与eth1/eth2的mac地址相同,eth2的实际mac被蔽掉,mac欺骗。
band0与eth1/eth2的mac地址相同,eth2的实际mac被蔽掉,mac欺骗。
交换机正常无报错:尽管同一mac在两端口上,但其中一端口不生效。
Switch#sh ip arp
--为空
Switch#sh mac-address-table
1 0011.936c.2785 DYNAMIC Gi0/1 --上连到另一交换机接口,绑定的其中一块网卡接在那个交换机上。
1 842b.2b59.02da DYNAMIC Gi0/1 --绑定生效的网卡在另外的交换机上
1 842b.2b59.0387 DYNAMIC Gi0/11 --连接到另一个普通测试机
主备机断掉后,默认无竞争机制,设置参数primary,有争抢
二、双网卡:线路在两不同交换机上,同时起作用,不设优先级 即:band mode=0/6
1、band mode=0 或: =balance-r
band0与eth1/eth2的mac地址相同,eth2的实际mac被蔽掉,mac欺骗。
交换机有提示:08:31:52: %SW_MATM-4-MACFLAP_NOTIF: Host 842b.2b59.02da in
vlan 1 is flapping between port Gi0/1 and port Gi0/15
即:同一mac在两个不同的端口上。
Switch#sh ip arp
--为空
Switch#sh mac-address-table
1 0011.936c.2785 DYNAMIC Gi0/1 --上连到另一交换机接口,绑定的其中一块网卡接在那个交换机上。
1 842b.2b59.02da DYNAMIC Gi0/15 --绑定的其中一块网卡
1 842b.2b59.0387 DYNAMIC Gi0/11 --连接到另一个普通测试机
拷贝大文件显示:
#scp /data01/tt.rar root@192.168.33.200:/data01/
Address 192.168.33.200 maps to localhost, but this does not map back to the
address - POSSIBLE BREAK-IN ATTEMPT!
root@192.168.33.200's password:
tt.rar
100% 7795MB 31.6MB/s 04:07
# md5sum tt.ra
9cf71ee281621966b5604662aa715c36 tt.rar --33.200的sum值一样,数据没有问题。负载分担正常。
结论:band mode=0的情况下,会发生MAC动荡的情况;需要配置链路聚合,这也意味着,要嘛使用堆叠实现不同交换机,要嘛只能在同一交换机上做channel。
2、band mode=6 或: =balance-alb
可以,band0与eth1相同,eth2的mac是实际地址
交换机正常:
Switch#sh ip arp
--为空
Switch#sh mac-address-table
1 0011.936c.2785 DYNAMIC Gi0/1 --上连到另一交换机接口,绑定的其中一块网卡接在那个交换机上。
1 842b.2b59.02da DYNAMIC Gi0/15 --绑定的其中一块网卡
1 842b.2b59.02dc DYNAMIC Gi0/1 --绑定的另一块网卡在另外的交换机上
1 842b.2b59.0387 DYNAMIC Gi0/11 --连接到另一个普通测试机
主备机断掉轮换后,主机会争抢(这个现象的原因是,我使用了一台对端测试机)
三、三网卡:channel绑定两块,channel与另一块的主备。
支持多个bond设备,但不支持目前这个需求。
问题1:在西单环境下,当核心交换机主机宕机的情况下,如果备份交换机都接在核心备机上,主备网卡不会认为接的主交换机链路出现问题,导致服务问题。
解决方法:bonding参数里miimon=0(不使用miimon监控链路) arp_interval=100
arp_ip_taget 222.133.2.1,233.155.32.180(使用arp监控链路,间隔100ms,并监测到网关的链路)
问题2:如果配置了bonding,很重要的一点是slave设备不能拥有传递到master的路由(或者,通常根本没有路由),比如,假定bonding设备bond0有两个slave:eth0和eth1,路由表如下:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt
Iface
10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0
eth0
10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0
eth1
10.0.0.0 0.0.0.0 255.255.0.0 U 40 0 0
bond0
127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo
路由配置有可能持续更新设备的接收/发送次数(ARP监控需要),但可能旁路了bonding设备(在这个示例里,外出到网络网络10的流量将会在bond0之前使用eth0或者eth1)。
ARP监控(以及ARP本身)可能会被这个配置所混淆,因为ARP请求(ARP监控生成)会在某个接口(bond0)上发出,但对应的响应在另一个接口上到达(eth0),这个响应将会被视为一个未关联ARP响应(因为ARP通过接口进行匹配)。MII监控不会被路由表状态所影响。
这里的解决方法是:保证slave没有它们自己的路由,如果由于某些原因它们必须要有,这些路由不要传递到它们的master,通常情况下都是这样的,但某些特别的配置或者错误的操作或者静态添加路由可能会导致问题。
结论:bonding技术能实现大部分环境下双网卡负载均衡、主备和容错机制;bonding的使用,增加了网络环境的复杂程度,为网络、服务器部署和问题定位、维护增加了一定难度的工作量。