原理:
多块网卡虚拟成一张,实现冗余;多张网卡对外显示一张,具有同一个IP;
对于多物理网卡的 Bond 网卡而言,其中一块物理网卡会被设置为 Master,其他的网卡都是 Slave,Bond 网卡的 MAC 地址取自标志为 Master 的物理网卡,然后将这个 MAC 地址复制到其他物理网卡上;
工作模式:
注意:在主备模式下 , 只有主网卡 eth0 工作,eth1 作为备份网卡是不工作的,只有当一个网络接口失效时 ( 例如主交换机掉电等 ),为了不会出现网络中断,系统会按照配置指定的网卡顺序启动工作,保证机器仍能对外服务,起到了失效保护的功能。在负载均衡模式下,由于两块网卡都正常工作,它能提供两倍的带宽,在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用。
一共有以下模式。
- Mode=0(balance-rr) 表示负载分担round-robin,和交换机的聚合强制不协商的方式配合。
- Mode=1(active-backup) 表示主备模式,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。
- Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)
- Mode=3(broadcast) 表示所有包从所有interface发出,这个不均衡,只有冗余机制...和交换机的聚合强制不协商方式配合。
- Mode=4(802.3ad) 表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)
- Mode=5(balance-tlb) 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave
- Mode=6(balance-alb) 在5的tlb基础上增加了rlb。
配置操作
前提:测试环境qinlin7
注意:两张网卡需要保证在同一网段,若一张配置成trunk,未修改,也可以绑定成功,但是当down一张网卡时,网络就会变为不可用;
1、添加并更改ifcfg-bond0
DEVICE=bond0
IPADDR=10.10.132.139
NETMASK=255.255.255.0
GATEWAY=10.10.132.254
ONBOOT=yes
BOOTPROTO=yes
说明:截图中的USERCTL参数可以不设置!!
2、编辑ifcfg-eth0
BOOTPROTO=none
DEVICE=eth0
MASTER=bond0
SLAVE=yes ##注意:若配置,则不需要再配置/etc/rc.d/rc.local,重复配置会出错!!
ONBOOT=yes
GWADDR=00:50:56:a1:6b:c5 ###可以不要
3、编辑ifcfg-eth1
BOOTPROTE=none
DEVICE=eth1
MASTER=bond0
SLAVE=yes
ONBOOT=yes
HQADDR=00:50:a1:3f:73 ###可以不要
4、此系统中没有/etc/modprobe.conf
则编辑# vim /etc/modprobe.d/mlx4.conf
alias bond0 bonding
options bond0 miimon=100 mode=1
说明:
mode=0表示load balancing (round-robin)为负载均衡方式;
mode=1表示fault-tolerance (active-backup)提供冗余功能;
5、加载bonding模块
# modprobe bonding
说明:无返回值
6、重启物理机
# init 6 && reboot
说明:init 6重启速度会比较快!!!
7、查看ifconfig
8、查看bond绑定状态
# vim /proc/net/bonding/bond0
9、测试:
# ifdown eth0
bonding后,eth1仍然工作,虚拟机网络仍是通的;剩余eth1和bonding的mac地址仍然一样;
查看网络是否还通着:
查看bonding的状态: