发现工作中可能会用到Linux下网卡绑定相关的知识。找了些文章看,然后一通混剪,各家所长为我所用。
网卡bond,即网卡绑定,也称作网卡捆绑。网卡绑定有多种称谓:Port Trunking, Channel Bonding, Link Aggregation, NIC teaming等等,其实说的是一回事。就是将两个或者更多的物理网卡绑定成一个虚拟网卡。通过绑定可以达到链路冗余、带宽倍增、负载均衡等目的。是生产场景中提高性能和可靠性的一种常用技术。
Linux内置了网卡绑定的驱动程序,可以将多个物理网卡分别捆绑成多个不同的逻辑网卡(例如把eth0、eth1捆绑成bond0,把eth2、eth3捆绑成bond1)。对于每一个bond接口来说,可以分别定义不同的绑定模式和链路监视选项。
对应于不同的负载均衡和容错特性需求,Linux网卡bond的模式共有bond0-bond6共7种。
表示负载分担round-robin,并且是轮询的方式,比如第一个包走eth0,第二个包走eth1,直到数据包发送完毕。
表示主备模式,即同一时间时只有1块网卡在工作。
表示使用MAC地址的XOR Hash负载分担,网络上特定的通信双方会始终经由某一个网卡的链路通信,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy [1] ,需要交换机配置port channel)
表示所有包从所有绑定的网络接口发出,不考虑均衡流量的分担,只有冗余机制,但过于浪费资源。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。需要和交换机的聚合强制不协商方式配合。
表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy).标准要求所有设备在聚合 *** 作时,要在同样的速率和双工模式。
是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。该模式要求slave接口的网络设备驱动有某种ethtool支持;而且ARP监控不可用。
在5的tlb基础上增加了rlb(接收负载均衡receiveload balance).不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的.
模式1、模式5和模式6不需要交换机端的设置,网卡能自动聚合。模式4需要支持802.3ad。模式0,模式2和模式3理论上需要静态聚合方式。 (据说实测中模式0可以通过mac地址欺骗的方式在交换机不设置的情况下不太均衡地进行接收。)
创建ifcfg-bond0文件,配置IP地址、子网掩码、网关等参数。
修改eth0、eth1、eth2的配置文件,注释或删除IP地址、掩码、网关和MAC地址的配置,添加关于MASTER和SLAVE的设置
根据实际需求,选择合适的bonding模式,为bond0设置bonding kernel module。
在 /etc/modprobe.conf 中添加以下内容
确认模块是否加载成功
重启网络(或重启主机):
查看bond0的状态:
另外还可以使用 ifconfig -a | grep HWaddr 查看bond0接口是否处于活动状态,以及各网卡MAC地址情况。
从上面的确认信息中,我们可以看到3个重要信息:
1.现在的bonding模式是active-backup
2.现在Active状态的网口是eth2
3.bond0,eth0、eth1、的物理地址和处于active状态下的eth2的物理地址相同,这样是为了避免上位交换机发生混乱。
可以ping一个远程地址,然后断开Active状态的eth2口网线,验证主备模式是否能正常切换,业务是否受到影响。
将网口添加到bond中:ifenslave bond eth0 eth1【bond要先up】
将bond中删除网口:ifenslave -d bond eth0
bond中网口主备倒换:ifenslave -c bond eth1
前面只是3个网口绑定成一个bond1的情况,如果我们要设置多个bond口,比如物理网口eth0和eth1组成bond0,eth2和eth3组成bond1应该如何设置呢?
网口设置文件的设置方法和上面第1步讲的方法相同,只是/etc/modprobe.d/bonding.conf的设定就不能像下面这样简单的叠加了:
正确的设置方法有2种:
第一种: 你可以看到,这种方式的话,多个bond口的模式就只能设成相同的了:
第二种: 这种方式,不同的bond口的mode可以设成不一样:
按照上面这2种设置方法,现在如果是要设置3个,4个,甚至更多的bond口,可是可以的。
找一个配置比较好点的机器做服务器(双网卡),其他机器单网卡。服务器一块网卡接大猫,另外一块网卡接HUB。工作站网卡接HUB。网线的做法应该不用我说了吧。系统安装完毕后,右键单击网上邻居→属性。最好把里面的名字改一下,连接HUB的本地连接改为局域网,连接大猫的本地连接改为广域网。右键单击局域网→属性→安装。把IPX协议装好。然后双击TCP/IP协议,选择“使用下面的IP地址”;添入192.168.10.1 掩码为255.255.255.0 网关不添。DNS为当地电信的DNS地址(例如我在江苏,则DNS中添入202.102.2.141)。服务器局域网的网卡配置完毕,至于广域网的网卡完全不要更改。现在需要在服务器的机器上添加一个拨号程序。网上邻居右键→属性。在屏幕的左上部可以找到一个“创建一个新的连接”单击,下一步,“连接到INTERNET”,下一步,“手动设置我的连接”,下一步,“要求用户名和密码的宽带连接来连接”,下一步,ISP名字(随便添,推荐填写“拨号”),下一步,添入你的用户名和密码,下一步,完成。
这样,当你再次右键单击网上邻居→属性的时候,就会发现在两块网卡的连接下面多了一个“拨号”。现在右键单击“拨号”→属性。选择“高级”,会在下面发现一个“INTERNET共享”把小方格打上勾。会询问你本地连接是用的哪块网卡,选择你连接局域网的那个卡。确定。这样服务器就完全配置好了。
至于工作站,简单的很,只要在协议中加入IPX协议。然后把TCP/IP这样设置:IP地址192.168.0.X(X为2---254)。掩码:255.255.255.0 网关:192.168.0.1 DNS同样为当地电信的DNS地址。确定。就KO了
准备工作:材料:100M网卡两片(任何品牌)、NIC Express Enterprise4.0,带TRUNK的交换机一台(智能交换机一般都带这功能)
系统支持:WINDOWS9X、ME、2000、XP、2003系统(本贴仅以WINDOWSXP做说明)
适用范围:无盘、VOD视频点播、游戏服务器等.
一、硬件设备的安装
1、安装网卡
在这里面,网卡的数量是由交换机来决定的,如果你的交换机支持4口的TRUNK,那么你的网卡绑定数量就可以是4片,也就可以达到:4*88M左右的速度
网卡的安装和普通的安装完全相同,本文不将做详细说明
2、交换机及交网线
先拿到说明书,了解一下交换机支持几口的TRUNK,一般的,如:8口交换机支持2端口4组TRUNK,在全双工下的理论速度就是:200*200=400M,本文以两口TRUNK交换机作说明
将网线分别接至交换机的1 、2口,并与双网卡连接
二、各硬件设置
第一步:设置交换机的TRUNK
用TELNET登陆到你的交换机(各交换机登陆方式不同),进入TRUNK设置界面,设置为如下图所示!
第二步:网卡的安装
正确安装好你的网卡,并设置一块网卡的IP地址及俺码等(本例为:192。168。0。34 255。255。255。0),另一块不作设置.
三、软件安装
NIC Express的安装其实可以说是很简单很简单的,而且不需要进行什么设置就可以很好的工作了
双击它启动安装程序,一路回车,软件提示输入unlock key(注册码),如果没有注册码,就只好选择试用了,试用为30天,注册码怎么搞?(自己想办法去啊,找我,我有的)
到这个图示后,我们仍然选择下一步,不作设置!
注:LOAD Balancing (负载均衡)
到这一步后,一定要在下拉菜单里面输入一个文字(这个文字将是以后生成的新的连接),然后点击上面分配了IP地址的网卡,再点ADD,会提示你是否用当用网卡的IP?选择“是”,再选择另一块网卡,点ADD
加载完所有的网卡后,点击OK!继续我们的安装!
四、NIC Express设置
选择执行菜单里的“NIC Express Enterprise Edition”选项,点击,“Advanced”选项,出现下图!
在这里面,要注意了:将默认的:先将STATUS PPACKETS改为:AUTO DETECT,再将NIC EXPRESS ELB改为:FEC/GEC TRUNKING,顺序不能反!
点击确定后!软件设置至此完成,很简单吧:)
所有的设置好后,先关闭计算机,再将交换机关闭!停一分钟后,完全启动交换机后启动计算机(这一步必须要做!)
所有的工作都做完了,下面我们来测试一下速度吧!
稍等一会出现下图:
下图是局域网未调用任何文件时的流量!从下图可以看出,适配器1和2均没有流量(如果在非TRUNK的交换机上面使用TRUNK,在未传送文件的时候双网卡都有20M左右的流量的,很明显,这样的流量不真实!)
上图为局域网内两台机器调文件后的流量图!从上图中我们不难发现,适配器1和2都很好的分配到了流量,网速也由以前的:88M/S到了现在的155M/S。至此,我们的目的已经实现!
这里我们不作任何设置,直接点OK!再点完成!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)