В этой статье мы расскажем как настроить LACP (Link Aggregation Control Protocol) И PAgP (Port Aggregation Protocol), которые носят гордое название EtherChannels - агрегирование каналов.
На самом деле EtherChannel это технология агрегации (объединения) каналов. Это означает, что мы можем объединить несколько линков в один логический, что позволит увеличить пропускную способность между коммутаторами.
Пример использования
Взглянем на схему ниже:
В рамках данной схемы мы имеем серверную инфраструктуру, которая подключена в коммутатору распределения (distribution switch) через свой коммутатор. За коммутатором распределения сидят коммутаторы доступы, за которым расположились пользовательские рабочие станции:
Если мы подключим два коммутатор линком в 1ГБ/сек, то потенциально, мы можем столкнуться с проблемой «бутылочного горлышка», то есть узкого места. Тогда пользователи испытают проблемы с доступом к серверной ферме.
Используя технологию EtherChannel, мы можем объединить до 8 интерфейсов (физических) в один логический линк (агрегация портов, Port-Channel) и трафик будет распределяться между физическими портами равномерно (балансируя нагрузку).
В нашем примере мы объединили 4 (четыре) гигабитных линка между рабочими станциями и серверами в один, с пропускной способностью 4ГБ/сек. Это увеличило общую пропускную способность и добавило отказоустойчивость линков!
Не забывайте про STP (Spanning-tree protocol). В случае агрегации портов, мы исключаем STP петли.
Режимы EtherChannel
Каждый из протоколов LACP или PAgP имеет по 3 режима работы, которые определяют режим его активности (инициализировать ли построение агрегации со своей стороны, или ждать сигнал с удаленной стороны):
- LACP Modes: ON, ACTIVE, PASSIVE;
- PAgP Modes: ON, DESIRABLE, AUTO;
Давайте посмотрим, в каком из случае будет установлено соединение 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