7. Агрегация портов

Понятие

Агрегация интерфейсов Ethernet - есть объединение нескольких физических портов (агрегируемых, bundled) Ethernet в один логический порт (bundle)

  • Агрегация работает за счет изменения логики коммутации:

    • Отправляемый в агрегатный интерфейс кадр по некоторому алгоритму отправляется в исходящий буфер одного из физических интерфейсов

    • Коммутация между агрегируемыми интерфейсами не выполняется

  • Изначально описана в стандарте IEEE 802.3ad-2000, затем в IEEE 802.1AX-2008

    • Разработана компанией Kalpana, производителем первых Ethernet-коммутаторов

    • Фирменное название у Cisco - EtherChannel

Балансировка

  • Порты в агрегатном канале загружаются одновременно, но не обязательно равномерно

  • При отказе одного из физических интерфейсов кадры в такие порты не отправляются, а кадры, уже находящиеся в буфере, теряются

Варианты схем балансировки:

  • Active-backup

    • Кадры отправляются и принимаются по одному физическому интерфейсу, другие подключаются когда упадет основной линк

    • Можно обойтись без настройки на другом конце канала

  • Round-robin

  • Отправка кадров по очереди в каждый интерфейс

  • Load-based

    • Кадр отправляется в менее загруженный порт и задерживается (распространено в оборудовании Brocade)

  • Application-based (flow-based)

    • Балансировщик анализирует содержимое кадра и направляет кадр в тот же порт, в который отправлялись предыдущие кадры того же потока

    • Балансировка обычно не отслеживает состояние потока

    • Кадры новых приложений могут отправляться в более загруженные порты

    • Загрузка физических портов приложениями может изменяться во времени

Преимущества и недостатки

  • Повышает надежность канала

  • При удачно выбранном механизме балансировки повышается теоретически доступная полоса пропускания

  • Гарантированная скорость равна скорости одного интерфейса

  • При неудачно выбранном механизме балансировки скорость не повышается

  • Возможна смена порядка кадров (reordering)

Требования к топологии

  • Агрегировать можно только порты, подключенные к одному и тому же удаленному устройству (иначе тяжело будет определить петлю)

  • Рекомендуется агрегировать однотипно настроенные порты

  • Особенность балансировщика Cisco - использование 3 бит энтропии и агрегация до 8 портов (плюс 8 в бэкап)

Балансировка Cisco:

  • Flow-based по-умолчанию

  • Выполняется XOR (логическое ИЛИ)

  • Считается хэш (например, прогоняет IP адрес через математическое выражение) который приводит к значению в три бита. Это значение определяет интерфейс для отправки кадра

Процедура контроля агрегации

  • Перед включением портов необходимо проверить топологию

    • Все порты подключены к одному и тому же удаленному устройству

    • Все порты на удаленном устройстве тоже агрегированы в логический канал, иначе получится полупетля

  • Статическая агрегация - ничего не проверяется

  • LACP (Link Aggregation Control Protocol) - протокол 802.3ad/802.1AX

  • PAgP (Port Aggregation Control Protocol) - проприетарный протокол Cisco

Статическая агрегация

  • Контроль топологии не производится

  • При неправильной настройке возможно возникновение полупетли

SwitchA(config)#interface range gi0/0-1
SwitchA(config-if-range)#channel group 1 mode on
SwitchA(config-if-range)#interface port-channel1
SwitchA(config-if)#switchport trunk encapsulation dot1q
SwitchA(config-if)#switchport mode trunk


SwitchB(config)#interface range gi0/2-3
SwitchB(config-if-range)#channel group 2 mode on
SwitchB(config-if-range)#interface port-channel2
SwitchB(config-if)#switchport trunk encapsulation dot1q
SwitchB(config-if)#switchport mode trunk

