- Настройка EtherChannel на Cisco
- Пример использования
- Режимы EtherChannel
- Steinkäfer
- Агрегирование каналов в Cisco
- Статическое агрегирование
- Агрегирование с помощью LACP
- Терминология и настройка
- Общие правила настройки EtherChannel
- Настройка EtherChannel
- Синтаксис команды channel-group
- Интерфейсы в состоянии suspended
Настройка EtherChannel на Cisco
В этой статье мы расскажем как настроить LACP (Link Aggregation Control Protocol) И PAgP (Port Aggregation Protocol), которые носят гордое название EtherChannels — агрегирование каналов.
На самом деле EtherChannel это технология агрегации (объединения) каналов. Это означает, что мы можем объединить несколько линков в один логический, что позволит увеличить пропускную способность между коммутаторами.
Пример использования
В рамках данной схемы мы имеем серверную инфраструктуру, которая подключена в коммутатору распределения (distribution switch) через свой коммутатор. За коммутатором распределения сидят коммутаторы доступы, за которым расположились пользовательские рабочие станции:
Если мы подключим два коммутатор линком в 1ГБ/сек, то потенциально, мы можем столкнуться с проблемой «бутылочного горлышка», то есть узкого места. Тогда пользователи испытают проблемы с доступом к серверной ферме.
Используя технологию EtherChannel, мы можем объединить до 8 интерфейсов (физических) в один логический линк (агрегация портов, Port-Channel) и трафик будет распределяться между физическими портами равномерно (балансируя нагрузку).
В нашем примере мы объединили 4 (четыре) гигабитных линка между рабочими станциями и серверами в один, с пропускной способностью 4ГБ/сек. Это увеличило общую пропускную способность и добавило отказоустойчивость линков!
Режимы EtherChannel
Каждый из протоколов LACP или PAgP имеет по 3 режима работы, которые определяют режим его активности (инициализировать ли построение агрегации со своей стороны, или ждать сигнал с удаленной стороны):
Давайте посмотрим, в каком из случае будет установлено соединение EtherChannel при различных режимах настройки. Для LACP:
Коммутатор №1 | Коммутатор №2 | Установится ли EtherChannel? |
---|---|---|
ON | ON | Да |
ACTIVE | ACTIVE/PASSIVE | Да |
ON/ACTIVE/PASSIVE | Not configured (off) | Нет |
ON | ACTIVE | Нет |
PASSIVE/ON | PASSIVE | Нет |
Теперь разберемся с PAgP:
Коммутатор №1 | Коммутатор №2 | Установится ли EtherChannel? |
---|---|---|
ON | ON | Да |
DESIRABLE | DESIRABLE/AUTO | Да |
ON/DESIRABLE/AUTO | Not configured (off) | Нет |
ON | DESIRABLE | Нет |
AUTO / ON | AUTO | Нет |
Настройка
Ок, предположим, что порты с Gi0/0 по Gi0/3 буду использованы для агрегации EtherChannel. Лучше всего настроить логический интерфейс (агрегированный) в качестве транка, чтобы пропускать VLAN между коммутаторами.
Поднимаем LACP
В нашем случае switch1 будет активном (Active) режиме, а switch2 будет в пассивном (Passive) режиме.
switch1(config)# interface range Gi0/0 -3 // выбираем диапазон из 4х интерфейсов; switch1(config-if-range)# channel-protocol lacp // указываем протокол как LACP; switch1(config-if-range)# channel-group 1 mode active // указываем активный режим; switch1(config-if-range)# exit switch1(config)# interface port-channel 1 // конфигурируем логическую сущность как транк; switch1(config-if)#switchport trunk encapsulation dot1q switch1(config-if)#switchport mode trunk switch2(config)# interface range Gi0/0 – 3 // выбираем диапазон из 4х интерфейсов; switch2(config-if-range)# channel-protocol lacp // указываем протокол как LACP; switch2(config-if-range)# channel-group 1 mode passive // указываем пассивный режим; switch2(config-if-range)# exit switch2(config)# interface port-channel 1 // конфигурируем логическую сущность как транк; switch2(config-if)#switchport trunk encapsulation dot1q switch2(config-if)#switchport mode trunk
Поднимаем PAgP
В этом случае switch1 будет Desirable — режиме, а switch2 будет в автоматическом (Auto) режиме.
switch1(config)# interface range Gi0/0 -3 // выбираем диапазон из 4х интерфейсов; switch1(config-if-range)# channel-group 1 mode desirable // указываем desirable режим; switch1(config-if-range)# exit switch1(config)# interface port-channel 1 // конфигурируем логическую сущность как транк; switch1(config-if)#switchport trunk encapsulation dot1q switch1(config-if)#switchport mode trunk switch2(config)# interface range Gi0/0 – 3 // выбираем диапазон из 4х интерфейсов; switch2(config-if-range)# channel-group 1 mode auto // указываем автоматический режим; switch2(config-if-range)# exit switch2(config)# interface port-channel 1 // конфигурируем логическую сущность как транк; switch2(config-if)#switchport trunk encapsulation dot1q switch2(config-if)#switchport mode trunk
Полезные команды
Вот некоторые команды, которые могут понадобиться вам в работе с EtherChannel:
show etherchannel summary show etherchannel 1 port-channel show interfaces etherchannel
Steinkäfer
Если рассматривать избыточные соединения между коммутаторами, то без использования специальных технологий для агрегирования каналов, передаваться данные будут только через один интерфейс, который не заблокирован STP. Такой вариант позволяет обеспечить резервирование каналов, но не дает возможности увеличить пропускную способность.
Без использования STP такое избыточное соединение создаст петлю в сети.
Технологии по агрегированию каналов позволяют использовать все интерфейсы одновременно. При этом устройства контролируют распространение широковещательных фреймов (а также multicast и unknown unicast), чтобы они не зацикливались. Для этого коммутатор, при получении широковещательного фрейма через обычный интерфейс, отправляет его в агрегированный канал только через один интерфейс. А при получении широковещательного фрейма из агрегированного канала, не отправляет его назад.
Хотя агрегирование каналов позволяет увеличить пропускную способность канала, не стоит рассчитывать на идеальную балансировку нагрузки между интерфейсами в агрегированном канале. Технологии по балансировке нагрузки в агрегированных каналах, как правило, ориентированы на балансировку по таким критериям: MAC-адресам, IP-адресам, портам отправителя или получателя (по одному критерию или их комбинации).
То есть, реальная загруженность конкретного интерфейса никак не учитывается. Поэтому один интерфейс может быть загружен больше, чем другие. Более того, при неправильном выборе метода балансировки (или если недоступны другие методы) или в некоторых топологиях, может сложиться ситуация, когда реально все данные будут передаваться, например, через один интерфейс.
Некоторые проприетарные разработки позволяют агрегировать каналы, которые соединяют разные устройства. Таким образом резервируется не только канал, но и само устройство. Такие технологии в общем, как правило, называются распределенным агрегированием каналов (у многих производителей есть своё название для этой технологии).
Агрегирование каналов в Cisco
- LACP (Link Aggregation Control Protocol) стандартный протокол
- PAgP (Port Aggregation Protocol) проприетарный протокол Cisco
- Статическое агрегирование без использования протоколов
Статическое агрегирование
- Не вносит дополнительную задержку при поднятии агрегированного канала или изменении его настроек
- Вариант, который рекомендует использовать Cisco
- Нет согласования настроек с удаленной стороной. Ошибки в настройке могут привести к образованию петель
Агрегирование с помощью LACP
- Согласование настроек с удаленной стороной позволяет избежать ошибок и петель в сети.
- Поддержка standby-интерфейсов позволяет агрегировать до 16ти портов, 8 из которых будут активными, а остальные в режиме standby
- Вносит дополнительную задержку при поднятии агрегированного канала или изменении его настроек
Терминология и настройка
- EtherChannel — технология агрегирования каналов. Термин, который использует Cisco для агрегирования каналов.
- Port-channel — логический интерфейс, который объединяет физические интерфейсы.
- Channel-group — команда, которая указывает какому логическому интерфейсу принадлежит физический интерфейс и какой режим используется для агрегирования.
На схеме, число после команды channel-group указывает какой номер будет у логического интерфейса Port-channel. Номера логических интерфейсов с двух сторон агрегированного канала не обязательно должны совпадать. Номера используются для того чтобы отличать разные группы портов в пределах одного коммутатора.
Общие правила настройки EtherChannel
- скоростью (speed),
- режимом дуплекса (duplex mode),
- native VLAN,
- диапазон разрешенных VLAN,
- trunking status,
- типом интерфейса.
Настройка EtherChannel
Так как для объединения в EtherChannel на интерфейсах должны совпадать многие настройки, проще объединять их, когда они настроены по умолчанию. А затем настраивать логический интерфейс.
Перед объединением интерфейсов лучше отключить их. Это позволит избежать блокирования интерфейсов STP (или перевода их в состояние err-disable).
Для того чтобы удалить настройки EtherChannel достаточно удалить логический интерфейс. Команды channel-group удалятся автоматически.
- Для интерфейсов 3го уровня вручную создается логический интерфейс командой interface port-channel
- Для интерфейсов 2го уровня логический интерфейс создается динамически
- Для обоих типов интерфейсов необходимо вручную назначать интерфейс в EtherChannel. Для этого используется команда channel-group в режиме настройки интерфейса. Эта команда связывает вместе физические и логические порты
- изменения, которые применяются к port-channel интерфейсу, применяются ко всем физическим портам, которые присвоены этому port-channel интерфейсу
- изменения, которые применяются к физическому порту влияют только на порт на котором были сделаны изменения
Синтаксис команды channel-group
Параметры команды:
active — Включить LACP,
passive — Включить LACP только если придет сообщение LACP,
desirable — Включить PAgP,
auto — Включить PAgP только если придет сообщение PAgP,
on — Включить только Etherchannel.
Комбинации режимов при которых поднимется EtherChannel:
Интерфейсы в состоянии suspended
Если настройки физического интерфейса не совпадают с настройками агрегированного интерфейса, он переводится в состояние suspended. Это будет видно в нескольких командах.
Просмотр состояния интерфейсов: