在linux(redhat)下双网卡负载均衡(lacp)

合集下载

Linux系统双网卡聚合配置方式

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下的多网卡接口的一种负载均衡算法

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下配置双网卡桥接

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下双网卡冗余

Linux下双网卡冗余
options bond0 miimon=100 mode=1 primary=eth0
建议使用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之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虚拟网卡,就不会遇到这种麻烦。

本文就来介绍一下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监测一次链路连接状态,如果有一条线路不通就转入另一条线路。

在linux(ubuntu)下虚拟机下双网卡负载均衡(lacp)

在linux(ubuntu)下虚拟机下双网卡负载均衡(lacp)

一、配置虚拟机虚拟机上映射物理网卡设置Edit→virtual network edit-→host virtual network mapping 见下图2.在主界面下:点击edit virtual machine seting 弹出如下三个网卡第一个网卡就设置默认桥模式:vmnet0(default bridged)每二个网卡点击custom设置 vmnet1(bridged)每三个网卡点击custom设置 vmnet2(bridged)二、配置双网卡做lacp∙mode=0 (balance-rr): 採取依序使用的連線的方式,提供了負載均衡及容錯的功能λ∙mode=1 (active-backup): 眾多的連線中,只有一個是啟用的狀態,當啟用的連線失效(敗),則由備援的連線接手,提供容錯機制λ∙mode=2 (balance-xor): 採用xor的演算法來選擇傳輸的連線,其結果是以目的地MAC為基準選擇哪一條連線;提供了負載均衡及容錯機制λ∙mode=3 ( broadcast): 把封包送到所有的連線,當有連線失效沒有任何downtime,但此法過於浪費連線資源;有容錯機制λ∙mode=4 (802.3ad, LACP): IEEE 802.3ad Dynamic Link Aggregation協定;提供較好的機制,並可搭配802.1Q trunking同時介接不同的VLAN;惟獨此法必須與支援802.3ad的交換機介接,並且每個slave的驅動程式都需支援ethtool擷取介面的訊息, 較為豪華,但是提供了相當優良的應用,負載均衡及容錯機制λ∙mode=5 (balance-tlb): Adaptive Transmit load balancing; 無須交換機支援但slave驅動程式需支援ethtool;根據連線介面卡的負載決定traffic如何送出,回覆的traffic則由送出的salve接收λ∙mode=6 (balance-alb): 包含了mode 5所有功能及需求,再加上接收traffic時的負載均衡.编辑/etc/network/interfacesauto lo bond0 eth3 eth4iface bond0 inet staticaddress 1.1.1.2netmask 255.255.255.0network 1.1.1.0gateway 1.1.1.1up /sbin/ifenslave bond0 eth3up /sbin/ifenslave bond0 eth4iface lo loopbackiface eth3 inet staticaddress 1.1.2.4netmask 255.255.255.0iface eth4 inet staticaddress 1.1.2.5netmask 255.255.255.0再编辑 /etc/modprobe.configalias bond0 bondingoptions bonding mode=4 miimon=100接着:/etc/modulesbonding mode=4 miimon=100最后重启网络即可/etc/init.d/networking restart注:最好重启一下系统Linux下的绑定状态:root@qinyb-vmubuntu:~/下载# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)Bonding Mode: load balancing (round-robin)MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth3MII Status: upLink Failure Count: 0Permanent HW addr: 00:0c:29:72:71:12Slave Interface: eth4MII Status: upLink Failure Count: 0Permanent HW addr: 00:0c:29:72:71:1c接口配置信息:root@qinyb-vmubuntu:~/下载# ifconfigbond0 Link encap:以太网硬件地址 00:0c:29:72:71:12inet 地址:1.1.1.2 广播:1.1.1.255 掩码:255.255.255.0inet6 地址: fe80::20c:29ff:fe72:7112/64 Scope:LinkUP BROADCAST RUNNING MASTER MULTICAST MTU:1500 跃点数:1 接收数据包:395 错误:0 丢弃:0 过载:0 帧数:0发送数据包:1724 错误:0 丢弃:0 过载:0 载波:0碰撞:0 发送队列长度:0接收字节:56440 (56.4 KB) 发送字节:152556 (152.5 KB)eth2 Link encap:以太网硬件地址 00:0c:29:72:71:08inet 地址:192.168.181.4 广播:192.168.181.255 掩码:255.255.255.0 inet6 地址: fe80::20c:29ff:fe72:7108/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1接收数据包:52500 错误:0 丢弃:0 过载:0 帧数:0发送数据包:30026 错误:0 丢弃:0 过载:0 载波:0碰撞:0 发送队列长度:1000接收字节:49586740 (49.5 MB) 发送字节:2592952 (2.5 MB)中断:18 基本地址:0x2000eth3 Link encap:以太网硬件地址 00:0c:29:72:71:12inet 地址:1.1.2.4 广播:1.1.2.255 掩码:255.255.255.0UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 跃点数:1 接收数据包:205 错误:0 丢弃:0 过载:0 帧数:0发送数据包:891 错误:0 丢弃:0 过载:0 载波:0碰撞:0 发送队列长度:1000接收字节:39490 (39.4 KB) 发送字节:80263 (80.2 KB)中断:16 基本地址:0x2080eth4 Link encap:以太网硬件地址 00:0c:29:72:71:12inet 地址:1.1.2.5 广播:1.1.2.255 掩码:255.255.255.0UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 跃点数:1 接收数据包:190 错误:0 丢弃:0 过载:0 帧数:0发送数据包:833 错误:0 丢弃:0 过载:0 载波:0碰撞:0 发送队列长度:1000接收字节:16950 (16.9 KB) 发送字节:72293 (72.2 KB)中断:17 基本地址:0x2400lo Link encap:本地环回inet 地址:127.0.0.1 掩码:255.0.0.0inet6 地址: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 跃点数:1接收数据包:899 错误:0 丢弃:0 过载:0 帧数:0发送数据包:899 错误:0 丢弃:0 过载:0 载波:0碰撞:0 发送队列长度:0接收字节:97324 (97.3 KB) 发送字节:97324 (97.3 KB)Eth2 连外网没有参与绑定。

Red_Hat_Enterprise_Linux-5lvs负载均衡安装指导(官方中文)

Red_Hat_Enterprise_Linux-5lvs负载均衡安装指导(官方中文)

Red Hat Enterprise Linux 5群集套件概述红帽企业版 Linux 5 的红帽群集套件群集套件概述Red Hat Enterprise Linux 5 群集套件概述红帽企业版 Linux 5 的红帽群集套件版 3Copyright © 2009 Red Hat, Inc.The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at /licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.Linux® is the registered trademark of Linus Torvalds in the United States and other countries.Java® is a registered trademark of Oracle and/or its affiliates.XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.All other trademarks are the property of their respective owners.1801 Varsity DriveRaleigh, NC 27606-2072 USAPhone: +1 919 754 3700Phone: 888 733 4281Fax: +1 919 754 3701Red Hat Cluster Suite概述提供了对用于Red Hat Enterprise Linux 5 的Red Hat Cluster Suite的概述。

在LINUX(REDHAT)下双网卡负载均衡(LACP)

在LINUX(REDHAT)下双网卡负载均衡(LACP)

在LINUX(REDHAT)下双网卡负载均衡(LACP)(一)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 bond0bonding #cat/etc/modprobe.confalias eth0e100alias snd-card-0snd-intel8x0options snd-card-0index=0options snd-intel8x0index=0remove snd-intel8x0{/usr/sbin/alsactl store0>/dev/null2>&1||:;};/sbin/modprobe-r --ignore-remove snd-intel8x0alias eth18139toooptions3c501irq=3alias eth2tulip上面是三网卡本身的配置如果要绑定和做lacp只要再加上下面两条配置alias bond0bonding绑定options bond0miimon=100mode=4mode=4是lacp第四步:配置/etc/rc.d/rc.local,添加需要绑定的网卡#cat/etc/rc.d/rc.localtouch/var/lock/subsys/local配置本身就有这条命令ifenslave bond0eth1eth2这条命令是添加需要绑定的网卡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(March23,2006)Bonding Mode:IEEE802.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 #ifconfigbond0Link encap:Ethernet HWaddr00:D0:F8:40:F1:A0inet addr:1.1.1.2Bcast:1.1.1.255Mask:255.255.255.0inet6addr:fe80::2d0:f8ff:fe40:f1a0/64Scope:LinkUP BROADCAST RUNNING MASTER MULTICAST MTU:1500Metric:1RX packets:128errors:0dropped:0overruns:0frame:0TX packets:259errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RX bytes:15466(15.1KiB)TX bytes:39679(38.7KiB)eth0Link encap:Ethernet HWaddr00:11:11:EB:71:E2inetaddr:192.168.180.8Bcast:192.168.180.15Mask:255.255.255.240 inet6addr:fe80::211:11ff:feeb:71e2/64Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500Metric:1 RX packets:311errors:0dropped:0overruns:0frame:0TX packets:228errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RX bytes:30565(29.8KiB)TX bytes:35958(35.1KiB)eth1Link encap:Ethernet HWaddr00:D0:F8:40:F1:A0inet6addr:fe80::2d0:f8ff:fe40:f1a0/64Scope:LinkUP BROADCAST RUNNING SLAVE MULTICASTMTU:1500Metric:1RX packets:54errors:0dropped:0overruns:0frame:0TX packets:97errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RX bytes:6696(6.5KiB)TX bytes:13821(13.4KiB)Interrupt:209Base address:0x2e00eth2Link encap:Ethernet HWaddr00:D0:F8:40:F1:A0inet6addr:fe80::2d0:f8ff:fe40:f1a0/64Scope:LinkUP BROADCAST RUNNING SLAVE MULTICAST MTU:1500Metric:1RX packets:74errors:0dropped:0overruns:0frame:0TX packets:162errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RX bytes:8770(8.5KiB)TX bytes:25858(25.2KiB)Interrupt:201Base address:0x2f00lo Link encap:Local Loopbackinet addr:127.0.0.1Mask:255.0.0.0inet6addr:::1/128Scope:HostUP LOOPBACK RUNNING MTU:16436Metric:1RX packets:6283errors:0dropped:0overruns:0frame:0TX packets:6283errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RX bytes:9783674(9.3MiB)TX bytes:9783674(9.3MiB)(二)锐捷交换机配置:lacp system-priority100全局配置lacp优先级interface GigabitEthernet0/23no switchportlacp port-priority100接口的lacp优先级port-group1mode active接口下开启lacp主动模式interface GigabitEthernet0/24no switchportlacp port-priority100port-group1mode activeinterface AggregatePort1no switchportno ip proxy-arpip address1.1.1.1255.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 port1:Local information:LACP port Oper Port Port Port Flags State Priority Key Number State----------------------------------------------------------------------Gi0/23SA bndl1000x10x170x3dGi0/24SA bndl1000x10x180x3d Partner information:LACP port Oper Port Port Port Flags Priority Dev ID Key Number State---------------------------------------------------------------------Gi0/23SA25500d0.f840.f1a00x90x20x3dGi0/24SA25500d0.f840.f1a00x90x10x3d State表示状态信息:bndl表示lacp建立成功,sup表示不成功。

linux下双网卡绑定配置

linux下双网卡绑定配置

在linux下如何做双网卡绑定实现冗余?一、Linux Channel Bonding目前在各个发行版本的 Linux 中,使用最普遍的内核版本应该就是 2.4.x的版本了,而Linux Channel Bonding,在 Linux 2.4 的内核中,就提供了 bonding 的驱动,可以支持把多个网络适配器集合在一起,当作一个网络适配器来使用。

在 Linux 下,网卡的高可用性是通过 MII 或者 ETHTOOL 的状态监测来实现的,所以,需要检查系统中的网络适配器是否支持 MII 或者 ETHTOOL 的连状态监测。

可以用命令 "ethtool eth0" 来检查,如果显示的 "Link detected:" 信息与实现的连接状态一致,就没有问题。

如果系统中的网络适配器不支持 MII 或者 ETHTOOL 状态监测,当连接失效时,系统就不能检测到,同时,在 bonding 驱动加载时,会记录一条不支持 MII 和 ETHTOOL 的警告信息。

下面简单介绍一下实现的基本方法:首先,我们需要打开内核对 bonding 支持。

设置内核 "make menuconfig/xconfig/config",在"Network device support"区段中选择"Bonding driver support",建议设置该驱动程序为模块,这样才能支持给驱动传递参数和设置多个bonding设备。

