免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cgweb

Linux下双网卡绑定技术实现负载均衡和失效保护 ( 原 创 ) [复制链接]

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-03 17:33:522015元宵节徽章
日期:2015-03-06 15:50:39IT运维版块每日发帖之星
日期:2016-01-11 06:20:00IT运维版块每日发帖之星
日期:2016-03-19 06:20:0019周年集字徽章-19
日期:2019-09-06 18:56:11
发表于 2004-07-22 15:53 |显示全部楼层

Linux下双网卡绑定技术实现负载均衡和失效保护 ( 原 创 )

[root@rhas-13 network-scripts]# ifconfig 验证网卡的配置信息
bond0 Link encap:Ethernet HWaddr 00:0E:7F:259:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:18495 errors:0 dropped:0 overruns:0 frame:0
TX packets:480 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1587253 (1.5 Mb) TX bytes:89642 (87.5 Kb)

eth0 Link encap:Ethernet HWaddr 00:0E:7F:259:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:9572 errors:0 dropped:0 overruns:0 frame:0
TX packets:480 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:833514 (813.9 Kb) TX bytes:89642 (87.5 Kb)
Interrupt:11

eth1 Link encap:Ethernet HWaddr 00:0E:7F:259:8B
inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
UP BROADCAST RUNNING NOARP SLAVE MULTICAST MTU:1500 Metric:1
RX packets:8923 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:753739 (736.0 Kb) TX bytes:0 (0.0 b)
Interrupt:15

论坛徽章:
0
发表于 2004-07-22 16:03 |显示全部楼层

Linux下双网卡绑定技术实现负载均衡和失效保护 ( 原 创 )

就是因为只有一个逻辑的MAC,这样看来跟arp欺骗差不多

论坛徽章:
0
发表于 2004-07-22 16:04 |显示全部楼层

Linux下双网卡绑定技术实现负载均衡和失效保护 ( 原 创 )

当然如果它们是轮流工作就不会

论坛徽章:
0
发表于 2004-07-22 17:35 |显示全部楼层

Linux下双网卡绑定技术实现负载均衡和失效保护 ( 原 创 )

如果用单线程下载1个文件,他的速度是不是也比原来的快呢?

因为单独一个回话只能走一条路由,我想知道这个的测试结果

还有,高级路由策略也可以做负载均衡,他的原理是轮询方式,一个连接走这个,下一个连接走那个,这样来实现提速

关注上面那个问题,单线程下载单文件问题
ibmcate 该用户已被删除
发表于 2004-07-23 10:26 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2004-07-23 10:55 |显示全部楼层

Linux下双网卡绑定技术实现负载均衡和失效保护 ( 原 创 )

请问各位高手有没有在VM虚拟机下面实现过双网卡的绑定
谢谢

论坛徽章:
0
发表于 2004-07-23 10:57 |显示全部楼层

Linux下双网卡绑定技术实现负载均衡和失效保护 ( 原 创 )

原帖由 "ibmcate" 发表:
0模式我试过了,不能提供2倍的带宽,反而慢了.
我用的是同一批的TP-LINK 8139B
单网卡,拷文件一般能达到5M-10M
单线BONDING,也能达到3M以上.
双线BONDING,只有几佰个K,
拷的是同一个文件,文件为287M.
不知为什么..........



呵呵,关键得没说,这种模式应该把交换机的连接2条网线的端口做TRUNK

详细资料参考/usr/src/linux/Documentation/network/bonding.txt

不过是否真可以double速度,没试过。
ibmcate 该用户已被删除
发表于 2004-07-23 11:22 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
ibmcate 该用户已被删除
发表于 2004-07-23 11:46 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2004-07-23 13:32 |显示全部楼层

Linux下双网卡绑定技术实现负载均衡和失效保护 ( 原 创 )

[求助]请教双网卡问题!!!

作者:段誉     发表时间:2003/01/11 08:14pm

如何在一台装有Linux的机器下做双网卡绑定一个IP地址??
请大家指教,多谢!!!     
此文章相关评论:
该文章有26个相关评论如下:(点这儿可以发表评论)
无双         发表于: 2003/01/11 08:16pm
不可能

