- 论坛徽章:
- 0
|
实验条件:两块网卡,可不限型号,一台交换机,gentoo环境,可以是其他linux,注意区分不同之处.\r\n我的设备:两个8139,TP-LINK交换机,总值不过是百块,大家不要见笑,其实在gentoo的网络配置文件里提到过这种技术,刚好有台交换机,并参考网上一篇文章,试试如何.\r\n将多块网卡虚拟成为一块网卡,使其具有相同的IP地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding。这项技术其实在 sun和cisco中已经存在,分别称为Trunking和etherchannel技术,在Linux中,这种技术称为bonding。\r\n\r\n通过软硬件设置将两块或者多块网卡绑定在同一个IP地址上,接上集线器,使用起来就好象在使用一块网卡。\r\n\r\n多网卡绑定的优点不少,首先,可以增大带宽,假如一个网卡的带宽是100M,理论上两块网卡就是200M,三块就是300M,当然实际上的效果是不会是这样简单的增加的,不过经实际测试使用多个网卡对于增加带宽,保持带宽的稳定性肯定是有裨益的。\r\n\r\n形成网卡冗余阵列、分担负载,双网卡被绑定成“一块网卡”之后,同步一起工作,对服务器的访问流量被均衡分担到两块网卡上,这样每块网卡的负载压力就小多了,抗并发访问的能力提高,保证了服务器访问的稳定和畅快,当其中一块发生故障的时候,另一块立刻接管全部负载,过程是无缝的,服务不会中断,直到维修人员到来。\r\n\r\n1)连接设备:\r\nadsl接入到交换机,交换机接两块网卡,也就是说adsl通过交换机连接两个网卡,进入.\r\n2) 编译带有bonding driver的内核\r\n在内核选项: \r\nDevice Drivers->\r\nNetwork device support->\r\n<M>Bonding driver support\r\n编译成模块。\r\n3) 获取并安装用户管理工具\r\n安装ifenslave程序,gentoo是支持emerge的,其他版本的linux要自己找了,找不到的说说,有附带源代码\r\n#emerge ifenslave\r\n设置,执行命令:\r\n#modprobe bonding\r\n加载模块\r\n#ifconfig bond0 192.168.0.1 netmask 255.255.0.0\r\n设置设备bond0的IP\r\n#ifenslave bond0 eth0 eth1\r\n绑定两个网卡\r\n用命令ifconfig看出bond0设备的情况:\r\n # ifconfig\r\nbond0 Link encap:Ethernet HWaddr 00:0A:EB:FA:08:A9\r\n inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.0.0\r\n UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1\r\n RX packets:179812 errors:0 dropped:0 overruns:0 frame:0\r\n TX packets:147859 errors:0 dropped:0 overruns:0 carrier:0\r\n collisions:0 txqueuelen:0\r\n RX bytes:204694202 (195.2 Mb) TX bytes:67080581 (63.9 Mb)\r\n\r\neth0 Link encap:Ethernet HWaddr 00:0A:EB:FA:08:A9\r\n UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1\r\n RX packets:89088 errors:0 dropped:0 overruns:0 frame:0\r\n TX packets:73543 errors:0 dropped:0 overruns:0 carrier:0\r\n collisions:0 txqueuelen:1000\r\n RX bytes:101695763 (96.9 Mb) TX bytes:33487215 (31.9 Mb)\r\n Interrupt:16 Base address:0x2f00\r\n\r\neth1 Link encap:Ethernet HWaddr 00:0A:EB:FA:08:A9\r\n UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1\r\n RX packets:90724 errors:0 dropped:0 overruns:0 frame:0\r\n TX packets:74318 errors:0 dropped:0 overruns:0 carrier:0\r\n collisions:0 txqueuelen:1000\r\n RX bytes:102998439 (98.2 Mb) TX bytes:33593500 (32.0 Mb)\r\n Interrupt:17 Base address:0x4e00\r\n\r\nlo Link encap:Local Loopback\r\n inet addr:127.0.0.1 Mask:255.0.0.0\r\n UP LOOPBACK RUNNING MTU:16436 Metric:1\r\n RX packets:269 errors:0 dropped:0 overruns:0 frame:0\r\n TX packets:269 errors:0 dropped:0 overruns:0 carrier:0\r\n collisions:0 txqueuelen:0\r\n RX bytes:21908 (21.3 Kb) TX bytes:21908 (21.3 Kb)\r\n\r\nppp0 Link encap oint-to-Point Protocol\r\n inet addr:221.4.185.60 P-t-P:221.4.184.1 Mask:255.255.255.255\r\n UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1\r\n RX packets:178863 errors:0 dropped:0 overruns:0 frame:0\r\n TX packets:146823 errors:0 dropped:0 overruns:0 carrier:0\r\n collisions:0 txqueuelen:3\r\n RX bytes:200336566 (191.0 Mb) TX bytes:63717954 (60.7 Mb)\r\n\r\n需要重新设置adsl,因为原adsl是使用eth0,现在eht0和eth1都绑在bond0身上,没有网卡了,所以,把这项改为:\r\n(default eth1): bond0\r\n启动adsl,看到网卡和交换机的灯同时闪烁,说明已经工作了.\r\n\r\n工作情况,如下:\r\n# dmesg |grep eth\r\neth0: RealTek RTL8139 at 0xd0802f00, 00:0a:eb:fa:08:a9, IRQ 16\r\neth0: Identified 8139 chip type \'RTL-8100B/8139D\'\r\neth1: RealTek RTL8139 at 0xd0804e00, 00:14:78:2c:d8:98, IRQ 17\r\neth1: Identified 8139 chip type \'RTL-8100B/8139D\'\r\neth0: link down\r\neth0: link down\r\neth1: link up, 100Mbps, full-duplex, lpa 0x45E1\r\neth1: link down\r\neth1: link up, 100Mbps, full-duplex, lpa 0x45E1\r\neth1: link down\r\neth0: link up, 100Mbps, full-duplex, lpa 0x45E1\r\neth1: link up, 100Mbps, full-duplex, lpa 0x45E1\r\neth0: link up, 100Mbps, full-duplex, lpa 0x45E1\r\nbonding: bond0: enslaving eth0 as an active interface with an up link.\r\neth1: link up, 100Mbps, full-duplex, lpa 0x45E1\r\nbonding: bond0: enslaving eth1 as an active interface with an up link.\r\n\r\n用bt下载一些文件,速度看不出加快,峰值是比原来高一些,那路高手有时间做做测试,搞些新玩法,贴贴出来,\r\n下面是参考文章:http://www.hackhome.com/2005/6-17/1904107338.shtml\r\n |
|