4.16. Настройка MLAG
Назначение
Данная функциональность предназначена для резервирования каналов путем кластеризации - логического объединения двух коммутаторов.
Описание
Топологии высокой доступности обычно обеспечивают резервирование за счет увеличения количества каналов связи. В таких топологиях обычно используются протоколы STP (Spanning Tree Protocols), которые блокируют часть каналов, что приводит к снижению общей пропускной способности.
Развертывание MLAG устраняет блокировку, настраивая канал MLAG между двумя агрегирующими коммутаторами для создания единого логического канала коммутации, который использует все соединения с коммутаторами. Интерфейсы на обоих коммутаторах участвуют в объединенном логическом канале, что позволяет всем активным портам передавать трафик не нарушая работоспособность сети.
MLAG обеспечивает следующие преимущества:
Более высокую пропускную способность каналов.
Более эффективное использование полосы пропускания благодаря меньшему количеству магистральных каналов, блокируемых STP.
Подключение к другим коммутаторам и серверам с помощью статического LAG или LACP без использования других проприетарных протоколов.
Поддержку актив-актив резервирования на уровне-L2.
Настройка
Ниже приведена настройка для коммутаторов “Switch1” и “Switch2”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.
Сетевая конфигурация приведена на рисунке ниже.
Шаг 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-1
Switch(config-if)# static-channel-group 1
Switch(config-if)# no shutdown
Switch(config-if)# exit
Шаг 4: Настройка портов
Интерфейс “eth-0-9” будет установлен в качестве стыковочного интерфейса (peer-link) с коммутатором “Switch2”:
Switch(config)# interface eth-0-9
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: Привязка объединенного канала к 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
Шаг 6: Настройка 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
Шаг 7: Вход в режим конфигурации MLAG и настройка
На коммутаторе “Switch1”:
Switch(config)# mlag configuration
Switch(config-mlag)# peer-link eth-0-9
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-9
Switch(config-mlag)# peer-address 12.1.1.1
Switch(config-mlag)# end
Шаг 8: Проверка
Вывод информации о MLAG на коммутаторе “Switch1”:
Switch1# show mlag
MLAG configuration:
-----------------
role : Master
local_sysid : 0058.3f1d.5225
remote_sysid : 0058.3f1c.fef2
mlag_sysid : 0058.3f1d.5225
local_syspri : 32768
remote_syspri: 32768
mlag_syspri : 32768
peer-link : eth-0-9
peer conf : Yes
reload-delay : Auto(300s)
Switch1# show mlag interface
mlagid local-if local-state remote-state
1 agg1 up up
Switch1# show mlag peer
MLAG neighbor is 12.1.1.2, MLAG version 1
MLAG state = Established, up for 00:11:49
Last read 00:00:00, hold time is 5, keepalive interval is 1 seconds
Received 713 messages,Sent 715 messages
Open : received 1, sent 1
KAlive : received 710, sent 710
Fdb sync : received 0, sent 1
Failover : received 0, sent 0
Conf : received 0, sent 1
Syspri : received 1, sent 1
Peer fdb : received 1, sent 1
Connections established 1; dropped 0
Local host: 12.1.1.1, Local port: 61001
Foreign host: 12.1.1.2, Foreign port: 61000
remote_sysid: 0058.3f1c.fef2
Вывод информации о MLAG на коммутаторе “Switch2”:
Switch2# show mlag
MLAG configuration:
-----------------
role : Slave
local_sysid : 0058.3f1c.fef2
remote_sysid : 0058.3f1d.5225
mlag_sysid : 0058.3f1d.5225
local_syspri : 32768
remote_syspri: 32768
mlag_syspri : 32768
peer-link : eth-0-9
peer conf : Yes
reload-delay : Auto(300s)
Switch2# show mlag interface
mlagid local-if local-state remote-state
1 agg1 up up
Switch2# show mlag peer
MLAG neighbor is 12.1.1.1, MLAG version 1
MLAG state = Established, up for 00:12:23
Last read 00:00:00, hold time is 5, keepalive interval is 1 seconds
Received 749 messages,Sent 747 messages
Open : received 1, sent 1
KAlive : received 744, sent 744
Fdb sync : received 1, sent 0
Failover : received 0, sent 0
Conf : received 1, sent 0
Syspri : received 1, sent 1
Peer fdb : received 1, sent 1
Connections established 1; dropped 0
Local host: 12.1.1.2, Local port: 61000
Foreign host: 12.1.1.1, Foreign port: 61001
remote_sysid: 0058.3f1d.5225
Дополнительные функции 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:
---------------------------
status : UP
src ip : 10.0.12.1
peer ip : 10.0.12.2
vrf : -
mgmt-if : FALSE
udp port : 1025
interval : 1
timeout : 4
updelay : 300
receive : ON
send : ON
HB src ip : 10.0.12.2
HB peer ip : 10.0.12.1
HB mac : 0058.3f1c.e0e5
HB priority : -
HB role : Master
DAD occur : No
Switch1#
Switch2# show mlag dad
MLAG DAD:
---------------------------
status : UP
src ip : 10.0.12.2
peer ip : 10.0.12.1
vrf : -
mgmt-if : FALSE
udp port : 1025
interval : 1
timeout : 4
updelay : 100
receive : OFF
send : OFF
HB src ip : 10.0.12.1
HB peer ip : 10.0.12.2
HB mac : 0058.3f1c.e157
HB priority : -
HB 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 Thu Aug 14 13:47:45 2025
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 Thu Aug 14 13:47:53 2025
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.2049 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.2049 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.2049 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_dev_pri : 1
remote_dev_pri: 3
local_sysid : 0058.3f1c.e157
remote_sysid : 0058.3f1c.e0e5
mlag_sysid : 0058.3f1c.e157
local_lacppri : 32768
remote_lacppri: 32768
mlag_lacppri : 32768
peer-link : eth-0-24
peer conf : Yes
reload-delay : Auto(300s)
Switch1#
Switch2# show mlag
MLAG configuration:
-----------------
role : Master
local_dev_pri : 3
remote_dev_pri: 1
local_sysid : 0058.3f1c.e0e5
remote_sysid : 0058.3f1c.e157
mlag_sysid : 0058.3f1c.e157
local_lacppri : 32768
remote_lacppri: 32768
mlag_lacppri : 32768
peer-link : eth-0-24
peer conf : 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 running-config mlag
Building configuration...
!
mlag configuration
priority 3
lacp-system-id switch-delay 30
peer-link eth-0-24
peer-address 10.0.0.1
exit
!
Switch2#