LACP

  • Вложение slow-protocols (термин стандарта 802.3)

  • Multicast-адрес: 01:80:С2:00:00:02

  • EtherType 0x8809, код субпротокола 0x01

  • Отправляет кадры по таймеру

    • Обнаруживает непрямые отказы канала (порт номинально Up, но по факту данные не ходят)

    • Нормальный таймер - раз в 30 секунд, быстрый таймер - раз в секунду, других таймеров нет

  • Два режима работы

    • Active - устройство посылает LACPDU безусловно

    • Passive - LACPDU отправляются только после получения LACPDU от соседа

  • До 16 портов в группе, из которых максимум 8 активны

  • Производит проверку топологии путем отправки LACPDU и выявляет некорректную настройку и отказы канала

SwitchA(config)#interface range gi0/0-1
SwitchA(config-if-range)#channel group 1 mode active
SwitchA(config-if-range)#interface port-channel1
SwitchA(config-if)#switchport trunk encapsulation dot1q
SwitchA(config-if)#switchport mode trunk


SwitchB(config)#interface range gi0/2-3
SwitchB(config-if-range)#channel group 2 mode active !можно с одного конца passive
SwitchB(config-if-range)#interface port-channel2
SwitchB(config-if)#switchport trunk encapsulation dot1q
SwitchB(config-if)#switchport mode trunk

SwitchA(config)# lacp system-priority !Определяет роли (кто согласовывает первым)

PAgP

  • Вложение, характерное для протоколов Cisco

  • Multicast-адрес 01:00:0С:СС:СС:СС

  • LLC/SNAP вложение, код протокола 0x0104

  • Отправляет кадры в каждый физический порт

  • По умолчанию работает в silent-режиме (если на порту не получены PAgP-сообщения - порт переходит в Up)

  • Обнаруживает непрямые отказы канала

  • Нормальный таймер - раз в 30 секунд, быстрый таймер - раз в секунду

  • Два режима работы: desirable и auto

  • До 8 портов в группе

  • Расширение Enhanced PAgP обнаруживает Dual-Active отказ VSS

  • Проверка топологии производится путем отправки PAgP PDU

SwitchA(config)#interface range gi0/0-1
SwitchA(config-if-range)#channel group 1 mode desirable non-silent
SwitchA(config-if-range)#pagp rate fast
SwitchA(config-if-range)#interface port-channel1
SwitchA(config-if)#switchport trunk encapsulation dot1q
SwitchA(config-if)#switchport mode trunk

!Non-silent - согласование только после того, как получены какие-либо данные

SwitchB(config)#interface range gi0/2-3
SwitchB(config-if-range)#channel group 2 mode desirable non-silent !можно с одного конца auto
SwitchA(config-if-range)#pagp rate fast
SwitchB(config-if-range)#interface port-channel2
SwitchB(config-if)#switchport trunk encapsulation dot1q
SwitchB(config-if)#switchport mode trunk

L3-агрегация

  • Агрегатный порт может работать в режиме routed port

    • Кадры, приходящие на "чужие" MAC-адреса, не передаются на коммутацию

    • Кадры, приходящие на "свои" MAC-адреса передаются обработчику L3

  • Сменить режим на "горячую" нельзя, то есть уже созданный агрегат в L3 перевести через "no switchport" нельзя

  • Также нельзя добавить L2-порты в L3-агрегат и наоборот

SwitchA(config)#interface range gi0/0-1
SwitchA(config-if-range)#no switchport
SwitchA(config-if-range)#channel group 1 mode on
SwitchA(config-if-range)#interface port-channel1
SwitchA(config-if)#ip address 10.0.0.1 255.255.255.0

Настройка агрегатного интерфейса

  • При создании агрегата настройки копируются из первого порта группы

  • Изменения настройки агрегатного интерфейса применяются ко всем физическим портам, входящим в эту агрегатную группу

  • Изменения настройки физического порта влияют только на порт

  • Агрегируемые физические порты могут быть в состояниях:

    • bundled - все в порядке, порт агрегирован

    • stand-alone - порт работает, но не агрегирован

    • suspended - порт настроен противоречиво по отношению к группе

