Spanning-tree protocol
Построение
Изначально все коммутаторы считают, что они RB. Коммутаторы обмениваются кадрами BPDU (раз в 2 с.). Все коммутаторы предоставляют сведения о собственном идентификаторе
BID, идентификаторе корневого моста и стоимости пути к корневому мосту. Если получают Root ID < текущего Root ID - меняют.
1. Выбирается Root Bridge с наименьшим BID:
- приоритет моста (priority, 0 до 61440 с шагом в 4096 = 2^12)
- расширенный идентификатор системы (sys-id-ext, поддержка VLAN)
- MAC-адрес
2. Рассчитывается стоимость пути
Как сумма стоимости портов на пути к Root Bridge
MAC-адрес 01:80:C2:00:00:00 - адрес групповой рассылки для группы протокола spanning-tree.
Стандарты
- 802.1D-1998
- PVST+ (Cisco)
- 802.1D-2004
- 802.1w (RSTP)
- Rapid PVST+ (Cisco)
- 802.1s MSTP
STP:
RSTP:
Пограничный порт - к которому не будут подключены устройства коммутации.
Настраивается:
(config-if)# spanning-tree portfast
Для всех нетранковых портов:
(config)# spanning-tree portfast default
Лучше вместе с BPDU guard:
(config-if)# spanning-tree bpduguard enable
Когда функция BPDU guard включена, она переводит порт в состояние отключения из-за ошибки при получении BPDU.
Настройка для всех нетранковых портов:
(config)# spanning-tree portfast bpduguard default
Неграничные порты можно делить на 2 вида каналов: точка-точка (два коммутатора, полнодуплексный режим) и общий ("совместно используемый").
Выбирается автоматически или настраивается:
spanning-tree link-type parameter
Настройка
Root Bridge:
(config)# spanning-tree vlan vlan-id root primary
или
(config)# spanning-tree vlan vlan-id priority 24576
Резервный:
(config)# spanning-tree vlan vlan-id root secondary
BPDU Guard
Для проверки срабатываний bpdu guard на cisco-коммутаторах:
2floor-sw#show interface status err-disable
Вывод:
Port Name Status Reason Err-disabled Vlans
Fa0/5 err-disabled bpduguard
Для включения порта после срабатывания:
2floor-sw#conf t
Enter configuration commands, one per line. End with CNTL/Z.
2floor-sw(config)#int f0/5
2floor-sw(config-if)#shutdown
2floor-sw(config-if)#no shutdown
Для проверки состояния портов:
2floor-sw#sh ip int br
Статус и протоколо должны быть в состоянии up/up:
Interface IP-Address OK? Method Status Protocol
...
FastEthernet0/5 unassigned YES unset up up
…
Цитата:
При желании можно автоматизировать этот процесс [включения порта] и воспользоваться командой errdisable recovery cause bpduguard, которая включит порт через 300 секунд. Изменить длительность таймера можно командой errdisable recovery interval 400, где 400 – количество секунд из дипазона от 30 до 86400.