bonding

      现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性、可用性显得非常的重要, 保持服务器的高可用性和安全性是企业级IT 环境的重要指标,其中最重要的一点是服务器网络连接的高可用性。

      为实现这些要求,现在服务器大都采用多网卡配置,而bonding 技术可以将多块网卡接口通过绑定虚拟成为一块网卡,在用户看来这个聚合起来的设备好像是一个单独的以太网接口设备,通俗点讲就是多块网卡具有相同的 IP 地址而并行连接聚合成一个逻辑链路工作。

     下面我们介绍一下bonding:

      Bonding 提供了一个把多个网络接口设备绑定为单个网络接口来使用。而它作用就是用于网络的负载均衡及网络冗余。

      对于bonding的网络负载均衡:比如把两块网卡当做一个来用,解决了一个ip地址,流量过大,服务器网络压力太大的问题;而网络冗余:把两个网卡绑定到一个ip地址,当一块网卡坏掉的时候,另一块网卡也能提供正常的服务。

      下面我们再介绍Bonding的几种模式:

      模式0:也叫平衡轮循环策略(Round-robin policy)  此模式提供了负载均衡和容错机制。

      模式1:也叫主-备模式(Active-backup )   此模式是只有一个网卡处于活动状态,当这个活动状态坏掉时,另一马上又备份转换成主导,变成活动状态。Mac地址是唯一的。该模式提供了容错机制。

      模式2:也叫广播模式(Broadcase)  在每个接口上传输每个数据包。该模式提供了容错机制。

      模式3:也叫平衡模式(balance-xor )  该模式提供了负载均衡和容错机制

      模式4:也叫动态链接聚合(IEEE 802.3ad Dynamic link aggregation) 创建一个聚合组,它们共享同样的速率和双工设定。

      模式5:也叫自适应的传输负载均衡(balance-tlb )  第一设备不通就用另一个设备接管第一个设备正在处理的MAC地址,帮助上一个传输。

      模式6:也叫自适应均衡负载

最后我们进行bonding的配置(我们以模式1 --- 主备模式为例):

实验环境我们是在linux系统下,有两块网卡;

首先编译eth0,进入/etc/sysconfig/network-scripts/目录下来编译ifcfg-eth0文件:

wps_clip_image-11917

wps_clip_image-9932

因为没有了配置地址,把第三行的none改为dhcp;

把第四行的广播也删了;第五行的mac也不用要,它会自动探测;

第六行的ip地址也不要,当然第七行和第八行也不用要了;最后只保留下图的三行就行:

wps_clip_image-11258

然后按照eth0的方法编辑eth1:

wps_clip_image-6686

wps_clip_image-16471

网卡编译好了,但我们要呈现给用户的是bond;这样我们把eth0拷贝到bond0;然后编辑:

wps_clip_image-32431

编辑后为:第二行的设备名称更改为bond0;然后第三行也改为有ip了;然后在增加两行ip和子网掩码:

wps_clip_image-26572

然后我们编辑模块的配置文件:而这个文件在是/etc目录下的modprobe,conf文件

wps_clip_image-23161

我们刚增加的bond0虚拟网卡,也要添加到这个文件里,而它使用的模块是bonding

然后再添加一些bond0的参数,而miimon是指定MII链路监控频率,单位是毫秒(ms)。mode=1是主-备份模式

wps_clip_image-26900

然后介绍bond0是把那两个网卡绑定到一起的:

而这个文件时/etc目录下的rc.local文件;编辑这个文件

wps_clip_image-30540

wps_clip_image-5307

然后重启系统,观看一下效果:

wps_clip_image-16789

可以看到bond0和eth0,eth1都成功启动了:

也可以看到只有bond0的地址,而其他两个是没有地址的,另外它们三个的mac都是一样的:

wps_clip_image-21318

然后我们看它的通信情况:

C:\Users\songfei>ping 192.168.145.100 -n 1000

正在 Ping 192.168.145.100 具有 32 字节的数据:

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

我们在看一下网卡的情况:

wps_clip_image-7787

现在我们故意把eth0给down掉;再观察一下情况:

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

请求超时。

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.145.100 的回复: 字节=32 时间<1ms TTL=64

我们可以看到的情况是通信时候丢了一个包,然后继续通信。

我们已经做完了。

 

 

 

新手制作,还有很多不足之处,请多多指教!!

本文出自 “网络技术之红帽” 博客,谢绝转载!

你可能感兴趣的:(bonding)