首页 > 代码库 > 多网卡bind0 配置

多网卡bind0 配置

bond 说明

bonding 中文可以翻译为绑定。意思是将两种以上的东西绑在一块。

绑定技术

将多块网卡虚拟成为一块网卡,使其具有相同的ip地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding.|

bonding模式

1    round-robin(mode=0)

轮转策略,轮流在每一个slave网卡上发送数据包,提供负载均衡和容错能力。         


2    active-backup(mode=1)

主备策略,只有一个slave被激活,只有当active的slave的接口down时,才会激活其它slave接口。主备模式下发生一次故障切换,在新激活的slave接口上会发送一个或者多个gratuitous ARP。主salve接口上以及配置在接口上的所有VLAN接口都会发送gratuitous ARP,需要在这些接口上配置了至少一个IP地址。VLAN接口上发送的的gratuitous ARP将会附上适当的VLAN id。本模式提供容错能力。

Gratuitous ARP也称为免费ARP,无故ARP。Gratuitous ARP不同于一般的ARP请求,它并非期待得到ip对应的mac地址,而是当主机启动的时候,将发送一个Gratuitous arp请求,即请求自己的ip地址的mac地址。(来自百度百科:http://baike.baidu.com/view/10101910.htm)


3    XOR(mode=2)

基于所选择的hash策略,本模式也提供负载均衡和容错能力。


4    broadcast(mode=3)

广播策略,向所有的slave接口发送数据包,本模式提供容错能力。


5    802.3ad(mode=4)

动态链路聚合,根据802.3ad标准利用所有的slave建立聚合链路。slave接口的出口取决于传输的hash策略,默认策略是简单的XOR策略,而hash策略则可以通xmit_hash_policy选项配置

前提:每个slave网卡支持ethtool获取速率和双工状态

         交换机支持IEEE 802.3ad标准(可能需要配置启用)

IEEE 802.3ad 是执行链路聚合的标准方法。从概念上讲,将多个以太网适配器聚集到单独的虚拟适配器方面与“以太通道(EtherChannel)”的功能相同,能提供更高的带宽防止发生故障。例如,eth0 和 eth1 可以聚集到称作 eth3 的 IEEE 802.3ad链路聚合;然后用 IP 地址配置接口 eth3。系统将这些聚集的适配器作为一个适配器来考虑。因此,可以像在任何以太网适配器上一样配置它们的 IP。(来自百度百科:http://baike.baidu.com/view/1996279.htm?fr=aladdin)


6    balance-tlb(mode=5)

自适应传输负载均衡:根据每个slave的负载(相对速度)决定从哪个接口发送数据包,从当前接口接收数据包。如果接收的slave接口故障,其它slave接口将接管它的mac地址继续接收。

前提:每个slave网卡支持ethtool获取速率。


7    balance-alb(mode=6)

自适应负载均衡:

前提:每个slave网卡支持ethtool获取速率

          每个slave网卡支持启用时重新设置硬件地址

小结:

mode 1、5、6不需要交换机设置

mode 0、2、3、4需要交换机设置

缺省使用mode 0


1、驱动加载

可以通过以下命令确定内核是否支持 bonding

cat /boot/config-2.6.32-431.el6.x86_64 | grep -i bonding


vim /etc/modprobe.d/bond.conf   # 开机自动加载bonding驱动

alias bond0 bonding

options bond0 miimon=100 mode=0   # miimon:多长时间检查一次网络,单位ms;


2、创建绑定接口bond0

vim /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

ONBOOT=yes

IPADDR=10.0.30.241

BOOTPROTO=none

NETMASK=255.255.255.0

TYPE=Ethernet

GATEWAY=10.0.30.1


3、配置物理接口em1,em2

vim /etc/sysconfig/network-scripts/ifcfg-em1

DEVICE=em1

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

MASTER=bond0

SLAVE=yes


vim /etc/sysconfig/network-scripts/ifcfg-em2

DEVICE=em2

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

MASTER=bond0

SLAVE=yes


vim /etc/sysconfig/network-scripts/ifcfg-em3

DEVICE=em3

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

MASTER=bond0

SLAVE=yes


vim /etc/sysconfig/network-scripts/ifcfg-em4

DEVICE=em4

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=none

MASTER=bond0

SLAVE=yes


4、配置Bonding配置文件

vim /etc/modprobe.d/bonding.conf

alias bond0 bonding

options bonding mode=0 miimon=200


5、配置系统启动自动绑定

vim /etc/rc.d/rc.local

ifenslave bond0 em1 em2 em3 em4


6、加载模块或者重启

modprobe bonding

[root@ebstmp ~]# lsmod | grep bonding

bonding 100065 0

[root@ebstmp ~]# /etc/init.d/network restart

[root@ebstmp ~]# cat /proc/net/bonding/bond0


本文出自 “幕后运维” 博客,请务必保留此出处http://haowen.blog.51cto.com/3486731/1912335

多网卡bind0 配置