Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

FreeBSD6.3下双网卡绑定详细过程

Posted on 2009-04-13 10:38 Prayer 阅读(387) 评论(0)  编辑 收藏 引用 所属分类: SOCKET

这几天公司里的服务器要用bonding,主要是做双网卡的冗余,网上说的最多的就是《FreeBSD上双网卡绑定提高带宽的做法》,研究了一下,把结果 给大家说说, linux的很简单,这里就不说了,照网上的资料就行了。freebsd的有点小难度,搞了几天,最初用lagg模块,照手册里的“链路聚合与故障转移” 部分做,做是做成的但是就是不能冗余,拔掉网络就不通了,最后决定用ng_fecg来做,下面是过程。


FreeBSD上双网卡绑定提高带宽的做法里,第3部分,《在FreeBSD5上用ng_fec实现双网卡绑定》,脚本的第一句就是/sbin/kldload ng_fec,要加载ng_fec ,如果你没有安装此模块,是加载不上的。

#使用kldstat查看模块,没有ng_fec,需要安装并加载(不用带-v参数,否则出来一堆,看都看不过来)
# kldstat   
Id Refs Address            Size     Name
1    1 0xffffffff80100000 8a2e40   kernel

#cd /usr/src/sys/modules/netgraph/
把下面三个模块安装了
netgraph fec socket
安装方法如下,直接进入到相应的目录,然后:
#make
#make install
#ls /boot/modules
ng_fec.ko netgraph.ko ng_socket.ko

#vi /boot/defaults/loader.conf
找到ng_fec,ether,socket并改成YES,让它可以自带加载(经测试不改系统也能自动加载)
ng_ether_load="YES"
ng_fec_load="YES"
ng_socket_load="YES"
然后重启系统。
再用kldstat查看加载情况
-bash-3.2$ kldstat
Id Refs Address            Size     Name
1    4 0xffffffff80100000 8a2e40   kernel
2    1 0xffffffff809a3000 104400   ng_fec.ko
3    3 0xffffffff80aa8000 10f0d8   netgraph.ko
4    1 0xffffffff811cb000 104000   ng_socket.ko


#vi /etc/fec.sh
#!/bin/sh
/usr/sbin/ngctl mkpeer fec dummy fec
/usr/sbin/ngctl msg fec0: add_iface '"bce0"'
/usr/sbin/ngctl msg fec0: add_iface '"bce1"'
/usr/sbin/ngctl msg fec0: set_mode_inet
/sbin/ifconfig fec0 promisc
/sbin/ifconfig bce0 promisc
/sbin/ifconfig bce1 promisc
/sbin/ifconfig fec0 此处写IP netmask 0xfffffe00
/sbin/ifconfig fec0 media 1000baseTX mediaopt full-duplex
/sbin/ifconfig fec0 up
/sbin/route add default 此外写默认网关

#vi /etc/rc.local
/etc/fec.sh

记得把rc.conf设置网卡的语句屏蔽掉,然后重启系统。


#ifconfig
bce0: flags=28943 mtu 1500
        options=3b
        ether 00:1e:0b:ed:64:1c
        media: Ethernet autoselect (1000baseTX )
        status: active
bce1: flags=28943 mtu 1500
        options=3b
        ether 00:1e:0b:ed:64:1c
        media: Ethernet autoselect (1000baseTX )
        status: active
lo0: flags=8049 mtu 16384
        inet 127.0.0.1 netmask 0xff000000
fec0: flags=28943 mtu 1500
        inet xxx.xxx.xxx.xxx netmask 0xfffffe00 broadcast xxx.xxx.xxx.255
        ether 00:1e:0b:ed:64:1c
        media: Ethernet none
        status: active


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理