Multiple Spanning Tree Protocol (MSTP)
MSTP – протокол, который позволяет создать несколько логических экземпляров для разных групп VLAN, чтобы задействовать резервные линки и сбалансировать нагрузку, вместо того чтобы блокировать все резервные порты.
MSTP делит сеть на области, они называются регионами MST (MST Region). Регионом называется группа коммутаторов у которых совпадают три настройки:
- Имя региона (Region Name);
- Номер ревизии (Revision Number);
- Карта соответствия VLAN номерам экземпляров (VLAN-to-instance).
Регионы изолируют внутри себя изменения топологии, для остальной сети они выглядят как один коммутатор. За счет этого достигается хорошая масштабируемость при использовании MSTP.
Иерархия деревьев в MSTP:
- CIST - общее дерево для всего региона;
- MSTI - локальные деревья внутри региона, по одному для каждой группы VLAN.
Для каждого MSTI выбирается свой Root, что позволяет трафику из разных VLAN идти по разным физическим путям.
Состояния портов:
- Discarding - отправляет BPDU, но не участвует в пересылке пользовательских данных;
- Learning - порт слушает и отправляет BPDU, вносит изменения в MAC-таблицу, но данные не отправляет;
- Forwarding - порт слушает и отправляет BPDU, участвует в пересылке пользовательских данных.
Роли портов:
- Root - порт, который является ближайшим к корневому коммутатору;
- Designated - единственный порт, отправляющий кадры в сегмент сети;
- Alternate - резервный root порт;
- Backup - резервный designated порт;
- Master Port - порт с наименьшей стоимостью пути от текущего региона MSTP до общего корневого коммутатора, который находится за пределами региона (служит для обеспечения связи региона с остальной сетью).
Преимущества:
- Балансировка нагрузки;
- Быстрая сходимость;
- Отказоустойчивость;
- Масштабируемость.
Назначение применяемой команды/конфигурации
Команды в режиме глобальной конфигурации
| spanning-tree aggregation
spanning-tree edge bpdu-filter
spanning-tree edge bpdu-guard
spanning-tree mode { mstp | rstp | stp }
spanning-tree mst { forward-time | hello-time | max-age |
max-hops | name }
spanning-tree mst <0-7> {priority | vlan}
spanning-tree recovery interval <30-86400>
spanning-tree transmit hold-count <1-10>
no spanning-tree edge { bpdu-filter | bpdu-guard }
no spanning-tree mode
no spanning-tree mst { <0-7> | forward-time | hello-time | max-age | max-hops | name }
no spanning-tree mst <0-7> { priority | vlan }
no spanning-tree recovery interval
no spanning-tree transmit hold-count
|
Команды в режиме spanning-tree aggregation
| spanning-tree
spanning-tree auto-edge
spanning-tree bpdu-guard
spanning-tree edge
spanning-tree link-type { auto | point-to-point | shared }
spanning-tree mst <0-7> { cost | port-priority }
spanning-tree restricted-role
spanning-tree restricted-tcn
no spanning-tree
no spanning-tree auto-edge
no spanning-tree bpdu-guard
no spanning-tree edge
no spanning-tree link-type
no spanning-tree mst <0-7> cost
no spanning-tree mst <0-7> port-priority
no spanning-tree restricted-role
no spanning-tree restricted-tcn
|
Команды в режиме настройки интерфейса
| spanning-tree auto-edge
spanning-tree bpdu-guard
spanning-tree edge
spanning-tree link-type { auto | point-to-point | shared }
spanning-tree mst <0-7> { cost | port-priority }
spanning-tree restricted-role
spanning-tree restricted-tcn
no spanning-tree auto-edge
no spanning-tree bpdu-guard
no spanning-tree edge
no spanning-tree link-type
no spanning-tree mst <0-7> cost
no spanning-tree mst <0-7> port-priority
no spanning-tree restricted-role
no spanning-tree restricted-tcn
|
Команды отображения информации
| show spanning-tree active
show spanning-tree detailed [interface]
show spanning-tree interface
show spanning-tree mst [<0-7> | configuration]
show spanning-tree summary
|
Команды очистки
| clear spanning-tree [detected-protocols | statistics]
|
Пример конфигурирования
Схема соединений

Настройка
Шаг 1.
Установка приорета для instance 0, 1, 2 на коммутаторе ASW3, чтобы он стал корнем для этих instance.
| ASW3(config)# spanning-tree mst 0 priority 20480
ASW3(config)# spanning-tree mst 1 priority 20480
ASW3(config)# spanning-tree mst 2 priority 20480
|
Шаг 2.
Установка имени региона и номера ревизии на коммутаторе ASW3.
| ASW3(config)# spanning-tree mst name STEND revision 1
|
Шаг 3.
Сопоставление диапазонов VLAN с mst instance
| ASW3(config)# spanning-tree mst 1 vlan 30-99
ASW3(config)# spanning-tree mst 2 vlan 200-299
|
Шаг 4.
Установка таких же имени региона и номера ревизии на коммутаторе ASW4.
| ASW4(config)# spanning-tree mst name STEND revision 1
|
Шаг 6.
Сопоставление диапазонов VLAN с mst instance
| ASW4(config)# spanning-tree mst 1 vlan 30-99
ASW4(config)# spanning-tree mst 2 vlan 200-299
|
Полный вывод выполненных конфигураций
Для ASW3
| configure terminal
!
spanning-tree mst 0 priority 20480
!
spanning-tree mst 1 priority 20480
!
spanning-tree mst 2 priority 20480
!
spanning-tree mst name STEND revision 1
!
spanning-tree mst 1 vlan 30-99
!
spanning-tree mst 2 vlan 200-299
|
Для ASW4
| configure terminal
!
spanning-tree mst name STEND revision 1
!
spanning-tree mst 1 vlan 30-99
!
spanning-tree mst 2 vlan 200-299
|
Изучение состояния устройства
Просмотр конфигурации
| ASW3# show spanning-tree
CIST Bridge STP Status
Bridge ID : 20480.00-16-D6-00-01-00
Root ID : 20480.00-16-D6-00-01-00
Root Port : -
Root PathCost: 0
Regional Root: 20480.00-16-D6-00-01-00
Int. PathCost: 0
Max Hops : 20
TC Flag : Steady
TC Count : 119
TC Last : 0d 00:01:14
Port Port Role State Pri PathCost Edge P2P Uptime
--------- -------------- ---------- --- -------- ---- --- -------------
Gi 1/40 DesignatedPort Forwarding 128 20000 No Yes 2d 18:54:26
Gi 1/42 DesignatedPort Forwarding 128 20000 No Yes 0d 00:08:37
MSTI1 Bridge STP Status
Bridge ID : 20481.00-16-D6-00-01-00
Root ID : 20481.00-16-D6-00-01-00
Root Port : -
Root PathCost: 0
TC Flag : Steady
TC Count : 67
TC Last : 0d 00:08:36
Gi 1/40 DesignatedPort Forwarding 128 20000 No Yes 2d 18:54:26
Gi 1/42 DesignatedPort Forwarding 128 20000 No Yes 0d 00:08:37
MSTI2 Bridge STP Status
Bridge ID : 20482.00-16-D6-00-01-00
Root ID : 20482.00-16-D6-00-01-00
Root Port : -
Root PathCost: 0
TC Flag : Steady
TC Count : 67
TC Last : 0d 00:08:36
Gi 1/40 DesignatedPort Forwarding 128 20000 No Yes 2d 18:54:26
Gi 1/42 DesignatedPort Forwarding 128 20000 No Yes 0d 00:08:37
|
| ASW4# show spanning-tree
CIST Bridge STP Status
Bridge ID : 32768.00-16-D6-00-01-C0
Root ID : 20480.00-16-D6-00-01-00
Root Port : 40
Root PathCost: 0
Regional Root: 20480.00-16-D6-00-01-00
Int. PathCost: 20000
Max Hops : 20
TC Flag : Steady
TC Count : 84
TC Last : 0d 00:01:29
Port Port Role State Pri PathCost Edge P2P Uptime
--------- -------------- ---------- --- -------- ---- --- -------------
Gi 1/40 RootPort Forwarding 128 20000 No Yes 2d 18:54:41
Gi 1/42 AlternatePort Discarding 128 20000 No Yes 0d 00:08:53
MSTI1 Bridge STP Status
Bridge ID : 32769.00-16-D6-00-01-C0
Root ID : 20481.00-16-D6-00-01-00
Root Port : 40
Root PathCost: 20000
TC Flag : Steady
TC Count : 45
TC Last : 2d 18:54:38
Gi 1/40 RootPort Forwarding 128 20000 No Yes 2d 18:54:41
Gi 1/42 AlternatePort Discarding 128 20000 No Yes 0d 00:08:53
MSTI2 Bridge STP Status
Bridge ID : 32770.00-16-D6-00-01-C0
Root ID : 20482.00-16-D6-00-01-00
Root Port : 40
Root PathCost: 20000
TC Flag : Steady
TC Count : 45
TC Last : 2d 18:54:38
Gi 1/40 RootPort Forwarding 128 20000 No Yes 2d 18:54:41
Gi 1/42 AlternatePort Discarding 128 20000 No Yes 0d 00:08:53
|
Рекомендации выполнения команд/настроек
Идентичность имени и ревизии региона
Без идентичных имени и ревизии коммутаторы будут считать себя находящимися в разных регионах. В этом случае они не будут правильно делить нагрузку через instance, а будут соединяться как "разные регионы" через instance 0, что может привести к неоптимальной маршрутизации трафика.
Область действия команд spanning-tree aggregation
Команды, применяемые в spanning-tree aggregation, применяются на все созданные LAG-интерфейсы.