本节分享下,linux多网卡绑定同一IP地址技术:Bonding。
所谓Bonding,即多张网卡绑定一个IP地址实现网卡设备的冗余与负载均衡。
类似cisco下的Etherchannel技术。
以下是具体的实现步骤。
1,新建/etc/sysconfig/network-scripts/ifcfg-bond0文件
2,更改/etc/sysconfig/network-scripts/ifcfg-eth0网卡属性
3,更改/etc/sysconfig/network-scripts/ifcfg-eth1网卡的属性
4,编辑/etc/modprobe.conf文件,加入以下内容
说明:
miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,1是 ab(active-backup) 0256是lb ,3是broadcast , 4是802.3ab。常用的为0,1,6两种。
mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.
mode=6表示Active Load Balancing提供冗余的负载均衡。
5,加入/etc/rc.d/rc.local启动项
6,重启服务器。
效果截图:
问题分析:
1、mode=0时,所有数据流mac地址都为bond0地址。
接同一交换机会出现MAC地址动荡问题,需交换机支持链路聚合(以太通道),可解决此问题。
但关于某一网卡down掉后数据流的问题有些疑问待解决。
虚拟机测试效果为:
这和官方说法有些出入,可能是虚拟机的问题。待验证。
2、如效果截图所示:mode=6时,两张物理网卡只有一张的mac地址与bond0地址相同,但实际查看数据流的时候确实是两两分担。比较不解的是其工作机制为何?按正常思路理解当两张网卡做bonding时,肯定所有的数据流都会以 bond的MAC地址进行数据交互。
另一MAC地址异同的物理网卡的数据流是怎么来的呢?
有了解此问题的高手,望分享下您的经验。