讲点1
什么是Bonding
Bonding就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。可以通过Centos系统自带服务bonding功能来实现虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。
Bonding应用方向
网络负载均衡
对于Bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是Bonding。
网络冗余
对于服务器来说;网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。Bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份。
Bonding的工作模式
Mode 0(balance-rr)
轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上发送数据包。本模式提供负载均衡和容错的能力
Mode 1(active-backup)
活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。
为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
Mode 3(broadcast)
广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力。
注意:miimon是用来进行链路监测的。如果miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路
查看bond0状态:
cat /proc/net/bonding/bond
关于Bonding的详细配置请参照
/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
配置及操作思路(想好怎么做,别盲目下手)
步骤1、新添加一块网卡,总共两块网卡eth0、eth1
步骤2、在网卡配置文件目录下新建ifcfg-bond0配置文件,修改里面的内容为
[root@6 ~]# vim /etc/sysconfig-network-scripts/
DEVICE=bond0 (可选)
IPADDR=192.18.5.109 (可选)
PREFIX=24(可选)
BONDING_OPTS=“miimon=100 mode=0”(必填,实验模式我们选择mode=1)
步骤3、修改原网卡文件ifcfg-eth0和新建网卡配置文件eth1里面的地址修改为
DEVICE=eth0,eth1
MASTER=bond0
SLAVE=yes
步骤4、关闭NetworkManager服务并重启network服务
步骤5、查看bond0状态:cat/proc/net/bonding/bond
步骤6、实际测验,把物理网卡模拟故障看配置文件和服务是否生效
步骤1
步骤2
步骤3
到这里步骤基本算做完了,我们这里选择的Bonding的工作模式为mode1.所以我们要实现的功能是负载和容错。
其实很简单;就是用Bonding功能虚拟出来一个网卡,当物理网卡eth0,eth1其中一个故障,由bond0来自动指派其中一块网卡马上顶上去,实现网络不掉线,当然另外一块网卡是故障的你要想办法恢复就行。
步骤4
关闭chkconfigNetworkManager off 网络后台服务,因为这个服务程序在Centos6里很不稳定。给关了就行
然后如果以上配置修改完后用命令;service network restart 回车重启下服务
步骤5
用cat /proc/net/bonding/bond0查看各个网卡的工作状态。
步骤6
实际测验,把物理网卡模拟故障看配置文件和服务是否生效
讲点2
一块网卡定义多个IP地址(用网卡别名实现)
vim/etc/sysconfig/network-scripts/
1、复制ifcfg-eth0(静态地址)一份并命名为ifcfg-eth0:1
2、vim编辑网卡别名文件ifcfg-eth0:1
3、把DEVICE=eth0:1,后面的地址由您指定
4、保存,重启service NetworkManagerstart服务
5、ifconfig验证改过后的网卡地址信息
6、关闭服务chkconfig NetworkManageroff,开机不启动
步骤1,2,3
步骤4
步骤5
步骤6
注意:
如果有多个地址按照以上方法,需要多少个地址就复制多少份文件并在原网卡信息后面加冒号和数字
cp ifcfg-eth0ifcfg-eth0:1,3,4……
一块网卡定义多个IP地址@H_403_363@(一个接口是DHCP功能,另一个可以配置多个静态IP地址)
参考/usr/share/doc/initscripts-*/sysconfig.txt
注意:要实现此功能一定把网卡别名设置为静态,原始网卡地址配置为DHCP这样才能联网
vim/etc/sysconfig/network-scripts/
1、@H_436_404@修改网卡别名文件ifcfg-eth0:1,里面的地址修改为静态
2、@H_436_404@修改原网卡文件ifcfg-eth0,里面的地址修改为动态
3、@H_436_404@关闭NetworkManager服务并重启network服务
4、@H_436_404@用ifconfig命令验证网卡配置信息
之前我们已经把NetworkManager服务给关闭了,所以这步省略,命令看上面。
讲点3
[root@6 ~]# cd /etc/udev/rules.d/70-persistent-net.rules
保存重启系统。这时是不生效的但是重启系统后网卡名字已改变
[root@6 ~]# vim/etc/sysconfig-network-scripts/eth0
第三部如果修改完毕后,不起作用;执行service network restart
因为害怕networkmanager服务有故障
Centos6.8的网卡配置文件说明(看图就可以)
vim/etc/sysconfig-network-scripts/eth0
Centos6.8网卡配置文件丢失,手动更改方法(手动配置动态DHCP地址)
[root@6 ~]# vim/etc/sysconfig-network-scripts/eth0
验证的结果
自此我们的实验结束,如果有什么不是很对的地方请帮忙指正。本人也是学习中...