无双         发表于: 2003/01/11 08:17pm
可以一个网卡绑定多个地址
但不可以多网卡绑定一个地址

段誉         发表于: 2003/01/11 09:14pm
一个网卡绑定多个IP我知道,我现在就想问问,为什么不能两个网卡绑定一个?有明确的说明吗?
为什么SUN/IBM的机器就可以在增加软件的情况下,双网卡绑定一个IP?我想,Linux应该也可以做到的吧,只不过我不知道而已,:(。

无双         发表于: 2003/01/11 09:18pm
因为arp协议原因


段誉         发表于: 2003/01/11 09:19pm
[这个贴子最后由段誉在 2003/01/11 09:20pm 编辑]

说说为什么,可以吗?多谢!

无双         发表于: 2003/01/11 09:23pm
看一看ARP协议
TCP/IP在低层要把IP转换成硬件地址
然后才可以在网络上传输

如果一个IP对应多个硬件地址
那么没有办法转换

SUN的话是用改配置文件的方法实现的

diag         发表于: 2003/01/11 10:59pm
BSD 可以。。。TRUK 。。

无双         发表于: 2003/01/11 11:06pm
可以吗
但是双网卡同IP的话两个网卡不可能同时使用

diag         发表于: 2003/01/11 11:36pm
应该可以。。我帮看看。。我们的那个NAS 。。就是用FREEBSD 做的。。

两个网卡做的/

无双         发表于: 2003/01/11 11:39pm
那把做的方法写一下吧
大家学学

段誉         发表于: 2003/01/12 00:57am
好啊,多谢diag,把这个写写,:)

xunle回来啦         发表于: 2003/01/12 01:00am
可以的,我看过相关文章,不过因为没用到,所以没在意,我也找不到那文章了

okaxikiss         发表于: 2003/01/12 07:50am
下面引用由diag2003/01/11 11:36pm 发表的内容:
应该可以。。我帮看看。。我们的那个NAS 。。就是用FREEBSD 做的。。
两个网卡做的/

写出来大家学习学习嘛

ttyp0         发表于: 2003/01/12 10:09am
听说Intel服务器网卡两个口同一个ip连到Cisco35XX交换机全双工可以达到400M

depike         发表于: 2003/01/12 03:43pm
没错,intel的网卡可以实现双网卡绑定一个IP地址,但也是有要求的,具体的在Intel的站点上应该有,但我今天没找到
http://www.gx-wp.com/ycwz/internetadapter.htm

clic         发表于: 2003/01/12 04:06pm
bonding在内核2.4.x中已经包含了,只需要在编译的时候把网络设备选项中的Bonding driver support选中就可以了。
  然后,重新编译核心,重新起动计算机,执行如下命令:
  ismod bonding
  ifconfig eth0 down
  ifconfig eth1 down
  ifconfig bond0 ipaddress
  ifenslave bond0 eth0
  ifenslave bond0 eth1
  现在两块网卡已经象一块一样工作了.这样可以提高集群节点间的数据传输.
  你最好把这几句写成一个脚本,再由/etc/rc.d/rc.local调用,以便一开机就生效.
  bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两三块100兆网卡作bonding,可大大提高服务器到交换机之间的带宽.但是需要在交换机上设置连接bonding网卡的两个口子映射为同一个虚拟接口。

depike         发表于: 2003/01/12 04:15pm
多谢clic,有机会一定一试

无双         发表于: 2003/01/12 05:05pm
不错建议精华
而写到一句话中

race         发表于: 2003/01/12 07:26pm
我以前关心过这个事情,当时因为LINUX网关流量不大,没实际做捆绑,还有就是不知道对交换机设置有没有要求。

