一、创建bonding的步骤

第一步:创建bond0虚拟接口配置文件,并配置被绑定的其他网卡。

第二步:加载并配置bonding模块,还有其他网络接口模块。默认情况下系统内容已经加载了bonding模块与其他网络接口模块,仅需要在/etc/modprobe.conf中修改bonding模块参数。

第三步:绑定你需要绑定的所有接口道bond0接口。

二、配置bond0

1.创建ifcfg-bond0接口文件

# vi ifcfg-bond0

DEVICE=bond0

BOOTPROTO=static

ONBOOT=yes

NETMASK=255.255.255.0

IPADDR=10.0.0.2

USERCTL=no

 

2.配置eth1、eth2文件

# vi ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes 

USERCTL=no

 

# vi ifcfg-eth2

DEVICE=eth2

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes 

USERCTL=no

 

3.修改/etc/modprobe.conf文件

添加如下内容:

alias bond0 bonding

options bond0 miimon=100 mode=1

 

miimon 是用来进行链路监测的。

比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。

mode 指定了bond0的工作模式,在redhat中有0-6共7种工作模式,常用的是0和1。

七种网卡绑定模式:0. round robin,1.active-backup,2.load balancing (xor),  3.fault-tolerance (broadcast), 4.lacp,  5.transmit load balancing, 6.adaptive load balancing。

mode=0 表示(balance-rr) Round-robin policy(平衡抡循环策略)为负载均衡方式,两块网卡都工作,所有链路处于负载均衡状态,这模式的特点增加了带宽,同时支持容错能力。 

mode=1 表示(active-backup) Active-backup policy(主-备份策略)提供冗余功能,工作方式是主从的工作方式,只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。此模式只提供了容错能力.由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。   

mode=2 表示(balance-xor) XOR policy(平衡策略)。此模式提供负载平衡和容错能力  

mode=3 表示broadcast(广播策略)特点:在每个slave接口上传输每个数据包,此模式提供了容错能力。  

mode=4 表示(lacp)IEEE 802.3ad Dynamic link aggregation 为 IEEE 802.3ad 为 动态链接聚合,需要交换机配置支持。创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的是,并不是所有的传输策略都是802.3ad适应的,不同的实现可能会有不同的适应性。    

必要条件:    

条件1:ethtool支持获取每个slave的速率和双工设定    

条件2:switch(交换机)支持IEEE 802.3ad Dynamic link aggregation    

条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式   

mode=5 表示 Adaptive transmit load balancing 为适配器传输负载均衡。该模式的必要条件:ethtool 支持获取每个 slave 的速率。

mode=6 表示 Adaptive load balancing 为适配器适应性负载均衡。该模式包含 了 balance-tlb 模式,同时加上针对 IPV4 流量的接收负载均衡(receive load   balance, rlb),而且不需要任何 switch(交换机)的支持。  

但是常用是常用的为0与1两种。

mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作,所有链路处于负载均衡状态,这模式的特点增加了带宽,同时支持容错能力。

mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,默认情况下只有一块网卡工作,另一块做备份。


注意:bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding认为链路没有问题而继续使用。

 

4.加载bond0

echo "ifenslave bond0 eth1 eth2" >> /etc/rc.local

三、测试

[root@node~]# ifconfig

bond0     Link encap:Ethernet HWaddr 00:0C:29:DC:E5:D3 

          inet addr:10.0.0.2 Bcast:10.0.0.255 Mask:255.255.255.0

          UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

          RX packets:27533 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1452 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:3047374 (2.9 MiB) TX bytes:305305 (298.1 KiB)

 

eth0      Link encap:Ethernet HWaddr 00:0C:29:DC:E5:C9 

          inet addr:192.168.1.134 Bcast:192.168.1.255 Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

          RX packets:16669 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2245 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1925074 (1.8 MiB) TX bytes:264120 (257.9 KiB)

 

eth1      Link encap:Ethernet HWaddr 00:0C:29:DC:E5:D3 

          UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

          RX packets:13077 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1433 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1373464 (1.3 MiB) TX bytes:304507 (297.3 KiB)

 

eth2      Link encap:Ethernet HWaddr 00:0C:29:DC:E5:D3 

          UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

          RX packets:14456 errors:0 dropped:0 overruns:0 frame:0

          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1673910 (1.5 MiB) TX bytes:798 (798.0 b)

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1 Mask:255.0.0.0

          UP LOOPBACK RUNNING MTU:16436 Metric:1

          RX packets:2341 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2341 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:2850214 (2.7 MiB) TX bytes:2850214 (2.7 MiB)

[root@node ~]#

红色字体为bond0接口信息。此处配置的双网卡为主备状态。如果需要绑定双网卡为负载均衡状态只需更改mode参数。

备注:

1、服务器网卡绑定需要交换机做主备、堆叠、虚拟化等设置,根据绑定类型不同配置也不同。负载均衡必须开启lacp.

2、网卡绑定后,如主备模式,拔掉任何一根网线网络都不会中断。


附:

ifenslave(属于iputils-20020927-46.el5rpm包)

用法: ifenslave [-f] <master-if> <slave-if> [<slave-if>...]

       ifenslave -d   <master-if> <slave-if> [<slave-if>...]

       ifenslave -c   <master-if> <slave-if>

       ifenslave --help

参数:

      -d,--detach 从bond中剔除已经dead的网络接口。

      -c,--change-active  改变某个网络接口为活动状态。

      -f,--force 强制执行。

      -a, --all-interfaces 显示所有接口信息

      

       ifenslave {-c|--change-active} bond0 eth0 使eth为活动状态。

       ifenslave {-d|--detach} bond0 eth0  从bond0中删除eth0。

       ifenslave bond0 显示bond0接口网络信息。

       ifconfig bond0 down 关闭bond0接口。