DreamCat 发表于 2005-1-3 19:57:58

QUOTE
Linux下双网卡绑定技术实现负载均衡信息来源: CSDN.net保持服务器的高可用性是企业级 IT 环境的重要因素。其中最重要的一点是服务器网络连接的高可用性。网卡(NIC)绑定技术有助于保证高可用性特性并提供其它优势以提高网络性能。我们在这介绍的Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。bonding技术的最早应用是在集群??beowulf上,为了提高集群节点间的数据传输而设计的。下面我们讨论一下bonding 的原理,什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱程序的负担。但是网卡也支持外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。说了半天理论,其实配置很简单,一共四个步骤:实验的操作系统是Redhat Linux Enterprise 3.0绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片。1.编辑虚拟网络接口配置文件,指定网卡IP vi /etc/sysconfig/network-scripts/ifcfg-bond0# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond02 #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 地址、子网掩码或网卡 ID。将上述信息指定到虚拟适配器(bonding)中即可。# cat ifcfg-eth0  DEVICE=eth0  ONBOOT=yes  BOOTPROTO=dhcp# cat ifcfg-eth1  DEVICE=eth0  ONBOOT=yes  BOOTPROTO=dhcp3 # vi /etc/modules.conf编辑 /etc/modules.conf 文件,加入如下一行内容以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0加入下列两行alias bond0 bondingoptions bond0 miimon=100 mode=1说明:miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡作,另一块做备份. bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用4 # vi /etc/rc.d/rc.local 加入两行 ifenslave bond0 eth0 eth1 route add -net 172.31.3.254 netmask 255.255.255.0 bond0到这时已经配置完毕重新启动机器. 重启会看见以下信息就表示配置成功了Bringing up interface bond0 OKBringing up interface eth0 OKBringing up interface eth1 OK下面我们讨论以下mode分别为0,1时的情况 mode=1工作在主备模式下,这时eth1作为备份网卡是noarp的root@rhas-13 network-scripts]# ifconfig 验证网卡的配置信息bond0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8Binet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 M etric:1RX packets:18495 errors:0 dropped:0 overruns:0 frame:0TX packets:480 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:1587253 (1.5 Mb) TX bytes:89642 (87.5 Kb)eth0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8Binet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1RX packets:9572 errors:0 dropped:0 overruns:0 frame:0TX packets:480 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:833514 (813.9 Kb) TX bytes:89642 (87.5 Kb)Interrupt:11eth1 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8Binet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0UP BROADCAST RUNNING NOARP SLAVE MULTICAST MTU:1500 Metric:1RX packets:8923 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:753739 (736.0 Kb) TX bytes:0 (0.0 Interrupt:15那也就是说在主备模式下,当一个网络接口失效时(例如主交换机掉电等),不回出现网络中断,系统会按照cat /etc/rcd/rc.local里指定网卡的顺序工作,机器仍能对外服务,起到了失效保护的功能.在mode=0 负载均衡工作模式下,他能提供两倍的带宽,我们来看一下网卡的配置信息 # ifconfigbond0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8Binet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1RX packets:2817 errors:0 dropped:0 overruns:0 frame:0TX packets:95 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:226957 (221.6 Kb) TX bytes:15266 (14.9 Kb)eth0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8Binet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1RX packets:1406 errors:0 dropped:0 overruns:0 frame:0TX packets:48 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:113967 (111.2 Kb) TX bytes:7268 (7.0 Kb)Interrupt:11eth1 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8Binet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1RX packets:1411 errors:0 dropped:0 overruns:0 frame:0TX packets:47 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:112990 (110.3 Kb) TX bytes:7998 (7.8 Kb)Interrupt:15在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用.通过查看bond0的工作状态查询能详细的掌握bonding的工作状态# cat /proc/net/bonding/bond0  bonding.c:v2.4.1 (September 15, 2003)  Bonding Mode: load balancing (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

athlon 发表于 2005-1-3 20:45:34

