Management VLAN на MikroTik: CPU Port, Hardware Offload и диагностика — полный разбор

MikroTik Hardware Offload VLAN: Bridge, Switch Chip, CPU

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-Аптеку →

Мы ВКонтакте

IT-Аптека — советы, новости и помощь рядом.

Вступить в группу ВКонтакте →
Поделитесь:

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх