在linux(redhat)下双网卡负载均衡(lacp)
Linux系统双网卡聚合配置方式

Linux系统双网卡聚合配置方式将多个物理网卡聚合在一起,从而实现冗错和提高吞吐量网络组不同于旧版中bonding技术,提供更好的性能和扩展性网络组由内核驱动和teamd守护进程实现.主要分为两种类型bond、teambond模式介绍(支持多块网卡聚合)mode=0(balance-rr)交换机需要配置链路聚合表示负载分担,并且是轮询的方式比如第一个包走eth0,第二个包走eth1,直到数据包发送完毕。
优点:流量提高一倍缺点:需要接入交换机做端口聚合,否则可能无法使用mode=1(active-backup)同时只有1块网卡在工作。
优点:冗余性高缺点:链路利用率低,两块网卡只有1块在工作mode=2(balance-xor)(平衡策略)交换机需要配置链路聚合表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。
(需要xmit_hash_policy,需要交换机配置port channel)特点:基于指定的传输HASH策略传输数据包。
缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。
其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力mode=3(broadcast)(广播策略)表示所有包从所有网络接口发出,这个不均衡,只有冗余机制,但过于浪费资源。
此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。
需要和交换机的聚合强制不协商方式配合。
特点:在每个slave接口上传输每个数据包,此模式提供了容错能力mode=4(802.3ad)(IEEE 802.3ad 动态链接聚合)不常用,且不同厂商的LCAP报文协商不成功表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy).标准要求所有设备在聚合操作时,要在同样的速率和双工模式,而且,和除了balance-rr模式外的其它bonding负载均衡模式一样,任何连接都不能使用多于一个接口的带宽。
Linux下的多网卡接口的一种负载均衡算法

