网络接口配置 -- bonding

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络接口配置 -- bonding相关的知识,希望对你有一定的参考价值。

一:实验环境

①两台centos虚拟机,一台做试验机,一台做测试机

②两个网卡eth0、eth1

二:实验目的

在生产环境中,当多名用户同时访问一个IP时将会增大网卡负荷和风险,这时我们可以通过将多块网卡绑定同一IP地址对外提供服务,从而实现高可用和负载均衡

※三:常用Bonding工作模式:

Mode 0  ( balance-rr )轮转模式

轮转(Round-robin)策略: 从头到尾顺序的在每一个slave 接口上面发送数据包,当一个slave停止工作时,会出现丢包,但程序并不会死掉。本模式提供负载均衡和容错的能力

Mode 1   (active-backup) 活动备份策略

工作模式: 只有一个slave被激活,当且仅当活动 的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见

Mode 3    (broadcast)          广播策略              

工作模式:在所有的slave接口上传送所有的报文,提供容错能力

四:实验步骤

方法一:配置文件法

①创建bond0设备的配置文件并写入如下内容

vim /etc/sysconfig/network-scripts/ifcfg-bond1

DEVICE=bond0

BOOTPROTO=none

IPADDR=172.17.252.166 

BONDING_OPTS= “miimon=100 mode=1”
知识点解释: 
miimon=100   设置网卡间相互检测对方状态的间隔时间(ms),用来灵活的切换网卡。
mode=1  设置bond模式为 active-backup

②修改网卡配置文件

在eth0与eth1配置文件中添加如下几行:

SLAVE=yes         //设置为奴隶USERCTL=no
MASTER=bond0      //指定主bond设备
USERCTL=no    //不允许非root用户控制该设备

注意:

③重启network服务,使配置文件生效

注意啦,如果重启服务后没有出现bond1的接口信息,且经反复检查后配置文件并没有错误,请相信我,你的NetworkManager服务一定没关,关闭它就好了

systemctl status NetworkManager   #查看服务状态 
systemctl stop NetworkManager    #centos 7 中用此命令

④查看bond0的详细状态

cat  /proc/net/bonding/bond0

[[email protected] ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)  #轮寻模式
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:2e:e8:4e
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:2e:e8:58
Slave queue ID: 0

⑤测试环节

1.用centos6来ping centos7的bond0,如图一,一切正常,没有出现丢包现象

技术分享

图一

2. 接下来让我们停用eth1网卡,来测试bond0是否出现丢包

技术分享

图二

由图二可得,序号为534的IICMP包丢失,但总体上来说,丢包率很低O(∩_∩)O,bond0稳定性还是有目共睹的。

⑤取消绑定可采取下列步骤

1)ifconfig bond0 down

2)删除ifcfg-bond0

3)恢复eth0和eth1配置文件到修改前状态

4)删除bondin模块

     lsmod |grep bond 查看已有的模块,发现模块还没删除

     删除绑定模块:rmmod bonding

5)重启网络服务  service network restart

方法二:nmcli命令法

实验准备:务必确保已开启NetworkManager服务

(1)添加bonding接口mybond0,模式为active-backup(MODE 1)

nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup

命令执行后,系统会自动生成ifcfg-mybond0文件

(2)添加从属接口eth0与eth1

nmcli con add type bond-slave ifname eth0 master mybond0

nmcli con add type bond-slave ifname eth1 master mybond0

(3) 要启动绑定,则必须首先启动从属接口

nmcli con up bond-slave-eth0

nmcli con up bond-slave-eth1

此时,系统会自动生成ifcfg-bond-slave-eth0,ifcfg-bond-slave-eth1两个配置文件

(4)启动绑定

nmcli con up mybond0

(5)取消绑定

nmcli con down mybond0


五:实验总结

此次实验难度不大,需要注意的细节就是NetworkManager这个服务的开启状态。其次,本菜鸟推荐大家在centos 7上尽量使用方法二,虽然命令较长,但无需修改配置文件,这对于以后自动脚本的编写还是非常有用的。

本文出自 “13162823” 博客,请务必保留此出处http://13172823.blog.51cto.com/13162823/1963998

以上是关于网络接口配置 -- bonding的主要内容,如果未能解决你的问题,请参考以下文章

linux虚拟网络接口---bonding配置

网络接口配置bonding

网络接口配置 -- bonding

linux--高级网络配置 bond team br0

高级网络配置

centOS7网络配置(nmcli,bonding,网络组)