Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco
Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco
Агрегирование каналов (агрегация каналов, англ. link aggregation) — технология, которая позволяет объединить несколько физических каналов в один логический. Такое объединение позволяет увеличивать пропускную способность и надежность канала. Агрегирование каналов может быть настроено между двумя коммутаторами, коммутатором и маршрутизатором, между коммутатором и хостом.
Для агрегирования каналов существуют другие названия:
- Port Trunking (в Cisco trunk’ом называется тегированный порт, поэтому с этим термином путаницы больше всего),
- EtherChannel (в Cisco так называется агрегирование каналов, это может относиться как к настройке статических агрегированных каналов, так и с использованием протоколов LACP или PAgP)
- И еще множество других: Ethernet trunk, NIC Teaming, Port Channel, Port Teaming, LAG (link aggregation), Link Bundling, Multi-Link Trunking (MLT), DMLT, SMLT, DSMLT, R-SMLT, NIC bonding, Network Fault Tolerance (NFT), Fast EtherChannel.
Общая информация об агрегировании каналов
Агрегирование каналов позволяет решить две задачи:
- повысить пропускную способность канала
- обеспечить резерв на случай выхода из строя одного из каналов
Большинство технологий по агрегированию позволяют объединять только параллельные каналы. То есть такие, которые начинаются на одном и том же устройстве и заканчиваются на другом.

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-0
Если рассматривать избыточные соединения между коммутаторами, то без использования специальных технологий для агрегирования каналов, передаваться данные будут только через один интерфейс, который не заблокирован STP. Такой вариант позволяет обеспечить резервирование каналов, но не дает возможности увеличить пропускную способность.

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-01
| Без использования STP такое избыточное соединение создаст петлю в сети. |
Технологии по агрегированию каналов позволяют использовать все интерфейсы одновременно. При этом устройства контролируют распространение широковещательных фреймов (а также multicast и unknown unicast), чтобы они не зацикливались. Для этого коммутатор, при получении широковещательного фрейма через обычный интерфейс, отправляет его в агрегированный канал только через один интерфейс. А при получении широковещательного фрейма из агрегированного канала, не отправляет его назад.
Хотя агрегирование каналов позволяет увеличить пропускную способность канала, не стоит рассчитывать на идеальную балансировку нагрузки между интерфейсами в агрегированном канале. Технологии по балансировке нагрузки в агрегированных каналах, как правило, ориентированы на балансировку по таким критериям: MAC-адресам, IP-адресам, портам отправителя или получателя (по одному критерию или их комбинации).
То есть, реальная загруженность конкретного интерфейса никак не учитывается. Поэтому один интерфейс может быть загружен больше, чем другие. Более того, при неправильном выборе метода балансировки (или если недоступны другие методы) или в некоторых топологиях, может сложиться ситуация, когда реально все данные будут передаваться, например, через один интерфейс.
Некоторые проприетарные разработки позволяют агрегировать каналы, которые соединяют разные устройства. Таким образом резервируется не только канал, но и само устройство. Такие технологии в общем, как правило, называются распределенным агрегированием каналов (у многих производителей есть своё название для этой технологии).
На этой странице рассматривается в основном агрегирование параллельных каналов. Для распределенного агрегирования выделен отдельный раздел в котором указаны соответствующие технологии некоторых производителей. Распределенное агрегирование в коммутаторах HP (ProCurve) рассмотрено более подробно.
Агрегирование каналов в Cisco
Для агрегирования каналов в Cisco может быть использован один из трёх вариантов:
- LACP (Link Aggregation Control Protocol) стандартный протокол
- PAgP (Port Aggregation Protocol) проприетарный протокол Cisco
- Статическое агрегирование без использования протоколов
Так как LACP и PAgP решают одни и те же задачи (с небольшими отличиями по возможностям), то лучше использовать стандартный протокол. Фактически остается выбор между LACP и статическим агрегированием.
- Преимущества:
- Не вносит дополнительную задержку при поднятии агрегированного канала или изменении его настроек
- Вариант, который рекомендует использовать Cisco
Агрегирование с помощью LACP:
- Преимущества:
- Согласование настроек с удаленной стороной позволяет избежать ошибок и петель в сети.
- Поддержка standby-интерфейсов позволяет агрегировать до 16ти портов, 8 из которых будут активными, а остальные в режиме standby
Терминология и настройка
При настройке агрегирования каналов на оборудовании Cisco используется несколько терминов:
- EtherChannel — технология агрегирования каналов. Термин, который использует Cisco для агрегирования каналов.
- port-channel — логический интерфейс, который объединяет физические интерфейсы.
- channel-group — команда, которая указывает какому логическому интерфейсу принадлежит физический интерфейс и какой режим используется для

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-03
Эти термины используются при настройке, в командах просмотра, независимо от того, какой вариант агрегирования используется (какой протокол, какого уровня EtherChannel).
На схеме, число после команды channel-group указывает какой номер будет у логического интерфейса Port-channel. Номера логических интерфейсов с двух сторон агрегированного канала не обязательно должны совпадать. Номера используются для того чтобы отличать разные группы портов в пределах одного коммутатора.
Общие правила настройки EtherChannel
LACP и PAgP группируют интерфейсы с одинаковыми:
- скоростью (speed),
- режимом дуплекса (duplex mode),
- native VLAN,
- диапазон разрешенных VLAN,
- trunking status,
- типом интерфейса.
- Так как для объединения в EtherChannel на интерфейсах должны совпадать многие настройки, проще объединять их, когда они настроены по умолчанию. А затем настраивать логический интерфейс.
- Перед объединением интерфейсов лучше отключить их. Это позволит избежать блокирования интерфейсов STP (или перевода их в состояние err-disable).
- Для того чтобы удалить настройки EtherChannel достаточно удалить логический интерфейс. Команды channel-group удалятся автоматически.
Создание EtherChannel для портов уровня 2 и портов уровня 3 отличается:
- Для интерфейсов 3го уровня вручную создается логический интерфейс командой interface port-channel
- Для интерфейсов 2го уровня логический интерфейс создается динамически
- Для обоих типов интерфейсов необходимо вручную назначать интерфейс в EtherChannel. Для этого используется команда channel-group в режиме настройки интерфейса. Эта команда связывает вместе физические и логические порты
После того как настроен EtherChannel:
- изменения, которые применяются к port-channel интерфейсу, применяются ко всем физическим портам, которые присвоены этому port-channel интерфейсу
- изменения, которые применяются к физическому порту влияют только на порт на котором были сделаны изменения
Настройка статической агрегации Etherchannel
Предположим есть две Cisco 2960 и компы, каждая Cisco на своем этаже, одного гигабитного порта не хватает, нужно сделать агрегирование. Схема представлена ниже.

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-04
Настроим наше оборудование на Etherchannel. Подключаемся к первой Cisco через ssh или терминал.
config t
Я буду использовать гигабитные интерфейсы gi1/1 и gi1/2. Выберем сразу диапазон интерфейсов.
int range gigabitEthernet 1/1-2
channel-group 1 mode on (только Etherchanne)
end
wr

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-05
На второй Cisco делаем тоже самое, один в один.
- active — Включить LACP,
- passive — Включить LACP только если придет сообщение LACP,
- desirable — Включить PAgP,
- auto — Включить PAgP только если придет сообщение PAgP,
- on — Включить только Etherchannel.
Комбинации режимов при которых поднимется EtherChannel:
| Режим PAgP | auto | desirable |
| auto | — | EtherChannel |
| desirable | EtherChannel | EtherChannel |
Интерфейсы в состоянии suspended
Если настройки физического интерфейса не совпадают с настройками агрегированного интерфейса, он переводится в состояние suspended. Это будет видно в нескольких командах.
Просмотр состояния интерфейсов:

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-06
Просмотр информации о EtherChannel
sh etherchannel summary

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-07
sh etherchannel port-channel

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-08
Настройка LACP
Теперь представим что у нас есть ядро и два коммутатора доступа L2. И между L2 и ядром нужно настроить агрегацию с помощью протокола LACP.

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-09
Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.
Подключаемся ко второй Cisco через ssh или терминал.
config t
Я буду использовать гигабитные интерфейсы fa0/23-24
interface range fa0/23-24
channel-protocol lacp (подготовка для lacp)
channel-group 1 mode passive (режим пассивный так как активный будет на ядре)

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-10
Посмотрим настройки show etherchannel summary

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-11
Делаем на втором коммутаторе L2 тоже самое.
Теперь настроим ядро на уровне L3.
Подключаемся к ядру Cisco через ssh или терминал.
config t
Будем настраивать две пары портов fa0/1-2 и fa0/3-4
interface range fastEthernet 0/1-2
channel-protocol lacp
channel-group 1 mode active

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-12
Аналогично настроим fa0/3-4
interface range fastEthernet 0/3-4
channel-protocol lacp
channel-group 2 mode passive
exit

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-1
Смотрим что настроили

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-14
Подключаем линки и видим что все ок

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-15

