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
|
Команды отображения информации
| 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. Перевести коммутатор 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
| configure terminal
!
spanning-tree mode stp
spanning-tree mst 0 priority 20480
|
Для ASW4
| 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-интерфейсы.