电脑技术学习

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

dn001

  这几天公司里的服务器要用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<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> mtu 1500

   options=3b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>

   ether 00:1e:0b:ed:64:1c

   media: Ethernet autoselect (1000baseTX <full-duplex>)

   status: active

  bce1: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> mtu 1500

   options=3b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>

   ether 00:1e:0b:ed:64:1c

   media: Ethernet autoselect (1000baseTX <full-duplex>)

   status: active

  lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

   inet 127.0.0.1 netmask 0xff000000

  fec0: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> 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

标签: