快速业务通道

linux多网卡bonding 详解

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-26

多块网卡绑在一起,作为一个网卡用,实现负载均衡和提高带宽

linux双网卡绑定一个IP地址,实质工作就是使用两块网卡虚拟为一块,使用同一个IP地址,是我们能够得到更好的更快的服务.其实这项技术在 Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为 bonding.     1、bonding 的原理:   什么是bonding需要从网卡的混杂(promisc)模式说起.我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担.但是网卡也支持另外一种被称为混杂promisc的模式,可以接 收网络上所有的帧,比如说tcpdump,就是运行在这个模式下.bonding也运行在这个模式下,修改了驱动程序中的mac地址,将两块网卡的 Mac地址改成相同,可以接收特定mac的数据帧.然后把相应的数据帧传送给bond驱动程序处理.   2、bonding模块工作方式:   bonding mode=1 miimon=100.miimon是用来进行链路监测的. 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0-6 七种模式,常用的为0,1,6三种.   mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定.   mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援.   mode=6:平衡负载模式,有自动备援,不需要”Switch”支援及设定. 注意: MODE=0测试结论:如果交换机未配置链路聚合则会发生MAC动荡的情况,在配置了链路聚合后不会出现,发出数据包的MAC为Bond0的MAC MODE=6测试结论:此时交换机无需特殊配置,即可实现负载均衡.2个网卡发出的包使用的是各自的MAC,因此也不会造成交换机MAC地址表的动荡   3、debian系统的安装配置   3.1、安装ifenslave   apt-get install ifenslave   3.2、让系统开机自动加载模块bonding   sudo sh -c "echo bonding mode=1 miimon=100 >> /etc/modules"   3.3、网卡配置   sudo vi /etc/network/interfaces   #实例内容如下:   auto lo   iface lo inet loopback   auto bond0   iface bond0 inet static   address 192.168.1.110   netmask 255.255.255.0   gateway 192.168.1.1   dns-nameservers 192.168.1.1   post-up ifenslave bond0 eth0 eth1   pre-down ifenslave -d bond0 eth0 eth1   3.4、重启网卡,完成配置   #如果安装ifenslave后你没有重启计算机,手动加载bonding模块.   sudo modprobe bonding mode=1 miimon=100   #重启网卡   sudo /etc/init.d/netwo***ng restart   4、redhat系统的安装配置   4.1、安装ifenslave   redhat默认一般已经安装.未安装的要先安装.   yum install ifenslave   4.2、让系统开机自动加载模块bonding   sudo sh -c "echo alias bond0 bonding >> /etc/modprobe.conf" sudo sh -c "echo options bond0 miimon=100 mode=1 >> /etc/modprobe.conf"   4.3、网卡配置   sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0   #eth0配置如下   DEVICE=eth0   ONBOOT=yes   BOOTPROTO=none   sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1   #eth1配置如下   DEVICE=eth1   ONBOOT=yes   BOOTPROTO=none   sudo vi /etc/sysconfig/network-scripts/ifcfg-bond0   #bond0配置如下   DEVICE=bond0   ONBOOT=yes   BOOTPROTO=static   IPADDR=192.168.1.110   NETMASK=255.255.255.0   GATEWAY=192.168.1.1   SLAVE=eth0,eth1   TYPE=Ethernet   #系统启动时绑定双网卡   sudo sh -c "echo ifenslave bond0 eth0 eth1 >> /etc/rc.local"   4.4、重启网卡,完成配置   #如果安装ifenslave后你没有重启计算机,手动加载bonding模块.   sudo modprobe bonding mode=1 miimon=100   #重启网卡   sudo /etc/init.d/network restart   5、交换机etherChannel配置   使用mode=0时,需要交换机配置支持etherChannel.   Switch# configure terminal   Switch(config)# interface range fastethernet 0/1 - 2   Switch(config-if-range)# channel-group 1 mode on   Switch(config-if-range)# end   Switch#copy run start

本文出自 “Stephen” 博客,请务必保留此出处http://zbylovecool.blog.51cto.com/2515860/722714

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号