Donnerstag, 28. Januar 2016

Cisco. Агрегирование каналов.

Материал на http://xgu.ru/ написан, на мой взгляд, самым лучшим образом. Лучше чем там, я пожалуй не напишу. Поэтому попросту скопирую.

Общая информация об агрегировании каналов

Агрегирование каналов позволяет решить две задачи:
  • повысить пропускную способность канала
  • обеспечить резерв на случай выхода из строя одного из каналов


Большинство технологий по агрегированию позволяют объединять только параллельные каналы. То есть такие, которые начинаются на одном и том же устройстве и заканчиваются на другом.


Если рассматривать избыточные соединения между коммутаторами, то без использования специальных технологий для агрегирования каналов, передаваться данные будут только через один интерфейс, который не заблокирован STP. Такой вариант позволяет обеспечить резервирование каналов, но не дает возможности увеличить пропускную способность.



Без использования STP такое избыточное соединение создаст петлю в сети.

Технологии по агрегированию каналов позволяют использовать все интерфейсы одновременно. При этом устройства контролируют распространение широковещательных фреймов (а также multicast и unknown unicast), чтобы они не зацикливались. Для этого коммутатор, при получении широковещательного фрейма через обычный интерфейс, отправляет его в агрегированный канал только через один интерфейс. А при получении широковещательного фрейма из агрегированного канала, не отправляет его назад.

Хотя агрегирование каналов позволяет увеличить пропускную способность канала, не стоит рассчитывать на идеальную балансировку нагрузки между интерфейсами в агрегированном канале. Технологии по балансировке нагрузки в агрегированных каналах, как правило, ориентированы на балансировку по таким критериям: MAC-адресам, IP-адресам, портам отправителя или получателя (по одному критерию или их комбинации).

То есть, реальная загруженность конкретного интерфейса никак не учитывается. Поэтому один интерфейс может быть загружен больше, чем другие. Более того, при неправильном выборе метода балансировки (или если недоступны другие методы) или в некоторых топологиях, может сложиться ситуация, когда реально все данные будут передаваться, например, через один интерфейс.

Некоторые проприетарные разработки позволяют агрегировать каналы, которые соединяют разные устройства. Таким образом резервируется не только канал, но и само устройство. Такие технологии в общем, как правило, называются распределенным агрегированием каналов (у многих производителей есть своё название для этой технологии).

Агрегирование каналов в 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 — команда, которая указывает какому логическому интерфейсу принадлежит физический интерфейс и какой режим используется для агрегирования.

На схеме, число после команды channel-group указывает какой номер будет у логического интерфейса Port-channel. Номера логических интерфейсов с двух сторон агрегированного канала не обязательно должны совпадать. Номера используются для того чтобы отличать разные группы портов в пределах одного коммутатора.

Общие правила настройки EtherChannel

LACP и PAgP группируют интерфейсы с одинаковыми:
  • скоростью (speed),
  • режимом дуплекса (duplex mode),
  • native VLAN,
  • диапазон разрешенных VLAN,
  • trunking status,
  • типом интерфейса.

Настройка EtherChannel

Так как для объединения в EtherChannel на интерфейсах должны совпадать многие настройки, проще объединять их, когда они настроены по умолчанию. А затем настраивать логический интерфейс.
Перед объединением интерфейсов лучше отключить их. Это позволит избежать блокирования интерфейсов STP (или перевода их в состояние err-disable).
Для того чтобы удалить настройки EtherChannel достаточно удалить логический интерфейс. Команды channel-group удалятся автоматически.

Создание EtherChannel для портов уровня 2 и портов уровня 3 отличается:
  • Для интерфейсов 3го уровня вручную создается логический интерфейс командой interface port-channel
  • Для интерфейсов 2го уровня логический интерфейс создается динамически
  • Для обоих типов интерфейсов необходимо вручную назначать интерфейс в EtherChannel. Для этого используется команда channel-group в режиме настройки интерфейса. Эта команда связывает вместе физические и логические порты
После того как настроен EtherChannel
  • изменения, которые применяются к port-channel интерфейсу, применяются ко всем физическим портам, которые присвоены этому port-channel интерфейсу
  • изменения, которые применяются к физическому порту влияют только на порт на котором были сделаны изменения

Синтаксис команды channel-group

sw(config-if)# channel-group <channel-group-number> mode <<auto [non-silent] | desirable [non-silent] | on> | <active | passive>>

Параметры команды:
active    —  Включить LACP,
passive   —  Включить LACP только если придет сообщение LACP,
desirable — Включить PAgP,
auto      — Включить PAgP только если придет сообщение PAgP,
on        —  Включить только Etherchannel.


Комбинации режимов при которых поднимется EtherChannel:

Режим PAgPautodesirable
auto--EtherChannel
desirableEtherChannelEtherChannel
Режим LACPpassiveactive
passive--EtherChannel
activeEtherChannelEtherChannel


Интерфейсы в состоянии suspended

Если настройки физического интерфейса не совпадают с настройками агрегированного интерфейса, он переводится в состояние suspended. Это будет видно в нескольких командах.

Просмотр состояния интерфейсов:
sw1#sh int status 
Просмотр информации о EtherChannel:
sw1#sh etherchannel summary 
Команды просмотра информации:
sw# show etherchannel summary
sw1#sh etherchannel port-channel
Подробная информация:
sw1#sh etherchannel detail


Настройка EtherChannel 2го уровня

Настройка статического EtherChannel 2го уровня



Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.

Настройка EtherChannel на sw1:
sw1(config)# interface range f0/11-14
sw1(config-if-range)# shutdown
sw1(config-if-range)# channel-group 3 mode on Creating a port-channel interface Port-channel 3
Настройка EtherChannel на sw2:
sw2(config)# interface range f0/11-14
sw2(config-if-range)# channel-group 3 mode on Creating a port-channel interface Port-channel 3
Включение физических интерфейсов на sw1:
sw1(config-if-range)# no sh

Настройка EtherChannel 2го уровня с помощью LACP


Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.

Настройка EtherChannel на sw1:
sw1(config)# interface range f0/11-14
sw1(config-if-range)# shutdown
sw1(config-if-range)# channel-group 1 mode active Creating a port-channel interface Port-channel 1
Настройка EtherChannel на sw2:
sw2(config)# interface range f0/11-14
sw2(config-if-range)# channel-group 1 mode passive Creating a port-channel interface Port-channel 1
Включение физических интерфейсов на sw1:
sw1(config)# interface range f0/11-14
sw1(config-if-range)# no shutdown

Standby-интерфейсы

LACP позволяет агрегировать до 16ти портов, 8 из которых будут активными, а остальные в режиме standby.
Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.

Настройка EtherChannel на sw1:
sw1(config)# interface range f0/11-20
sw1(config-if-range)# shutdown
sw1(config-if-range)# channel-group 1 mode active Creating a port-channel interface Port-channel 1
Настройка EtherChannel на sw2:
sw2(config)# interface range f0/11-20
sw2(config-if-range)# channel-group 1 mode passive Creating a port-channel interface Port-channel 1
Включение физических интерфейсов на sw1:
sw1(config-if-range)# no sh
Информация LACP об удаленном коммутаторе:
sw1#sh lacp neighbor 
Интерфейсы в режиме standby не передают трафик, поэтому по CDP сосед не виден через эти порты:
sw1#sh cdp neighbors 

Настройка EtherChannel 2го уровня с помощью PAgP

Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.

Настройка EtherChannel на sw1:
sw1(config)# interface range f0/11-14
sw1(config-if-range)# shutdown
sw1(config-if-range)# channel-group 2 mode desirable Creating a port-channel interface Port-channel 2
Настройка EtherChannel на sw2:
sw2(config)# interface range f0/11-14
sw2(config-if-range)# channel-group 2 mode auto Creating a port-channel interface Port-channel 2
Включение физических интерфейсов на sw1:
sw1(config)# interface range f0/11-14
sw1(config-if-range)# no shut

Информация PAgP об удаленном коммутаторе:
sw1#sh pagp neighbor 
Счетчики PAgP:
sw1#sh pagp counters 

Настройка EtherChannel 3го уровня

Настройка EtherChannel 3го уровня очень мало отличается от настройки EtherChannel 2го уровня. Поэтому показан только один пример настройки, с использованием LACP. Остальные варианты настраиваются аналогично, с изменением режима агрегирования. Команды просмотра аналогичны, их можно посмотреть в предыдущих разделах.
Для EtherChannels 3го уровня IP-адрес присваивается логическому интерфейсу port-channel, а не физическим интерфейсам.

Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.
Настройка логического интерфейса на sw1:
sw1(config)# int port-channel 2
sw1(config-if)# no switchport
sw1(config-if)# ip address 192.168.12.1 255.255.255.0
Настройка физических интерфейсов на sw1:
sw1(config)# int ran fa0/11 - 14
sw1(config-if-range)# shutdown
sw1(config-if-range)# no switchport
sw1(config-if-range)# channel-group 2 mode active 
Создание логического интерфейса на sw2:
sw2(config)# int port-channel 2
sw2(config-if)# no switchport
sw2(config-if)# ip address 192.168.12.2 255.255.255.0
Настройка физических интерфейсов на sw2:
sw2(config)# int ran fa0/11 - 14
sw2(config-if-range)# no switchport s
w2(config-if-range)# channel-group 2 mode active
Включение физических интерфейсов на sw1:
sw1(config)# int ran fa0/11 - 14 sw1(config-if-range)# no shutdown

Настройка агрегирования каналов на маршрутизаторе

