Management VLAN на MikroTik: управление в изоляции
Статья углубленно раскрывает тему Management VLAN — это отдельный виртуальный сегмент сети, через который осуществляется доступ к управлению сетевым оборудованием: роутерами, коммутаторами, точками доступа, гипервизорами. Трафик управления физически изолирован от пользовательских VLAN.
Зачем выносить управление в отдельный VLAN
Без management VLAN доступ к WinBox или SSH открыт из любого сегмента сети. Достаточно одного скомпрометированного устройства в пользовательском VLAN — и злоумышленник получает прямой доступ к интерфейсу управления роутером.
Management VLAN решает сразу несколько задач:
- Изоляция плоскости управления. Компрометация VLAN 10 (офис) или VLAN 20 (гости) не даёт доступа к VLAN 99 (management).
- Централизованное управление всем оборудованием. Роутеры, коммутаторы, AP, IPMI-интерфейсы серверов, гипервизоры — всё в одном сегменте, доступном только администраторам.
- Firewall по периметру управления. Одним правилом закрываете WinBox, SSH, WebFig от всех, кроме management VLAN.
- Аудит доступа. Весь управляющий трафик проходит через один интерфейс — легко логировать и мониторить.
Что выносить в management VLAN
| Оборудование | Интерфейс управления | Порт/протокол |
|---|---|---|
| MikroTik RouterOS | WinBox, WebFig, SSH, API | 8291, 80, 443, 22 |
| Управляемый коммутатор | Web-интерфейс, Telnet, SSH | 80, 443, 23, 22 |
| Точка доступа (AP) | Web-интерфейс, CAPsMAN | 80, 443 |
| Гипервизор (Proxmox, ESXi) | Web-интерфейс, SSH | 8006, 443, 22 |
| Сервер (IPMI, iDRAC, iLO) | Out-of-band management | 80, 443, 623 |
| NAS, NVR | Web-интерфейс | 80, 443 |
Конфигурация Management VLAN 99 на MikroTik
Сценарий: управление через VLAN 99, доступ с ether2 (ноутбук администратора) и через trunk ether1 (для управления удалённым оборудованием).
# Шаг 1. Добавляем management-порт в bridge с pvid=99
/interface bridge port
add bridge=bridge1 interface=ether2 pvid=99 comment="Management admin port"
# Шаг 2. Прописываем VLAN 99 в таблицу bridge
# tagged=bridge1 — ОБЯЗАТЕЛЬНО, иначе роутер не увидит VLAN
# tagged=ether1 — trunk uplink пропускает management тегированно
# untagged=ether2 — admin-порт получает трафик без тега
/interface bridge vlan
add bridge=bridge1 vlan-ids=99 tagged=bridge1,ether1 untagged=ether2
# Шаг 3. Создаём VLAN-интерфейс — поверх bridge, не поверх ether!
/interface vlan
add interface=bridge1 vlan-id=99 name=vlan99-mgmt
# Шаг 4. Назначаем IP
/ip address
add address=192.168.99.1/24 interface=vlan99-mgmt
# Шаг 5. Закрываем управление от других VLAN
/ip firewall filter
add chain=input in-interface=vlan99-mgmt dst-port=8291,22,80,443 protocol=tcp action=accept comment="Allow management from VLAN99" place-before=0
add chain=input in-interface-list=!management dst-port=8291,22,80,443 protocol=tcp action=drop comment="Block management from all other VLANs"
# Шаг 6. Включаем vlan-filtering — только после всех настроек!
/interface bridge set bridge1 vlan-filtering=yes
CPU Port и tagged=bridge1: почему это не опционально
Что такое CPU port в RouterOS
В MikroTik RouterOS bridge-интерфейс — это не просто логический объект. Это ещё и CPU port: виртуальный порт, через который операционная система RouterOS сама участвует в работе bridge как отдельный участник коммутации.
Когда вы создаёте bridge и добавляете в него физические порты, RouterOS видит схему примерно так:
| Порт | Тип | Кто использует |
|---|---|---|
| ether1 | Физический | Внешний трафик |
| ether2 | Физический | Клиенты VLAN 10 |
| ether3 | Физический | Клиенты VLAN 20 |
| bridge1 | CPU port (виртуальный) | Сам RouterOS: IP-стек, DHCP, firewall, routing |
Когда вы создаёте /interface vlan vlan-id=10 interface=bridge1 и назначаете на него IP — этот IP-адрес принадлежит CPU. Чтобы CPU мог получать и отправлять тегированный трафик VLAN 10, bridge1 должен быть добавлен в VLAN-таблицу как tagged.
Что произойдёт без tagged=bridge1
| Ситуация | Без tagged=bridge1 | С tagged=bridge1 |
|---|---|---|
| VLAN-интерфейс создан, IP назначен | IP есть, пинг не идёт | Всё работает |
| DHCP-сервер на VLAN-интерфейсе | DHCP не отвечает клиентам | DHCP работает |
| Firewall-правила на VLAN-интерфейсе | Правила не применяются | Правила работают |
| Inter-VLAN routing | Маршрутизация не работает | Маршрутизация работает |
| WinBox / SSH через VLAN | Нет доступа | Доступ есть |
Правильный и неправильный пример
Неправильно — bridge1 не добавлен в tagged:
/interface bridge vlan
add bridge=bridge1 vlan-ids=10 tagged=ether1 untagged=ether2
# bridge1 не указан — CPU не видит VLAN 10
# IP на vlan10 будет, пинг не пойдёт
Правильно — bridge1 добавлен в tagged:
/interface bridge vlan
add bridge=bridge1 vlan-ids=10 tagged=ether1,bridge1 untagged=ether2
# bridge1 указан — CPU получает тегированный трафик VLAN 10
# DHCP, ping, routing — всё работает
Правило простое: если на данный VLAN есть VLAN-интерфейс с IP, DHCP-сервер или любой другой сервис RouterOS — bridge1 обязан быть в tagged. Исключение — чистый L2-коммутатор без IP на VLAN (тогда bridge1 не нужен).
Как не потерять доступ после vlan-filtering=yes
Это самая болезненная ситуация: включили фильтрацию — WinBox пропал. Причина всегда одна: management-порт не был правильно прописан в VLAN-таблице до включения фильтрации.
| Шаг | Что проверить до включения vlan-filtering=yes |
|---|---|
| 1 | Порт, через который вы управляете, добавлен в bridge с правильным pvid |
| 2 | Этот VLAN прописан в /interface bridge vlan с untagged=<ваш порт> |
| 3 | tagged=bridge1 указан для этого VLAN |
| 4 | VLAN-интерфейс создан поверх bridge1 и имеет IP-адрес |
| 5 | Сделан /export file=backup-before-vlan |
Если всё же потеряли доступ — подключайтесь через serial console и откатывайте:
/interface bridge set bridge1 vlan-filtering=no
После этого исправьте VLAN-таблицу и включайте снова.
Ingress Filtering и Frame Types
По умолчанию bridge в MikroTik принимает любой трафик на любом порту — и тегированный, и нетегированный. Это удобно при настройке, но небезопасно в продакшне. Параметры ingress-filtering и frame-types это исправляют.
ingress-filtering=yes
Включает проверку на входе: если порт не прописан как разрешённый для данного VLAN в VLAN-таблице — кадр дропается. Без этого параметра кадры с неизвестными VLAN ID проходят через bridge беспрепятственно.
# Включить ingress filtering на конкретном порту
/interface bridge port set [find interface=ether1] ingress-filtering=yes
frame-types
Определяет, какие кадры порт вообще принимает:
| Значение | Что принимает | Применение |
|---|---|---|
admit-all |
Любые кадры (дефолт) | На этапе настройки, гибридные порты |
admit-only-vlan-tagged |
Только тегированные (802.1Q) | Trunk-порты между коммутаторами |
admit-only-untagged-and-priority-tagged |
Только нетегированные и 802.1p | Access-порты для конечных устройств |
Настройки для каждого типа порта
Trunk-порт (ether1 — uplink):
# Trunk принимает только тегированный трафик
# Нетегированный — отбрасывается (защита от случайного untagged)
/interface bridge port
set [find interface=ether1] ingress-filtering=yes frame-types=admit-only-vlan-tagged
Access-порт (ether2 — конечное устройство):
# Access принимает только нетегированный трафик
# Устройство не должно отправлять теги — если отправляет, кадр дропается
/interface bridge port
set [find interface=ether2] ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged
Management-порт (ether5 — ноутбук администратора):
# Management-порт — тоже access, только с pvid=99
/interface bridge port
set [find interface=ether5] ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged
Сводная таблица настроек портов
| Тип порта | ingress-filtering | frame-types | pvid |
|---|---|---|---|
| Trunk (uplink, к другому свичу) | yes | admit-only-vlan-tagged | 1 |
| Access (ПК, камера, IoT) | yes | admit-only-untagged-and-priority-tagged | = ID нужного VLAN |
| Management (ноутбук администратора) | yes | admit-only-untagged-and-priority-tagged | 99 |
| Trunk к AP (Wi-Fi) | yes | admit-only-vlan-tagged | 1 |
| Hybrid (IP-телефон) | yes | admit-all | = native VLAN |
Зачем это нужно в продакшне
Без ingress-filtering и frame-types возможен VLAN hopping: атакующий отправляет двойной тег (double tagging) с нетегированного access-порта и попадает в чужой VLAN. Правильные настройки frame-types делают эту атаку невозможной: access-порт физически не пропустит тегированный кадр.
Hardware Offload и производительность VLAN
Что такое hardware offload
Hardware offload — это режим, при котором коммутация VLAN-трафика выполняется аппаратным чипом коммутатора (switch chip), а не процессором RouterOS. При этом трафик не проходит через CPU вообще — он обрабатывается на уровне железа со скоростью линии.
| Режим | Кто обрабатывает | Производительность | Нагрузка на CPU |
|---|---|---|---|
| Hardware offload | Switch chip | Line rate (wire speed) | Минимальная |
| CPU forwarding | Процессор RouterOS | Ограничена CPU | Высокая при нагрузке |
Для гигабитного трафика разница принципиальная: на RB951 без offload CPU упирается уже при 200-300 Мбит/с коммутации, на CRS326 с offload — линейные 10 Гбит/с без нагрузки на CPU.
Устройства MikroTik и hardware offload
| Устройство | Hardware Offload VLAN | Особенности |
|---|---|---|
| CRS3xx (CRS326, CRS317 и др.) | Да, полный | Лучший вариант для VLAN-коммутации. Marvell switch chip, wire speed 1G/10G |
| RB5009UG+S+IN | Да, полный | Marvell Amethyst. Хорошо справляется с Bridge VLAN Filtering |
| hEX (RB750Gr3) | Да, с ограничениями | MT7621 switch chip. Offload работает, но часть функций его отключают |
| hAP ax3 | Частично | IPQ-6010. Проводные порты — offload, Wi-Fi трафик — через CPU |
| hAP ax2 | Частично | Аналогично hAP ax3 |
| CCR2004, CCR2116 | Обычно CPU forwarding | Маршрутизаторы без switch chip. Высокая производительность CPU компенсирует отсутствие offload |
| RB951, hAP lite, hAP mini | Нет | Нет switch chip. Весь трафик через CPU |
Что отключает hardware offload
| Функция | Влияние на offload | Комментарий |
|---|---|---|
Firewall на bridge (use-ip-firewall=yes) |
Отключает полностью | Трафик уходит на CPU для обработки firewall |
| Bridge filter rules | Отключает полностью | Любые правила в /interface bridge filter |
| Порты из разных switch chip в одном bridge | Отключает полностью | Например, SFP и ether из разных чипов |
| Mirror на порту | Отключает на этом порту | Зеркалирование требует CPU |
| Horizon на порту | Отключает на этом порту | Split horizon требует CPU-обработки |
| IGMP Snooping (некоторые конфигурации) | Частично | Зависит от модели и версии ROS |
| Некоторые Queue / QoS на bridge | Частично | Зависит от конфигурации |
| Неправильная VLAN-схема | Зависит | Например, VLAN-интерфейс на ether вместо bridge |
Как проверить, работает ли hardware offload
# Смотрим флаг H (Hardware) на портах bridge
/interface bridge port print
# Если в колонке "H" стоит "H" — offload работает
# Если пусто — порт обрабатывается программно (CPU)
# Детальная проверка с флагом hw
/interface bridge port print detail where bridge=bridge1
# Ищем строку: hw: yes
# Проверка самого bridge
/interface bridge print detail
# Ищем: fast-forward: yes
Типичный вывод с включённым offload:
Flags: X - disabled, I - inactive, D - dynamic, H - hw-offload
# INTERFACE BRIDGE HW PVID ...
0 H ether1 bridge1 yes 1
1 H ether2 bridge1 yes 10
2 H ether3 bridge1 yes 20
Флаг H означает, что порт работает с hardware offload. Если флага нет — смотрите таблицу выше и ищите, что его отключило.
Диагностика VLAN на MikroTik: полная таблица команд
| Команда | Что показывает | Когда использовать |
|---|---|---|
/interface bridge vlan print |
VLAN-таблица bridge: tagged/untagged порты, VLAN ID | Первый шаг любой диагностики VLAN |
/interface bridge vlan print detail |
То же, с полным списком портов и флагами | Проверить tagged=bridge1, найти дублирование |
/interface bridge port print |
Порты bridge: pvid, hw-offload (флаг H), состояние | Проверить PVID, убедиться что offload активен |
/interface bridge host print |
MAC-адреса: на каком порту изучены, в каком VLAN | Убедиться, что клиент попал в нужный VLAN |
/interface bridge monitor bridge1 |
Состояние bridge: активные порты, STP root, offload | Проблемы с STP, проверка общего состояния |
/ip address print |
IP-адреса на VLAN-интерфейсах | Убедиться, что IP назначен на vlan10, а не ether1 |
/ip route print |
Таблица маршрутизации | Проверить, есть ли маршруты до всех VLAN-сетей |
/ip arp print |
ARP-таблица: IP ↔ MAC на каком интерфейсе | Проблемы inter-VLAN routing, пропавшие хосты |
/tool torch interface=ether1 |
Трафик в реальном времени: VLAN ID, src/dst, протоколы | Проверить, что теги реально присутствуют на trunk |
/tool torch interface=vlan10 |
Трафик через конкретный VLAN-интерфейс | Убедиться, что трафик идёт в нужный VLAN |
/tool sniffer quick vlan-id=10 |
Захват пакетов с VLAN ID 10 (raw 802.1Q) | Глубокая диагностика, когда torch недостаточно |
/ping X src-address=Y count=5 |
Пинг с указанием source-IP | Проверить inter-VLAN routing на уровне роутера |
/log print where topics~"bridge" |
События bridge: STP, изучение MAC, ошибки | Неожиданные изменения топологии, STP-флапы |
Пошаговая диагностика «VLAN не работает»
# Шаг 1. Проверяем VLAN-таблицу — есть ли bridge1 в tagged?
/interface bridge vlan print detail
# Шаг 2. Проверяем PVID на проблемном порту
/interface bridge port print where interface=ether2
# Шаг 3. Видит ли bridge MAC-адрес клиента? В каком VLAN?
/interface bridge host print
# Шаг 4. Есть ли IP на VLAN-интерфейсе?
/ip address print where interface~"vlan"
# Шаг 5. Есть ли маршруты до всех VLAN-сетей?
/ip route print where dst-address~"192.168"
# Шаг 6. Пинг с gateway VLAN10 до клиента
/ping 192.168.10.100 src-address=192.168.10.1 count=5
# Шаг 7. Смотрим живой трафик на trunk
/tool torch interface=ether1
Troubleshooting: VLAN не работает — 13 частых проблем
| # | Проблема | Симптом | Решение |
|---|---|---|---|
| 1 | VLAN не пингуется | IP назначен, клиент в сети, пинг до gateway не идёт | Проверить tagged=bridge1 в VLAN-таблице. Без него CPU не видит трафик VLAN. |
| 2 | После vlan-filtering=yes пропал доступ | WinBox, SSH перестали отвечать сразу после команды | Serial console → /interface bridge set bridge1 vlan-filtering=no → добавить management VLAN в таблицу → включить снова |
| 3 | VLAN работает только на одном порту | Клиент на ether2 получает IP, на ether3 — нет, хотя оба в одном VLAN | Проверить pvid на ether3 и запись в VLAN-таблице: порт должен быть прописан как untagged |
| 4 | Устройство не получает DHCP | Клиент подключён, пинг до gateway не идёт, DHCP не отвечает | 1) Проверить pvid порта. 2) Проверить tagged=bridge1. 3) Убедиться, что DHCP-сервер на правильном VLAN-интерфейсе |
| 5 | Wi-Fi SSID не попадает в нужный VLAN | Все SSID в одном VLAN независимо от настроек CAPsMAN | Проверить local-forwarding=no в datapath. При local-forwarding=yes VLAN-тег не применяется. Для WiFiWave2 убедиться в использовании /interface wifi, не /caps-man |
| 6 | Trunk не пропускает несколько VLAN | Через trunk проходит только один VLAN | Проверить, что trunk-порт добавлен как tagged для всех нужных VLAN в таблице /interface bridge vlan |
| 7 | bridge1 не добавлен в tagged | DHCP и пинг не работают, хотя VLAN-интерфейс создан | /interface bridge vlan set [find vlan-ids=10] tagged=bridge1,ether1 |
| 8 | PVID не совпадает | Клиент получает IP из чужого пула или не получает вообще | /interface bridge port set [find interface=ether2] pvid=10 — убедиться, что pvid совпадает с VLAN-ID сегмента |
| 9 | Hardware offload исчез | Флаг H пропал, CPU под нагрузкой на простом L2-трафике | Проверить: включён ли Firewall Bridge, есть ли bridge filter rules, не смешаны ли порты из разных switch chip в одном bridge |
| 10 | Trunk и access перепутаны | Конечное устройство не работает, хотя порт в bridge | Access-порт: pvid = нужный VLAN, запись как untagged. Trunk-порт: pvid=1, запись как tagged во всех VLAN |
| 11 | /interface vlan создан на ether1 вместо bridge1 | Нестабильная работа, нет hardware offload, трафик проходит мимо bridge | Пересоздать: /interface vlan add interface=bridge1 vlan-id=10 name=vlan10 |
| 12 | ingress-filtering блокирует трафик | После включения ingress-filtering трафик пропал на некоторых портах | Проверить, что VLAN прописан в таблице для данного порта. ingress-filtering дропает кадры с VLAN ID, не прописанными в таблице |
| 13 | Native VLAN конфликтует с management VLAN | Management-трафик появляется в пользовательских VLAN или наоборот | Не использовать VLAN 1 для management. Явно задать native VLAN на обоих концах trunk-линка и убедиться в совпадении pvid |
FAQ: часто задаваемые вопросы о VLAN на MikroTik
Что такое CPU port в MikroTik?
CPU port — виртуальный порт bridge-интерфейса, через который сам RouterOS участвует в коммутации. Когда RouterOS нужно получить или отправить тегированный трафик конкретного VLAN (например, через VLAN-интерфейс с IP), он делает это именно через CPU port. В VLAN-таблице CPU port отображается как bridge1.
Нужно ли добавлять bridge1 в tagged VLAN?
Да, если на этот VLAN есть VLAN-интерфейс с IP-адресом, DHCP-сервер, firewall-правила или любой другой сервис RouterOS. Без tagged=bridge1 CPU не получает трафик этого VLAN — IP будет назначен, но пинг не пройдёт. Исключение — чистый L2-коммутатор без каких-либо IP на VLAN.
Как настроить management VLAN на MikroTik?
Выделите отдельный VLAN (рекомендуется VLAN 99 или другой нестандартный ID). Добавьте порт управления в bridge с pvid=99. В VLAN-таблице: vlan-ids=99 tagged=bridge1,ether1 untagged=<ваш порт>. Создайте VLAN-интерфейс поверх bridge1 и назначьте IP. Закройте управление для всех остальных VLAN через firewall. Включайте vlan-filtering только после всех этих шагов. Подробности — в разделе «Management VLAN» выше.
Почему после vlan-filtering пропал WinBox?
Потому что порт, через который вы управляете устройством, не был прописан в VLAN-таблице до включения фильтрации. При vlan-filtering=yes bridge начинает дропать весь трафик, не прописанный явно. Восстановление: serial console → /interface bridge set bridge1 vlan-filtering=no → добавить management VLAN в таблицу → включить фильтрацию снова.
Как проверить, работает ли tagged трафик?
Используйте /tool torch interface=ether1 — в выводе будут видны VLAN ID присутствующих в трафике. Или /tool sniffer quick vlan-id=10 interface=ether1 — захватит кадры с 802.1Q тегом VLAN 10. Также /interface bridge host print покажет, в каком VLAN изучен MAC-адрес клиента.
Что такое ingress-filtering?
Параметр ingress-filtering=yes на bridge-порту включает проверку входящих кадров: если VLAN ID кадра не прописан в VLAN-таблице для данного порта — кадр дропается. Защищает от нежелательного трафика и атак VLAN hopping. Использовать совместно с frame-types.
Как включить hardware offload на MikroTik?
Hardware offload включается автоматически при выполнении условий: Bridge VLAN Filtering включён, все порты bridge на одном switch chip, не используются функции требующие CPU (Firewall Bridge, bridge filter rules, mirror, horizon). Проверить: /interface bridge port print — флаг H на портах означает активный offload. На устройствах без switch chip (RB951, hAP lite) offload невозможен в принципе.
Почему bridge показывает H-флаг не на всех портах?
Возможные причины: этот порт подключён к switch chip другого чипсета, чем остальные порты bridge; на порту включён mirror или horizon; на bridge включён Firewall (use-ip-firewall=yes); есть bridge filter rules. Проверьте каждый пункт поочерёдно: /interface bridge port print detail покажет статус каждого порта.
Чем отличается hardware offload от CPU forwarding?
При hardware offload L2-коммутация VLAN-трафика выполняется аппаратным switch chip — CPU не задействован вообще, трафик идёт на wire speed. При CPU forwarding каждый кадр обрабатывается процессором RouterOS — производительность ограничена мощностью CPU. На устройствах без switch chip (RB951 и другие) весь трафик всегда идёт через CPU. Hardware offload работает только для L2-коммутации; inter-VLAN routing всегда через CPU.
Как проверить VLAN через torch и sniffer?
Torch показывает живой трафик в реальном времени: /tool torch interface=ether1 — видны VLAN ID, src/dst, протоколы, объём. Sniffer захватывает raw-кадры с 802.1Q-заголовками: /tool sniffer quick vlan-id=10 interface=ether1 — полезен, когда нужно увидеть реальное содержимое кадра. Для анализа захваченного трафика можно скачать pcap-файл и открыть в Wireshark.
Best Practices: чеклист перед запуском VLAN в продакшн
| # | Проверка | Команда |
|---|---|---|
| 1 | Все нужные VLAN прописаны в таблице bridge | /interface bridge vlan print |
| 2 | Для каждого VLAN с IP-интерфейсом указан tagged=bridge1 |
/interface bridge vlan print detail |
| 3 | PVID на всех access-портах совпадает с нужным VLAN ID | /interface bridge port print |
| 4 | Management VLAN настроен до включения vlan-filtering | — |
| 5 | На trunk-портах выставлен frame-types=admit-only-vlan-tagged |
/interface bridge port print detail |
| 6 | На access-портах выставлен frame-types=admit-only-untagged-and-priority-tagged |
/interface bridge port print detail |
| 7 | Hardware offload активен (флаг H на нужных портах) | /interface bridge port print |
| 8 | Firewall-правила для изоляции между VLAN добавлены | /ip firewall filter print |
| 9 | Конфиг экспортирован перед включением vlan-filtering | /export file=backup-vlan |
| 10 | DHCP-серверы привязаны к VLAN-интерфейсам, не к ether | /ip dhcp-server print |
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.
Подписаться на IT-Аптеку →

