Агрегирование каналов EcoRouter Documentation / Агрегирование каналов
Агрегирование каналов – объединение нескольких каналов в один логический канал для увеличения пропускной способности и резервирования. Чтобы добавить порты в объединенный канал они должны быть идентично настроены и параллельны. То есть, агрегируемые каналы должны соединять между собой два устройства, параллельно друг другу.
В один агрегированный порт могут быть объединены до 8 портов на одной или разных картах устройства. Для объединения скоростные характеристики портов должны совпадать. Также на портах не должно быть привязанных сервисных интерфейсов. Сервисный интерфейс для операций с метками VLAN настраивается на сконфигурированном агрегированном порту (см. раздел Сервисные интерфейсы).
Вычисление хэш-функции
Балансировка трафика осуществляется по потокам. Распределение кадров по каналам агрегированного порта происходит на основании данных в заголовках в кадре. На основании этой информации маршрутизатор принимает решение о использовании одного из физических каналов агрегированного порта. Для этого используется алгоритм хэширования.
Поля, используемые для вычисления хэш-функции по умолчанию:
Router ID | S\C-Src Mac | S\C-Dst Mac | S\C-Src IP | S\C-Dst IP | Hash seed | Protocol Type | Port.no |
Router ID - неизменяемый идентификатор маршрутизатора.
S\C-Src Mac (Service\Client-Source Mac address) - MAC-адрес отправителя.
S\C-Dst Mac (Service\Client-Destination Mac address) - MAC-адрес получателя.
S\C-Src IP (Service\Client-Source IP) - IP-адрес отправителя.
S\C-Dst IP (Service\Client-Destination) - IP-адрес получателя.
Hash seed - изменяемое значение, уникальное в пределах маршрутизатора. Может принимать значения от 0 до 255.
Protocol Type - протокол транспортного уровня.
Port.no - номер порта, принявшего пакет.
Для пакетов с одинаковыми исходными данными результат вычисления хэш-функции всегда будет одинаков. Таким образом пакеты одного потока будут попадать в один порт (в один физический канал).
Результатом вычисления хэш-функции является 32-битное число. Первые его 16 бит используются для балансировки в Link Aggregation Control Protocol (LACP), остальные - для балансировки в Equal-cost multi-path routing (ECMP).
LACP
LACP (Link Aggregation Control Protocol) - cигнальный протокол для обеспечения работы агрегированного порта. Для определения принадлежности портов к одному логическому каналу LACP отсылает во все порты, где он включен, PDU сообщения. LACP может работать в пассивном и активном режимах. Устройство, на котором настроен LACP в пассивном режиме, не отсылает PDU (Protocol Data Unit) самостоятельно при настроенном агрегированном канале, а ждёт получения PDU от соседнего устройства и только в случае получения отсылает свои. В активном режиме LACP постоянно шлёт PDU пакеты.
В PDU содержатся собственные и ожидаемые от соседа параметры. Параметры содержат идентификатор системы, идентификатор группы интерфейсов, идентификатор физического интерфейса, с которого PDU был отправлен, и его текущее состояние. Агрегированный порт из состояния слушания переводится в состояние передачи трафика в случае одновременного выполнения следующих условий:
- битовое слово statе идентифицирует порт соседнего устройства как присоединенный и работающий в группе,
- пришедшие от соседа параметры соответствуют ожидаемым,
- параметры, ожидаемые соседом, соответствуют собственным параметрам порта.
Настройка параметров
Для управления параметрами PDU используются команды контекстного режима конфигурирования агрегированного порта ecorouter(config-port-channel)#, представленные в таблице ниже.
Команда | Описание |
---|---|
lacp enable | Включает функционал LACP на агрегированном порту. По умолчанию функционал выключен |
lacp key <NUM> | Значение по умолчанию равно порядковому номеру порта в агрегированном канале. Изменяется в пределах от 0 до 65535 |
lacp mode (active | passive) | Режим работы LACP |
lacp period (fast | slow) | Период отправки PDU сообщений и время их действия:
|
lacp system-id <ID> | Идентификатор системе в формате XXXX:XXXX:XXXX |
lacp system-priority <NUM> | Задает приоритет системы для разрешения конфликтов в выборе агрегированных портов. Чем меньше значение, тем выше приоритет. Значение по умолчанию равно 32768, изменяется в пределах от 0 до 65535 |
Параметр port priority задает приоритет порта в агрегированном канале. Чем меньше значение, тем выше приоритет. По умолчанию равно 32768. Для изменения значения в контекстном режиме конфигурирования порта необходимо вызвать команду lacp-priority <NUM>, где NUM - приоритет порта, изменяемый в пределах от 0 до 65535.
Команды просмотра
Для просмотра статистики по LACP и состояния агрегированных портов используются следующие команды типа show.
Для просмотра счетчиков используется команда show counters lacp ( | port) с указанием конкретного агрегированного порта при необходимости.
Пример вывода команды:
ecorouter#show counters lacp
Port channel: ae.01
Port LACPDU recv pkts LACPDU sent pkts Unknown recv pkts Illegal recv pkts
te1 0 1648 0 0
Для просмотра настроек LACP на портах EcoRouter используется команда show lacp internal.
ecorouter#sh lacp internal
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Port channel: ae.1
LACP port Admin Port Port
Port Flags State priority Key Number State
te1/0 SA bndl 32767 0x10 8 0x3D
te1/1 SA bndl 32767 0x10 9 0x3D
Для детального вывода настроек используется команда show lacp internal detail.
ecorouter#sh lacp internal detail
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Port channel: ae.1
Actor (internal) information:
Actor Actor Actor
Port System ID Port Number Age Flags
te1/0 32767,000d.4838.8067 8 19 SA
LACP Actor Actor Actor
Port Priority Oper Key Port State
32767 0x10 0x3D
Port State Flags Decode:
Activity: Timeout: Aggregation: Synchronization:
Active Long Yes Yes
Collecting: Distributing: Defaulted: Expired:
Yes Yes No No
Actor Actor Actor
Port System ID Port Number Age Flags
te1/1 32767,000d.4838.8067 9 27 SA
LACP Actor Actor Actor
Port Priority Oper Key Port State
32767 0x10 0x3D
Port State Flags Decode:
Activity: Timeout: Aggregation: Synchronization:
Active Long Yes Yes
Collecting: Distributing: Defaulted: Expired:
Yes Yes No No
Для просмотра информации о соседях используется команда show lacp neighbour ( | detail) ( | port). Опционально можно указать отдельный порт и вывод детализированной информации.
Пример краткого и детализированного вывода команды:
ecorouter#sh lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Port channel: ae.1
Partner's information:
LACP port Port Port
Port Flags priority Dev ID Age Number State
te1/0 FA 32768 908d.7845.9bc0 1 28 0x3F
te1/1 FA 32768 908d.7845.9bc0 9 27 0x3F
ecorouter#sh lacp neighbor detail
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Port channel: ae.1
Partner's information:
Partner Partner Partner
Port System ID Port Number Age Flags
te1/0 32768,908d.7845.9bc0 28 18 FA
LACP Partner Partner Partner
Port Priority Oper Key Port State
32768 0x1 0x3F
Port State Flags Decode:
Activity: Timeout: Aggregation: Synchronization:
Active Short Yes Yes
Collecting: Distributing: Defaulted: Expired:
Yes Yes No No
Partner Partner Partner
Port System ID Port Number Age Flags
te1/1 32768,908d.7845.9bc0 27 26 FA
LACP Partner Partner Partner
Port Priority Oper Key Port State
32768 0x1 0x3F
Port State Flags Decode:
Activity: Timeout: Aggregation: Synchronization:
Active Short Yes Yes
Collecting: Distributing: Defaulted: Expired:
Yes Yes No No
Для указанных команд могут использоваться модификаторы и вывод в файл, как и для любых других команд show.
ECMP
ECMP (Equal-cost multi-path routing) - механизм выбора лучшего пути до сети назначения среди равнозначных. Выбор выходного интерфейса и маршрута осуществляется на основании вычисления хэш-функции. Функционал включен по умолчанию.
Настройка Link aggregation
Именование агрегированных портов
Возможное количество агрегированных портов на устройстве равно n/2, где n - количество физических портов на устройстве. Имена агрегированных портов начинаются с букв ae, за которыми следует точка и порядковый номер.
Команды настройки агрегированного порта
Команда | Описание |
---|---|
port ae.<номер> | Команда создания порта агрегированного канала, где ae - указание на вид порта, через точку указывается порядковый номер (в конфигурационном режиме) |
bind <имя порта> | Добавление порта в агрегированный канал (в контекстном режиме конфигурирования агрегированного канала). При работе с ER-2008 необходимо учитывать ограничения (см. Оборудование) |
description <строка> | Добавление описания порта агрегированного канала |
mtu <значение> | Указание параметра mtu для агрегированного порта |
add-mirror-session <значение> | Указание на созданное правило зеркалирования |
service-instance <имя> | Создание сервисного интерфейса на агрегированном порту |
Порт в уже существующий агрегированный канал также можно добавить в контекстном режиме конфигурирования порта при помощи команды group <имя агрегированного порта>.
Базовая настройка агрегированного порта. Способ 1
Агрегированный порт настраивается в режиме конфигурирования.
ecorouter(config)#port ae.10
где ae - обязательная часть в имени порта, а 10 - его идентификатор.
Добавление портов в агрегированный порт в контекстном режиме конфигурирования агрегированного канала:
ecorouter(config-port-channel)#bind te0
ecorouter(config-port-channel)#bind te1
ecorouter(config-port-channel)#bind te2
ecorouter(config-port-channel)#bind te3
Задание значения mtu на агрегированном порту:
ecorouter(config-port-channel)#mtu 1500
После создания агрегированного порта им можно управлять так же, как обычным портом.
Базовая настройка агрегированного порта. Способ 2
Агрегированный порт настраивается в режиме конфигурирования.
ecorouter(config)#port ae.100
где ae - обязательная часть в имени порта, а 100 - его идентификатор
Добавление порта в агрегированный канал в контекстном режиме конфигурирования порта:
ecorouter(config)#port te0
ecorouter(config-port)#group ae.100
ecorouter(config)#port te1
ecorouter(config-port)#group ae.100
ecorouter(config)#port te2
ecorouter(config-port)#group ae.100
По умолчанию значение mtu равно 9728. Задание значения mtu на агрегированном порту (значения на портах ae и te должны совпадать):
ecorouter(config-port-channel)#mtu 1500
После создания агрегированного порта им можно управлять так же, как обычным портом.
Команды просмотра состояния агрегированного порта
Просмотр состояния всех портов:
ecorouter#show port
Port te0 is up
Type: 10 Gigabit Ethernet
MTU: 9728 max 9728
link state UP;
Input packets 8391086176507358240, bytes 2322538359385584737, errors 0
Output packets 0, bytes 0, errors 0
Port te1 is up
Type: 10 Gigabit Ethernet
MTU: 9728 max 9728
link state UP;
Input packets 8391086176507358240, bytes 2322538359385584737, errors 0
Output packets 0, bytes 0, errors 0
Port te2 is up
Type: 10 Gigabit Ethernet
MTU: 9728 max 9728
link state UP;
Input packets 8391086176507358240, bytes 2322538359385584737, errors 0
Output packets 0, bytes 0, errors 0
Port te3 is up
Type: 10 Gigabit Ethernet
MTU: 9728 max 9728
link state UP;
Input packets 0, bytes 0, errors 0
Output packets 0, bytes 0, errors 0
Port te4 is up
Type: 10 Gigabit Ethernet
MTU: 9728 max 9728
link state UP;
Input packets 0, bytes 0, errors 0
Output packets 0, bytes 0, errors 0
Port ae.10 is up
Link te0
Link te1
Link te2
MTU: 9728
link state DOWN;
Input packets 0, bytes 0, errors 0
Output packets 0, bytes 0, errors 0
Просмотр состояния определенного порта:
ecorouter#sh port ae.10
Port ae.10 is up
Link te0
Link te1
Link te2
MTU: 9728
link state DOWN;
Input packets 0, bytes 0, errors 0
Output packets 0, bytes 0, errors 0
Просмотр счётчиков агрегированного порта:
ecorouter#sh counters port ae.100
Port ae.100
Received packets
Total received packets: 0
Total received bytes: 0
Transmitted packets
Total received bytes: 0
Total transmitted packets: 0
Total transmitted bytes: 0
Transmission errors
giants: 0
Total transmission errors: 0