13. STP Toolkit
STP Toolkit - набор "улучшений" протоколов семейства STP от Cisco
PortFast
BPDU Guard
BPDU Filter
Root Guard
Loop Guard
UDLD
Bridge Assistance
STP Dispute
UplinkFast
BackboneFast
EtherChannel Guard
PortFast
Изначально являлся частью STP Toolkit, затем вошел в 802.1w
Ускоряет начало работы для абонентских портов
Порт при пересчете топологии начинает работу из состояния Forwarding
BPDU в порт отправляются, но не ожидаются с него
При появлении BPDU порт теряет статус PortFast, с пересчетом топологии
Не должен включаться на ISL-транках
Включается либо на абонентских портах, либо на транках до серверов
Включить на отдельном интерфейсе:
Switch(config-if)#spanning-tree portfast edge ?
trunk Enable portfast edge on the interface even in trunk mode
<cr>
Включить автоматически на всех access-интерфейсах:
Switch(config)#spanning-tree portfast edge default
BPDU Guard
Включается на PortFast-портах*, за которыми всегда должны находиться конечные абоненты, но не коммутаторы
Рекомендуется на портах конечных абонентов
Включить на отдельном интерфейсе:
Switch(config-if)#spanning-tree bpduguard enable
Включить автоматически на всех PortFast-интерфейсах:
Switch(config)#spanning-tree portfast edge bpduguard default
При обнаружении BPDU порт выключается (err-disable)
%SPANTREE-SP-2-BLOCK_BPDUGUARD:
Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port.
%PM-SP-4-ERR_DISABLE:
bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state
BPDU Filter
Включается на PortFast-портах*, за которыми всегда должны находиться конечные абоненты, но не коммутаторы
Отправка и получение BPDU прекращаются, порт всегда Designated
Рекомендуется использовать на интерфейсах в сторону чужих AS
В гетерогенных сетях рекомендуется использовать вместе с BPDU Guard
Включить на отдельном интерфейсе:
Switch(config-if)#spanning-tree bpdufilter enable
Включить автоматически на всех PortFast-интерфейсах:
Switch(config)#spanning-tree portfast edge bpdufilter default
После включения порта в течение 10 x Hello Time отправляет BPDU
Если в это время приходят ответные BPDU, то фильтр на порту не включается
Root Guard
Механизм защиты от неавторизованной смены Root Bridge
Указываются порты, на которых в норме не должны приходить Superior BPDU
При получении BPDU коммутация блокируется на Max Age
Порт никогда не сменяет роль с Designated
Switch(config-if)#spanning-tree guard root
%SPANTREE-2-ROOTGUARD_CONFIG_CHANGE: Root guard enabled on port GigabitEthernet0/0
%SPANTREE-2-ROOTGUARD_BLOCK: Root guard blocking port GigabitEthernet0/0 on Vlan 1
Switch#show spanning-tree vlan 1 | include Gi0/0
Gi0/0 Desg BKN*20000 128.1 P2p *ROOT_Inc
Односторонний отказ
В некоторых типах каналов возможны односторонние отказы связи:
В одну сторону пакеты проходят, в другую - нет
Типичная проблема для оптических каналов
Если BPDU от настоящего Designated Bridge не доходят до других коммутаторов в сегменте, те примут роль Designated Bridge сами
Если есть альтернативный путь между коммутаторами - возникнет петля
Loop Guard
Механизм борьбы с односторонними отказами, антипод Root Guard
Указывает порты, на которых в норме должны приходить Superior BPDU
При исчезновении BPDU коммутация блокируется до возобновления приема
Порт никогда не сменяет роль на Designated
Включение на отдельном интерфейсе:
Switch(config-if)#spanning-tree guard loop
Включение на всех не PortFast P2P портах:
Switch(config)#spanning-tree loopguard default
%SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port GigabitEthernet0/0
Switch#show spanning-tree vlan 1 | include Gi0/0
Gi0/0 Desg BKN*20000 128.1 P2p *LOOP_Inc
UDLD
Unidirectional Link Detection
Альтернативный механизм борьбы с односторонними отказами
Проприетарный протокол для проверки двусторонней связности
Не использует STP BPDU, но создан для существования с 802.1D-1990
Отправляет UDLD-пакеты и ожидает ответы на них
По умолчанию таймер 15 секунд, время жизни - 45 секунд
Имеет два режима работы:
Normal - при обнаружении одностороннего отказа ничего не происходит
Aggressive - при обнаружении одностороннего отказа порт выключается
Перед выключением в попытке переподключения отправляет 8 пакетов в секунду
Включить на всех оптических портах:
Switch(config)#udld aggressive
Switch(config)#udld message time 2
Включить на конкретном интерфейсе:
Switch(config-if)#udld port aggressive
Включение должно производится с обеих сторон
Bridge Assurance
Механизм борьбы с односторонними отказами, аналог Loop Guard
BPDU отправляются на всех портах, включая Root, Alternate и Backup
Указываются порты, на которых в норме всегда должны приходить BPDU
При отсутствии BPDU коммутация блокируется
Включение механизма Bridge Assurance:
Switch(config)#spanning-tree bridge assurance
Разметка интерфейсов:
Switch(config-if)#spanning-tree portfast network
Пример блокировки порта при отсутствии BPDU
Switch#show spanning-tree vlan 1 | include Gi0/0
Gi0/0 Desg BKN*20000 128.1 P2p Network *BA_Inc
В отличии от Loop Guard срабатывает и после перезагрузки
STP Dispute
Механизм борьбы с односторонними отказами, аналог Loop Guard
При получении BPDU с недостоверной ролью порта коммутация блокируется
Настройка на коммутаторах Cisco не требуется, работает всегда (внутренний механизм RSTP, MST)
Switch#show spanning-tree vlan 1 | include Gi0/0
Gi0/0 Desg BLK 20000 128.1 P2p Dispute
UplinkFast
Устаревший механизм переключения между аплинками в PVST
Включался на коммутаторах доступа
Bridge Priority выставляется в 49152, препятствует захвату роли Root Bridge
Port Cost на всех портах увеличивается на 3000, препятствуя транзиту
При потере Root Port немедленно Alternate Port переходит в Root Forwarding
В него отправляются dummy-кадры на 0100.0ссd.cdcd от всех адресов в таблице MAC
Switch(config)#spanning-tree uplinkfast
BackboneFast
Устаревший механизм защиты от непрямого отказа в ядре сети
Включался на коммутаторах ядра
При получении Inferior BPDU на заблокированном порту проверялась доступность Root Bridge проприетарным протоколом RLQ (Root Link Query)
В случае доступности Root соседу немедленно отправлялась Superior BPDU
Механизм сокращал время перестроения топологии на 20 с за счет Max Age
Switch(config)#spanning-tree backbonefast
EtherChannel Guard
Механизм защиты EtherChannel от некорректной сборки
Использует STP BPDU для контроля корректности
STP использует агрегатный интерфейс для отправки BPDU
Если на физических интерфейсах EtherChannel приходят BPDU с разными Sender Port ID - агрегатный интерфейс выключается (err-disable)
Включен по умолчанию, можно включить/выключить:
Switch(config)#spanning-tree etherchannel guard misconfig
Switch(config)#interface range gi0/0-1
Switch(config-if-range)#channel-group 1 mode on
*Mar 1 00:04:00.266: %PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Gi1/0/24, putting Gi1/0/24 in err-disable state
*Mar 1 00:04:00.333: %PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Po1, putting Gi1/0/24 in err-disable state
*Mar 1 00:04:00.333: %PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Po1, putting Po1 in err-disable state
*Mar 1 00:04:01.281: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/24, changed state to down
*Mar 1 00:04:00.300: %PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Gi2/0/24, putting Gi2/0/24 in err-disable state (Switch-2)
*Mar 1 00:04:01.315: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet2/0/24, changed state to down
*Mar 1 00:04:01.315: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to down
Диагностика STP Toolkit
Глобальные настройки:
Switch#show spanning-tree summary
Switch is in pvst mode
Root bridge for: VLAN0001
Extended system ID is enabled
Portfast Default is disabled
Portfast Edge BPDU Guard Default is disabled
Portfast Edge BPDU Filter Default is disabled
Loopguard Default is disabled
PVST Simulation Default is enabled but inactive in pvst mode
Bridge Assurance is enabled but inactive in pvst mode
EtherChannel misconfig guard is enabled
Configured Pathcost method used is short
UplinkFast is disabled
BackboneFast is disabled
Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
VLAN0001 0 0 0 4 4
---------------------- -------- --------- -------- ---------- ----------
1 vlan 0 0 0 4 4
Порты в err-disabled и причина блокировки:
Switch#show interface status err-disabled
Port Name Status Reason Err-disabled Vlans
Gi0/1 err-disabled bpduguard
Настройки на интерфейсе:
Switch#show spanning-tree interface gi0/0 portfast
VLAN0001 disabled
Switch#show spanning-tree interface gi0/0 inconsistency
VLAN0001 none
Switch#show spanning-tree interface gi0/0 detail
Port 1 (GigabitEthernet0/0) of VLAN0001 is designated forwarding
Port path cost 4, Port priority 128, Port Identifier 128.1.
Designated root has priority 32769, address 5000.0001.0000
Designated bridge has priority 32769, address 5000.0001.0000
Designated port id is 128.1, designated path cost 0
Timers: message age 0, forward delay 0, hold 0
Number of transitions to forwarding state: 1
Link type is point-to-point by default
Bpdu guard is enabled
Bpdu filter is enabled
BPDU: sent 158, received 0
Switch#show spanning-tree interface gi0/0 detail | begin guard
Bpdu guard is enabled
Bpdu filter is enabled
BPDU: sent 158, received 0
Last updated