Что такое и как настроить Link Aggregation Control Protocol (LACP) на примере Cisco-16
LACP с VLAN
Если у вас есть vlan, то каждую port-channel Нужно перевести в режим trunk командой
switchport mode trunk
НА коммутаторе третьего уровня сначала нужно создать нужные vlan и задать им ip адреса, а уже потом переводить port-channel в режим trunk. Для примера создам vlan 2 и назначу ему ip.
ip address 192.168.2.251 255.255.255.0
int port-channel 1
switchport trunk encapsulation dot1q
switchport mode trunk
Для второй port-channel тоже самое, в итоге у вас будет работать вот такая схема.

Мы разобрали как настроить Link Aggregation Control Protocol (LACP) на примере Cisco.
Агрегирование каналов (англ. link aggregation ) — технологии объединения нескольких параллельных каналов передачи данных в сетях Ethernet в один логический, позволяющие увеличить пропускную способность и повысить надёжность. В различных конкретных реализациях агрегирования используются альтернативные наименования: транкинг портов (англ. port trunking ), связывание каналов ( link bundling ), склейка адаптеров ( NIC bonding ), сопряжение адаптеров ( NIC teaming ).
LACP (англ. link aggregation control protocol ) — открытый стандартный протокол агрегирования каналов, описанный в документах IEEE 802.3ad [⇨] и IEEE 802.1aq. Многие производители для своих продуктов используют не стандарт, а патентованные или закрытые технологии, например, Cisco применяет технологию EtherChannel (разработанную в начале 1990-х годов компанией Kalpana [en] ), а также нестандартный протокол PAgP.
Главное преимущество агрегирования каналов в том, что потенциально повышается полоса пропускания: в идеальных условиях полоса может достичь суммы полос пропускания объединённых каналов. Другое преимущество — «горячее» резервирование линий связи: в случае отказа одного из агрегируемых каналов трафик без прерывания сервиса посылается через оставшиеся, а после восстановления отказавшего канала он автоматически включается в работу [1] .
Содержание
Стандарт 802.3ad [ править | править код ]
Стандарт IEEE 802.3ad в составе группы стандартов для локальных вычислительных сетей IEEE 802 принят в 2000 году, полное название — «802.3ad Link aggregation for parallel links».
В общем случае, агрегирование восьми стандартных каналов с помощью 802.3ad оказывается дешевле, чем одно устройство, поддерживающее на порядок большую пропускную способность, и позволяет постепенно увеличивать скорость каналов в системе без необходимости покупать дорогостоящие более быстрые адаптеры. Однако, агрегирование имеет ограничения: распределение трафика по каналам может быть неравномерным, вплоть до того, что весь трафик идёт по одному каналу, а другие простаивают (зависит от трафика, возможностей и настроек оборудования), что в крайних случаях означает отсутствие выигрыша в пропускной способности по сравнению с единственным каналом. Кроме того, объединять можно не более восьми каналов, что в случае гигабитных каналов даёт теоретическую суммарную пропускную способность лишь в 8 Гбит/сек вместо 10 Гбит/сек, которые может обеспечить один быстродействующий адаптер.
Как правило, все порты при агрегировании должны быть одного типа, например, все порты для витой пары, все — для одномодового оптоволокна (SM) или все — для многомодового оптоволокна (MM). Объединяемые порты должны быть настроены на одну скорость передачи (хотя по стандарту 802.3ad смешивать порты с разной скоростью допустимо, на практике такие конфигурации зачастую оказываются неработоспособными).
Нестандартизованные технологии [ править | править код ]
Большинство решений для агрегирования гигабитных каналов основывается на стандарте IEEE 802.3ad. Однако нестандартизованные протоколы других фирм существовали ещё до принятия этого стандарта, некоторые из них используются до сих пор. Эти протоколы в большинстве своём работают исключительно с продукцией одной компании или продукцией одной линии. Некоторые из них имеют определённые преимущества перед стандартом, например EtherChannel, используемый Cisco, поддерживает разные режимы посылки пакетов, тогда как 802.3ad поддерживает только стандартный режим. Среди других нестандартных протоколов агрегации — Duralink Trunking (Adaptec), MLT (multi link trunking, Nortel).
К середине 2000-х годов большинство производителей перешли на выпуск сетевых устройств с поддержкой стандарта IEEE 802.3ad, что в принципе должно обеспечивать возможность совместной работы устройств различных марок. Однако на практике некоторые сочетания могут оказаться неработоспособными, поэтому в спецификациях зачастую специально уточняется возможность совместной работы тех или иных устройств.
Агрегирование сетевых адаптеров [ править | править код ]
Основное применение технологии агрегации — объединение каналов в сетевых коммутаторах, но можно настроить агрегирование для компьютерных сетевых адаптеров. Например, в операционной системе Linux можно сконфигурировать агрегированный сетевой адаптер bond0 со стандартным драйвером ядра (англ. bonding driver ) как объединяющий Ethernet-адаптеры eth0 и eth1, с назначением ему единого IP-адреса, и для системы и выполняемых на ней программ нет никакой разницы между таким адаптером и физическими (исключая немногие служебные утилиты, которые предназначены для операций непосредственно с адаптерами). При этом значения MAC-адреса bond0 будут чередоваться — периодически будет показываться то MAC-адрес первой сетевой карты eth0, то MAC-адрес адаптера eth1.
Агрегирование порта
Что делать, если одного соединения пропускной способности в 100M/1G/10G/100G недостаточно для ваших нужд? Теоретическим, мы можем соединить оборудование несколькими линками, но без агрегирования мы получим только петлю на оборудовании, в результате чего положим сеть, если, конечно, не будет включен протокол Spanning Tree, который воспримет эти соединения как петли и не выключит лишние линки. Почему образуется петля? Это связано с работой коммутаторов, подробнее можно прочитать тут
Давайте рассмотрим, что такое агрегация и агрегированные порты и зачем это надо.
В терминологии CISCO это Etherchannel, Brocade — LAG, Extreme — sharing… Стандартизированное решение — LACP(Link Aggregation Control Protocol) — протокол, который не зависит от вендора (производителя) оборудования. Все реализации объединения/агрегирования портов выполняют одну функцию, а именно, объединение физических портов в 1 логический с суммарной пропускной способностью.

