LACP
Материал из Xgu.ru
Link Aggregation Control Protocol (LACP) — протокол, предназначенный для объединения нескольких физических каналов в один логический в сетях Ethernet. Агрегированные каналы LACP используются как для повышения пропускной способности, так и повышения отказоустойчивости. Использование LACP в некоторых случаях позволяет обнаружить повреждённый канал, который бы при использовании обычной статической агрегации обнаружен бы не был. Описывается стандартом IEEE 802.3ad.
Содержание |
[править] LACP в Linux
[править] LACP в Linux через bonding
В Linux поддержка LACP осуществляется с помощью модуля bonding, как и всякая другая агрегация на канальном уровне. Режим агрегации: 4.
Пример загрузки модуля[1]:
bonding miimon=100 mode=4 lacp_rate=1
[править] LACP в Linux через teaming
Teaming - новый механизм создания агрегированных линков в Linux, более архитектурно правильны. Состоит из ядерной части, которая реализует базовые механизмы обработки трафика, и части пространства пользователя, которая отвечает за сигнализацию и управление ядерной частью.
Необходимые опции ядра (отмечаем только те режимы коммутации, которые будем использовать):
CONFIG_NET_TEAM=m CONFIG_NET_TEAM_MODE_BROADCAST=m CONFIG_NET_TEAM_MODE_ROUNDROBIN=m CONFIG_NET_TEAM_MODE_RANDOM=m CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m CONFIG_NET_TEAM_MODE_LOADBALANCE=m
Конфигурационный файл (/etc/network/team0.conf):
{
"device": "team0",
"runner": {
"name":"lacp",
"active":true,
"fast_rate":true,
"tx_hash":["eth", "ipv4", "ipv6"]
},
"link_watch": {"name": "ethtool"},
"ports": {
"eth0": {},
"eth2": {}
}
}
Стоит заметить, что интерфейсы-порты должны быть в состоянии down, иначе агрегированный линк не запустится.
Запускаем демон teamd:
teamd -g -f /etc/network/team0.conf -d
Проверяем работу:
# teamdctl team0 state
setup:
runner: lacp
ports:
eth0
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
aggregator ID: 2, Selected
selected: yes
state: current
eth2
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
runner:
aggregator ID: 2, Selected
selected: yes
state: current
runner:
active: yes
fast rate: yes
Добавляем адрес
ip link set up dev team0 ip address add X.X.X.X/X dev team0
Выключаем
teamd -t team0 -k
[править] LACP в FreeBSD
На FreeBSD (одна сторона):
# ifconfig lagg0 create # ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1
На Cisco (другая сторона):
interface FastEthernet0/1 channel-group 1 mode active channel-protocol lacp ! interface FastEthernet0/2 channel-group 1 mode active channel-protocol lacp
На коммутаторе, при этом, информация о LACP-соседях должна выглядеть так:
switch# show lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Channel group 1 neighbors
Partner's information:
LACP port Oper Port Port
Port Flags Priority Dev ID Age Key Number State
Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D
Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D
[править] Дополнительная информация
- Link Aggrigation в ExtremeXOS
- LACP в Cisco (англ.)
- LACP в AIX (англ.)
[править] Примечания
- ↑ Подробнее: http://backdrift.org/howtonetworkbonding