日期:2014-05-16  浏览次数:20750 次

linux bond网络配置
当linux系统上有多个单独网卡,又想充分利用这些网卡,同时对外提供一个统一的网络地址,以使得增大网络的吞吐量,同时也提高网络的可用性,这时就需要bond来帮助我们解决这个问题。linux中bond感觉有点带有bound和bind的意思,从字面意义上,就可以看出bond的作用是聚合多个东西,组合成一个统一的东西使用。
bond的配置在很简单,但是配置不好,很容易造成严重的网络问题。bonding功能是linux内核就自带了,因此,通常不需要安装它,只需要把bonding模块加载到内核里即可。
如下是配置bond网卡的步骤。配置需求是有两个网卡eth0和etho1,把它们俩bonding到一起,产生一个新的bond0。

一、配置ifcfg-bond0

在/etc/sysconfig/network-scripts目录下生成一个文件ifcfg-bond0,配置如下:
DEVICE="bond0"
USERCTL=no
ONBOOT="yes"
BOOTPROTO=none
NETWORK=192.168.198.0
NETMASK=255.255.255.0
GATEWAY=192.168.198.254
IPADDR=192.168.198.44
BONDING_OPTS="miimon=100 mode=6 primary=eth0"  
?最后一行BONDING_OPTS是bonding功能的选项,这些可选参数可以在这步配,也可以在第三步配。关于相关参数,请查阅文献2。

?二、配置ifcfg-eth0和ifcfg-eth1

修改该目录下的ifcfg-eth0和ifcfg-eth1文件,配置如下:
?
ifcfg-eth0:
DEVICE="eth0"
USERCTL=no
ONBOOT="yes"
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
?
ifcfg-eth1:
?
DEVICE="eth1"
USERCTL=no
ONBOOT="yes"
MASTER=bond0
SLAVE=YES
BOOTPROTO=none

三、启动bonding服务

在/etc/modprobe.d/目录下新建一个bonding.conf文件,配置如下:
alias bond0 bonding 
?该文件可以配置多行bonding,也可以配置一些可选参数,可选参数的配置方式如下:options bond0 mode=balance-alb miimon=100
然后给配置linux内核加载bond模块,执行如下命令:
modprobe bonding 
service network restart
当network 服务重启成功后,这说明bond配置已经生效,bond0端口已经配置完成,可以cat /proc/net/bonding/bond0看bond0端口的状态信息。如果在一台机器再配置一个bond1,配置步骤完全相同。
?
当执行service network restart重启失败时,首先得先检查是否配置正确。如果正确,那么在network重启之前,必须首先关掉NetworkManager服务,即执行命令/etc/init.d/NetworkManager stop。
?
参考文献:
1. RHEL: Linux Bond / Team Multiple Network Interfaces (NIC) Into a Single Interface
2. Bonding Driver Options
?3.?Setting Up Network Interface Bonding
?