Linux下双网卡绑定技术实现负载均衡

保持服务器的高可用性
接的高可用性。网卡(NIC
能。
是企业级 IT 环境的重要因素。
)绑定技术有助于保证高可用性

其中最重要的一点是服务器网络连
特性并提供其它优势以提高网络性

  我们在这介绍的Linux
来的设备看起来是一个单独
行链接聚合成一个逻辑链路
Etherchannel技术,在Linu
术的最早应用是在集群——
讨论一下bonding 的原理,
,在正常情况下,网卡只接
数据帧都滤掉,以减轻驱动
,可以接收网络上所有的帧
个模式下,而且修改了驱动
定mac的数据帧。然后把相
双网卡绑定实现就是使用两块网
的以太网接口设备,通俗点讲就
工作。其实这项技术在Sun和Cis
x的2.4.x的内核中也采用这这种
beowulf上,为了提高集群节点
什么是bonding需要从网卡的混
收目的硬件地址(MAC Address)
程序的负担。但是网卡也支持另
,比如说tcpdump,就是运行在
程序中的mac地址,将两块网卡
应的数据帧传送给bond驱动程序
卡虚拟成为一块网卡,这个聚合起
是两块网卡具有相同的IP地址而并
co中早已存在,被称为Trunking和
技术,被称为bonding。bonding技
间的数据传输而设计的。下面我们
杂(promisc)模式说起。我们知道
是自身Mac的以太网帧,对于别的
外一种被称为混杂promisc的模式
这个模式下。bonding也运行在这
的Mac地址改成相同,可以接收特
处理。
  说了半天理论,其实配置很简单,一共四个步骤:                                 
  实验的操作系统是Redhat Linux Enterprise 3.0       
  绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片       

  1.编辑虚拟网络接口配置文件,指定网卡IP                                   
  vi /etc/sysconfig/ n
etwork-scripts/ ifcfg-bond0
  [root@rhas-13 root]# cp /etc/sys
config/network-scripts/ifcfg-eth0 ifcfg-bond0
  2 #vi ifcfg-bond0                                           
  将第一行改成 DEVICE=bond0                                       
  # cat ifcfg-bond0                                           
  DEVICE=bond0                                                     
  BOOTPROTO=static                                             
  IPADDR=172.31.0.13                                         
  NETMASK=255.255.252.0                                   
  BROADCAST=172.31.3.254                                 
  ONBOOT=yes                                                         
  TYPE=Ethernet                                                   
  这里要主意,不要指定单个网卡的IP
适配器(bonding)中即可。
地址、子网掩码或网卡 ID。将上述信息指定到虚拟

  [root@rhas-13 networ
k-scripts]# cat ifcfg-eth0
  DEVICE=eth0                                                       
  ONBOOT=yes                                                         
  BOOTPROTO=dhcp                                                 
  [root@rhas-13 network-scripts]#
cat ifcfg-eth1
  DEVICE=eth0                                                       
  ONBOOT=yes                                                         
  BOOTPROTO=dhcp                                                 

  3 # vi /etc/modules.conf                             
  编辑 /etc/modules.co
块,对外虚拟网络接口设备
nf 文件,加入如下一行内容,
为 bond0
以使系统在启动时加载bonding模

                                                                              
  加入下列两行                                                                 
  alias bond0 bonding                                       
  options bond0 miimon=100 mode=1               
  说明:miimon是用来进
路连接状态,如果有一条线
1,2,3四种模式,常用的为0
行链路监测的。 比如:miimon=1
路不通就转入另一条线路;mode
,1两种。
00,那么系统每100ms监测一次链
的值表示工作模式,他共有0,

  mode=0表示load balan
cing (round-robin)为负载均衡
方式,两块网卡都工作。
  mode=1表示fault-tolerance (activ
式,也就是说默认情况下只有一块网卡工
e-backup)提供冗余功能,工作方式是主备的工作方
作,另一块做备份.
  bonding只能提供链路监测,即从主
链路down掉了,而交换机本身并没有故障
机到交换机的链路是否接通。如果只是交换机对外的
,那么bonding会认为链路没有问题而继续使用
  4 # vi /etc/rc.d/rc.local                           
  加入两行                                                                     
  ifenslave bond0 eth0 eth1                           
  route add -net 172.3
1.3.254 netmask 255.255.255.
0 bond0

  到这时已经配置完毕重新启动机器.                                             
  重启会看见以下信息就表示配置成功了                                           
  ................                                             
  Bringing up interface bond0 OK                 
  Bringing up interface eth0 OK                   
  Bringing up interface eth1 OK                   
  ................                                             

  下面我们讨论以下mode分别为0,1时的情况                                 

  mode=1工作在主备模式下,这时eth1作为备份网卡是no arp的       
  [root@rhas-13 networ
k-scripts]# ifconfig 验证网
卡的配置信息
  bond0 Link encap:Ethernet HWaddr
00:0E:7F:25:D9:8B
  inet addr:172.31.0.1
3 Bcast:172.31.3.255 Mask:25
5.255.252.0
  UP BROADCAST RUNNING
MASTER MULTICAST MTU:1500 M
etric:1
  RX packets:18495 errors:0 droppe
d:0 overruns:0 frame:0
  TX packets:480 error
s:0 dropped:0 overruns:0 car
rier:0
  collisions:0 txqueuelen:0                           
  RX bytes:1587253 (1.5 Mb) TX byt
es:89642 (87.5 Kb)

  eth0 Link encap:Ethe
rnet HWaddr 00:0E:7F:25:D9:8
B
  inet addr:172.31.0.1
3 Bcast:172.31.3.255 Mask:25
5.255.252.0
  UP BROADCAST RUNNING SLAVE MULTI
CAST MTU:1500 Metric:1
  RX packets:9572 erro
rs:0 dropped:0 overruns:0 fr
ame:0
  TX packets:480 errors:0 dropped:
0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000                     
  RX bytes:833514 (813.9 Kb) TX by
tes:89642 (87.5 Kb)
  Interrupt:11                                                     

  eth1 Link encap:Ethe
rnet HWaddr 00:0E:7F:25:D9:8
B
  inet addr:172.31.0.1
3 Bcast:172.31.3.255 Mask:25
5.255.252.0
  UP BROADCAST RUNNING NOARP SLAVE
MULTICAST MTU:1500 Metric:1
  RX packets:8923 errors:0 dropped
:0 overruns:0 frame:0
  TX packets:0 errors:
0 dropped:0 overruns:0 carri
er:0
  collisions:0 txqueuelen:1000                     
  RX bytes:753739 (736
.0 Kb) TX bytes:0 (0.0 b)
  Interrupt:15                                                     
  那也就是说在主备模式
断,系统会按照cat /etc/rc
效保护的功能.
下,当一个网络接口失效时(例如
.d/rc.local里指定网卡的顺序

主交换机掉电等),不回出现网络中
工作,机器仍能对外服务,起到了失


  在mode=0 负载均衡工
作模式,他能提供两倍的带宽,下
我们来看一下网卡的配置信息
  [root@rhas-13 root]# ifconfig                   
  bond0 Link encap:Eth
ernet HWaddr 00:0E:7F:25:D9:
8B
  inet addr:172.31.0.13 Bcast:172.
31.3.255 Mask:255.255.252.0
  UP BROADCAST RUNNING
MASTER MULTICAST MTU:1500 M
etric:1
  RX packets:2817 erro
rs:0 dropped:0 overruns:0 fr
ame:0
  TX packets:95 errors:0 dropped:0
overruns:0 carrier:0
  collisions:0 txqueuelen:0                           
  RX bytes:226957 (221
.6 Kb) TX bytes:15266 (14.9
Kb)

  eth0 Link encap:Ethernet HWaddr
00:0E:7F:25:D9:8B
  inet addr:172.31.0.1
3 Bcast:172.31.3.255 Mask:25
5.255.252.0
  UP BROADCAST RUNNING
SLAVE MULTICAST MTU:1500 Me
tric:1
  RX packets:1406 errors:0 dropped
:0 overruns:0 frame:0
  TX packets:48 errors
:0 dropped:0 overruns:0 carr
ier:0
  collisions:0 txqueuelen:1000                     
  RX bytes:113967 (111.2 Kb) TX by
tes:7268 (7.0 Kb)
  Interrupt:11                                                     

  eth1 Link encap:Ethernet HWaddr
00:0E:7F:25:D9:8B
  inet addr:172.31.0.1
3 Bcast:172.31.3.255 Mask:25
5.255.252.0
  UP BROADCAST RUNNING SLAVE MULTI
CAST MTU:1500 Metric:1
  RX packets:1411 errors:0 dropped
:0 overruns:0 frame:0
  TX packets:47 errors:0 dropped:0
overruns:0 carrier:0
  collisions:0 txqueuelen:1000                     
  RX bytes:112990 (110.3 Kb) TX by
tes:7998 (7.8 Kb)
  Interrupt:15                                                     

  在这种情况下出现一块网卡失效,仅
仅会是服务器出口带宽下降,也不会影响网络使用.

  通过查看bond0的工作状态查询能详细的掌握bonding的工作状态         
  [root@rhas-13 bondin
g]# cat /proc/net/bonding/bo
nd0
  bonding.c:v2.4.1 (September 15, 2003)   

  Bonding Mode: load b
alancing (round-robin)
  MII Status: up                                                 
  MII Polling Interval (ms): 0                     
  Up Delay (ms): 0                                             
  Down Delay (ms): 0                                         
  Multicast Mode: all slaves                         

  Slave Interface: eth1                                   
  MII Status: up                                                 
  Link Failure Count: 0                                   
  Permanent HW addr: 00:0e:7f:25:d9:8a     

  Slave Interface: eth0                                   
  MII Status: up                                                 
  Link Failure Count: 0                                   
  Permanent HW addr: 00:0e:7f:25:d9:8b     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值