Особенности настройки агрегирования на маршрутизаторе:
  • Поддерживается только статическое агрегирование, без использования протоколов
  • Можно создать только 2 агрегированных интерфейса
  • Максимальное количество интерфейсов в EtherChannel -- 4
  • Метод балансировки использует IP-адреса отправителя и получателя, включен по умолчанию и не может быть изменен
  • Агрегировать можно только те интерфейсы, которые находятся на модулях одинакового типа
Создание агрегированного интерфейса на маршрутизаторе:
R1(config)# interface port-channel 1
R1(config-if)# ip address 10.0.1.101 255.255.255.0
Добавление физических интерфейсов в EtherChannel:
R1(config)# interface range fa0/0 - 1
R1(config-if-range)# channel-group 1 FastEthernet0/0 added as member-1 to port-channel1 FastEthernet0/1 added as member-2 to port-channel1


Пример настройки агрегирования каналов между коммутатором и маршрутизатором

Конфигурация R1:
interface FastEthernet0/0
 channel-group 1
!
interface FastEthernet0/1
 channel-group 1
!
interface Port-channel1
 ip address 10.0.1.101 255.255.255.0
!
interface Port-channel1.10
 encapsulation dot1Q 10
 ip address 10.0.10.101 255.255.255.0
!
interface Port-channel1.20
 encapsulation dot1Q 20
 ip address 10.0.20.101 255.255.255.0

Конфигурация sw1:
interface FastEthernet0/3
 switchport mode trunk
 channel-group 1 mode on
!
interface FastEthernet0/5
 switchport mode trunk
 channel-group 1 mode on
!
interface Port-channel1
 switchport mode trunk

Балансировка нагрузки

Метод балансировки нагрузки повлияет на распределение трафика во всех EtherChannel, которые созданы на коммутаторе.

В зависимости от модели коммутатора, могут поддерживаться такие методы балансировки:
  • по MAC-адресу отправителя или MAC-адресу получателя или учитывая оба адреса
  • по IP-адресу отправителя или IP-адресу получателя или учитывая оба адреса
  • по номеру порта отправителя или номеру порта получателя или учитывая оба порта
Пример вариантов на коммутаторе 3560:
sw1(config)# port-channel load-balance ?
  dst-ip       Dst IP Addr
  dst-mac      Dst Mac Addr
  src-dst-ip   Src XOR Dst IP Addr
  src-dst-mac  Src XOR Dst Mac Addr
  src-ip       Src IP Addr
  src-mac      Src Mac Addr

При выборе метода балансировки, необходимо учитывать топологию сети, каким образом передается трафик.

Например, на схеме, все устройства находятся в одном VLAN. Шлюз по умолчанию маршрутизатор R1.

Если коммутатор sw2 использует метод балансировки по MAC-адресу отправителя, то балансировка выполняться не будет, так как у всех фреймов MAC-адрес отправителя будет адрес маршрутизатора R1:

Аналогично, если коммутатор sw1 использует метод балансировки по MAC-адресу получателя, то балансировка выполняться не будет, так как у всех фреймов, которые будут проходить через агрегированный канал, MAC-адрес получателя будет адрес маршрутизатора R1:

Определение текущего метода балансировки:
sw1# show etherchannel load-balance

Тестирование балансировки нагрузки

Для того чтобы проверить через какой интерфейс, при настроенном методе балансировки, пойдет конкретный пакет или фрейм, можно использовать команду test etherchannel load-balance.

Проверка при задании IP-адресов:
sw1# test etherchannel load-balance int port-channel 1 ip 192.168.1.1 192.168.1.2
Would select Fa0/11 of Po1
Пример тестирования при задании MAC-адресов:
sw2# test etherchannel load-balance int po 3 mac 0000.0001.0601 0000.0002.0005
Would select Fa0/12 of Po3

sw2# test etherchannel load-balance int po 3 mac 0000.0001.0600 0000.0002.0005
Would select Fa0/11 of Po3

sw2# test etherchannel load-balance int po 3 mac 0000.0001.0800 0000.0002.0005
Would select Fa0/14 of Po3

sw2# test etherchannel load-balance int po 3 mac 0000.0001.1800 0000.0002.0005
Would select Fa0/11 of Po3

Взаимодействие Etherchannel с другими функциями

  • Dynamic Trunking Protocol (DTP) и Cisco Discovery Protocol (CDP) отправляют и получают пакеты через физические интерфейсы в EtherChannel.
  • Trunk ports отправляют и получают PAgP и LACP PDU через VLAN с наименьшим номером.
  • Spanning tree отправляет пакеты через первый интерфейс в EtherChannel.
  • MAC-адрес EtherChannel 3го уровня это MAC-адрес первого порта в port-channel.
  • PAgP отправляет и получает PAgP PDU только с интерфейсов на которых PAgP включен в режиме auto или desirable.
  • LACP отправляет и получает LACP PDU только с интерфейсов на которых LACP включен в режиме active или passive.

Keine Kommentare:

Kommentar veröffentlichen