V o l 125 N o . 4A p r . 2004第 25 卷 第 4 期 2004 年 4 月小 型 微 型 计 算 机 系 统M I N I - M I CRO SY ST EM S 下的多网卡接口的一种负载均衡算法鲁宏伟, 尚艳艳L i n ux ( 华中科技大学 计算机学院 信息存储系统教育部重点实验室, 湖北 武汉 430074)摘 要: 简要介绍了L in ux 的 bo n d i n g 技术及现有的几种负载均衡算法, 讨论了这几种算法的不足; 针对这些不足提出 了一种基于 T C P 的发送算法, 测试结果证明了该算法的可行性.关 键 词: L in ux; bo n d i n g; 链路聚集; T C P ; 负载均衡 中图分类号: 文献标识码: A 文 章 编 号: 100021220 (2004) 0420730203T P 316. 81 L oad Ba lan c i n g A lgor ithm of L i n k A ggrega t i on Un der L i n uxL UH o n g 2w e i , S HA N G Yan 2yan(D a ta S tora g e L a b , C ol l eg e of C o m p u ter S cien ce & E n g ern n in g H u a z h o n g U n iv ers ity of S cien ce an d T ech n ology , W u h a n 430074, C h ina )A b stra c t : F ir s t , th is p a p e r g i ve s a b r i ef in t r o d uc t i o n o f L i n ux bo n d i n g tech n o l o g y , d i scu sse s th e k n ow n lo a d ba l an c i n g a l go r i thm s an d th e i r defec t s ; A n d th e n , acco rd i n g to th e s e defec t s th is p a p e r p re s en t s an a l go r i thm th a t a p a ck e t is t r an s m it t ed th ro u gh a N I C p o r t w h ich is se l ec t ed acco rd i n g to th e p a ck e t ’s de s t i n a t i o n I P add r e s s an d T C P po r t . T e s t re s u lt s p ro v ed th a t th e a l go r i thm is effec t i ve .Key words : L in ux ; bo n d i n g ; lin k agg r ega t i o n ; T C P ; lo a d ba l an c i n g1 前 言M A C 地 址. bo n d i n g 技 术 可 提 高 主 机 的 网 络 吞 吐 量 和 可 用性.L in ux 的 bo n d i n g 技术只允许一个网卡接口接收 数 据,但所有的网卡接口都可用于发送数据. 2. 2 L i n u x 的几种发送均衡算法目 前 L in ux 的发送算法有: 轮转算法 (R o u n d - R o b in )、 热备 份 算 法 (A c t i ve - back u p )、M A C 地 址 异 或 法 (M A C -XO R ).2. 2. 1 轮转算法 该算法为每个待发送的数据包选择发送接口, 第一个数据包由第一个接口发送, 下一个数据包由第二 由于服务器的特殊的地位, 其可靠性、可用性、I ƒO 速度等均显得十分重要〔1〕. 冗余部件是提高服务器可靠性、解决服 务器单点故障的一种有效措施, 例如采用 RA I D 技术可以提 高磁盘的可靠性. 为了提高服务器的网络连接的可用性和可 靠性, 目前 3Com 公司的 D y n a m ic A cce s s 技 术〔2〕、IP M e t r i c s的 N I C E xp re ss 〔3〕、Sun 公 司 的 T runk in g 技 术〔4〕、C isco 的e th e rch an n e l 技术〔4〕、N S I 公司的 B a lan ce Su ite 软件〔5〕、P h o 2 bo s L in k T run k i n g 〔4〕软件等都在研究将多个网卡接口绑定在 一 起的链路聚集 ( lin k agg r ega t i o n 或 t runk i n g ) 技术. 链路聚 集技术将多个链路虚拟成一个逻辑链路, 它提供了一种廉价、 有效、透明的方法扩展网络设备和服务器的带宽, 提高网络 的灵活性和可用性.相比千兆网卡链路聚集技术在利用原有资源的情况下, 通过绑定多个网卡 ( 每个有一个接口) 或多个接口的网卡, 在 提供较高的带宽的同时提高了服务器的可用性.本文主要讨论 L in ux 的 bo n d i n g 技术, 针对现有算法的 不足提出基于 T C P 的负载均衡的发送算法, 并讨论如何实现 多个接口的负载均衡及故障接管.个接口发送, , 依次下去. 当最后一个接口被用过之后, 又 从第一个接口开始发送数据包. 轮转发送算法简单, 能保证每 个网卡接口的负载均衡 ( 最多只相差一个数据包) , 资源利用 率 100% , 同时占用 C P U 的时间又很少. 但是由于一个连接 或会话 ( s e s si o n ) 的数据包从不同的接口发出, 经过不同的链 路, 在客户端会出现数据包无序到达的问题. 无序到达的数据 包常常需要重新发送, 重发会降低网络的吞吐量. 2. 2. 2 热备份算法 该算法将一个接口设为活动状态, 其它 的接口处于后备状态. 当活动接口或活动链路出现故障时, 启 用后备链路. 该算法的优点是提供高网络连接的可用性, 不足 之处是资源利用率低, 只有 1ƒN (N 为接口数). 2. 2. 3 M A C 地址异或算法 该算法是为了解决轮转发送算 法的数据包无序到达问题提出的. 其主要思想是: 由服务器的M A C 地址和客户端的 M A C 地址共同决定每个数据包的发 送接口号: 源M A C 地址和目的M A C 地址异或, 并将异或结果对接口数求余. 由于发送到同一个客户端的数据流经过同2 L i n u x 的 bon d i n g 技术及几种均衡算法2. 1 L in u x 的 bo n d i n g 技术L in ux 的 bo n d i n g 技术是在网卡驱动程序之上、数 据 链 路层之下实现的一个虚拟层, 它将多个网卡接口虚拟成一块 虚拟网卡. 该虚拟网卡具有一个 I P 地址和一个数据链路层一条链路, 数据包能有序到达客户端.该发送算法在只有一个客户机访问服务器或者服务器和客户机不在同一子网的情况下, 负载不均衡问题非常突出. 在只有一个客户机访问服务器时, 资源的利用率只有1ƒN (N 为接口数).在一个大的局域网内, 往往存在多个子网, 拓扑结构如图1 所示. 客户机和服务器位于不同的子网并采用默认的路由器进行路由选择, 由于将默认路由器的M A C 地址作为待发送的数据包的目的M A C 地址, 这样源M A C 地址和目的M A C 地址都已唯一确定, 源M A C 地址和目的M A C 地址异或的结果唯一, 即所有的数据从同一个接口发送, 资源的利用率也是1ƒN (N 为网卡接口数).3. 1 算法描述传输协议有T C P 和U D P两种, U D P是一种无连接、不可靠的传输协议. T C P 提供一种面向连接的、可靠的字节流服务. 面向连接意味着两个使用T C P 的应用( 通常是一个客户和一个服务器) 在彼此交换数据前要建立一个连接. T C P 连接的发送方维护一个缓冲区, 该缓冲区用来存放已经被发送但还没有被确认的数据, 同样在接收方维护一个用来保存无序到达数据和有序到达的(应用层还没读取) 数据的接收缓冲区. 如果已发送的数据包超时还未被确认就要被重发. 如果同一个T C P 连接的数据在下层没有从同一个链路发送, 数据无序到达、需要重发的概率大大增加.一个T C P连接或一个U D P 会话由以下结构确定:< S r cPo r t, S r c IPA dd r, D stPo r t, D st I PA dd r>其中S rcPo r t 是一个连接的源端口号, S rc IPA dd r 是该连接的源IP 地址, D stPo r t 是其目的端口号, D st IPA dd r 是其目的IP 地址.3 基于T CP 的发送算法针对M A C 地址异或算法和轮转算法的不足, 本文提出基于T C P的发送算法.图1 局域网拓扑图F ig. 1 T h e top o lo g y o f a L A N基于T C P的发送算法的主要思想是: 由目的主机号、目的主机所在子网的子网号及该会话的T C P或U D P 的目的端口号共同决定某个数据包的发送接口号, 即发送接口号由下式确定:连接的数据流从不同接口发送出去.( 2) 对于同一子网的不同客户机的两个T C P连接来说,①式中的su bn e t相同, 设连接的目的端口号p o r t相同, 但是主机号ho st 不同. 设目的主机号分别为ho st1、ho st2 , 当(ho st1 ) 2和(ho st2 ) 2的最后两位不相同时, ①式的计算结果不相等, 两个连接的数据流从不同接口发送出去.( 3) 对于不同子网的两个T C P连接来说, 假设主机号ho st 和连接的目的端口号p o r t相同, 子网号subn e t不同. 设连接1 和连接2 所在的子网的子网号分别为subn e t1、sub2 n e t2 , 当( subn e t1 ) 2和( subn e t2 ) 2 的最后两位不相同时, ①式的计算结果不相等, 两个连接的数据流从不同接口发送出去.设有N个网卡接口, 在某个时间段内从第i 个接口发送( (ho st & 0x 03) ^ slaveno (①式) ( s ubn e t & 0x 03) ^ (po r t & 0x 0x 03) )%其中ho st 为要发送的数据包的目的主机号, subn e t为目的主机所在的子网的子网号, p o r t为U D P或T C P连接的目的端口号, slaveno 为绑定的接口数. ( ( h o st & 0x 03) ^ ( sub n e t & 0x 03)^ (po r t& 0x 0x 03) ) 的可能结果是0, 1, 2, 3, slaveno 的最大值是4, 即该算法最多可同时绑定4 个网卡接口.该算法在最大程度上保证了将不同连接的数据包从不同的网卡接口发送, 分以下几种情况讨论:( 1) 对于同一个客户机的两个T C P连接, 发送的接口号只与连接的目的端口号有关. 设连接1 和连接2 的目的端口号分别为p o r t1、p o r t2 ,当(p o r t1 ) 2(p o r t1 的二进制表示) 和(p o r t2 ) 2的最后两位不相同时, ①式的计算结果不相等, 两个的连接数为c i ( i= 1, , N ) , 第i 个接口发送的第j 个c i2,连接的数据流为k i j, 则第i 个网卡接口的负载是: ∑k ij . 当j= 1c1c2cN(②式)∑k 1j = ∑k 2j == ∑k N jj= 1 j= 1 j= 1成立时, 每个接口的负载绝对均衡. 由于①式能够将连接尽量732 小型微型计算机系统2004 年散列化地分配到不同的接口, 所以一般情况下c1 = c2 == c N , 即每个接口的连接数相等, 但是每个连接的数据流量不一定相等, ②式不一定成立. 但根据统计原理, 当客户机和服务器的连接数足够大并且时间足够长时, ②式成立.该算法不仅在IP 层并且在T C P 层实现了各个接口的负载均衡, 保证了数据流有序到达客户端, 并使资源的利用率达到100%.3. 2 故障接管的实现如果某个网卡接口或其所在链路出现故障, 那么该链路就不能用了. 在没有故障接管(fa i lo v e r) 的情况下, 如果根据①式计算的结果某个连接的数据流从该链路发送, 那么连接不可能建立或连接将被中断. 这样在服务器处于良好的运行状态的情况下, 客户端却不能访问服务器.L in ux 的bo n d in g 技术为所有的网络接口建立一个循环链表, 并实时监控每个链路的状态. 对于支持M II 状态字寄存器的网卡, 可从M II 状态字寄存器中读取链路的状态, 0x 04 表示链路处于活动状态, 0x 20 则表示链路自动协商结束. 如果检测到当前某个链路出现故障, 将其置为不活动状态. 当某个链路恢复时, 将其重置为活动状态.基于T C P 的发送算法具有故障接管( fa ilo ve r) 的功能. 假设①式计算的结果某个连接的数据包由第i 个链路发送, 那么先判断第i 个链路的状态( 从M II 状态字寄存器读取) , 如果不处于活动状态, 继续检查第( i+ 1) % slaveno 个链路的测试结果如表1 所示. 其中吞吐率为平均值.从表1 的测试结果可以得出结论: 由于轮转算法简单, 计算量小, 网络延时相对也小, 而基于T C P的发送算法计算量相对较多, 网络延时也比较大. 由于是双机对测, 即只有一个客户端, 所以M A C 地址异或算法每次计算的结果唯一, 只有一个接口被使用, 吞吐率最小. 相对轮转算法, 基于T C P的发送算法的吞吐率要大一些.需要说明的是: 测试中服务器仅配置两块网卡(各有一个接口) , 并且只有一台客户机访问服务器, 当网卡接口和客户机增加时, 本文的基于T C P连接的发送算法的优势将会更加明显. 在大的局域网中多个客户机和服务器建立连接对话时, 采用轮转算法的同一个连接的数据包经过不同的链路传送,无序到达客户端的概率增加, 这样重发次数增加, 服务器吞吐率会降低. 而基于T C P的发送算法不存在这样的问题, 在这种情况下, 服务器的吞吐率相对增加.5 结束语L in ux 的bo n d i n g 技术将多个网卡接口绑定一起, 使用多个接口发送数据, 算法上实现了负载均衡和故障接管. 针对L in ux 的现有发送算法的不足, 本文提出了基于T C P的负载均衡的发送算法. 经过分析、测试证明了基于T C P的发送算法的可行性.L in ux 的bo n d i n g 技术是一种不对称的负载均衡技术,只分配一个接口接收数据, 如果接收链路出现故障, 则服务器无法接收数据, 所以接收算法还有待进一步的研究. 目前的链状态, 如果也不处于活动状态, 则继续检查第( i + 2 )%slaveno 个链路的状态, 据包从活动链路发送出去., 直到找到一条活动的链路, 将数路聚集技术可以将各种型号( 10M b ƒs, 10ƒ100M b ƒs, 1000m b ƒs) 的网卡接口绑定在一起来提高服务器的网络性能, 但是各种实现算法包括基于T C P的发送算法在内并没有考虑接口的速度, 这一点也有必要进一步改进.4 测试结果及其分析测试软件环境: R edH a t7. 3 (内核2. 4. 18- 3)测试硬件配置: 一台服务器(C P U : P ? 733M , 内存: 256M , 两块百兆网卡(各有一个接口) ) 一台客户机(C P U : P ? 667M , 内存: 256M , 千兆网卡( 只有一个接口) ) 交换机(L in2 sy s千兆交换机)表1 测试结果T ab le 1 T e s t re s u lt Ref e ren c e s:1 Se rv i ng th e H ea r t o f th e N e tw o rk〔EB ƒOL 〕. 1999. 1~4h t t p: ƒƒwww. m adge. com ƒ_ a sse t sƒdo cum en t sƒgu ide sƒse rv_ w p. p df.2 L o a d B a lanc ing f o r Se rve r N I C s〔EB ƒOL 〕. 1999. 2~9 h t t p: ƒƒwww. 3com. c om ƒo th e rƒp df sƒinf raƒco r p inf o ƒen _ U Sƒ50300601.p df.N I C E xp re ss Fo r H igh 2B andw id th , H igh 2ava ilab ility se rve r s〔EB ƒ3循环模式M A C 地址异或模式基于T C P的发送模式延时( Λs)50 6194. 7867187. 34OL 〕. 1998.4~11h t t p: ƒƒwww. ipm e t r ic s. c om ƒipm sƒw h itep a2吞吐率(M bƒs) 175. 45 p e r sƒN I C E xp re ssT echB r ief.p df.4 P h o bo s P e r ip h e ra ls, P 430 PC I quad fa st e th e rne t adap te r〔EB ƒ测试软件为N e t P i p e, 利用它测试T C P协议性能的功能来测试轮转算法、M A C 地址异或算法以及基于T C P的发送算法的网络延时和吞吐率.服务器发送, 客户机接收.OL 〕. 2002. 1~2h t t p: ƒƒwww. p ho bo sp e r ip h e r a l s. c om ƒP 430% 20Sp ec% 20Sh ee t, % 20 rev3. p df.A Co st2effec t ive A pp r o ach to I m p r o ve Se rve r P e rf o r m ance andF au lt T o le rance. 2001〔EB ƒOL 〕. 2~7 h t t p: ƒƒa m t so f t. c om ƒba l2anceƒdo c sƒba lancew p. p df.5发送方执行命令: N P tcp -te s t. tx t- Pt - s - h 10. 1. 1. 189 - o 接收方执行命令: N P t cp - r - s。
Linux下配置双网卡桥接

Linux下配置双网卡桥接1. 新建/etc/sysconfig/network-scripts/ifcfg-bond0文件DEVICE=bond0ONBOOT=yesBOOTPROTO=noneIPADDR=10.0.0.4NETMASK=255.0.0.0GATEWAY=10.0.0.1USERCTL=no2. 更改/etc/sysconfig/network-scripts/ifcfg-eth0网卡属性DEVICE=eth0ONBOOT=yesBOOTPROTO=noneMASTER=bond0slave=yesUSERCTL=no3. 更改/etc/sysconfig/network-scripts/ifcfg-eth1网卡的属性DEVICE=eth1ONBOOT=yesBOOTPROTO=noneMASTER=bond0slave=yesUSERCTL=no注意:配置文件都不能设置mac地址,启动时会有冲突。
除了bond0设置ip地址外,其他真实的网卡都不能设置ip地址。
4. 编辑/etc/modprobe.conf文件,加入以下内容alias bond0 bondingoptions bond0 miimon=100 mode=1注:1、miimon 是链路监测的时间间隔单位是毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路。
2、mode=0 表示负载均衡方式,两块网卡都工作。
mode=1 表示冗余方式,网卡只有一个工作,一个出问题启用另外的。
)5. 使用ifenslave命令把网卡绑定一下,#ifenslave bond0 eth0 eth16. 加入/etc/rc.d/rc.local启动项ifenslave bond0 eth0 eth17. 启动网卡#service network restart。
Linux下双网卡冗余

建议使用1,即高可用;不建议使用0,即负载均衡模式;
因为我在测试的时候,明显的发现,0时,拔掉一个网线,网络就断开了,只有当服务器ping下面客户机之后网络才会好(有时)。
5、vi/etc/rc.d/rc.local
这个是linux官方网相应链接
1.编辑虚拟网络接口配置文件,指定网卡IP
vi /etc/sysconfig/network-scripts/ifcfg-bond0 vi 打开或新建文件,并将光标置于第一行首
[root@rhas-13 root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 将给出的文件或目录拷贝到另一文件或目录中
1、/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
ifenslave bond0 eth0 eth1
Dear han:
您好!
/docs/manuals/enterprise/RHEL-5-manual/Deployment_Guide-en-US/s3-modules-bonding-directives.html
3、/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
双网卡绑定实现负载,冗余及内外网设置

Linux配置双网卡绑定,以实现冗余及负载均衡1、首先需要彻底关闭NetworlManger 服务,如果有的话,否则会和bond网卡冲突[root@rhel ~]#service NetworlManger stop[root@rhel ~]#chkconfig NetworlManger off2、新建ifcfg-bond0配置文件[root@rhel ~]#vi /etc/sysconfig/network-scripts/ifcg-bond0DEVICE=bond0BOOTPROTO=noneIPADDR=192.168.1.11NETMASK=255.255.255.0ONBOOT=yesUSERCTL=no #用户控制禁止3、修改ifcfg-eth0配置文件,将IP/GW/NW/ID/HW等注释,保留以下信息[root@rhel ~]#vi /etc/sysconfig/network-scripts/ifcg-eth0DEVICE=eth0BOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0 #将网卡指向bond0SLAVE=yes #启用双网卡4、修改ifcfg-eth1配置文件[root@rhel ~]#vi /etc/sysconfig/network-scripts/ifcg-eth0DEVICE=eth1BOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0 #将网卡指向bond0SLAVE=yes #启用双网卡5、修改rc.local文件,添加以下信息[root@rhel ~]#vi /etc/rc.localifenslave bond0 eth0 eth1 #rhel6以上可以不设,但需要重启。
6、修改内核文件,系统不同有差异需要谨慎查看,查看备注。
Rhel6.3以下添加[root@rhel ~]#vi /etc/modprobe.d/dist.confAlias bond0 bondingOptions bond0 mode=1 miimon=50 #可在ifcfg-bond0中添加用BONDING_OPT=””连接。
SAN之Iscsi简介和linux下应用iscsi技术

SAN之Iscsi简介和linux下应用iscsi技术储存局域网络(SAN)储存局域网络(Storage Area Network, 简称 SAN),这是个专门用来传输磁盘数据的网络。
能够实现 SAN 应用有 Fibre Channel、iSCSI 与 AoE 等等,其中以 Fibre Channel 价格最高、效能最优,而 iSCSI 是 Fibre Channel 之外较知名储存通讯协议,AoE 则是紧追在 iSCSI 的后起之秀。
以别于一般 TCP/IP 网络,通常默认 SAN 是使用光纤(FC,Fibre Channel)设备,不同的是 iSCSI 预设使用 Gigabit Ethernet(通常是以太网络铜线)来作传输媒介,促使 iSCSI 价格上比 Fibre Channel 低廉许多,这使得 iSCSI 让许多中小企业能够以较低门坎就可以实现 SAN 的应用。
本文主要介绍linux下的iscsi应用:一种在 TCP/IP 网络中使用 SCSI 命令来传输数据的标准通讯协议,iSCSI 在 OSI 七层模型中属于传输层(Transport Layer)的通讯协议,提供给 iSCSI Target 与 iSCSI Initiator 之间沟通。
经由 iSCSI 技术,我们能够提供 Block-Level I/O 给 Initiator 主机,其目的不外乎是「将磁盘扁平电缆网络化」、「把这台主机(Target 主机)幻化成另一台主机(Initiator 主机)的磁盘」以达成更大空间、更高 I/O 速度及具有冗余与高延展度的应用。
通常为了节省费用而使用铜线来当传输媒介。
在 SAN 中通常有两个角色Target与Initiator分别叙述如下:①、Target:称为 Target 的通常是「储存设备」(Storage Device),也就是存放数据的磁盘(以磁盘阵列居多),在我们使用 iSCSI 期间,会在 iSCSI 储存设备上去建立 LUN(Logical Unit Number)来提供给有 iSCSI Initiator 功能的主机来存取 iSCSI 储存设备。
Linux下把多个网卡设置成虚拟网卡的技巧方法

Linux下把多个网卡设置成虚拟网卡的技巧方法Linux下把多个网卡设置成虚拟网卡的技巧方法现在很多电脑都有不只一块网卡,但是一块网卡出现故障,整个网络都会中断。
但是在Linux系统中只要创建Linux虚拟网卡,就不会遇到这种麻烦。
本文就来介绍一下Linux下把多个网卡设置成多个虚拟网卡的技巧。
以eth0与eth1来虚拟成为bond0为例:------绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片。
设置方法1、创建虚拟网络接口配置文件ifcfg-bond0,并指定网卡IP:vi /etc/sysconfig/ network-scripts/ifcfg-bond0cat /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0BOOTPROTO=staticIPADDR=10.0.11.10NETMASK=255.255.252.0GATWAY=10.0.11.1ONBOOT=yesUSERCTL=noTYPE=Ethernet2、分别修改ifcfg-eth0和ifcfg-eth1-----不能设置有关IP,网关,子网掩码等信息。
cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPROTO=dhcpONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yesTYPE=Ethernetcat /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1BOOTPROTO=dhcpONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yesTYPE=Ethernet3、安装module因为虚拟网卡实在内核模块中实现的,所以需要安装有module,在/etc/modules.conf中添加如下内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0。
双网卡均衡负载

linux,bonding说明:绑定多块网卡为一个虚拟ip,类似csico的etherchannel,实现冗余或负载均衡和增加带宽的功能。
内核需要bonding的支持,察看是否挂在bonding,lsmod命令。
默认2.6内核中bonding 已经被编译为M的选项,不需重新编译内核。
其实Redhat关于bond,在kernel-doc里有一篇文档,讲述得非常详细,可以先看看/usr/share/doc/kernel-doc-2.6.18/Documentation/networking/bonding.txt一:不需重起的配置方法。
1 modprobe bonding miimon=1002 ifconfig bond0 192.168.1.1 netmask 255.255.255.03 ifenslave bond0 eth0 eth1二:重起仍然生效的配置方法一。
1关闭要绑定的物理网卡修改ifcfg-eth0和ifcfg-eth1的启动项BOOTPROTO=noneONBOOT=no2建立虚拟网卡在/etc/sysconfig/network-scripts/ 目录下建立ifcfg-bond0,并修改/etc/modprobe.conf文件实现开机自动挂载。
/etc/sysconfig/network-scripts/ifcfg-bond0 配置如下:DEVICE=bond0IPADDR=192.168.0.193NETMASK=255.255.255.0BOOTPROTO=staticONBOOT=yesGATEWAY=192.168.0.3/etc/modprobe.conf 配置如下:alias eth0 bnx2alias eth1 bnx2alias bond0 bondingoptions bonding miimon=100 mode=1(miimon是用来进行链路监测的。
比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)linux配置#cat /boot/config-kernel-version |grep -i bondingCONFIG_BONDING=m返回CONFIG_BONDING=m表示支持,否则需要编译内核使它支持bonding也可以用:查看一下内核是否已经支持bonding:modinfo bonding第一步:创建一个ifcfg-bondX# touch /etc/sysconfig/network-scripts/ifcfg-bond0 新建一个bond0配置文件# cat /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0BOOTPROTO=staticIPADDR=1.1.1.2NETMASK=255.255.255.0BROADCAST=1.1.1.255NETWORK=1.1.1.0GATEWAY=1.1.1.1ONBOOT=yesTYPE=Ethernet编辑ifcfg-bond0如上第二步:修改/etc/sysconfig/network-scripts/ifcfg-ethX这个实验中把网卡1和2绑定,修改/etc/sysconfig/network-scripts/ifcfg-ethX相应网卡配置如下:# cat /etc/sysconfig/network-scripts/ifcfg-eth1TYPE=EthernetDEVICE=eth1HWADDR=00:d0:f8:40:f1:a0 网卡1macBOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes# cat /etc/sysconfig/network-scripts/ifcfg-eth2TYPE=EthernetDEVICE=eth2HWADDR=00:d0:f8:00:0c:0c 网卡2macBOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes第三步:配置/etc/modprobe.conf,添加alias bond0 bonding# cat /etc/modprobe.confalias eth0 e100alias snd-card-0 snd-intel8x0options snd-card-0 index=0options snd-intel8x0 index=0remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0alias eth1 8139toooptions 3c501 irq=3alias eth2 tulip上面是三网卡本身的配置如果要绑定和做lacp只要再加上下面两条配置alias bond0 bonding 绑定options bond0 miimon=100 mode=4 mode=4是lacp第四步:配置/etc/rc.d/rc.local,添加需要绑定的网卡# cat /etc/rc.d/rc.localtouch /var/lock/subsys/local 配置本身就有这条命令ifenslave bond0 eth1 eth2 这条命令是添加需要绑定的网卡1和2到这里就完成bonding的配置了可以查看一下第五步:重启网络服务和重启pc#service network restart 重启网络服务# shutdown -r now 重启pc重启后可以查看bonding情况:网卡1和2 都绑定上了,模式为802.3ad# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)Bonding Mode: IEEE 802.3ad Dynamic link aggregationTransmit Hash Policy: layer2 (0)MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0802.3ad infoLACP rate: slowActive Aggregator Info:Aggregator ID: 1Number of ports: 2Actor Key: 9Partner Key: 1Partner Mac Address: 00:d0:f8:22:33:baSlave Interface: eth1MII Status: upLink Failure Count: 0Permanent HW addr: 00:d0:f8:40:f1:a0Aggregator ID: 1Slave Interface: eth2MII Status: upLink Failure Count: 0Permanent HW addr: 00:d0:f8:00:0c:0cAggregator ID: 1接口配置信息:新增了bond0的配置信息,接口bond0和eth1,eth2,绑定后三个接口使用的mac都是同一个:00:D0:F8:40:F1:A0# ifconfigbond0 Link encap:Ethernet HWaddr 00:D0:F8:40:F1:A0inet addr:1.1.1.2 Bcast:1.1.1.255 Mask:255.255.255.0inet6 addr: fe80::2d0:f8ff:fe40:f1a0/64 Scope:LinkUP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1RX packets:128 errors:0 dropped:0 overruns:0 frame:0TX packets:259 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:15466 (15.1 KiB) TX bytes:39679 (38.7 KiB)eth0 Link encap:Ethernet HWaddr 00:11:11:EB:71:E2inet addr:192.168.180.8 Bcast:192.168.180.15 Mask:255.255.255.240inet6 addr: fe80::211:11ff:feeb:71e2/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:311 errors:0 dropped:0 overruns:0 frame:0TX packets:228 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:30565 (29.8 KiB) TX bytes:35958 (35.1 KiB)eth1 Link encap:Ethernet HWaddr 00:D0:F8:40:F1:A0inet6 addr: fe80::2d0:f8ff:fe40:f1a0/64 Scope:LinkUP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1RX packets:54 errors:0 dropped:0 overruns:0 frame:0TX packets:97 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:6696 (6.5 KiB) TX bytes:13821 (13.4 KiB)Interrupt:209 Base address:0x2e00eth2 Link encap:Ethernet HWaddr 00:D0:F8:40:F1:A0inet6 addr: fe80::2d0:f8ff:fe40:f1a0/64 Scope:LinkUP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1RX packets:74 errors:0 dropped:0 overruns:0 frame:0TX packets:162 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:8770 (8.5 KiB) TX bytes:25858 (25.2 KiB)Interrupt:201 Base address:0x2f00lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:6283 errors:0 dropped:0 overruns:0 frame:0TX packets:6283 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:9783674 (9.3 MiB) TX bytes:9783674 (9.3 MiB)(二)锐捷交换机配置:lacp system-priority 100 全局配置lacp优先级interface GigabitEthernet 0/23no switchportlacp port-priority 100 接口的lacp优先级port-group 1 mode active 接口下开启lacp 主动模式interface GigabitEthernet 0/24no switchportlacp port-priority 100port-group 1 mode activeinterface AggregatePort 1no switchportno ip proxy-arpip address 1.1.1.1 255.255.255.0和linux成功建立lacp后状态信息如下:Show lacp summarySystem Id:100, 00d0.f822.33baFlags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs.A - Device is in active mode. P - Device is in passive mode.Aggregate port 1:Local information:LACP port Oper Port PortPort Flags State Priority Key Number State----------------------------------------------------------------------Gi0/23 SA bndl 100 0x1 0x17 0x3dGi0/24 SA bndl 100 0x1 0x18 0x3d Partner information:LACP port Oper Port PortPort Flags Priority Dev ID Key Number State---------------------------------------------------------------------Gi0/23 SA 255 00d0.f840.f1a0 0x9 0x2 0x3dGi0/24 SA 255 00d0.f840.f1a0 0x9 0x1 0x3d State表示状态信息:bndl表示lacp建立成功,sup表示不成功。