水水水水水水水水水水水水水水水水水水水水水水水水灌灌灌灌灌灌灌灌灌水水水水 水水水水水水水水水水水水水水水水水水灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌水水水水 水水水水水水水水水水水水水水水灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌灌水水水水 水水水水水水水水水水水灌灌灌灌水灌灌灌灌灌灌灌灌灌灌灌水水水水水水水水水水 水水水水水水水水灌灌灌灌灌灌灌水灌灌灌水水灌灌灌灌灌水水水水水水水水水水水 水水水灌灌灌灌灌灌灌灌灌灌灌灌水水水水水水灌灌灌灌水水水水水水水水水水水水 水灌灌灌灌灌灌灌灌灌灌灌灌灌灌水水水水水水灌灌灌灌水水水水水水水水水水水水 水灌灌灌灌灌灌灌灌灌灌灌灌水水水水水水水灌灌灌灌灌灌灌灌灌灌灌水水水水水水 水灌灌灌灌灌灌灌灌灌灌灌灌水水水水水水灌灌灌灌灌灌灌灌灌灌灌灌灌灌水水水水 水水灌灌灌灌灌灌灌灌灌灌水水水水水灌灌灌灌灌灌水水水灌灌灌灌灌灌灌水水水水 水水水水水水水水灌灌灌灌水水水水水灌灌灌灌水水水水水水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水水灌灌水水水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水水灌灌灌灌水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水水灌灌灌灌水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水水灌灌灌水水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水水灌灌灌水水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水灌灌灌灌水水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水灌灌灌灌水水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水灌灌灌灌水水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌灌水灌灌灌灌水水灌灌灌灌灌水水水水水 水水水水水水水水灌灌灌灌水水水水灌灌灌水水灌灌灌灌水水灌灌灌灌灌水水水水水 水水灌灌水水水灌灌灌灌灌水水水水灌灌灌水水灌灌灌水水水灌灌灌灌灌水水水水水 水水灌灌灌灌灌灌灌灌灌灌水水水水水灌灌水水灌灌水水水水灌灌灌灌灌水水水水水 水水水灌灌灌灌灌灌灌灌灌水水水水水水水水灌灌灌水水水水水灌灌灌灌水水水水水 水水水水水灌灌灌灌灌灌灌水水水水水水水水灌灌灌水灌灌灌灌水水水水水水水水水 水水水水水水灌灌灌灌灌灌水水水水水水水灌灌灌灌水水灌灌灌灌灌水水水水水水水 水水水水水水水水水灌灌灌水水水水水水灌灌灌灌灌水水水灌灌灌灌灌灌灌水水水水 水水水水水水水水水水水水水水水水灌灌灌灌灌灌水水水水水灌灌灌灌灌灌水水水水 水水水水水水水水水水水水水水水灌灌灌灌灌灌水水水水水水灌灌灌灌灌灌灌水水水 水水水水水水水水水水水水水水灌灌灌灌灌水水水水水水水水水灌灌灌灌灌灌水水水 水水水水水水水水水水水水水灌灌灌灌灌水水水水水水水水水水水灌灌灌灌水水水水 水水水水水水水水水水水水灌灌灌水水水水水水水水水水水水水水水灌灌灌水水水水 水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水

chen_2004 发表于 2005-1-4 13:52:48

IPCOP下能做吗?

DreamCat 发表于 2005-1-4 14:16:52

LINUX下的。。。。

samhui 发表于 2005-1-9 11:33:06

对网络没有太大提高的

jk0wg 发表于 2005-1-10 01:45:58

这个不是负载均衡... 负载均衡是两条线路同时工作.. 这个应该算是双网卡做链路备份的吧`~一条掉了转到另一条.. 并非真正的负载均衡..

DreamCat 发表于 2005-1-10 10:01:33

QUOTE (jk0wg @ Jan 10 2005, 01:45 AM)
这个不是负载均衡... 负载均衡是两条线路同时工作.. 这个应该算是双网卡做链路备份的吧`~一条掉了转到另一条.. 并非真正的负载均衡..   
你没仔细看啊。。。。

mywangba 发表于 2005-1-10 10:19:13

win下也有个类似的软件 把几张网卡虚拟为一张网卡 提供服务器网卡的吞吐量

jk0wg 发表于 2005-1-10 12:35:56

QUOTE (哈啤猫 @ Jan 10 2005, 10:01 AM)


QUOTE (jk0wg @ Jan 10 2005, 01:45 AM)
这个不是负载均衡... 负载均衡是两条线路同时工作.. 这个应该算是双网卡做链路备份的吧`~一条掉了转到另一条.. 并非真正的负载均衡..
你没仔细看啊。。。。
       我试下看看.....

ghg123456 发表于 2005-1-10 18:41:03

有条件一定实现他

DreamCat 发表于 2005-1-10 20:03:03

总感觉这是个永远的东西,还是比较用的。。。不管你带宽有多高,网卡有多好。喝多了, 都不知道谁是自己了。。。。。。。嘿嘿

DreamCat 发表于 2005-1-10 20:06:05

QUOTE (ghg123456 @ Jan 10 2005, 06:41 PM)
有条件一定实现他
哥们,你的签名太长了吧???咱们这里是讨论技术的地方,不是show你个性的地方吧?没别的意思,我这里网太差了。。

jk0wg 发表于 2005-1-11 13:03:52

楼主.. 经过测试... 有一个很大的弊端.. 哪就是两条WAN线路. 只要坏了一个,整个网络就断掉了.....

ycfei 发表于 2005-1-11 19:50:56

如果一块网卡坏了。那另一块能否单工作呢??

jk0wg 发表于 2005-1-11 21:49:55

坏了一个整个网络就断了啊....
页: [1] 2
查看完整版本: Linux下双网卡绑定技术实现负载均衡