Ubuntu 10.04下实现双网卡负载均衡

来源:http://www.shyw.net/read-yx-tid-215064-1-1.html

http://www.mike.org.cn/articles/ubuntu-nic-balancing/

  什么是bonding

Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余。
将多块网卡虚拟成为一块网卡,使其具有相同的IP地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding。这项技术其实在suncisco中已经存在,分别称为Trunkingetherchannel技术,在Linux中,这种技术称为bonding

 


  bonding的工作模式

  bonding一共有7种工作模式

0:(balance-rr) Round-robin policy: (平衡轮询策略):传输数据包顺序是依次传输,直到最后一个传输完毕, 此模式提供负载平衡和容错能力。
  1:(active-backup) Active-backup policy:(活动备份策略):提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.mac地址是外部可见得。此模式提供了容错能力。
  2:(balance-xor)XOR policy:(平衡策略):传输根据[(源MAC地址xor目标MAC地址)mod 设备数量]的布尔值选择传输设备。 此模式提供负载平衡和容错能力。
3:(broadcast)Broadcast policy:(广播策略):将所有数据包传输给所有设备。 此模式提供了容错能力。
  4:(802.3ad) IEEE 802.3ad Dynamic linkaggregation. IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。此模式提供了容错能力。每个设备需要基于驱动的重新获取速度和全双工支持;如果使用交换机,交换机也需启用 802.3ad 模式。
  5:(balance-tlb) Adaptivetransmit load balancing(适配器传输负载均衡):通道绑定不需要专用的交换机支持。发出的流量根据当前负载分给每一个设备。由当前设备处理接收,如果接受的设备传不通就用另一个设备接管当前设备正在处理的mac地址。
  6:(balance-alb) Adaptive loadbalancing: (适配器负载均衡):包括mode5,由 ARP 协商完成接收的负载。bonding驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。

 

Step1 安装软件

ifenslave一种粘合和分离式的软件,可以将数据包有效的分配到bonding驱动

        
1
apt-getinstall ifenslave
 

 

Step2 修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
vi/etc/network/interfaces
 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
#注释掉原来的eth0eth1配置
# The primary network interface
#auto eth0
#iface eth0 inet dhcp
 
#auto eth1
#iface eth1 inet dhcp
 
#这里配置模式为轮询策略,模式代号是0,轮询间隔100ms(毫秒)
up ifenslave bond0 eth0 eth1
down ifenslave bond0 -d eth0 eth1
bond-mode 0
bond-miimon 100
 
#配置bondIP
auto bond0
iface bond0 inet static
address 192.168.0.201
netmask 255.255.255.0
gateway 192.168.0.1
 
#配置bond的虚拟IP(非必须)
auto bond0:1
iface bond0:1 inet static
address 192.168.1.201
netmask 255.255.255.0
gateway 192.168.1.1

这个时候会新建一个bond0虚拟设备,使用自己设置的IP地址,这个时候eth0eth1工作模式变成了混杂模式,什么数据都收。但数据过来之后由ifenslave的底层驱动来作负载均衡,决定哪些数据规组里面的哪个成员(eth0,eth1)处理。

Step3 加载bonding模块

1
2
vi/etc/modules
bonding

Step4

重启计算机,如果成功,bond0eth0eth1MAC地址均会变成原来eth0MAC

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值