http://blog.youkuaiyun.com/nefuxulinlin/article/details/15337041
1. 什么是双网卡绑定?
Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。这项技术被称为bonding。
2. 双网卡绑定有什么好处?[ *这两点我没有测试过* ]
首先,可以增大带宽,假如一个网卡的带宽是100M,理论上两块网卡就是200M,当然实际上的效果是不会是这样简单的增加的,不过经实际测试使用多个网卡对于增加带宽,保持带宽的稳定性肯定是有裨益的,如果交换机等相关条件不错的话,这个效果还是很能令人满意;
其次,可以形成网卡冗余阵列、分担负载,双网卡被绑定成“一块网卡”之后,同步一起工作,对服务器的访问流量被均衡分担到两块网卡上,这样每块网卡的负载压力就小多了,抗并发访问的能力提高,保证了服务器访问的稳定和畅快,当其中一块发生故障的时候,另一块立刻接管全部负载,过程是无缝的,服务不会中断。
3. 双网卡绑定的原理?
在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络 上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。
4. 怎么实现双网卡绑定?
4.1 配置虚拟网络接口
vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
# none/dhcp/static
BOOTPROTO=dhcp
# IP地址
IPADDR=192.168.2.3
# 子网掩码
NETMASK=255.255.255.0
# 网关
GATEWAY=192.168.2.1
#广播地址
# BORADCAST=192.168.0.255
# 是否允许非root用户控制该设备
USERCTL=no
# 是否启动绑定
ONBOOT=yes
4.2 配置真实网卡(多网卡配置相似)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
# none/dhcp/static
BOOTPROTO=none
# 是否启用
ONBOOT=yes
# 主设备
MASTER=bond0
# 从设备
SLAVE=yes
4.3 修改/etc/modprobe.d/bonding.conf,配置绑定模型
vim /etc/modprobe.d/bonding.conf
alias bond0 bonding
# miimon是指多久时间要检查网路一次,单位是ms(毫秒), 假设其中有一条网路断线,会在0.1秒内自动备援
# mode指定了bond0的工作模式,在redhat中有0-6共7种工作模式
# 常用的两种mode: 0-负载均衡方式, 1-主从方式
options bond0 miimon=100 mode=0
4.4 重启network
service network restart