FreeBSD: поднимаем LACP

Автор: | 27/03/2012
 

Link Aggregation Control Protocol (LACP) — протокол, предназначенный для объединения нескольких физических каналов в один логический в сетях Ethernet.

Агрегированные каналы LACP используются как для повышения пропускной способности, так и повышения отказоустойчивости. Использование LACP в некоторых случаях позволяет обнаружить повреждённый канал, который бы при использовании обычной статической агрегации обнаружен бы не был. Описывается стандартом IEEE 802.3ad. (с) Wiki

Рассмотрим только вопрос настройки на стороне сервера. Операционная система FreeBSD 8.2, 2 внешних Ethernet-порта – vr0 и vr1.

Для использования LACP нам потребуется модуль lagg. Добавьте в L/boot/loader.conf строку:

if_lagg_load=”YES”

Или пересоберите ядро с опцией:

device lagg

Можно модуль загрузить в работающую систему вручную командой:

# kldload if_lagg

Проверьте загрузился ли он:

# kldstat
Id Refs Address    Size     Name
1    3 0xc0400000 bd97b4   kernel
2    1 0xc0fda000 9824     if_lagg.ko

Поднимаем интерфейсы:

# ifconfig vr0 up
# ifconfig vr1 up

Создадим и настроим сам интерфейс lagg, который будет заниматься балансировкой:

# ifconfig lagg0 create laggproto lacp laggport vr1 laggport vr0 77.***.***.10
netmask 255.255.255.0

Добавим шлюз:

# route add default 77.***.***.1

Проверим:

# ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:40:63:ec:73:19
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
vr1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:40:63:ec:73:19
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active

inet 77.***.***.10 netmask 0xffffff00 broadcast 77.***.***.255
media: Ethernet autoselect
status: active
laggproto lacp
laggport: vr0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: vr1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Нам важны две последние строки – они показывают что оба интерфейса в агрегации подняты и активны.

Все, сеть должна работать.

Что бы все это загружалось вместе с системой – добавим в /etc/rc.conf:

cloned_interfaces=”lagg0″
ifconfig_vr1=”up”
ifconfig_vr0=”up”
ifconfig_lagg0=”laggproto lacp laggport vr1 laggport vr0 77.***.***.10

netmask 255.255.255.0″
defaultrouter=”77.***.***.1″