В процессе эксплуатации сетей часто возникают проблемы, вызванные большими всплесками загрузки CPU. Зачастую причиной таких всплесков является получение кадров TCN BPDU (Topology Change Notification Bridge Protocol Data Unit). При получении TCN BPDU коммутатор инициирует мгновенную очистку (флаш) MAC таблицы. Время ее заполнения может достигать нескольких десятков секунд. На протяжении этого периода весь трафик, поступающий на коммутатор, обрабатывается на CPU. Если TCN BPDU приходят с интервалом 5–10 секунд или чаще (например, из-за флаппинга линка на одном из портов), коммутатор физически не успевает перестраивать таблицу и результатом становится критическая деградация производительности всей сети.
Для предотвращения подобных сценариев необходимо включать защитные механизмы STP:
1. Защита на портах доступа (access)
На портах, к которым подключены рабочие станции пользователей, принтеры, IP-камеры и другие конечные устройства (но не сетевое оборудование), необходимо исключить, как возможность получения BPDU, так и риск петель. Для этого рекомендуется использовать механизмы Portfast и BPDUguard.
Portfast переводит порт в режим forwarding мгновенно, минуя стадии listening/learning. При падении линка на таком порте, коммутатор не будет отправлять TCN BPDU.
interface gi 1/0/1 spanning-tree portfast spanning-tree bpduguard enable storm-control broadcast kbps 128 trap shutdown storm-control multicast kbps 128 trap shutdown
Примечание
Шторм-контроль добавлен для наглядности, чтобы не забывать про необходимость его настройки на портах доступа.
2. Защита на агрегации/ядре (downlinks к нижестоящим коммутаторам)
На транковых портах, соединяющих коммутатор с нижестоящими коммутаторами (где BPDU ожидаются, но рутовые BPDU не должны приходить), необходимо настроить защиту от рута. Это предотвратит излишние перестроения STP в сети.
Пример настройки:
interface te 1/0/4 spanning-tree guard root
3. Также следует внимательно отнестись к остальной конфигурации STP на всех коммутаторах в сети
Проверьте значения приоритетов bridge priority на всех коммутаторах сети, в случае RPVST+, MSTP для каждого vlan/инстанса. Корневым (для каждой instance) должен быть только один коммутатор (ядро) с наименьшим значением.
Убедитесь, что на всех коммутаторах сети включен и работает единый режим построения дерева RPVST+ или MSTP или RSTP. Это позволит минимизировать недостатки совместимости протоколов при построении дерева STP, особенно в мультивендорной среде.