Centos6.8用Bonding实现网卡冗余功能等其它功能实现方法

讲点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

wKioL1fIfpzQKErAAACKdeqE9IE267.png

步骤2

wKiom1fIfUWCK47qAAAp6uRJl0o348.png

wKioL1fIfUWDnYmuAAAVXvQSNIQ001.png

步骤3

wKioL1fIf1TQe_6jAAAPaV6Snqo956.png

到这里步骤基本算做完了,我们这里选择的Bonding的工作模式为mode1.所以我们要实现的功能是负载和容错。

其实很简单;就是用Bonding功能虚拟出来一个网卡,当物理网卡eth0,eth1其中一个故障,由bond0来自动指派其中一块网卡马上顶上去,实现网络不掉线,当然另外一块网卡是故障的你要想办法恢复就行。

步骤4

关闭chkconfigNetworkManager off 网络后台服务,因为这个服务程序在Centos6里很不稳定。给关了就行

然后如果以上配置修改完后用命令;service network restart 回车重启下服务

wKiom1fIhYjiMh4kAABDp9FAcUw592.png

步骤5

用cat /proc/net/bonding/bond0查看各个网卡的工作状态。

wKioL1fIhcHT_b0KAAAom763Eug830.png

步骤6

实际测验,把物理网卡模拟故障看配置文件和服务是否生效

wKioL1fIhzzSQaqQAAA7c95FgmY166.png

讲点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

wKiom1fIi06Ts9MBAAAXdRA2X-w527.png

wKioL1fIi2XgxNb4AAAXUwM7HbU151.png

步骤4

wKiom1fIjGCwJcd2AAAOVweSfTo124.png

步骤5

wKioL1fIi8rBpyk3AAA3RKL06Mc824.png

步骤6

wKiom1fIi3-isdPOAAAK6-Ll8xw225.png

注意:

如果有多个地址按照以上方法,需要多少个地址就复制多少份文件并在原网卡信息后面加冒号和数字

cp ifcfg-eth0ifcfg-eth0:1,3,4……

为每个设备别名生成独立的接口配置文件

一块网卡定义多个IP地址(一个接口是DHCP功能,另一个可以配置多个静态IP地址)

参考/usr/share/doc/initscripts-*/sysconfig.txt

注意:要实现此功能一定把网卡别名设置为静态,原始网卡地址配置为DHCP这样才能联网

vim/etc/sysconfig/network-scripts/

1、修改网卡别名文件ifcfg-eth0:1,里面的地址修改为静态

2、修改原网卡文件ifcfg-eth0,里面的地址修改为动态

3、关闭NetworkManager服务并重启network服务

4、ifconfig命令验证网卡配置信息

wKiom1fJFQmzrRpTAAAaEyFQdCI205.png

wKioL1fJFQmTOy-uAAAHUovuJ3I982.png

wKioL1fJFY_yWCatAABZXZSnYnI350.png

之前我们已经把NetworkManager服务给关闭了,所以这步省略,命令看上面。

讲点3

Centos6.8修改网卡的配置文件信息

修改网卡的基本要求(会修改网卡配置文件)

第一步把对应的网卡名称name改成你想修改的名字

[root@6 ~]# cd /etc/udev/rules.d/70-persistent-net.rules

保存重启系统。这时是不生效的但是重启系统后网卡名字已改变

第二部修改网卡的对应配置文件

[root@6 ~]# vim/etc/sysconfig-network-scripts/eth0

第三部如果修改完毕后,不起作用;执行service network restart

因为害怕networkmanager服务有故障

wKioL1fJFo2wamAQAAAz9vvY8wM140.png

wKiom1fJFo6g4cHqAAAs4w-wags838.png

Centos6.8的网卡配置文件说明(看图就可以)

vim/etc/sysconfig-network-scripts/eth0

wKiom1fJFxCw6KRWAABQtnptvEA845.png

修改网卡的配置文件信息(手动配置静态static地址

wKiom1fJF0aB5a0iAAA1D8xdOdY024.png

修改网卡的配置文件信息(改mac地址6.8)

wKioL1fJF3HCoHEOAAA-Sh2AoJI720.png

Centos6.8网卡配置文件丢失,手动更改方法(手动配置动态DHCP地址)

[root@6 ~]# vim/etc/sysconfig-network-scripts/eth0

wKiom1fJGACC4vdeAAAQhxwsoH4424.png

验证的结果

wKiom1fJGi3T6MfgAABZXZSnYnI461.png

自此我们的实验结束,如果有什么不是很对的地方请帮忙指正。本人也是学习中...

相关文章

文章浏览阅读903次。4.清除缓存目录(/var/cache/yum)下的软件...
文章浏览阅读1.5k次。Python 是一种高级解释性编程语言,已被...
文章浏览阅读2.6k次。打开终端或控制台,以root或具有sudo权...
文章浏览阅读744次,点赞24次,收藏26次。目标:通过AppSrv为...
文章浏览阅读1.1w次,点赞8次,收藏26次。chmod命令来自于英...
文章浏览阅读1.2k次。yum源的URL地址,本例中是文件系统的路...