Перейти к содержанию

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

Команды отображения информации

1
2
3
4
5
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]

Пример конфигурирования

Схема соединений

Схема подключения для примера настройки MSTP

Настройка

Шаг 1. Установка приорета для instance 0, 1, 2 на коммутаторе ASW3, чтобы он стал корнем для этих instance.

1
2
3
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

1
2
3
4
5
6
7
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-интерфейсы.