Категорії
FreeBSD

Объединение сетевых интерфейсов под Freebsd используя lagg

Купили сервер. Захотелось объеденить 2 сетевушки, что бы работала как одна. Полез в инет и нашёл, что для этих случаев можно юзать ng_one2many. Попробовал делать по статье http://www.opennet.ru/tips/info/755.shtml, но на определённом этапе начал давать сбои, машина уходила в ребут. Поэтому решил искать что-то другое. Через некоторое время увидел такую штуку, как lagg0 и решил юзать её. Сразу скажу, что она начала поддерживаться начиная с версии 6.3 (у меня как раз такая и стояла). Сложного ничего нет, делаем всё по HandBook’y.

Для включения поддержки устройства lagg можно пересобрать ядро с поддержкой lagg

device lagg

или добавить строчку

if_lagg_load="YES"

в

loader.conf

Я выбрал второй вариант. Добавил соотвествующую строчку и тут же подгрузил этот модуль.

#kldload if_lagg

Теперь переходим собственно к созданию этого самого lagg
Выполним последовательно команды

#ifconfig lagg0 create
#ifconfig lagg0 up laggproto lacp laggport em0 laggport em1 10.10.10.10 netmask 255.255.255.0

Параметр lacp означает что сетевушки нужно балансировать нагрузкой, и в случае падения одной из них, пускать весь траффик через вторую.
Теперь можно попробовать пинговать и смотреть траффик.

Для того, что бы при перезагрузки lagg0 автоматом подымался, пишем в /etc/rc.conf такое

cloned_interfaces="lagg0"
ifconfig_em0="up"
ifconfig_em1="up"
ifconfig_lagg0="laggproto lacp laggport em0 laggport em1 10.10.10.10 netmask 255.255.255.0"

Если вдруг у вас не поднимается lagg0, то либо вы не указали для сетевых слово up в /etc/rc.conf, либо можете попробовать другой вариант: добавить следующее в /etc/rc.local (а в /etc/rc.conf удалить выше написанное)

(ifconfig lagg0 create && ifconfig lagg0 up laggproto lacp laggport em0 \
laggport em1 10.10.10.10 netmask 255.255.255.0 && route add default 10.10.10.1) || \
(ifconfig em0 up 10.10.10.10 netmask 255.255.255.0 && route add default 10.10.10.1)

Примечание (спасибо пользователю neyromant).

Обязательно нужно настроить порты коммутатора (куда подключёны сетевые lagg) в режим LACP/LAG, иначе работать не будет.

Аналоги в других ОС.

Solaris: dladm link agregation
Linux: bonding
OpenBSD: trunk

14 коментарів “Объединение сетевых интерфейсов под Freebsd используя lagg”

вот таким образом работает через /etc/rc.conf во freebsd 7.x или 8.x
cloned_interfaces=”lagg0″
ifconfig_em0=”up”
ifconfig_em1=”up”
ifconfig_lagg0=”laggproto lacp laggport em0 laggport em1″
ifconfig_lagg0_alias0=”inet 10.10.10.10 netmask 255.255.255.0″

Оказалось важно писать “inet… ” до “lagg…”, тогда подцепилось, то же самое и про “up”:
ifconfig_lagg0=”inet 1.2.3.4/30 laggproto lacp laggport igb0 laggport igb1″

Это хорошо. Но на на 6.3 у меня отказалось так работать.

у меня работает так (8.2, модуль собран в ядро)
cloned_interfaces=”lagg0 lagg1 vlan2 vlan3 vlan4 vlan11″
#
ifconfig_em0=”up”
ifconfig_em1=”up”
ifconfig_bge0=”up”
ifconfig_bge1=”up”
#
ifconfig_lagg0=”laggproto loadbalance laggport em0 laggport em1″
ifconfig_vlan2=”inet 192.168.154.1 netmask 255.255.255.0 vlan 2 vlandev lagg0″
ifconfig_vlan3=”inet 192.168.10.1 netmask 255.255.255.0 vlan 3 vlandev lagg0″
ifconfig_vlan4=”inet 10.10.0.5 netmask 255.255.255.0 vlan 4 vlandev lagg0″
ifconfig_vlan11=”inet 192.168.11.1 netmask 255.255.255.0 vlan 11 vlandev lagg0″
#
#ifconfig_lagg1=”laggproto loadbalance laggport bge0 laggport bge1″
#ifconfig_lagg1=”inet 10.56.11.1 netmask 255.255.255.0″

ifconfig_lagg1=”laggproto loadbalance laggport bge0 laggport bge1 10.56.11.1 netmask 255.255.255.0″

Здравствуйте. Такой вопросик:
Можно ли объеденить 2 канала от провайдера, в один?
Ситуация такая:
re0 – на ней поднимаем PPPoE:rg0 , есть реал ip (пусть 46.28.146.1)
xl1 – на ней есть реал ip не через PPPoE (пусть 213.80.21.10)
Как объеденить эти 2 канала, что бы сложить пропускную способность каналов, на случай падения одного канала (с одним ip) машина была доступна по второму каналу (2-й ip) ?

Дело в том, что lagg позволяет объединять линки и назначать им 1 адрес. У вас же ситуация другая: отказоустойчивая балансировка. Это решается с помощью файервола. Идея такова: половину трафика пускать через 1 канал, потовину – через другой. Например, в ipfw это решается с помощью probe 0.5. Дополнительно нужна проверка на “живучесть” каналов, если канал упал, то перестроить правила файервола так, что бы трафик через этот канал не шёл.

А коммутатор так же должен поддерживать данную технологию?
Ведь когда к нему пакеты приходят как он решает на какой порт отправить, когда два порта имеют один IP ?

В сети по статьям про vlan-ы так же забывают писать , что клиентские компы да и коммутационное оборудование должно поддерживать стандарт IEEE 802.1Q.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff