Траблшутинг петель Spanning Tree: защита через BPDU Guard, Root Guard и Loop Guard
- Лавинообразный широковещательный шторм (Broadcast Storm) с 100% утилизацией всех портов коммутатора.
- Ошибки
MAC flapping: host 0011.2233.4455 flapping between port Gi0/1 and Gi0/2. - Самовольный перехват роли Root Bridge неуправляемым домашним роутером, включенным в розетку пользователем.
- Переход оптического порта в блокировку из-за повреждения одной жилы Rx/Tx.
1. Защитные механизмы STP и области их применения
| Механизм | Где настраивать | Функция защиты |
|---|---|---|
| BPDU Guard | Access / PortFast порты | При получении любого BPDU мгновенно переводит порт в err-disable. |
| Root Guard | Назначенные транки (Downlink) | Блокирует порт при попытке стороннего свитча стать Root Bridge. |
| Loop Guard | Root и Alternate порты | Предотвращает переход порта в Forwarding при внезапном пропадании BPDU. |
| UDLD | Оптические линки | Обнаруживает однонаправленный обрыв волокна (Unidirectional link). |
2. Конфигурация BPDU Guard на портах доступа
# Глобально для всех PortFast портов:
spanning-tree portfast bpduguard default
# Или на конкретном интерфейсе:
interface GigabitEthernet0/1
spanning-tree bpduguard enable3. Конфигурация Root Guard на портах Core -> Distribution
interface GigabitEthernet0/24
description DOWNLINK_TO_ACCESS_SWITCH
spanning-tree guard root4. Конфигурация Loop Guard и UDLD для оптических магистралей
# Включение Loop Guard
spanning-tree loopguard default
# Включение UDLD в агрессивном режиме
udld aggressive
interface TenGigabitEthernet0/1
udld port aggressive5. Восстановление портов из err-disable
# Автоматический вывод портов из err-disable через 5 минут:
errdisable recovery cause bpduguard
errdisable recovery cause udld
errdisable recovery interval 300 Частые вопросы (FAQ)
Почему возникает петля, если оптика повреждена только на прием (Rx)?
Свитч перестает получать BPDU на заблокированном порту, ошибочно считает, что петли больше нет, и переводит порт в состояние Forwarding. Трафик при этом продолжает передаваться по каналу Tx, порождая петлю.
В чем разница между BPDU Guard и BPDU Filter?
BPDU Guard блокирует порт при получении пакета BPDU. BPDU Filter просто запрещает отправку и прием BPDU, что делает работу порта слепой к петлям и крайне опасно.
Как вывести порт из состояния err-disable вручную?
Перейдите в режим конфигурации порта и выполните: shutdown, затем no shutdown.
Что делает Root Guard при получении превосходящего (Superior) BPDU?
Он переводит порт в специальный статус root-inconsistent (блокировка трафика). Как только чужой коммутатор перестает слать Superior BPDU, порт восстанавливается автоматически.