网络接口Bonding

将多块网卡绑定至同一IP上,这在物理上是不可能实现的,因此需要虚拟出一个网卡,由它来提供服务,原本的物理网卡都统一修改为虚拟网卡的MAC,这种技术叫做Bonding,虚拟出来的网卡默认名依次为bond0,1...。Bonding可以实现高可用和负载均衡。



一、创建Bond

提前在虚拟机中添加3块网卡(个数自定义)

配置CentOS 6网卡bonding_第1张图片

之后我们使用ifconfig命令查看三块网卡的状态信息,由于我在虚拟机中开启dhcp,所以是三块网卡会有不同的IP,我们要重点的关注的是这三块网卡的MAC,他们是不一样。

配置CentOS 6网卡bonding_第2张图片

其实bonding是由内核加载的模块提供的功能,为了确实能使用bonding,我们需要先查看内核是否已经加载bonding模块,大部分都会默认开机加载。

blob.png

接下来就正常的修改网卡的配置文件,不过稍微有点不同

    创建/etc/sysconfig/network-scripts/ifcfg-eth1、ifcfg-eth2、ifcfg-eth3、ifcfg-bond0,这些文件默认不会自己添加,因此需要我们手动添加;

    编辑文件ifcfg-bond0,说一下最后一行的参数:miimon是网卡间传递数据的间隔,mode是bonding的模式,bonding有7中工作模式;

配置CentOS 6网卡bonding_第3张图片

    编辑文件ifcfg-eth1,2,3。三个网卡的内容类似,为了减少繁琐的重复工作,自己编写了脚本自动配置三个网卡的配置文件。

#!/bin/bash
read -p "please input ethX " i    # 输入要修改的网卡,只需输入1、2、3数字即可
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth$i
DEVICE=eth$i
MASTER=bond0
SLAVE=yes
EOF

配置CentOS 6网卡bonding_第4张图片

重启网络服务,查看结果

    /etc/init.d/NetworkManager stop    # centos6建议将该服务关闭,很烦人。

    /etc/init.d/network restart

    可以看到那三块网卡之前的IP都不见了,并且他们的MAC都和bond0的一样。

配置CentOS 6网卡bonding_第5张图片

配置CentOS 6网卡bonding_第6张图片

二、修改Bond

    只需要修改ifcfg-bond0的配置文件,这里我将mode选项修改2,重启网络服务之后,查看结果

配置CentOS 6网卡bonding_第7张图片

三、删除Bond

    关闭bond0,然后将他的配置文件ifcfg-bond0删除,最后把bonding模块移除即可

        ifdown bond0

        rm -f /etc/sysconfig/network-scripts/ifcfg-bond0

        rmmod bonding

    重启网络服务查看结果   

配置CentOS 6网卡bonding_第8张图片