Настройка BPDU Protection на коммутаторе D-Link
В сети уровня 2 коммутаторы, использующие протоколы STP, RSTP или MSTP, обмениваются блоками BPDU для вычисления связующего дерева и преобразования кольцевой топологии сети в топологию дерева без петель. Во время развертывания протокола STP, в большинстве случаев порты, которые подключают коммутаторы к конечным устройствам, таким как ПК или файловые серверы, настраиваются как граничные (edge) порты. Эти порты не участвуют в вычислении дерева STP и могут немедленно перейти из состояния «Отключено» в состояние пересылки (forwarding), как если бы протокол STP был отключен на этих портах. Когда конечные устройства часто переходят из состояния «онлайн» в «офлайн» и обратно, настройка граничных портов не позволит коммутаторам пересчитывать топологию связующего дерева, повышая надежность сети.
После включения защиты BPDU (BPDU protection) на коммутаторе, если граничный порт на коммутаторе получает BPDU, коммутатор отключит граничный порт, сохраняя при этом атрибут порта неизменным. Это гарантирует, что топология связующего дерева не будет пересчитана и работа сети не будет прервана. Кроме того, коммутатор может генерировать сообщение (trap) и уведомить сервер сетевого управления об этом событии.
На коммутаторах D-Link серии DGS-3000 для настройки BPDU protection используются такие команды:

У функции BPDU Protection два состояния — нормальное и «под атакой».
Порт с включенной защитой BPDU перейдет в состояние «под атакой», когда получит один пакет STP BPDU.
Состояние «под атакой» имеет три режима:
- drop — отбрасываются все пакеты BPDU;
- block — отбрасываются все пакеты;
- shutdown — порт отключается.
Команда config bpdu_protection ports [<portlist> | all ] {state [enable | disable] | mode [ drop | block | shutdown]} используется для настройки BPDU Protection на портах коммутатора.
BPDU Protection имеет более высокий приоритет, чем параметр «Forward BPDU» (FBPDU), настроенный командой configure STP при определении обработки BPDU. То есть, когда FBPDU настроен на пересылку STP BPDU, но включена защита BPDU, порт не будет пересылать STP BPDU.
Команда config bpdu_protection recovery_timer [<sec 60-1000000> | infinite] используется для настройки таймера восстановления BPDU Ptotection. Когда порт переходит в состояние «под атакой», он может быть отключен или заблокирован в зависимости от конфигурации. Состояние порта можно восстановить вручную или с помощью механизма автоматического восстановления. Параметр команды infinite означает, что порт не восстанавливается автоматически. Чтобы вручную восстановить порт, пользователю необходимо отключить и снова включить порт.
Команда config bpdu_protection [trap | log] [none | attack_detected | attack_cleared | both] используется для указания, когда информация об атаке логируется (log) или отправляется trap (trap):
- none — указывает, что ни attack_detected, ни attack_cleared не регистрируются;
- attack_detected — указывает, что события будут регистрироваться при обнаружении атак BPDU;
- attack_cleared — указывает, что события будут регистрироваться , когда удалены атаки BPDU.
- Включается BPDU Protection глобально на коммутаторе командой enable bpdu_protection.
Пример настройки BPDU Protection на коммутаторе D-Link DGS-3000-28X:
enable bpdu_protection
config bpdu_protection recovery_timer 60
config bpdu_protection trap none
config bpdu_protection log both
config bpdu_protection ports 1-22 state enable
config bpdu_protection ports 1-22 mode block