88423860 2018-05-08
网络接口Bonding
将多块网卡绑定至同一IP上,这在物理上是不可能实现的,因此需要虚拟出一个网卡,由它来提供服务,原本的物理网卡都统一修改为虚拟网卡的MAC,这种技术叫做Bonding,虚拟出来的网卡默认名依次为bond0,1...。Bonding可以实现高可用和负载均衡。
一、创建Bond
提前在虚拟机中添加3块网卡(个数自定义)
之后我们使用ifconfig命令查看三块网卡的状态信息,由于我在虚拟机中开启dhcp,所以是三块网卡会有不同的IP,我们要重点的关注的是这三块网卡的MAC,他们是不一样。
其实bonding是由内核加载的模块提供的功能,为了确实能使用bonding,我们需要先查看内核是否已经加载bonding模块,大部分都会默认开机加载。
接下来就正常的修改网卡的配置文件,不过稍微有点不同
创建/etc/sysconfig/network-scripts/ifcfg-eth1、ifcfg-eth2、ifcfg-eth3、ifcfg-bond0,这些文件默认不会自己添加,因此需要我们手动添加;
编辑文件ifcfg-bond0,说一下最后一行的参数:miimon是网卡间传递数据的间隔,mode是bonding的模式,bonding有7中工作模式;
编辑文件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
重启网络服务,查看结果
/etc/init.d/NetworkManager stop # CentOS6建议将该服务关闭,很烦人。
/etc/init.d/network restart
可以看到那三块网卡之前的IP都不见了,并且他们的MAC都和bond0的一样。
二、修改Bond
只需要修改ifcfg-bond0的配置文件,这里我将mode选项修改2,重启网络服务之后,查看结果
三、删除Bond
关闭bond0,然后将他的配置文件ifcfg-bond0删除,最后把bonding模块移除即可
ifdown bond0
rm -f /etc/sysconfig/network-scripts/ifcfg-bond0
rmmod bonding
重启网络服务查看结果