当linux系统上有多个单独网卡,又想充分利用这些网卡,同时对外提供一个统一的网络地址,以使得增大网络的吞吐量,同时也提高网络的可用性,这时就需要bond来帮助我们解决这个问题。linux中bond感觉有点带有bound和bind的意思,从字面意义上,就可以看出bond的作用是聚合多个东西,组合成一个统一的东西使用。 bond的配置在很简单,但是配置不好,很容易造成严重的网络问题。bonding功能是linux内核就自带了,因此,通常不需要安装它,只需要把bonding模块加载到内核里即可。 如下是配置bond网卡的步骤。配置需求是有两个网卡eth0和etho1,把它们俩bonding到一起,产生一个新的bond0。 一、配置ifcfg-bond0 在/etc/sysconfig/network-scripts目录下生成一个文件ifcfg-bond0,配置如下: Bond代码 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=4" 最后一行BONDING_OPTS是bonding功能的选项,这些可选参数可以在这步配,也可以在第三步配。关于相关参数,请查阅文献2。 二、配置ifcfg-eth0和ifcfg-eth1 修改该目录下的ifcfg-eth0和ifcfg-eth1文件,配置如下: ifcfg-eth0: Conf代码 DEVICE=eth0 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none ifcfg-eth1: Conf代码 DEVICE=eth1 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=YES BOOTPROTO=none 三、启动bonding服务 在/etc/modprobe.d/目录下新建一个bonding.conf文件,配置如下: Shell代码 alias bond0 bonding 该文件可以配置多行bonding,也可以配置一些可选参数,可选参数的配置方式如下:options bond0 mode=balance-alb miimon=100 然后给配置linux内核加载bond模块,执行如下命令: Shell代码 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。 CentOS 7.2下执行的命令为: # systemctl stop NetworkManager 临时关闭 # systemctl disable NetworkManager 永久关闭网络管理命令 (责任编辑:IT) |