将多块网卡虚拟成为一块网卡,使其具有相同的IP地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding。这项技术其实在sun 和cisco中已经存在,分别称为Trunking和etherchannel技术,在Linux中,这种技术称为bonding。
bonding驱动最早来自于Donald Becker的beowulf对kernel2.0的补丁。但是已经有了很大的改进和变化,最早来自于extreme-linux和beowulf的工具已经不适用于现在版本的驱动了。
对于新版本的驱动,请参考本文最后的链结地址。
1、安装
1) 编译带有bonding driver的内核
对于最新版本的bonding驱动,使用内核2.2.18或以上版本(否则需要对内核打补丁)。
使用make menuconfig/xconfig/config来编译内核,并在"Network device support"部分选择"Bonding driver support",这里推荐配置该驱动为模块方式,因为目前这是传递给参数给驱动并配置多个bonding设备的唯一方法。
编译和安装新的内核和模块:
make dep;make clean;make bzImage;make modules;make modules_install;
2) 获取并安装用户管理工具
这个版本的bonding驱动需要新的ifenslave程序。来自extreme-linux和beowulf的原始工具程序不能在这里使用。内核 2.2.18及其以上版本在Documentation/network中包含文件ifenslave.c。对于更老的内核,请参考文章最后的资源链结部分的内容。
安装ifenslave.c:
# gcc -O2 -s -o ifenslave ifenslave.c# cp ifenslave /sbin/ifenslave
3) 配置系统
参考下一部分关于模块参数的内容。首先需要在/etc/conf.modules中添加如下内容:
alias bond0 bonding
使用标准的发布技术来定义bond0这个网络接口,例如在redhat发布中,在/etc/sysconfig/network-scripts目录中添加ifcfg-bond0文件:
DEVICE=bond0IPADDR=192.168.1.1NETMASK=255.255.255.0NETWORK=192.168.1.0BROADCAST=192.168.1.255ONBOOT=yesBOOTPROTO=noneUSERCTL=no
所有属于bond的接口动必须被定义为SLAVE或MASTER。例如,在Redhat中,如果希望定义eth0和eth1定义为属于接口bond0的一部分,那么它们的配置文件(ifcfg-eth0, ifcfg-eth1,等)间如下所示:
DEVICE=eth0USERCTL=noONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROTO=none

