freebsd下设置lagg实现网卡间负载均衡

在freebsd系统下的lagg可以实现failover、loadbalance、lacp等功能。
下面介绍一下比较常用的两种功能:
failover:这个模式可以设定主要的和次要的网卡,当主网卡无法使用时,会自动切换用次网卡
lacp:链路聚合控制协议(Link Aggregation Control Protocol, LACP)这个模式会将流量分散到各个网卡中,当硬件有变化时会自动侦测并且更改相应的配置
备注:使用lacp模式需要交换机的支持,所以使用前最好先看一下你交换机的说明文件!

要使用lagg必须先载入模块或将客观存在编译入内核中,本例使用载入模块方式。

以module调入(kldload), 注意调入前先确认if_lagg.ko模块存在于/boot/kernel/

一、载入if_lagg.ko模块:

# kldload if_lagg

修改loader.conf配置文件,加入以下参数,设置开机自动载入if_lagg.ko模块:
if_lagg_load=”YES”
若要编译入内核中,只需加入device lagg参数,详细怎么编译内核可参考文章”freebsd系统下编译内核“此处不再做介绍!

二、修改/etc/rc.conf配置文件,开启lagg,此例假设网卡标识为em0和bce0,使用failover模式,

ifconfig_em0=”up polling”
ifconfig_bce0=”up polling”
cloned_interfaces=”lagg0″
ifconfig_lagg0=”laggproto failover laggport em0 laggport bce0 192.168.1.2 netmask 255.255.255.0
ifconfig_lagg0_alias0=”inet 10.0.0.1 netmask 255.0.0.0″

注:如果要用lacp模式,只需修改laggproto failover为laggproto lacp既可,其它配置都和failover一样,如:
ifconfig_lagg0=”laggproto lacp laggport em0 laggport bce0 192.168.1.2 netmask 255.255.255.0

三、重启网络即可。