生成并安装新的内核和模块。

Bonding 的设置我们需要在 /etc/modules.conf 中加入两行,这样才可以在设置了 bond 设置后,系统启动的时候自动加载 bonding 的驱动程序alias bond0 bondingoptions bond0 miimon=100 mode=1当mode=1时为主备模式,mode=0时为负载均衡模式。

Linux下的网络流量控制和负载均衡技巧

Linux下的网络流量控制和负载均衡技巧

Linux下的网络流量控制和负载均衡技巧随着互联网的发展,网络流量的控制和负载均衡在现代计算机网络中变得越来越重要。

在Linux操作系统下,我们可以利用一些技巧来实现网络流量的控制和负载均衡,从而提高网络的性能和稳定性。

一、流量控制技巧1. 网络流量监控在Linux中,我们可以使用一些工具来监控网络流量,例如iftop、ntop和vnStat等。

这些工具可以帮助我们实时监控网络中的流量情况,了解网络使用的情况,以便做出相应的调整。

2. 限制带宽为了控制网络中的流量,我们可以使用Linux的qdisc和class来实现带宽的限制。

通过设置合适的带宽限制,可以避免某些应用程序或用户占用过多的带宽,保证网络的公平性和稳定性。

3. 软件防火墙Linux中的iptables工具可以用于实现网络流量的策略型防火墙。

我们可以根据需要,对进出网络的流量进行限制,以实现网络流量的控制和安全性的提升。

二、负载均衡技巧1. 负载均衡算法在Linux中,可以选择多种负载均衡算法来实现负载均衡,例如轮询、加权轮询、最小连接和哈希等。

根据实际情况选择合适的负载均衡算法,可以将流量均匀地分配给不同的服务器,提高系统的处理能力和响应速度。

2. 使用代理服务器通过使用代理服务器,我们可以将进入系统的流量分发到多个后端服务器上。

不仅可以提高系统的性能,还可以实现负载均衡和故障恢复的功能。

常用的代理服务器有Squid和Nginx等。

3. 软件负载均衡器在Linux中,我们可以使用一些软件负载均衡器来实现流量的均衡分配,如LVS(Linux Virtual Server)和HAProxy等。

这些软件负载均衡器可以根据实际需求,对流量进行智能地调度和分发,提高系统的可用性和性能。

三、其他技巧1. 网络优化通过一些网络优化技巧,可以提高Linux系统的网络性能。

比如优化TCP/IP协议栈、调整网络缓冲区大小、使用适当的网络设备驱动程序等。

Linux服务器下多网卡负载均衡的研究与实现

Linux服务器下多网卡负载均衡的研究与实现

Linux服务器下多网卡负载均衡的研究与实现摘要负载均衡技术的使用能够在不对网络中各种设备进行重大改造的条件下提高各种服务的质量,是解决当前网络业务迅猛增加和升级硬件设施之间矛盾的一个有效措施,本文简单描述了关于负载均衡方面的研究现状,重点介绍了现今linux bonding技术及其基于bonding技术的几种负载均衡的算法,并对此进行了简要的分析与研究,提出了其不足之处,针对这些不足提出了一种多网卡情况下基于传输协议的发送方面的算法,并对此进行了简单的实现,最后对此进行了测试,测试结果表明该方法的可用性。

关键词 linux bonding;传输协议;负载均衡;高可用性;1 引言现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性、可用性及其I/O速度就显得非常的重要,保持服务器的高可用性和安全性是企业级IT环境的重要指标,其中最重要的一点是服务器网络连接的高可用性,为实现这些要求,现在服务器大都采用多网卡配置,系统大都采用现在非常流行的linux作为服务器工作的环境。

