MikroTik: Как настроить защиту STP BPDU Guard на портах коммутатора
Топология STP и опасности несанкционированных коммутаторов
В сетях Ethernet протокол Spanning Tree Protocol (STP/RSTP/MSTP) используется для предотвращения петель маршрутизации (Broadcast Storm). Коммутаторы обмениваются специальными кадрами — BPDU (Bridge Protocol Data Unit), чтобы выбрать корневой коммутатор (Root Bridge) и заблокировать избыточные линки. Если сотрудник принесет из дома дешевый свитч и воткнет его двумя кабелями в розетки, сеть ляжет. Чтобы защитить порты доступа (куда должны подключаться только ПК или принтеры), используется функция BPDU Guard. При получении BPDU на таком порту, MikroTik немедленно отключит порт, защитив остальную сеть от перестроения топологии. Бизнес-риски: остановка работы всего предприятия из-за широковещательного шторма.
Статусы портов (Edge Ports)
| Режим порта | Действие при получении BPDU | Назначение |
|---|---|---|
edge=no (Trunk) | Обработка BPDU, расчет дерева STP. | Связь между магистральными коммутаторами. |
edge=yes (Access) | Переход в статус Forwarding без задержек (RSTP). | Подключение конечных устройств (ПК, телефоны). |
bpdu-guard=yes | Перевод порта в состояние disabled (ошибка). | Защита edge-портов от подключения сторонних свитчей. |
Настройка BPDU Guard в RouterOS
Сценарий 1: Включение BPDU Guard на интерфейсе (Bridge Port)
Начиная с RouterOS v6.41+ (где используется аппаратный offload для мостов), настройка STP выполняется в меню Bridge.
1. Открытие терминала MikroTik
2. Переход к настройкам портов моста
/interface bridge port
3. Включение BPDU Guard и режима Edge для порта ether5 (подключение ПК)
set [find interface=ether5] edge=yes bpdu-guard=yesСценарий 2: Глобальная настройка и фильтрация BPDU (Альтернатива)
Иногда нужно не отключать порт, а просто игнорировать BPDU от клиента (Drop), чтобы он не мог стать Root Bridge. Это делается через Bridge Filter.
Запрет прохождения пакетов BPDU (MAC-адрес 01:80:C2:00:00:00)
/interface bridge filter
add action=drop chain=input dst-mac-address=01:80:C2:00:00:00/FF:FF:FF:FF:FF:FF in-interface=ether5Примечание: Использование фильтра не предотвратит петлю внутри маленького свитча, который принес сотрудник, но спасет центральную сеть. Рекомендуется использовать BPDU Guard, а не фильтр.
Типовые ошибки администраторов
- BPDU Guard на Uplink-портах: Включение этой функции на портах, соединяющих два управляемых коммутатора MikroTik (или Cisco), немедленно положит линк, так как коммутаторы обязаны обмениваться BPDU.
- Забытый Auto-Recovery: В отличие от Cisco (где есть команда
errdisable recovery), в старых версиях RouterOS отключенный порт приходилось поднимать руками (Enable). В новых версиях можно использовать скрипты или функцию Auto-Recovery (в RouterOS v7) для автоматического включения порта через заданное время.
Базовый STP не спасет от изощренных атак или петель за неуправляемыми мыльницами (Hubs). Инженеры ITSTM настроят жесткий Loop Protect, ограничение Broadcast/Multicast штормов (Storm Control) и 802.1X авторизацию на ваших коммутаторах MikroTik и Eltex.
Частые вопросы (FAQ)
В чем разница между BPDU Guard и Loop Protect в MikroTik?
BPDU Guard срабатывает ТОЛЬКО если получает стандартный кадр STP BPDU от другого коммутатора. Loop Protect (Собственная фича MikroTik) отправляет специальные проприетарные Multicast-пакеты и слушает их. Если пакет возвращается на этот же (или другой) порт микротика, он понимает, что есть физическая петля, и отключает интерфейс. Loop Protect защитит даже от 'глупых' неуправляемых коммутаторов, которые не генерируют BPDU.
Как увидеть, что порт заблокирован из-за BPDU Guard?
В WinBox в разделе 'Bridge' -> 'Ports' статус порта изменится. В логах (Log) появится красная запись 'interface etherX disabled because of BPDU guard'.
Что такое Root Guard?
Это другая функция защиты STP. Она не отключает порт при получении любого BPDU, а блокирует порт только в том случае, если кто-то пытается стать корневым коммутатором (Root Bridge) с более высоким приоритетом.
Работает ли BPDU Guard, если на бридже не включен STP (protocol-mode=none)?
Нет. Чтобы BPDU Guard работал, на уровне Bridge должен быть активирован STP, RSTP или MSTP (рекомендуется RSTP для стандартных сетей).