LACP (Link Aggregation Control Protocol — протокол агрегирования каналов)
LACP — стандарт IEEE 802.1AX/802.3ad, который объединяет несколько физических линков между устройствами (сервер–коммутатор, коммутатор–коммутатор) в один логический интерфейс (LAG/порт-чаннел). Получаем устойчивость к отказам и суммарную пропускную способность без петлей STP.
Как работает.
Участники обмениваются LACPDU (EtherType 0x8809) и договариваются, какие порты войдут в агрегат. Порт может быть в режиме active (шлёт LACPDU) или passive (ждёт). На соответствие влияют System ID, Port ID и Key — по ним формируются «совместимые» группы. Таймеры: fast ≈ 1 с (lacp rate fast) и slow ≈ 30 с.
Что даёт на практике.
- Отказоустойчивость: выпадение одного линка не рвёт соединение — трафик уходит на оставшиеся.
- Суммарная полоса: N×скорость линка для многих одновременных потоков. Важно: один TCP-поток обычно идёт по одному физическому линку (из-за хеширования), т. е. не быстрее скорости одного кабеля.
- Прозрачность для L2: STP видит агрегат как один порт; VLAN-теги и trunk-режим работают как на обычном интерфейсе.
Балансировка трафика.
Распределение идёт по хешу полей (L2/L3/L4 — MAC, IP, порты). Подбирайте политику так, чтобы у вас было много независимых потоков; избегайте per-packet режима — он вызывает реордеринг.
Ограничения и нюансы.
- MLAG/MC-LAG: чтобы один сервер агрегировал к двум разным коммутаторам, нужны парные устройства в специальном кластере (технология вендора). Обычный LACP между разными одиночными свичами не «скрестится».
- min-links: включайте агрегат только при наличии, например, 2 из 4 линков — защитит от деградации.
- Единые параметры: на всех портах должны совпадать скорость/дуплекс/MTU/VLAN-настройки.
- QoS/DSCP: метки сохраняются, но разные потоки могут попасть на разные физические линии — учитывайте при отладке.
Короткие примеры.
- Linux (bonding 802.3ad):→
/etc/modprobe.d/bonding.conf
options bonding mode=802.3ad xmit_hash_policy=layer3+4 miimon=100
- Cisco:→
interface range Gi1/0/1-2
→channel-group 1 mode active
→lacp rate fast
(дальше настраиваете access/trunk).interface Port-channel1
- Juniper:+ добавление физических
set interfaces ae0 aggregated-ether-options lacp active
вxe-0/0/x
.ae0
Где особенно полезен.
NIC-teaming на серверах, аплинки leaf↔spine, стеки/кластерные коммутаторы, SAN/NAS-сети и любые места, где важны простая отказоустойчивость и масштабирование полосы для множества соединений.