现在带宽已经不是服务质量提高的瓶颈了,相对的网络设备和服务器的处理能力就渐渐成为新的瓶颈。

为提高服务器的网络连接的可用性和可靠性,目前Sun公司的Trunking技术、3Com公司的DynamicAccess技术、Cisco公司的Etherchannel技术等等都在研究将服务器的多个网卡接口绑定在一起的链路聚集技术, 链路聚集技术将多个链路虚拟成一个逻辑链路进而提供了一种廉价、有效的方法扩展网络设备和服务器的带宽,提高网络的灵活性与可用性。

本文介绍linux下的bonding 技术,linux 的内核中采用了这种技术,利用bonding技术可以将多块网卡接口通过绑定虚拟成为一块网卡,在用户看来这个聚合起来的设备好像是一个单独的以太网接口设备,通俗点讲就是多块网卡具有相同的IP地址而并行连接聚合成一个逻辑链路工作。

深度分析Linux网卡绑定的七种模式

深度分析Linux网卡绑定的七种模式

深度分析Linux下双网卡绑定七种模式现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多。

而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在网卡产商也会出一些针对windows操作系统网卡管理软件来做网卡绑定(windows操作系统没有网卡绑定功能需要第三方支持)。

进入正题,linux有七种网卡绑定模式:Mode=0:round robinMode=1:active-backupMode=2:load balancing (xor)Mode=3:fault-tolerance (broadcast)Mode=4:lacpMode=5:transmit load balancingMode=6:adaptive load balancing第一种:bond0:round robin标准:round-robin policy: Transmit packets in sequential order from the first available slave through the last. This mode provides load balancing and fault tolerance.特点:(1)所有链路处于负载均衡状态,轮询方式往每条链路发送报文,基于per packet方式发送。

服务上ping 一个相同地址:1.1.1.1 双网卡的两个网卡都有流量发出。

负载到两条链路上,说明是基于per packet方式,进行轮询发送。

(2)这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。

实际绑定结果:cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)Bonding Mode: load balancing (round-robin)-----RR的模式MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth0MII Status: upLink Failure Count: 0Permanent HW addr: 74:ea:3a:6a:54:e3Slave Interface: eth1MII Status: upLink Failure Count: 0应用拓扑:交换机端需要配置聚合口,cisco叫port channel。

Linux双网卡绑定实现

Linux双网卡绑定实现

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.编辑虚拟网络接口配置文件,指定网卡IPvi /etc/sysconfig/ network-scripts/ ifcfg-bond0[root@redflag root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 2 #vi ifcfg-bond0将第一行改成 DEVICE=bond0# cat ifcfg-bond0DEVICE=bond0BOOTPROTO=staticIPADDR=172.31.0.13NETMASK=255.255.252.0BROADCAST=172.31.3.254ONBOOT=yesTYPE=Ethernet这里要主意,不要指定单个网卡的IP 地址、子网掩码或网卡 ID。

LINUX 6.0双网卡绑定

LINUX 6.0双网卡绑定

双网卡绑定linux下双网卡绑定环境:rhel 6.01.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件DEVICE=bond0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.0.23NETMASK=255.255.255.224GATEWAY=192.168.128.233USERCTL=no这里要主意,不要指定单个网卡的IP地址、子网掩码或网卡ID。

将上述信息指定到虚拟适配器(bonding)中即可。

2.更改/etc/sysconfig/network-scripts/ifcfg-eth0网卡属性DEVICE=eth0ONBOOT=yesBOOTPROTO=noneMASTER=bond0USERCTL=no3.更改/etc/sysconfig/network-scripts/ifcfg-eth1网卡的属性DEVICE=eth1ONBOOT=yesBOOTPROTO=noneMASTER=bond0USERCTL=no文章出处:DIY部落4#vi/etc/modules.d/dist.conf或vi/etc/modprobe.d/dist.conf编辑/etc/modules.d/dist.conf文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为bond0加入下列两行alias bond0bondingoptions bond0miimon=100mode=1说明:miimon是用来进行链路监测的。

比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。

mode=0表示load balancing(round-robin)为负载均衡方式,两块网卡都工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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表示不成功。

相关文档
最新文档