Если на интерфейсе указать заранее, какой протокол использовать для согласования, то консоль не даст настроить агрегат с другим протоколом и выдаст информационное сообщение:

SwitchA(config)#interface gi0/3
SwitchA(config-if)#channel-protocol lacp
SwitchA(config-if)#channel-group 1 mode desirable 
Command rejected (Channel protocol mismatch for interface Gi0/3 in group 1): the interface can not be added to the channel group

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

Диагностика агрегации

Работают привычные команды для физических интерфейсов:

  • MAC-адрес для агрегата будет выбран самый большой MAC с активных

  • BW - математическая сумма скоростей интерфейсов, она же будет учитываться в маршрутизации для метрик

  • Members in this channel: Gi0/0 Gi0/1 - физические интерфейсы в агрегате

Switch#show interface port-channel 1
Port-channel1 is up, line protocol is up (connected) 
  Hardware is GigabitEthernet, address is 5000.0002.0000 (bia 5000.0002.0000)
  MTU 1500 bytes, BW 2000000 Kbit/sec, DLY 10 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Auto-duplex, Auto-speed, media type is unknown
  input flow-control is off, output flow-control is unsupported 
  Members in this channel: Gi0/0 Gi0/1 
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:00, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 1000 bits/sec, 2 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     4649 packets input, 342193 bytes, 0 no buffer
     Received 0 broadcasts (0 multicasts)
     0 runts, 0 giants, 0 throttles 
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 input packets with dribble condition detected
     0 packets output, 0 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 unknown protocol drops
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out

Сводная таблица агрегатных портов

Switch#show etherchannel protocol
                Channel-group listing: 
                ----------------------

Group: 1 
----------
Protocol:  LACP

Group: 2 
----------
Protocol:  PAgP

Базовая диагностика

Switch#show etherchannel summary
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator

        M - not in use, minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 2
Number of aggregators:           2

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Gi0/0(P)    Gi0/1(P)    
2      Po2(SD)         PAgP      Gi0/2(I)    Gi0/3(I)    

Продвинутая диагностика

Switch#show etherchannel port-channel
                Channel-group listing: 
                ----------------------

Group: 1 
----------
                Port-channels in the group: 
                ---------------------------

Port-channel: Po1    (Primary Aggregator)

------------

Age of the Port-channel   = 0d:00h:54m:47s
Logical slot/port   = 16/0          Number of ports = 2
HotStandBy port = null 
Port state          = Port-channel Ag-Inuse 
Protocol            =   LACP
Port security       = Disabled

Ports in the Port-channel: 

Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
  0     00     Gi0/0    Active             0
  0     00     Gi0/1    Active             0

Time since last port bundled:    0d:00h:51m:22s    Gi0/1

Group: 2 
----------
                Port-channels in the group: 
                ---------------------------

Port-channel: Po2
------------

Age of the Port-channel   = 0d:00h:46m:39s
Logical slot/port   = 16/1          Number of ports = 0
GC                  = 0x00000000      HotStandBy port = null
Port state          = Port-channel Ag-Not-Inuse 
Protocol            =   PAgP
Port security       = Disabled

Управление балансировкой

  • Балансировка настраивается только для исходящих кадров

  • Балансировка включается для всего коммутатора

Switch(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
  • Варианты балансировки:

    • src-mac - все кадры от одного MAC-адреса отправляются с одного порта

    • dst-mac - все кадры на один и тот же MAC-адрес отправляются с одного порта

    • src-ip - все кадры (пакеты) от одного IP отправляются с одного и того же порта

    • dst-ip - все кадры на один и тот же IP отправляются с одного и того же порта

    • src-dst-mac (-ip) - для определения выходного порта берется результат функции XOR от MAC-адресов (IP-адресов) отправителя и получателя

Текущий вариант балансировки:

Switch#show etherchannel load-balance 
EtherChannel Load-Balancing Configuration:
        src-dst-ip

EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source XOR Destination MAC address
  IPv4: Source XOR Destination IP address
  IPv6: Source XOR Destination IP address

Last updated