Linux下双网卡绑定Bonding实例分享(图文)

发布时间:2020-05-21编辑:脚本学堂
本文介绍下,在linux下实现双网卡绑定Bonding技术的一个例子,有需要的朋友作个参考。

本节分享下,linux多网卡绑定同一IP地址技术:Bonding。
所谓Bonding,即多张网卡绑定一个IP地址实现网卡设备的冗余与负载均衡。

类似cisco下的Etherchannel技术。

以下是具体的实现步骤。

1,新建/etc/sysconfig/network-scripts/ifcfg-bond0文件
 

复制代码 代码示例:
DEVICE=bond0
IPADDR=192.168.6.161
NETMASK=255.255.255.0
GATEWAY=192.168.6.254
BROADCAST=192.168.6.255
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet

2,更改/etc/sysconfig/network-scripts/ifcfg-eth0网卡属性
 

复制代码 代码示例:
DEVICE=eth0
BOOTPROTO=none
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
TYPE=Ethernet

3,更改/etc/sysconfig/network-scripts/ifcfg-eth1网卡的属性
 

复制代码 代码示例:
DEVICE=eth1
BOOTPROTO=none
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
TYPE=Ethernet

4,编辑/etc/modprobe.conf文件,加入以下内容
 

复制代码 代码示例:
alias bond0 bonding
options bond0 miimon=100 mode=6


说明:
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启动项
 

复制代码 代码示例:
ifenslave bond0 eth0 eth1

6,重启服务器
效果截图:
双网卡绑定(图1)

双网卡绑定(图2)

双网卡绑定(图3)

问题分析:
1、mode=0时,所有数据流mac地址都为bond0地址。
接同一交换机会出现MAC地址动荡问题,需交换机支持链路聚合(以太通道),可解决此问题。
但关于某一网卡down掉后数据流的问题有些疑问待解决。
虚拟机测试效果为:
双网卡 虚拟机测试
这和官方说法有些出入,可能是虚拟机的问题。待验证。

2、如效果截图所示:mode=6时,两张物理网卡只有一张的mac地址与bond0地址相同,但实际查看数据流的时候确实是两两分担。比较不解的是其工作机制为何?按正常思路理解当两张网卡做bonding时,肯定所有的数据流都会以 bond的MAC地址进行数据交互。
另一MAC地址异同的物理网卡的数据流是怎么来的呢?
有了解此问题的高手,望分享下您的经验。