如果管理工具支持可以重新启动网络子系统或者仅仅启动bonding设备,否则重新启动机器。(对于redhat发布,使用`ifup bond0'或`/etc/rc.d/init.d/network restart')
如果你的发布提供的管理工具不支持在网络接口配置中定义master/slave,则需要使用下面的命令手工配置bonding设备:
# /sbin/ifconfig bond0 192.168.1.1 up# /sbin/ifenslave bond0 eth0# /sbin/ifenslave bond0 eth1
当然也可以将这些命令定义为一个脚本,以方便执行。
4) 模块参数
下面的模块参数可能被传递:
mode=
可能的值为0(默认的轮转模式round robin policy),或者1(热备份模式),参考下面的HA部分来得到更多的相关信息。
miimon=
整数值,定义MII链路监测频率(单位为频率)。默认值为0,表示关闭链路监测。如果希望使用链路监测,一个合适的值为100。参考HA部分得到更多信息。
downdelay=
在发现链路故障时,这里规定的整数值定义disable一个链路的延迟(单位为毫秒)。必须是miimon的整数倍。默认值为0。参考HA部分得到更多信息。
updelay=
侦测到"link up"状态时,这里规定的整数值定义了enable一个链路的延迟。必须是miimon的整数倍。默认值为0。参考HA部分得到更多信息。
如果需要定义多个bonding设备,驱动必须被多次加载。例如,对于有两个bonding设备的情况,/etc/conf.modlues必须包含如下内容:
alias bond0 bondingalias bond1 bonding
options bond0 miimon=100options bond1 -o bonding1 miimon=100
5) 测试配置
可以通过ifconfig命令来监测配置和传输策略,例如对于轮转策略,你应该得到如下信息:
[root]# /sbin/ifconfigbond0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4 inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1RX packets:7224794 errors:0 dropped:0 overruns:0 frame:0TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:0collisions:0 txqueuelen:0
eth0 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4 inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0collisions:0 txqueuelen:100 Interrupt:10 Base address:0x1080
eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4 inet addr:XXX.XXX.XXX.YYY Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100 Interrupt:9 Base address:0x1400
问题:
1. bonding会不会和SMP冲突?
不会,老的2.0.xx版本配合SMP使用会发生冲突,而新的内核不会发生问题。
2. 哪种类型的网卡可以用作bonding?
任何类型的网卡(甚至可以使用混合类型的网卡-一个Intel的therExpress PRO/100和a 3com 3c905b),甚至可以将两个Gigabit以太网卡bond在一起使用。
3. 我可以拥有多少个bonding设备?
对应于加载的一个模块,就可以拥有一个bonding设备,参考模块参数部分来了解如何实现。
4. 一个bonding设备可以有多少个salve网卡?
受限于linux可以支持的网卡数量和系统可以插接的网卡数量。
5. 当一个slave链路出现故障,会发生什么问题?
如果你的以太网卡支持MII状态监控,并且MII监测已经在驱动中被使用(参考模块参数部分内容),那么就不会出现什么不幸的结果。这个版本的 bonding驱动能得到MII信息并且根据链路状态来enable或者disable某个slave网卡。参考HA部分得到更多信息。
所有不能报告自己的链路状态的以太驱动不能很好地处理这种情况。bonding驱动不能连续发送数据报,而导致某些数据报丢失。而重传可能会引起严重的性能问题(如果一块网卡丢失,那么可能会对TCP或UDP带来严重的性能影响)。
6. bonding能被用作高可用性项目么?
当然可以,如果使用了MII监测,并且你所有的网卡驱动都支持MII链路状态汇报。参考HA部分内容。
7. bonding能适用于哪种类型的switches/systems?
在轮转模式,它和下面支持trunking的系统能一起工作:
* Cisco 5500 series (参考EtherChannel支持相关内容)。* SunTrunking software.* Alteon AceDirector switches / WebOS (使用Trunks).* BayStack Switches (trunks必须被配置). 可堆叠的模块(450)能在不同的物理单元的端口中定义* Linux bonding.
对于热备份模式下,它能和一切二层交换机工作。
8. 一个bonding设备的MAC来自于哪个网卡?
如果没有明显使用ifconfig来配置指定,bonding设备的MAC地址从它的第一个slave中得到。这个MAC地址随即被传递个所有其他的 slave设备,这些其他的slave设备将具有这个MAC,即使第一个Slave设备被去除。只有bonding设备重起或者down了,MAC地址才会改变。
如果希望修改MAC地址,可以使用ifconfig来设置:
# ifconfig bond0 ha ether 00:11:22:33:44:55
可以通过up/down设备,然后修改其slave的顺序来改变bonding设备的MAC地址:
# ifconfig bond0 down ; modprobe -r bonding# ifconfig bond0 .... up# ifenslave bond0 eth...
这个方法将自动从下一个将被添加的slave中得到地址。
为了恢复slave的MAC地址,需要将其从bonding设备中分离出来(`ifenslave -d bond0 eth0'),down掉该设备(`ifconfig eth0 down'),去除模块(`rmmod 3c59x'),然后重载其以使其从其eeproms中得到其MAC地址。若一个驱动被多个设备所拥有,那么需要将其全部down掉。另外一种方法是察看启动时该卡的MAC地址(dmesg或 tail /var/log/messages),并使用ifconfig来reset它:
# ifconfig eth0 down# ifconfig eth0 hw ether 00:20:40:60:80:A0
9. 哪些使用哪些传输模式?
轮转模式:基于slave的顺序,依次轮转通过不同网卡发送数据;
热备份模式:确保在同一时刻仅仅通过一个网卡发送数据,另外一个作为该激活卡的热备份,在激活卡出现故障时数据流马上切换到热备份卡,这种模式常常用于使用交换机的高可用性中(high availability solutions )
高可用性
为了使用bonding驱动实现高可用性,需要将该驱动编译为模块,因为目前这时传递参数给驱动的唯一方式。以后这种情况可能会改变。首先需要确保所有的网卡支持MII链路状态报告。在Linux2.2.17及以上版本中,所有的百兆以太网和yellowfin千兆以太网都支持MII链路状态报告。如果你的网卡驱动不支持这种技术,那么会将链路状态监测为有故障。
bonding驱动目前通过监测MII状态注册器来侦测其所有的slave链路。侦测间隔有模块参数"miimon"来定义。该值为整数值,单位为milliseconds。100ms是一个合适的值,因为太小的值可能影响系统性能。也就是说链路发生故障以后在100ms秒以内将会被发现。
例如:
# modprobe bonding miimon=100
或在/etc/modules.conf定义如下内容:
alias bond0 bondingoptions bond0 miimon=100
目前对高可用性有两个策略,依赖于主机是否
a) 主机连接到单台主机或支持trunking的交换机b) 主机连接到多个不同的交换机上,或单个不支持trunking的交换机
1) 在单交换机或主机上的HA-负载均衡
这种模式易于配置和理解,只需要简单的配置远程设备(主机或交换机)来将数据流量分散在多个端口(trunk, etherchannel等),并配置bonding接口。如果模块加载时指定了MII参数,MII将自动工作。可以通过去除或恢复不同的链路,然后再 log文件中察看驱动设备监测到了哪些信息。在监测时,你也许会遇到这样的问题:如果trunk连接的所有接口都down掉以后,有些具有bug的交换机会长时间地diable trunk。可以通过重新启动交换机来修正这些问题。
例1:主机和主机间实现倍速:
在每个主机中,运行:
# modprobe bonding miimon=100# ifconfig bond0 addr# ifenslave bond0 eth0 eth1
例 2:主机连接交换机以实现倍速:
在主机A中运行:
# modprobe bonding miimon=100# ifconfig bond0 addr # ifenslave bond0 eth0 eth1
在交换机中:
#对port1和port2设置trunking。
2) 在多个交换机或主机上的HA-负载均衡(或不支持trunking技术的单交换机情况)
这种模式更可能会出现问题,因为它依赖于这样的事实:虽然有多个端口,但是主机MAC地址只能被一个端口可见以避免混淆交换机。
如果需要知道哪个哪个端口是活动的,哪个是备份的,那就使用ifconfig。所有的备份接口设置有NOAEP标志。为了使用该模式,在加载时传递"mode=1"给模块:
# modprobe bonding miimon=100 mode=1
或者在/etc/modules.conf中添加如下内容:
alias bond0 bondingoptions bond0 miimon=100 mode=1
例1:使用多个主机和多个交换机来创建"无单故障点瓶颈"解决方案:
在这种配置下,这里有一个ISL- 交换机间连接(Inter Switch Link,可能是一个trunk),多个主机(host1, host2 ...)都同时连接到交换机,并且多个端口连接到外部网络(port3...),每个主机中同时只有一个slave是激活的,但是所有的链路仍然被监测 (系统能监测到活动链路的故障并启动备份链路)。
如果host1和host2具有同样的功能,并且被用在负载均衡中,那么将host1的活动接口连接到其中一个交换机而host2连接到另外一个交换机上是一个非常不错的选择。这种系统在单个主机、交换机或者线路出问题时仍能保证工作。最糟糕可能情况是,单个交换机出现故障,其中一台主机将不可访问,直到另外一个交换机维护的转发表过期,另外一个主机才会转换激活接口到正常的交换机上。
例 2:使用多个以太网卡连接到一个交换机,以应付NIC故障的情况,以提高可用性:
在主机A中:
# modprobe bonding miimon=100 mode=1 # ifconfig bond0 addr# ifenslave bond0 eth0 eth1
在交换机中:
# (可选地)最小化转发表过期时间
每次主机切换其活动接口,它将使用新的接口直到该接口出现故障。在这个例子中,主机受交换机转发表的过期时间影响很大。
3) 调整交换机的频率
如果交换机转换到备份接口需要花费太长的时间,一般来说都希望在当前接口发生故障的情况下立即启用备用接口。可以通过传递模块参数"downdelay"来实现减少完全disable一个接口的延迟。
当一个交换机重启以后,可能出现其端口在端口可用以前报告"link up"状态。这可能使得bonding设备使用还不可用的端口这可能通过传递模块参数"updelay"来延迟活动端口被重新可用的时间。
当一个主机和交换机重新交互以确定一个丢失的链路也会出现同样的问题。
在bonding接口丢失了其所有的slave链路的情情况下,则驱动将马上使用第一个up的接口,而不受updelay参数的限制。这样可以减少系统down的时间。
例如:
# modprobe bonding miimon=100 mode=1 downdelay=2000 updelay=5000# modprobe bonding miimon=100 mode=0 downdelay=0 updelay=5000
4) 限制
主要限制是:
只有链路状态被监控,如果交换机本身down掉了,例如不再转发数据但是链路仍然完好。则链路不会被diable。另外一个监测故障链路的方式统计一个沉重负载主机的接入数据帧数量。但是对于哪些负载较小的服务器则不大适用。
资源链结
Donald Becker的以太驱动和diag程序可以在下面的到:
- http://www.scyld.com/network/- http://cesdis.gsfc.nasa.gov/linux/drivers/ (seems to be dead now)- ftp://cesdis.gsfc.nasa.goc/pub/linux/drivers/ (seems to be dead now)
还可以在www.scyld.com得到很多关于ethernet、NWay和MII等信息。Y
对于新版本的驱动,牢的内核补丁和更新的用户空间工具可以在Willy Tarreau的网站中得到:
- http://wtarreau.free.fr/pub/bonding/- http://www-miaif.lip6.fr/willy/pub/bonding/
为了得到最新的关于Linux Kernel开发信息,请关注:
http://boudicca.tux.org/hypermail/linux-kernel/latest/
Linux2.4.x内核bonding的实现
因为bonding在内核2.4.x中已经包含了,只需要在编译的时候把网络设备选项中的Bonding driver support选中就可以了。然后,重新编译核心,重新起动计算机,执行如下命令:
insmod bondingifconfig eth0 downifconfig eth1 downifconfig bond0 ipaddressifenslave bond0 eth0ifenslave bond0 eth1
现在两块网卡已经象一块一样工作了.这样可以提高集群节点间的数据传输。你最好把这几句写成一个脚本,再由/etc/rc.d/rc.local调用,以便一开机就生效。
bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两三块100兆网卡作bonding,可大大提高服务器到交换机之间的带宽.但是需要在交换机上设置连接bonding网卡的两个口子映射为同一个虚拟接口(trunking技术)。
下面是引自邮件列表的一个信,希望能对出现问题时有所帮助:
I have found a solution to another problem with the bonding driver. If you ifconfig down an enslaved eth device, the bonding driver is not notified and if there is an attempt to use the device then a crash results. I have added a one line fix to dev_close in net/core/dev.c /* if the device is a slave we should not touch it*/ if(dev-flags&IFF_SLAVE) return -EBUSY; I put it after the check to see if the interface is up. This may not be the best solution but it prevents the kernel crashes and as bond_release is not implemented there is not much point making the device release it`s self. Since I made this change and the one in my last message I have not been able to produce a crash. (here is a script which will cause the crash on 2.2.16) #!/bin/bash insmod eepro100 insmod bonding ifconfig bond0 192.168.1.2 up ifenslave bond0 eth0 ifconfig eth0 down ifconfig bond0 down ifconfig bond0 192.168.1.2 up ifconfig bond0 down Again, if someone could confirm this fix it would be good. '
文章来源:LinuxAid


无双         发表于: 2003/01/12 07:38pm
楼上的不错
哪里找到的

diag         发表于: 2003/01/12 09:00pm
交换机之间的带宽.但是需要在交换机上设置连接bonding网卡的两个口子映射为同一个虚拟接口。


这样的SWITCH 都贵。。。。

星号         发表于: 2003/01/13 08:37am
虚拟接口的英文是什么?详细点说说,给点资料也可以啊

wind521         发表于: 2003/01/13 09:11am
race老大写的太棒了
:)

学到了太多了,以前只知道怎么样去作,不过对于原理部分知道的太少了
谢谢!

我爱臭豆腐         发表于: 2003/01/13 04:41pm
race:
    每次你都能够找到这么好的文章啊:)看来你来北京不请你吃饭都不行了:)

dykeyer         发表于: 2003/01/13 05:22pm
up!!!
学习了,谢谢

Fun-FreeBSD         发表于: 2003/01/13 06:05pm
下面引用由diag2003/01/11 10:59pm 发表的内容:
BSD 可以。。。TRUK 。。


怎么在BSD上做?贴出来,瞧瞧啊~,急人~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP