网卡绑定Slackware 12.1
当我建立一个NFS存储服务器时,我站在一个问题的前面。 我有必要在每个角度都有冗余。 我解决了使用带有冗余电源的服务器硬件,Raid 1+ 0 Raid阵列和每个电源两个UPS的冗余问题。 我脑海中唯一留下的是网络故障呢? 那么只需使用两个NIC网卡,并将它们挂钩到自己的交换机上。 伟大的想法,但如何让他们作为一个单位发挥一个单一的知识产权? NIC Bonding是我的解决方案。 经过几个小时的互联网研究,使用ifenslave来构建解决方案。
这是我如何做到的:
为了获得容错,我们要绑定NIC。 我们需要编译一个有助于我们进行绑定的小程序。 转到/ usr / src / linux /文档/网络
。
输入:
gcc -Wall -O -I/usr/src/linux/include ifenslave.c -o ifenslave
并将其复制到/ sbin,方法
是输入:
cp ifenslave /sbin/ifenslave
现在改为目录/etc/rc.d
并创建rc.bond。
类型
touch rc.bond
这将是绑定的启动脚本,需要执行。
类型
chmod 755 rc.bond
通过键入开始vi
vi rc.bond
并输入以下内容:
#!/bin/sh # case "$1" in 'start') echo "start bond0" #modprobe bonding mode=balance-alb miimon=100 modprobe bonding mode=balance-rr miimon=100 modprobe tg3 ifconfig bond0 up ifenslave bond0 eth0 ifenslave bond0 eth1 #TODO need to be changed ifconfig bond0 hw ether 00:16:3e:aa:aa:aa ;; 'stop') ifconfig bond0 down rmmod bonding rmmod tg3 ;; *) echo "Usage: $0 {start|stop}" ;; esac
要保存文件命中<ESC>
并输入:wq <enter>
。
现在我们需要确保该脚本在引导时启动。 输入
vi rc.M
并向下滚动到“ #初始化网络硬件 ”,并将光标定位在该行之前,然后点击“a”进行插入。 输入以下内容:
# If script rc.bond is executeable then start it if [ -x /etc/rc.d/rc.bond ]; then . /etc/rc.d/rc.bond start fi
按<ESC>
键入:wq <enter>
保存并退出。
现在是编辑最后一个脚本的时候了。 类型
vi rc.inet1.conf
并确保NIC没有为DHCP分配或配置静态IP。 它应该是这样的:
IPADDR[0]="" NETMASK[0]="" USE_DHCP[0]="" DHCP_HOSTNAME[4]="" IPADDR[1]="" NETMASK[1]="" USE_DHCP[1]="" DHCP_HOSTNAME[1]=""
并在默认网关被分配之前添加这些行:
IFNAME[4]="bond0" IPADDR[4]="XXX.XX.XX.XX" NETMASK[4]="255.255.255.0" USE_DHCP[4]="" DHCP_HOSTNAME[4]=""
点击<ESC>
键入:wq <enter>
写入和退出。 重新启动系统并备份登录后; 输入:
cat /proc/net/bonding/bond0
你应该看到类似的东西:
MII状态:up
MII轮询间隔(ms):100
上升延迟(ms):0
下降延迟(ms):0
从接口:eth0
MII状态:up
链接失败计数:0
永久HW地址:00:e0:81:5e:9e:c4
从接口:eth1
MII状态:up
链接失败计数:0
永久HW地址:00:e0:81:5e:9e:c5
如果链接状态正常,您的系统在ping上响应,则所有内容都应该是正常的。 您还可以使用“监视”链接状态监视
mii-tool –w
它为您提供链接的实时状态。