4.16. Настройка MLAG

Назначение

Данная функциональность предназначена для резервирования каналов путем кластеризации - логического объединения двух коммутаторов.

Описание

Топологии высокой доступности обычно обеспечивают резервирование за счет увеличения количества каналов связи. В таких топологиях обычно используются протоколы STP (Spanning Tree Protocols), которые блокируют часть каналов, что приводит к снижению общей пропускной способности.

Развертывание MLAG устраняет блокировку, настраивая канал MLAG между двумя агрегирующими коммутаторами для создания единого логического канала коммутации, который использует все соединения с коммутаторами. Интерфейсы на обоих коммутаторах участвуют в объединенном логическом канале, что позволяет всем активным портам передавать трафик не нарушая работоспособность сети.

MLAG обеспечивает следующие преимущества:

  • Более высокую пропускную способность каналов.

  • Более эффективное использование полосы пропускания благодаря меньшему количеству магистральных каналов, блокируемых STP.

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

  • Поддержку актив-актив резервирования на уровне-L2.

Настройка

Ниже приведена настройка для коммутаторов “Switch1” и “Switch2”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.

Сетевая конфигурация приведена на рисунке ниже.

image

Рис. 4.19 Сетевая конфигурация

Шаг 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”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.

Сетевая конфигурация приведена на рисунке ниже.

image

Рис. 4.20 Сетевая конфигурация MLAG DAD

Шаг 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”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.

Сетевая конфигурация приведена на рисунке ниже.

image

Рис. 4.21 Сетевая конфигурация MLAG e-STP

Шаг 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”. В случае отсутствия особых пояснений, настройки для всех коммутаторов будут аналогичны.

Сетевая конфигурация приведена на рисунке ниже.

image

Рис. 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”.

Сетевая конфигурация приведена на рисунке ниже.

image

Рис. 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#