В данное время практически все провайдеры, цоды, дата-центры, контент-генераторы использую агрегацию для увеличения пропускной способности линии,так как ее плюсы очевидны: увеличение пропускной способности и резервирование линков (при падении одного, трафик равномерно распределяется между другими). Однако, находятся и те, которые не используют лаг, например, всем известная социальная сеть Вконтакте. Если вам придется с ними работать, то, возможно, вас удивит их заявление, что они не агрегируют линки. Вконтакте заставят вас настроить протокол динамической маршрутизации через каждый линк ( BGP), будь у вас там их хоть 16.
Протокол LACP
Рассмотрим, как работает агрегация на примере протокола LACP.
LACP -(англ. Link Aggregation Control Protocol ) отсылает пакеты, которые называются LACPDU, через все интерфейсы устройства, на которых он включен. На основании этих пакетов оборудование определяет принадлежность физических портов к тому или иному логическому каналу. Протокол может работать в двух режимах:
1. Пассивный режим, при котором оборудование ждет от соседа LACPDU пакеты и только тогда начинает высылать свои.
2. Активный режим, при котором оборудование постоянно шлет LACPDU пакеты.
Для того, чтобы LACP заработал, требуется одинаковая скорость и емкость каналов.
В результате установления работы протокола LACP коммутаторы обмениваются:
• System Identifier (priority + MAC)
• Port Identifier (priority + номер порта)
• Operational Key (параметры порта)
Это требуется для того, чтобы лаг не собрался как-нибудь не так, например как показано на рисунке 2.

Балансировка трафика в лаге
Балансировка трафика осуществляется посредством выбора физического канала отправителем фрейма посредством выбранного алгоритма. К основным и часто используемым можно отнести следующие алгоритмы :
- по MAC-адресу отправителя или MAC-адресу получателя или учитывая оба адреса
- по IP-адресу отправителя или IP-адресу получателя или учитывая оба адреса
- по номеру порта отправителя или номеру порта получателя или учитывая оба порта
Рассмотрим на примере двух агрегированных соединений при использовании метода балансировки по мак-адресу отправителя. В данном случае индексом для балансировки будет использоваться последний бит мак-адреса отправителя рисунок 3.

В случае, если линков будет 4, то для балансировки будет использоваться последние 2 бита мак-адреса, как показано на рисунке 4.

Соответственно, если в лаге будет 3 линка, то как можно догадаться при использовании данного метода равномерной балансировки добиться будет сложно и пойдет перекос по трафику на какой-либо линк. Поэтому следует относиться внимательно к выбору метода балансировки.





