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

Spanning Tree (STP)

Spanning Tree Protocol — это протокол, который автоматически блокирует избыточные соединения между коммутаторами, чтобы предотвратить образование петель. Он отключает избыточные порты, оставляя только один путь между любыми двумя устройствами.

Состояния портов в STP:

  • Discarding - ничего не отправляет, но слушает BPDU чтобы разблокироваться при возникновении обрыва;
  • Listening - порт слушает и отправляет BPDU, но данные не пересылает;
  • Learning - порт слушает и отправляет BPDU, вносит изменения в MAC-таблицу, но данные не отправляет;
  • Forwarding - порт слушает и отправляет BPDU, участвует в пересылке данных.

Роли портов в STP:

  • Root Port - порт, который является ближайшим к корневому коммутатору;
  • Designated Port - единственный порт, отправляющий кадры в сегмент сети;
  • Alternate Port - порт, который заблокирован для исключения образования петли, он не передает данные, но слушает BPDU.

Принцип работы:

  • Выбор корневого коммутатора - выбор производится сравниванием Bridge ID, у кого он меньше, тот и становится корневым (на приоритет можно влиять при настройке);
  • Каждый коммутатор выбирает Root Port - определяется лучшей стоимостью маршрута от каждого своего порта до корневого коммутатора;
  • Коммутаторы выбирают Designated Port - выбирается тот порт, который имеет лучшую стоимость в данном сегменте;
  • Блокировка оставшихся портов - блокируются избыточные порты, роль порта становится Alternate, а состояние Discarding;
  • В уже сложившейся топологии только корневой коммутатор отправляет BPDU, а остальные пересылают его;
  • При возникновении обрыва порт с ролью Alternate проходит через все состояния перед тем как перейти в состояние Forwarding.

Назначение применяемой команды/конфигурации

Команды в режиме глобальной конфигурации

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
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

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

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]

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

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

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

Настройка

Шаг 1. Перевести коммутатор ASW3 в режим работы STP.

ASW3(config)# configure terminal
ASW3(config)# spanning-tree mode stp

Шаг 2. Назначить приоритет коммутатору ASW3, для выбора его как root.

ASW3(config)# spanning-tree mst 0 priority 20480

Шаг 3. Перевести коммутатор ASW4 в режим работы STP.

ASW4(config)# spanning-tree mode stp

Полный вывод выполненных конфигураций

Для ASW3

1
2
3
4
configure terminal
!
spanning-tree mode stp
spanning-tree mst 0 priority 20480

Для ASW4

1
2
3
configure terminal
!
spanning-tree mode stp

Изучение состояния устройства

Просмотр конфигурации

ASW3# show spanning-tree summary 
Protocol Version: Compatible (STP)
Hello Time      : 2
Max Age         : 20
Forward Delay   : 15
Tx Hold Count   : 6
Max Hop Count   : 20
BPDU Filtering  : Disabled
BPDU Guard      : Disabled
Error Recovery  : Disabled
CIST Bridge is active

ASW3# show spanning-tree active  
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     : 171
TC Last      : 0d 00:01:17
Port       Port Role       State       Pri  PathCost  Edge  P2P         Uptime
---------  --------------  ----------  ---  --------  ----  ---  -------------
Gi 1/40    DesignatedPort  Forwarding  128     20000  No    Yes  0d 00:02:40
Gi 1/42    DesignatedPort  Forwarding  128     20000  No    Yes  0d 00:02:40
ASW4# show spanning-tree summary 
Protocol Version: Compatible (STP)
Hello Time      : 2
Max Age         : 20
Forward Delay   : 15
Tx Hold Count   : 6
Max Hop Count   : 20
BPDU Filtering  : Enabled
BPDU Guard      : Disabled
Error Recovery  : Disabled
CIST Bridge is active

ASW4# show spanning-tree active  
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: 20000
Regional Root: 32768.00-16-D6-00-01-C0
Int. PathCost: 0
Max Hops     : 20
TC Flag      : Steady
TC Count     : 95
TC Last      : 0d 00:02:19
Port       Port Role       State       Pri  PathCost  Edge  P2P         Uptime
---------  --------------  ----------  ---  --------  ----  ---  -------------
Gi 1/40    RootPort        Forwarding  128     20000  No    Yes  0d 00:02:55
Gi 1/42    AlternatePort   Discarding  128     20000  No    Yes  0d 00:02:55

Рекомендации выполнения команд/настроек

Приоритет STP через MST 0

Задание приоритета STP происходит через MST 0:

spanning-tree mst 0 priority 20480

Команды spanning-tree aggregation

Команды, применяемые в spanning-tree aggregation, применяются на все созданные LAG-интерфейсы.