4.17. Настройка MLAG
Назначение
Данная функциональность предназначена для резервирования каналов путем кластеризации - логического объединения двух коммутаторов.
Описание
Топологии высокой доступности обычно обеспечивают резервирование за счет увеличения количества каналов связи. В таких топологиях обычно используются протоколы STP (Spanning Tree Protocols), которые блокируют часть каналов, что приводит к снижению общей пропускной способности.
Развертывание MLAG устраняет блокировку, настраивая канал MLAG между двумя агрегирующими коммутаторами для создания единого логического канала коммутации, который использует все соединения с коммутаторами. Интерфейсы на обоих коммутаторах участвуют в объединенном логическом канале, что позволяет всем активным портам передавать трафик не нарушая работоспособность сети.
MLAG обеспечивает следующие преимущества:
Более высокую пропускную способность каналов.
Более эффективное использование полосы пропускания благодаря меньшему количеству магистральных каналов, блокируемых STP.
Подключение к другим коммутаторам и серверам с помощью статического LAG или LACP без использования других проприетарных протоколов.
Поддержку актив-актив резервирования на уровне-L2.
Настройка
Ниже приведена настройка для коммутаторов “Switch1” и “Switch2”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.
Технология MLAG может работать как с использованием протокола STP (в его стандартной или RSTP-модификации), так и в случае отказа от данного протокола. Ниже показан пример настройки без использования STP. Если требуется поддержка протокола STP, то для его корректной работы на коммутаторах MLAG-пары необходимо активировать функцию e-STP (enhanced STP). Процедура настройки обоих протоколов описана далее в этой главе.
Сетевая конфигурация приведена на рисунке ниже.
Шаг 1: Вход в режим Global Config
Switch# configure terminal
Шаг 2: Вход в режим настройки VLAN и создание VLAN
Switch(config)# vlan database
Switch(config-vlan)# vlan 10,4094
Switch(config-vlan)# exit
Шаг 3: Создание объединенного канала
Switch(config)# interface eth-0-22
Switch(config-if)# static-channel-group 1
Switch(config-if)# no shutdown
Switch(config-if)# exit
Шаг 4: Настройка портов
Интерфейс “eth-0-24” будет установлен в качестве стыковочного интерфейса (peer-link) с коммутатором “Switch2”:
Switch(config)# interface eth-0-24
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Шаг 5: Отключение протокола STP на коммутаторе
Switch(config)# no spanning-tree enable
Шаг 6: Привязка объединенного канала к MLAG
Switch(config)# interface agg1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10
Switch(config-if)# mlag 1
Switch(config-if)# exit
Шаг 7: Настройка VLAN
На коммутаторе “Switch1”:
Switch(config)# interface vlan4094
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# exit
На коммутаторе “Switch2”:
Switch(config)# interface vlan4094
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# exit
Шаг 8: Вход в режим конфигурации MLAG и настройка
На коммутаторе “Switch1”:
Switch(config)# mlag configuration
Switch(config-mlag)# peer-link eth-0-24
Switch(config-mlag)# peer-address 12.1.1.2
Switch(config-mlag)# exit
На коммутаторе “Switch2”:
Switch(config)# mlag configuration
Switch(config-mlag)# peer-link eth-0-24
Switch(config-mlag)# peer-address 12.1.1.1
Switch(config-mlag)# end
Шаг 9: Проверка
Вывод информации о MLAG на коммутаторе “Switch1”:
Switch1# show mlag
MLAG configuration:
-------------------------
role : Master
local device priority : -
remote device priority : -
local system-id : 0058.3f1c.e157
remote system-id : 0058.3f1c.e0e5
mlag system-id : 0058.3f1c.e157
system-id switch delay : immediately
local lacp priority : 32768
remote lacp priority : 32768
mlag lacp priority : 32768
peer-link : eth-0-24
peer configured : Yes
reload-delay : Auto(300s)
Switch1#
Switch1# show mlag interface
mlagid local-if local-state remote-state
1 agg1 up up
Switch1#
Switch1# show mlag peer
MLAG neighbor is 12.1.1.2, MLAG version 1
MLAG state = Established, up for 00:04:28
Last read 00:00:00, hold time is 5, keepalive interval is 1 seconds
Received 273 messages,Sent 274 messages
Open : received 1, sent 2
KAlive : received 269, sent 269
Fdb sync : received 0, sent 0
Failover : received 0, sent 0
Conf : received 1, sent 1
Syspri : received 1, sent 1
Devpri : received 0, sent 0
Peer fdb : received 1, sent 1
Connections established 1; dropped 0
Local host: 12.1.1.1, Local port: 61000
Foreign host: 12.1.1.2, Foreign port: 61001
remote_sysid: 0058.3f1c.e0e5
Switch1#
Вывод информации о MLAG на коммутаторе “Switch2”:
Switch2# show mlag
MLAG configuration:
-------------------------
role : Slave
local device priority : -
remote device priority : -
local system-id : 0058.3f1c.e0e5
remote system-id : 0058.3f1c.e157
mlag system-id : 0058.3f1c.e157
system-id switch delay : immediately
local lacp priority : 32768
remote lacp priority : 32768
mlag lacp priority : 32768
peer-link : eth-0-24
peer configured : Yes
reload-delay : Auto(300s)
Switch2#
Switch2# show mlag interface
mlagid local-if local-state remote-state
1 agg1 up up
Switch2#
Switch2# show mlag peer
MLAG neighbor is 12.1.1.1, MLAG version 1
MLAG state = Established, up for 00:08:10
Last read 00:00:01, hold time is 5, keepalive interval is 1 seconds
Received 494 messages,Sent 494 messages
Open : received 1, sent 1
KAlive : received 490, sent 490
Fdb sync : received 0, sent 0
Failover : received 0, sent 0
Conf : received 1, sent 1
Syspri : received 1, sent 1
Devpri : received 0, sent 0
Peer fdb : received 1, sent 1
Connections established 1; dropped 0
Local host: 12.1.1.2, Local port: 61001
Foreign host: 12.1.1.1, Foreign port: 61000
remote_sysid: 0058.3f1c.e157
Switch2#
Дополнительные функции MLAG
MLAG Dual-Active Detection
Назначение
Механизм MLAG Dual Active Detection (DAD) предназначен для автоматического выявления и предотвращения в работе коммутаторов, собранных в MLAG группу, ситуации “Split-Brain” – когда оба коммутатора работают, но потеряли связь по Peer-link между собой.
Описание
Механизм MLAG DAD непрерывно отслеживает состояние связи по дополнительному выделенному каналу между партнёрами в паре MLAG-коммутаторов и автоматически реагирует на возникновение критической ситуации «Split-Brain», когда оба коммутатора остаются активными, но теряют связь по управляющему соединению Peer-link. MLAG DAD работает следующим образом:
Коммутаторы в MLAG-паре используют выделенные L3 порты из одной IP-сети для организации DAD-линка, по которому они будут регулярного обмениваться специальными служебными пакетами – heartbeat (HB)-сообщениями. HB-сообщения между коммутаторами передаются с периодичностью раз в 1 сек. Если сообщения не приходят в течение определенного времени ожидания (по умолчанию 3 сек.), то DAD-сессия считается прерванной. Время ожидания HB-сообщений может быть настроено в диапазоне от 3 до 60 секунд.
В нормальном режиме работы, когда управляющее соединение Peer-link работает и оба коммутатора успешно передают и получают HB-сообщения по DAD-линку, все порты на обоих коммутаторах остаются в активном состоянии, обеспечивая балансировку нагрузки и отказоустойчивость для подключенных к ним устройств.
Если связь по управляющему соединению Peer-link выходит из строя, но коммутаторы продолжают обмениваться HB-сообщениями по DAD-линку, возникает ситуация DAD, при которой оба коммутатора MLAG пары работают, но не могут синхронизовать свое состояние. В этом случае подчиненный (SLAVE) коммутатор переводит все свои L2 порты в состояние errdisable по причине mlag-dad. Это позволяет предотвратить возникновение L2 петель и в то же время обеспечивает доступность подключенных устройств через один основной (MASTER) коммутатор MLAG пары.
Когда связь по peer-link восстанавливается, коммутаторы снова синхронизируют состояние в MLAG-паре и подчиненный коммутатор автоматически выводит свои порты из состояния errdisable через определенное время и переводит их в активное (up) состояние. По умолчанию время восстановления портов 300 секунд и может быть настроено в диапазоне от 0 до 3600 секунд.
Настройка
Ниже приведена настройка для коммутаторов “Switch1” и “Switch2”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.
Сетевая конфигурация приведена на рисунке ниже.
Шаг 1: Вход в режим Global Config
Switch# configure terminal
Шаг 2: Настройка портов для DAD-link
Для создания DAD-link можно использовать обычные порты коммутатора, настроенные для работы в режиме L3, порты OOB управления или порты указанного VRF.
Switch1(config)# interface eth-0-23
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 10.0.12.1/24
Switch2(config)# interface eth-0-23
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 10.0.12.2/24
Шаг 3: Вход в режим конфигурации MLAG
Switch(config)# mlag configuration
Шаг 4: Включение механизма MLAG Dual-Active Detection
Switch1(config-mlag)# dual-active-detection source 10.0.12.1 peer 10.0.12.2
Switch2(config-mlag)# dual-active-detection source 10.0.12.2 peer 10.0.12.1
Шаг 5 (не обязательно): Запрет перевода портов подчиненного коммутатора в состояние errdisable при потере связи по Peer-link
При необходимости администратор может запретить переводить определенные порты на подчиненном коммутаторе в состояние errdisable. Рекомендуется настроить запрет перевода в состояние errdisable интерфейса DAD-link. В данном примере настроен запрет перевода в состояние errdisable порта eth-0-23, используемого для DAD-link на подчиненном коммутаторе Switch2.
Switch2(config-mlag)# dual-active-detection reserved interface eth-0-23
Шаг 6 (не обязательно): Изменение времени восстановления портов подчиненного коммутатора из состояния errdisable
По умолчанию время восстановления портов подчиненного коммутатора из состояния errdisable составляет 300 секунд. При необходимости это время можно изменить в диапазоне от 0 до 3600 секунд. В данном примере время восстановления изменено на 100 секунд.
Switch2(config-mlag)# dual-active-detection updelay 100
Шаг 7 (не обязательно): Изменение времени ожидания HB-сообщений
По умолчанию время ожидания HB-сообщений до того, как DAD-сессия будет считаться прерванной, составляет 3 сек. Время ожидания может быть изменено в диапазоне от 3 до 60 секунд. В данном примере на обоих коммутаторах – основном и подчиненном время ожидания HB-сообщений изменено на 4 сек.
Switch1(config-mlag)# dual-active-detection source 10.0.12.1 peer 10.0.12.2 timeout 4
Switch2(config-mlag)# dual-active-detection source 10.0.12.2 peer 10.0.12.1 timeout 4
Шаг 8: Проверка
Switch1# show mlag dad
MLAG DAD:
-------------------------
DAD status : UP
DAD source ip : 10.0.12.1
DAD peer ip : 10.0.12.2
DAD vrf : -
DAD over mgmt-if : FALSE
udp port : 1025
heartbeat interval : 1
heartbeat timeout : 4
heartbeat updelay : 300
heartbeat receive : ON
heartbeat send : ON
heartbeat source ip : 10.0.12.2
heartbeat peer ip : 10.0.12.1
heartbeat peer mac : 0058.3f1c.e0e5
heartbeat source priority : -
heartbeat peer priority : -
heartbeat role : Master
DAD occur : No
Switch1#
Switch2# show mlag dad
MLAG DAD:
-------------------------
DAD status : UP
DAD source ip : 10.0.12.2
DAD peer ip : 10.0.12.1
DAD vrf : -
DAD over mgmt-if : FALSE
udp port : 1025
heartbeat interval : 1
heartbeat timeout : 4
heartbeat updelay : 100
heartbeat receive : ON
heartbeat send : ON
heartbeat source ip : 10.0.12.1
heartbeat peer ip : 10.0.12.2
heartbeat peer mac : 0058.3f1c.e157
heartbeat source priority : -
heartbeat peer priority : -
heartbeat role : Slave
DAD occur : No
Switch2#
MLAG e-STP
Назначение
e-STP – это расширение протокола STP (Spanning Tree Protocol), которое позволяет использовать STP и RSTP (Rapid Spanning Tree Protocol) на коммутаторах, объединенных в MLAG-пару. В этой конфигурации MLAG-пара коммутаторов выглядит для остальной сети как один логический коммутатор с общим идентификатором моста (Bridge ID) и согласованной информацией STP.
Описание
e-STP обеспечивает корректную работу протоколов STP и RSTP в топологии MLAG за счет синхронизации процессов STP между двумя коммутаторами MLAG-пары, следующим образом:
Оба коммутатора пары используют один общий Bridge ID, которым становится Bridge ID основного коммутатора MLAG-пары и согласованные STP-параметры (Priority, Path Cost). Для внешней сети MLAG-пара представляется как единый логический коммутатор, на котором работает STP или RSTP.
BPDU, отправляемые с MLAG-портов, генерируются основным коммутатором MLAG-пары и передаются через Peer-link. Подчиненный коммутатор транслирует эти BPDU на свои клиентские порты. Это гарантирует, что устройства, подключенный к MLAG-паре получают BPDU только от одного “логического” коммутатора.
Синхронизация гарантирует, что MLAG-пара не создает конфликтующих STP-топологий. Только основной коммутатор MLAG-пары, выполняющий роль Root, активно участвует в STP-вычислениях с внешним миром, а решения согласованно применяются на обоих устройствах. Это исключает ситуации независимого блокирования портов или конкуренции за роль Root внутри пары.
Настройка
Ниже приведена настройка для коммутаторов “Switch1” и “Switch2”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.
Сетевая конфигурация приведена на рисунке ниже.
Шаг 1: Вход в режим Global Config
Switch# configure terminal
Шаг 2: Включение протокола STP в глобальном режиме коммутаторов
Switch(config)# spanning-tree enable
Шаг 3: Включение функции e-STP в глобальном режиме коммутаторов
Switch(config)# spanning-tree e-stp enable
Шаг 4: Включение протокола STP на Peer-link портах коммутаторов
Switch(config)# interface eth-0-24
Switch(config-if)# spanning-tree port enable
Шаг 5 (рекомендуется): Настройка приоритета STP для выбора роли Root коммутаторами MLAG-пары
Настройка приоритета STP должна быть выполнена согласованно на обоих коммутаторах MLAG-пары.
Switch1(config)# spanning-tree priority 0
Switch2(config)# spanning-tree priority 0
Шаг 6: Проверка
Switch1# show spanning-tree e-stp
E-STP enabled
Active Bridge Id 000000583f1ce157
Peer-link eth-0-24
Bridge up - Spanning Tree Enabled
Mode - Rapid spanning tree protocol
Path Cost Standard - dot1t
Root Path Cost 0 - Root Port 0 - Bridge Priority 0
Forward Delay 15 - Hello Time 2 - Max Age 20
Tx Hold Count 6
Root Id 000000583f1ce157
Bridge Id 000000583f1ce157
Last topology change Tue Jun 30 11:58:38 2026
Edgeport bpdu-filter disabled
Edgeport bpdu-guard disabled
Switch1#
Switch2# show spanning-tree e-stp
E-STP enabled
Active Bridge Id 000000583f1ce157
Peer-link eth-0-24
Bridge up - Spanning Tree Enabled
Mode - Rapid spanning tree protocol
Path Cost Standard - dot1t
Root Path Cost 0 - Root Port 24 - Bridge Priority 0
Forward Delay 15 - Hello Time 2 - Max Age 20
Tx Hold Count 6
Root Id 000000583f1ce157
Bridge Id 000000583f1ce157
Last topology change Tue Jun 30 11:58:37 2026
Edgeport bpdu-filter disabled
Edgeport bpdu-guard disabled
Switch2#
Switch1# show spanning-tree brief
Rapid spanning tree protocol Enabled
Root ID Priority 0 (0x0000)
Address 0058.3f1c.e157
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 0 (0x0000)
Address 0058.3f1c.e157
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role State Cost Priority.PortNumber Type
---------------------------------------------------------------------------------
eth-0-24 Designated Forwarding 20000 128.24 P2p
mlag1 Designated Forwarding 20000 128.3841 P2p
Switch1#
Switch2# show spanning-tree brief
Rapid spanning tree protocol Enabled
Root ID Priority 0 (0x0000)
Address 0058.3f1c.e157
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 0 (0x0000)
Address 0058.3f1c.e157
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role State Cost Priority.PortNumber Type
---------------------------------------------------------------------------------
eth-0-24 Rootport Forwarding 20000 128.24 P2p
mlag1 Designated Forwarding 20000 128.3841 P2p
Switch2#
Switch3# show spanning-tree brief
Rapid spanning tree protocol Enabled
Root ID Priority 0 (0x0000)
Address 0058.3f1c.e157
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32768 (0x8000)
Address 0058.3f1c.e073
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role State Cost Priority.PortNumber Type
---------------------------------------------------------------------------------
agg1 Rootport Forwarding 10000 128.3841 P2p
Switch3#
Принудительное назначение приоритета коммутаторов в MLAG-паре
Назначение
Данная функция предназначена для предоставления администратору возможности выбора для коммутаторов в MLAG-паре ролей основной (MASTER) / подчиненный (SLAVE) по своему усмотрению.
Описание
По умолчанию выбор основного коммутатора в MLAG паре происходит с помощью сравнения system id коммутаторов пары. В качестве основного выбирается коммутатор с большим значением system id.
Функция принудительного назначения приоритета позволяет администратору явно задать значение MLAG device priority для каждого коммутатора в паре с помощью команды priority в режиме конфигурации MLAG. Это значение напрямую влияет на алгоритм выбора ролей основной и подчиненный внутри MLAG-пары:
При установлении MLAG-сессии или изменении конфигурации коммутаторы сравнивают свои заданные приоритеты.
Коммутатор с большим значением приоритета становится основным, с меньшим – подчиненным. В случае задания равного приоритета, для выбора используется механизм по умолчанию – сравниваются system id коммутаторов.
В случае изменения приоритета для работающей MLAG-пары системный идентификатор MLAG (mlag_sysid), не изменяется на sys-id нового основного коммутатора сразу. Изменение происходит после перезагрузки любого из коммутаторов MLAG-пары. Это позволяет сохранить установленные агрегированные каналы без необходимости их устанавливать заново из-за изменившегося идентификатора соседа.
Настройка
Ниже приведена настройка для коммутаторов “Switch1” и “Switch2”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.
Сетевая конфигурация приведена на рисунке ниже.
Рис. 4.22 Сетевая конфигурация для принудительного назначения приоритета в MLAG-паре
Шаг 1: Вход в режим Global Config
Switch# configure terminal
Шаг 2: Включение режим конфигурации MLAG
Switch(config)# mlag configuration
Шаг 3: Назначение приоритета в режиме конфигурации MLAG
Значение приоритета по умолчанию отсутствует, поэтому, что бы значения приоритетов можно было сравнить, их нужно задавать на обоих коммутаторах пары.
Switch1(config-mlag)# priority 1
Switch2(config-mlag)# priority 3
Шаг 4: Проверка
Switch1# show mlag
MLAG configuration:
-------------------------
role : Slave
local device priority : 1
remote device priority : 3
local system-id : 0058.3f1c.e157
remote system-id : 0058.3f1c.e0e5
mlag system-id : 0058.3f1c.e157
system-id switch delay : immediately
local lacp priority : 32768
remote lacp priority : 32768
mlag lacp priority : 32768
peer-link : eth-0-24
peer configured : Yes
reload-delay : Auto(300s)
Switch1#
Switch2# show mlag
MLAG configuration:
-------------------------
role : Master
local device priority : 3
remote device priority : 1
local system-id : 0058.3f1c.e0e5
remote system-id : 0058.3f1c.e157
mlag system-id : 0058.3f1c.e157
system-id switch delay : immediately
local lacp priority : 32768
remote lacp priority : 32768
mlag lacp priority : 32768
peer-link : eth-0-24
peer configured : Yes
reload-delay : Auto(300s)
Switch2#
Таймер задержки замены MLAG LACP system id
Назначение
Таймер задержки замены MLAG LACP system id предназначен для устранения флаппинга значения MLAG LACP sys-id и повышения стабильности сети.
Описание
По умолчанию, при потере связи по Peer-link, подчиненный коммутатор немедленно меняет общий MLAG LACP System ID на свой локальный LACP System ID. Это позволяет устройствам, подключенным к MLAG-паре, корректно определить, что они взаимодействуют с двумя отдельными устройствами, а не с одним логическим.
Однако в случае кратковременного отключения основного коммутатора (например, запланированной перезагрузки) для устранения ненужного изменения значения MLAG LACP sys-id и повышения, таким образом, стабильности сети, можно задать таймер задержки такой замены (от 0 до 3600 сек).
Таймер настраивается на подчиненном коммутаторе в контексте конфигурации MLAG. Настройка значения таймера 0 означает запрет замены.
Настройка
Ниже приведена настройка для подчиненного коммутатора “Switch2”.
Сетевая конфигурация приведена на рисунке ниже.
Рис. 4.23 Сетевая конфигурация для настройки таймера задержки замены MLAG LACP system id
Шаг 1: Вход в режим Global Config
Switch2# configure terminal
Шаг 2: Вход в режим конфигурации MLAG
Switch2(config)# mlag configuration
Шаг 3: Настройка таймера задержки замены MLAG LACP system id равным 30 сек
Switch2 (config-mlag)# lacp-system-id switch-delay 30
Шаг 4: Проверка
Switch2# show mlag
MLAG configuration:
-------------------------
role : Master
local device priority : 3
remote device priority : 1
local system-id : 0058.3f1c.e0e5
remote system-id : 0058.3f1c.e157
mlag system-id : 0058.3f1c.e157
system-id switch delay : 30
local lacp priority : 32768
remote lacp priority : 32768
mlag lacp priority : 32768
peer-link : eth-0-24
peer configured : Yes
reload-delay : Auto(300s)
Switch2#