创建Bonding
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建Bonding相关的知识,希望对你有一定的参考价值。
1. 什么是Bonding
2. Bonding的工作模式
3. Bonding的实现
1. 什么是Bonding
bonding提供了一种把多块网卡聚合成一个逻辑网卡的方法(将多块网卡绑定同一IP地址对外提供服务,多块物理网卡被修改为相同的MAC地址)。该逻辑网卡的工作方式取决于工作模式,通常有热备或负载均衡,此外还可提供链路完整性监视。
大部分主流发行版已经将bonding集成为内核中的一个模块。
若你安装的发行版不支持该功能,需自行编译安装内核,并在编译时选择开启此功能。
2. Bonding的工作模式
Mode 0 (balance-rr)
轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力
Mode 1 (active-backup)
活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave。 为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
Mode 3 (broadcast)
广播策略:在所有的slave接口上传送所有的报文,提供容错能力
active-backup、 balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如: Cisco 交换机需要在模式 0、 2 和 3 中使用EtherChannel,但在模式4中需要 LACP和 EtherChannel
该功能试验应在物理机中进行,在虚拟机中进行时,会因为虚拟机的机制,不能实现自动切换网卡。
3. Bonding的实现(CentOS 6)
3.1 虚拟机添加两块网卡,选择同一网络Vmnet 15
3.2 在目录/etc/sysconfig/network-scripts下添加配置文件如下
ifcfg-bond0
DEVICE=bond0
#mode=运行模式,miimon=NUM 相互之间通讯检查对方是否存活的时间间隔。
BONDING_OPTS="mode=0 miimon=100"
IPADDR=192.168.25.100
PREFIX=24
ifcfg-eth2
EVICE=eth2
MASTER=bond0
SLAVE=yes
ifcfg-eth3
DEVICE=eth3
MASTER=bond0
SLAVE=yes
miimon:是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
MASTER:指定MASTER的设备名
SLAVE:是否工作在SLAVE模式下
3.3 添加完成后重启网络服务(需关闭NetworkManager服务)
[[email protected] network-scripts]# cat /proc/net/bonding/bond0 #查看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: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b5:04:b7
Slave queue ID: 0
Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b5:04:ad
Slave queue ID: 0
3.4 测试:
用另一台虚拟机ping该主机bond0的地址
因虚拟机对bonding支持不好,无法进行进一步测试。
3.5 删除bond0
关闭bond0网卡并删除bonding模块
[[email protected] ~]# ifdown bond0
[[email protected] ~]# rmmod bonding
删除bond配置文件(eth2,eth3网卡需重建网卡配置文件)
[[email protected] network-scripts]# rm ifcfg-bond0 ifcfg-eth{2,3}
rm: remove regular file `ifcfg-bond0‘? y
rm: remove regular file `ifcfg-eth2‘? y
rm: remove regular file `ifcfg-eth3‘? y```
以上是关于创建Bonding的主要内容,如果未能解决你的问题,请参考以下文章
Neutron — Bonding SR-IOV ports