close


freebsd 下双网卡冗余的解决方法


环境:两台中心交换机,开启vrrp双机热备模式,服务器 freebsd4.11,安装两块intel千兆网卡,分别接两台交换机的同一个vlan内的端口。
目的:一台交换机故障后,自动切换到备用交换机,服务器网卡随着切换到备用交换机,不中断网络。
实现方法,利用freebsd的ng_one2many 模块实现,具体方法如下:
__________________________________________________________
/sbin/kldload netgraph
/sbin/kldload ng_ether
/sbin/kldload ng_one2many
#/sbin/kldload ng_socket
/sbin/ifconfig em0 up
/sbin/ifconfig em1 up
/usr/sbin/ngctl mkpeer em0: one2many upper one
/usr/sbin/ngctl connect em0: em0:upper lower many0
/usr/sbin/ngctl connect em1: em0:upper lower many1
/usr/sbin/ngctl msg em1: setpromisc 1
/usr/sbin/ngctl msg em1: setautosrc 0
#failAlg=1 为负载均衡模式,不能实现容错; failAlg=2可以自动检测链路状态,自动切换
/usr/sbin/ngctl msg em0:upper setconfig "{ xmitAlg=1 failAlg=2 enabledLinks=[ 1 1] }"
/sbin/ifconfig em0 inet 10.140.202.13 netmask 0xffffff00
/sbin/route add default 10.140.202.1
__________________________________________________________ 
xmitAlg=1 两块网卡轮流发包,理论上可以增加输出带宽,实际上还是有些问题,在同一个网段不会有问题,经过路由器后会丢包,不知道什么原因
xmitAlg=2 两块网卡同时发同样的包,在数据传输上没有任何问题,但这样只会增加服务器和交换机的负担,达到的目的是两块网卡可以冗余。大流量的时候最好不用。

将/etc/rc.conf中的
defaultrouter=
ifconfig_em0=
等网卡设置注释掉,开机执行one2many.sh即可实现双网卡的冗余,正常情况下,两个网卡同时工作,负载均衡,当其中一个网卡链路不通时,自动转到另一个网卡工作。




http://bbs.5y6s.com/htm_data/20/0706/9348.html

arrow
arrow
    全站熱搜

    yves2005 發表在 痞客邦 留言(0) 人氣()