VLAN на MikroTik: настройка RouterOS 7 — bridge, trunk, Wi-Fi и management

MikroTik Hardware Offload VLAN: Bridge, Switch Chip, CPU
Быстрый ответ
  • Создай bridge, добавь порты с нужным pvid (pvid = ID VLAN для нетегированных устройств)
  • Заполни /interface bridge vlan: tagged=bridge1,trunk-port и untagged=access-port для каждого VLAN
  • Создай VLAN-интерфейсы поверх bridge1 (не поверх ether!) — назначь IP
  • Включи vlan-filtering=yes только в самом конце, после заполнения таблицы
  • Проверь: /interface bridge vlan print detail — у каждого VLAN с IP должен быть tagged=bridge1

Диагноз: ты настраивал VLAN, но что-то пошло не так

Настройка VLAN на MikroTik — это один из тех случаев, когда кажется понятно, но не работает. Включил vlan-filtering — пропал WinBox. Назначил IP на VLAN-интерфейс — пинг не идёт. DHCP молчит. Trunk пропускает только один VLAN вместо трёх.

Каждая из этих проблем решается за одну команду. Но только если понимаешь почему она возникла.

Статья закрывает тему полностью: от первого bridge до production-конфига с management VLAN, изоляцией Wi-Fi и защитой от VLAN hopping. Конкретные команды, таблицы с объяснениями, 13 типичных ошибок с решениями.

Что нужно для повторения:

  • MikroTik с RouterOS 7.x (команды для ROS 6 там где отличаются — отмечены отдельно)
  • Доступ через WinBox или SSH с правами full
  • Serial console под рукой — пригодится если vlan-filtering включишь раньше времени
  • 15-40 минут в зависимости от сложности топологии

Системные требования

Компонент Требование Примечание
RouterOS 7.x (рекомендуется 7.14+) Bridge VLAN Filtering — только ROS 7. В ROS 6 синтаксис другой
RouterOS 6.x 6.49.x — ограниченная поддержка Часть команд отличается, hardware offload настраивается иначе
Оборудование Любой MikroTik с bridge-портами Для hardware offload нужен switch chip: CRS3xx, RB5009, hEX
Доступ Full или Write через WinBox/SSH
Резервный доступ Serial console или физический доступ Обязателен перед включением vlan-filtering

На момент публикации актуальна RouterOS 7.18. Перед настройкой проверь свежие релизы на mikrotik.com/download.

Зачем вообще нужны VLAN на MikroTik

VLAN (Virtual LAN) делит одну физическую сеть на несколько изолированных логических сегментов. Трафик между ними идёт только через маршрутизатор — и только если ты это явно разрешил.

Типичный сценарий: один роутер, один коммутатор, три задачи — офисная сеть, гостевой Wi-Fi и управление оборудованием. Без VLAN все три сегмента видят друг друга. Гость подключился к Wi-Fi — и теоретически достучится до принтера в офисе или до интерфейса управления роутером. С VLAN каждый сегмент живёт в своей изоляции.

Ещё три практических кейса:

Офис + гости + IoT. Умные лампочки и камеры в VLAN 30 не видят рабочие машины в VLAN 10. Взлом термостата не даёт доступа к файловому серверу.

VoIP-телефония. Голосовой трафик в отдельном VLAN с QoS. Никакой деградации качества от файловых копирований в офисной сети.

Разделение сред. Dev, staging и production в разных VLAN на одном железе. Разработчик не попадёт в продакшн случайно.

Архитектура: как выглядит сеть с несколькими VLAN

Сначала схема — потом команды. Понять топологию сейчас значит не тратить час на отладку потом.

%%{init: {
  'theme': 'base',
  'themeVariables': {
    'primaryColor': '#ffffff',
    'primaryTextColor': '#1e293b',
    'primaryBorderColor': '#94a3b8',
    'lineColor': '#64748b',
    'fontSize': '15px',
    'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
  },
  'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
    INET["Интернет (WAN)"]
    MT["MikroTik RouterOS 7"]
    SW["Управляемый коммутатор"]
    AP["Точка доступа Wi-Fi"]

    V10["VLAN 10 - Офис"]
    V20["VLAN 20 - Гости"]
    V30["VLAN 30 - IoT"]
    V99["VLAN 99 - Management"]

    PC["ПК офиса"]
    GUEST["Ноутбук гостя"]
    IOT["Камера / умный дом"]
    ADMIN["Ноутбук администратора"]

    INET -->|"ether1 - WAN"| MT
    MT -->|"ether2 - trunk tagged 10,20,30,99"| SW
    SW -->|"trunk tagged 10,20"| AP
    SW -->|"access untagged pvid=10"| PC
    SW -->|"access untagged pvid=30"| IOT
    AP -->|"SSID Office - VLAN 10"| V10
    AP -->|"SSID Guest - VLAN 20"| V20
    SW -->|"access untagged pvid=99"| ADMIN
    MT --> V10
    MT --> V20
    MT --> V30
    MT --> V99
    V10 --- PC
    V20 --- GUEST
    V30 --- IOT
    V99 --- ADMIN

    style MT fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
    style V99 fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
    style V10 fill:#f8fafc,stroke:#3b82f6,stroke-width:1px,color:#1e293b
    style V20 fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style V30 fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style ADMIN fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
    style INET fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style SW fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style AP fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style PC fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style GUEST fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style IOT fill:#f8fafc,stroke:#f97316,stroke-width:1px,color:#9a3412

Ключевое из схемы: MikroTik видит все VLAN через один trunk-порт. Каждый VLAN — это отдельный VLAN-интерфейс поверх bridge1 с собственным IP-адресом (gateway). Маршрутизация между VLAN идёт через RouterOS и контролируется firewall-правилами.

Три термина которые надо понять до начала

Tagged (trunk) порт — пропускает трафик нескольких VLAN с тегами 802.1Q. Используется между коммутаторами, между коммутатором и роутером, между коммутатором и точкой доступа. Устройство на другом конце обязано понимать теги.

Untagged (access) порт — пропускает трафик одного VLAN без тега. Используется для подключения конечных устройств: ПК, камер, телефонов. Устройство не знает про VLAN — получает обычный Ethernet-фрейм.

PVID (Port VLAN ID) — VLAN ID, в который попадает нетегированный трафик входящий на порт. Если ПК подключён к порту с pvid=10, его трафик попадает в VLAN 10. Это и есть «access VLAN».

Тип порта Тег на входе Тег на выходе Применение
Trunk (tagged) Несколько VLAN ID Сохраняет теги Коммутатор-роутер, коммутатор-AP
Access (untagged) Нетегированный Снимает тег ПК, камера, IoT, телефон
Hybrid Нетегированный + теги Native без тега, остальные с тегом IP-телефон с ПК на одном порту

Рецепт: настройка VLAN на MikroTik RouterOS 7 — пошагово

Подготовка: сначала бэкап

Не пропускай этот шаг. Включение vlan-filtering без правильно заполненной таблицы моментально режет доступ. С бэкапом это исправляется за минуту. Без бэкапа — за час через serial console.


# Экспорт текущего конфига
/export file=backup-before-vlan

# Скачать с устройства через SCP (с Linux/Mac)
scp admin@192.168.88.1:backup-before-vlan.rsc ./

Скачай файл на локальную машину. Файл в памяти роутера — не бэкап, а иллюзия бэкапа.

Шаг 1. Создай bridge

Bridge — это виртуальный коммутатор внутри RouterOS. Физические порты добавляются в него как участники. vlan-filtering=no пока — включим в самом конце, когда таблица будет готова.


# Создаём bridge без vlan-filtering (принципиально!)
/interface bridge
add name=bridge1 vlan-filtering=no comment="Main bridge"

Шаг 2. Добавь порты в bridge с правильным pvid

pvid определяет в какой VLAN попадает нетегированный трафик. Для trunk-порта pvid=1 (он принимает только тегированный трафик). Для access-портов pvid = ID нужного VLAN.


# Trunk-порт к коммутатору (или WAN если нужен тегированный uplink)
/interface bridge port
add bridge=bridge1 interface=ether1 pvid=1 comment="Trunk to switch"

# Access-порты для конечных устройств
add bridge=bridge1 interface=ether2 pvid=99 comment="Management admin port"
add bridge=bridge1 interface=ether3 pvid=10 comment="Office VLAN 10"
add bridge=bridge1 interface=ether4 pvid=20 comment="Guest VLAN 20"
add bridge=bridge1 interface=ether5 pvid=30 comment="IoT VLAN 30"

Шаг 3. Заполни VLAN-таблицу bridge

tagged=bridge1 — обязателен для каждого VLAN с IP
bridge1 — это CPU port RouterOS. Если не добавить bridge1 в tagged, сам роутер не увидит тегированный трафик этого VLAN. IP будет назначен, пинг не пойдёт, DHCP не ответит. Самая частая ошибка в настройке VLAN на MikroTik.

/interface bridge vlan

# VLAN 99 - Management
# tagged=bridge1 - CPU RouterOS получает тегированный трафик
# tagged=ether1  - trunk пропускает VLAN 99 с тегом
# untagged=ether2 - admin-порт получает трафик без тега
add bridge=bridge1 vlan-ids=99 tagged=bridge1,ether1 untagged=ether2 comment="Management"

# VLAN 10 - Офис
add bridge=bridge1 vlan-ids=10 tagged=bridge1,ether1 untagged=ether3 comment="Office"

# VLAN 20 - Гости
add bridge=bridge1 vlan-ids=20 tagged=bridge1,ether1 untagged=ether4 comment="Guest"

# VLAN 30 - IoT
add bridge=bridge1 vlan-ids=30 tagged=bridge1,ether1 untagged=ether5 comment="IoT"

Если точка доступа подключена к trunk-порту и должна получать несколько VLAN — добавь её как tagged в нужные VLAN:


# AP подключена к ether6 - пропускаем VLAN 10 и 20 тегированно
/interface bridge vlan
set [find vlan-ids=10] tagged=bridge1,ether1,ether6
set [find vlan-ids=20] tagged=bridge1,ether1,ether6

Шаг 4. Создай VLAN-интерфейсы поверх bridge1

Важно: поверх bridge1, не поверх ether1. Интерфейс на физическом порту обходит bridge и ломает hardware offload. Это не рекомендация — это правило.


/interface vlan
add interface=bridge1 vlan-id=99 name=vlan99-mgmt comment="Management VLAN 99"
add interface=bridge1 vlan-id=10 name=vlan10-office comment="Office VLAN 10"
add interface=bridge1 vlan-id=20 name=vlan20-guest comment="Guest VLAN 20"
add interface=bridge1 vlan-id=30 name=vlan30-iot comment="IoT VLAN 30"

Шаг 5. Назначь IP-адреса на VLAN-интерфейсы


/ip address
add address=192.168.99.1/24 interface=vlan99-mgmt comment="Management gateway"
add address=192.168.10.1/24 interface=vlan10-office comment="Office gateway"
add address=192.168.20.1/24 interface=vlan20-guest comment="Guest gateway"
add address=192.168.30.1/24 interface=vlan30-iot comment="IoT gateway"

Шаг 6. Настрой DHCP-серверы

DHCP привязывается к VLAN-интерфейсам, не к физическим портам. Иначе клиент получает IP из чужого пула — или не получает вообще.


# Пулы адресов
/ip pool
add name=pool-mgmt ranges=192.168.99.10-192.168.99.20
add name=pool-office ranges=192.168.10.10-192.168.10.254
add name=pool-guest ranges=192.168.20.10-192.168.20.254
add name=pool-iot ranges=192.168.30.10-192.168.30.254

# DHCP-серверы — на VLAN-интерфейсах
/ip dhcp-server
add name=dhcp-mgmt interface=vlan99-mgmt address-pool=pool-mgmt disabled=no
add name=dhcp-office interface=vlan10-office address-pool=pool-office disabled=no
add name=dhcp-guest interface=vlan20-guest address-pool=pool-guest disabled=no
add name=dhcp-iot interface=vlan30-iot address-pool=pool-iot disabled=no

# Сети DHCP
/ip dhcp-server network
add address=192.168.99.0/24 gateway=192.168.99.1 dns-server=192.168.99.1
add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=8.8.8.8
add address=192.168.20.0/24 gateway=192.168.20.1 dns-server=8.8.8.8
add address=192.168.30.0/24 gateway=192.168.30.1 dns-server=8.8.8.8

Шаг 7. Настрой ingress-filtering и frame-types

Без этого возможен VLAN hopping: атакующий с access-порта отправляет двойной тег и попадает в чужой VLAN. frame-types закрывает эту дыру на уровне L2 — физически. Access-порт просто не пропустит тегированный кадр.

Тип порта 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 телефона

# Trunk-порт: только тегированный трафик
/interface bridge port
set [find interface=ether1] ingress-filtering=yes \
    frame-types=admit-only-vlan-tagged

# Access-порты: только нетегированный трафик
set [find interface=ether2] ingress-filtering=yes \
    frame-types=admit-only-untagged-and-priority-tagged
set [find interface=ether3] ingress-filtering=yes \
    frame-types=admit-only-untagged-and-priority-tagged
set [find interface=ether4] ingress-filtering=yes \
    frame-types=admit-only-untagged-and-priority-tagged
set [find interface=ether5] ingress-filtering=yes \
    frame-types=admit-only-untagged-and-priority-tagged

Шаг 8. Закрой управление через firewall

Порядок правил firewall критичен
В MikroTik firewall filter применяется сверху вниз — первое совпавшее правило выигрывает. Правило разрешения для VLAN 99 должно стоять выше правила запрета. Ставь его place-before=0.

# Interface list для management VLAN
/interface list
add name=management comment="Management VLAN interfaces"

/interface list member
add interface=vlan99-mgmt list=management

# Разрешаем управление ТОЛЬКО с management VLAN
/ip firewall filter
add chain=input in-interface-list=management protocol=tcp \
    dst-port=22,80,443,8291,8728,8729 action=accept \
    comment="Allow management from VLAN99" place-before=0

# Блокируем управление отовсюду ещё
add chain=input in-interface-list=!management protocol=tcp \
    dst-port=22,80,443,8291,8728,8729 action=drop \
    comment="Block management from all other VLANs"

# Изоляция между VLAN: гости не видят офис
add chain=forward in-interface=vlan20-guest \
    out-interface=vlan10-office action=drop \
    comment="Block Guest -> Office"

# IoT не лезет никуда кроме интернета
add chain=forward in-interface=vlan30-iot \
    out-interface=!ether1 action=drop \
    comment="IoT -> Internet only"

# Никто не лезет в management
add chain=forward out-interface=vlan99-mgmt action=drop \
    comment="Block all -> Management"

# NAT для выхода в интернет
/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade

Шаг 9. Включи vlan-filtering — последний шаг

Критически важно: включай только сейчас
Если включить vlan-filtering до заполнения VLAN-таблицы — bridge начнёт дропать весь трафик непрописанных VLAN. WinBox пропадёт мгновенно. Все шаги 1-8 должны быть выполнены до этой команды.

# Последняя проверка перед включением
/interface bridge vlan print detail
# Убедись: везде tagged=bridge1
# Убедись: management-порт прописан как untagged в VLAN 99
# Убедись: ты подключён через management-порт (ether2)

# Включаем
/interface bridge set bridge1 vlan-filtering=yes

WinBox должен остаться живым — если всё настроено правильно. Если пропал — смотри раздел «Осложнения».

Таблица портов: что открыто и куда

Порт Протокол Назначение Доступен снаружи
8291/TCP WinBox Графический клиент управления MikroTik Нет — только VLAN 99
22/TCP SSH CLI-доступ к RouterOS Нет — только VLAN 99
80/TCP HTTP WebFig (отключить если не нужен) Нет — только VLAN 99
443/TCP HTTPS WebFig HTTPS Нет — только VLAN 99
8728/TCP API RouterOS API Нет — только VLAN 99
53/UDP DNS DNS-сервер для клиентов VLAN Только из разрешённых VLAN
67/UDP DHCP DHCP-сервер для клиентов Только из соответствующего VLAN

CPU Port и tagged=bridge1: почему без этого ничего не работает

Что такое CPU port в RouterOS

Bridge-интерфейс в MikroTik — это не просто логический объект. Это ещё и CPU port: виртуальный порт, через который сам RouterOS участвует в работе bridge как отдельный участник коммутации.

Когда создаёшь bridge и добавляешь физические порты — RouterOS видит такую картину:

Порт Тип Кто использует
ether1 Физический Внешний трафик
ether2, ether3… Физический Клиентские устройства
bridge1 CPU port (виртуальный) Сам RouterOS: IP-стек, DHCP, firewall, routing

Когда создаёшь /interface vlan vlan-id=10 interface=bridge1 и назначаешь IP — этот адрес принадлежит CPU. Чтобы CPU мог получать тегированный трафик VLAN 10, bridge1 должен стоять в VLAN-таблице как tagged.

%%{init: {
  'theme': 'base',
  'themeVariables': {
    'primaryColor': '#ffffff',
    'primaryTextColor': '#1e293b',
    'primaryBorderColor': '#94a3b8',
    'lineColor': '#64748b',
    'fontSize': '15px',
    'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
  },
  'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart LR
    TRUNK["ether1 (trunk)"]
    BRIDGE["bridge1 (CPU port)"]
    VLAN10["vlan10 interface"]
    DHCP["DHCP server"]
    FW["Firewall"]
    IP["IP 192.168.10.1"]

    TRUNK -->|"VLAN 10 tagged"| BRIDGE
    BRIDGE -->|"tagged=bridge1 обязателен"| VLAN10
    VLAN10 --> DHCP
    VLAN10 --> FW
    VLAN10 --> IP

    style BRIDGE fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
    style VLAN10 fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
    style TRUNK fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style DHCP fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b
    style FW fill:#f8fafc,stroke:#f97316,stroke-width:1px,color:#9a3412
    style IP fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#1e293b

Что сломается без 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=ether3
# Результат: IP есть, пинг не идёт

# Правильно: bridge1 в tagged
/interface bridge vlan
add bridge=bridge1 vlan-ids=10 tagged=bridge1,ether1 untagged=ether3
# Результат: всё работает

Правило одно: если на VLAN есть VLAN-интерфейс с IP, DHCP-сервер или любой сервис RouterOS — bridge1 обязан быть в tagged. Исключение — чистый L2-коммутатор без IP на VLAN.

Hardware Offload: производительность без нагрузки на CPU

Зачем это нужно

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 Гбит/с без нагрузки. Разница принципиальная если гоняешь много L2-трафика.

Какие устройства поддерживают hardware offload

Устройство Hardware Offload VLAN Особенности
CRS3xx (CRS326, CRS317) Да, полный Marvell switch chip, wire speed 1G/10G. Лучший вариант для VLAN-коммутации
RB5009UG+S+IN Да, полный Marvell Amethyst. Хорошо справляется с Bridge VLAN Filtering
hEX (RB750Gr3) Да, с ограничениями MT7621 switch chip. Offload работает, но часть функций его отключает
hAP ax3 / ax2 Частично IPQ-6010. Проводные порты — offload, Wi-Fi трафик — через CPU
CCR2004, CCR2116 Обычно CPU forwarding Маршрутизаторы без switch chip. Высокий CPU компенсирует
RB951, hAP lite, hAP mini Нет Нет switch chip. Весь трафик через CPU. Всегда

Что отключает hardware offload

Функция Влияние на offload
Firewall на bridge (use-ip-firewall=yes) Отключает полностью
Bridge filter rules Отключает полностью
Порты из разных switch chip в одном bridge Отключает полностью
Mirror на порту Отключает на этом порту
Horizon на порту Отключает на этом порту
VLAN-интерфейс на ether вместо bridge Обходит bridge — offload не задействован

Как проверить hardware offload


# Флаг H на портах = hardware offload активен
/interface bridge port print

# Детальная проверка
/interface bridge port print detail where bridge=bridge1
# Ищем: hw: 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   99
 2  H ether3      bridge1  yes   10
 3  H ether4      bridge1  yes   20

Нет флага H — смотри таблицу выше. Чаще всего причина: bridge filter rules или Firewall Bridge включены.

Проверка: убедись что VLAN работает


# 1. VLAN-таблица - bridge1 везде в tagged?
/interface bridge vlan print detail

# 2. PVID на портах корректный?
/interface bridge port print

# 3. MAC клиента в нужном VLAN?
/interface bridge host print where vlan-id=10

# 4. IP на VLAN-интерфейсах назначен?
/ip address print where interface~"vlan"

# 5. DHCP-серверы запущены?
/ip dhcp-server print

# 6. Пинг с gateway VLAN 10 до клиента
/ping 192.168.10.100 src-address=192.168.10.1 count=5

# 7. Живой трафик на trunk - видны VLAN ID?
/tool torch interface=ether1

# 8. Hardware offload активен?
/interface bridge port print
# Ищи флаг H на портах

VLAN для Wi-Fi на MikroTik

Как работает VLAN на точке доступа

Точка доступа подключается к trunk-порту коммутатора. Каждый SSID маппируется в свой VLAN. Трафик от клиентов Wi-Fi приходит на MikroTik с тегами — как обычный trunk-трафик.

Ключевой параметр: local-forwarding=no в datapath CAPsMAN. При local-forwarding=yes трафик коммутируется прямо на AP без тегов — VLAN не применяется. Это самая частая ошибка при настройке Wi-Fi VLAN.

Настройка CAPsMAN с VLAN (RouterOS 7, WiFiWave2)


# Создаём datapath для офисного SSID
# local-forwarding=no - трафик идёт через роутер с тегом
/interface wifi datapath
add name=dp-office vlan-id=10 vlan-mode=use-tag local-forwarding=no \
    comment="Office SSID -> VLAN 10"

add name=dp-guest vlan-id=20 vlan-mode=use-tag local-forwarding=no \
    comment="Guest SSID -> VLAN 20"

# Конфигурации SSID
/interface wifi configuration
add name=cfg-office ssid="Office" datapath=dp-office \
    security.authentication-types=wpa2-psk security.passphrase="office-pass"

add name=cfg-guest ssid="Guest" datapath=dp-guest \
    security.authentication-types=wpa2-psk security.passphrase="guest-pass"

# Применяем к точкам доступа
/interface wifi
set [find name=wifi1] configuration=cfg-office
set [find name=wifi2] configuration=cfg-guest

После этого убедись что в VLAN-таблице bridge порт к AP добавлен как tagged для VLAN 10 и 20:


# ether6 - порт к которому подключена AP
/interface bridge vlan
set [find vlan-ids=10] tagged=bridge1,ether1,ether6
set [find vlan-ids=20] tagged=bridge1,ether1,ether6

Management VLAN на MikroTik: управление в изоляции

Management VLAN — отдельный сегмент для доступа к управлению оборудованием. WinBox, SSH, WebFig — только из VLAN 99. Компрометация офисного или гостевого VLAN не даёт доступа к управлению роутером.

Что выносить в management VLAN

Оборудование Интерфейс управления Порт/протокол
MikroTik RouterOS WinBox, WebFig, SSH, API 8291, 80, 443, 22
Управляемый коммутатор Web-интерфейс, SSH, Telnet 80, 443, 22, 23
Точка доступа (AP) Web-интерфейс, CAPsMAN 80, 443
Гипервизор (Proxmox, ESXi) Web-интерфейс, SSH 8006, 443, 22
Сервер (IPMI, iDRAC, iLO) Out-of-band management 80, 443, 623

Конфигурация Management VLAN уже описана в шагах выше: VLAN 99, pvid=99 на управляющем порту, tagged=bridge1,ether1 untagged=ether2, firewall блокирует управление отовсюду кроме vlan99-mgmt.

Как не потерять доступ после vlan-filtering=yes

Шаг Что проверить до включения 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 и откат:


# Откат через serial console (115200 baud, 8N1)
/interface bridge set bridge1 vlan-filtering=no
# Доступ вернётся. Исправляй VLAN-таблицу и включай снова.

Безопасность: полный периметр

SSH hardening


# Ограничиваем сервисы управления только management-подсетью
/ip service
set ssh address=192.168.99.0/24 port=22
set winbox address=192.168.99.0/24
set www address=192.168.99.0/24
set www-ssl address=192.168.99.0/24
set api address=192.168.99.0/24
set api-ssl address=192.168.99.0/24

# Отключаем небезопасные сервисы
set telnet disabled=yes
set ftp disabled=yes

Защита от брутфорса (аналог fail2ban)


# Блокируем на 10 минут тех кто попробовал подключиться 5+ раз
/ip firewall filter
add chain=input protocol=tcp dst-port=22,8291 \
    src-address-list=blocked-mgmt action=drop \
    comment="Block brute force"

add chain=input protocol=tcp dst-port=22,8291 \
    connection-state=new src-address-list=mgmt-bf-2 \
    action=add-src-to-address-list address-list=blocked-mgmt \
    address-list-timeout=10m

add chain=input protocol=tcp dst-port=22,8291 \
    connection-state=new src-address-list=mgmt-bf-1 \
    action=add-src-to-address-list address-list=mgmt-bf-2 \
    address-list-timeout=1m

add chain=input protocol=tcp dst-port=22,8291 \
    connection-state=new \
    action=add-src-to-address-list address-list=mgmt-bf-1 \
    address-list-timeout=1m

Логирование попыток доступа к управлению


# Логировать отклонённые попытки управления
/ip firewall filter
set [find comment="Block management from all other VLANs"] \
    log=yes log-prefix="MGMT-BLOCK:"

# Смотреть логи
/log print where message~"MGMT-BLOCK"

Резервное копирование конфига


# Ручной экспорт (текстовый, можно редактировать)
/export file=vlan-config-$(date)

# Бинарный бэкап (включает пароли)
/system backup save name=vlan-backup

# Автобэкап раз в неделю
/system scheduler
add name=weekly-backup interval=7d \
    on-event="/export file=auto-backup; /system backup save name=auto-backup-bin" \
    comment="Weekly config backup"

Где хранить: скачивай через WinBox (Files) или SCP на отдельный сервер в management VLAN. Три копии: две локально, одна офлайн — минимальный стандарт.

Безопасное обновление RouterOS


# Проверить версию
/system resource print

# Проверить доступные обновления
/system package update check-for-updates

# Сделать бэкап перед обновлением
/export file=pre-update-backup
/system backup save name=pre-update-bin

# Обновить (роутер перезагрузится)
/system package update install

Перед обновлением читай changelog на mikrotik.com/download/changelogs. Изменения в bridge и vlan-filtering были в нескольких релизах — важно знать что поменялось.

Диагностика 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=ether3

# Шаг 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 VLAN 10 до клиента
/ping 192.168.10.100 src-address=192.168.10.1 count=5

# Шаг 7. Живой трафик на trunk
/tool torch interface=ether1

Troubleshooting: 13 частых проблем с VLAN на MikroTik

# Проблема Симптом Решение
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 работает только на одном порту Клиент на ether3 получает IP, на ether4 нет — хотя оба в одном VLAN Проверить pvid на ether4. Порт должен быть прописан как untagged в VLAN-таблице с нужным VLAN ID
4 Устройство не получает DHCP Клиент подключён, 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-тег не применяется
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 не совпадает с VLAN ID Клиент получает IP из чужого пула или не получает вообще /interface bridge port set [find interface=ether3] pvid=10 — pvid должен совпадать с ID нужного VLAN
9 Hardware offload исчез Флаг H пропал, CPU под нагрузкой на простом L2-трафике Проверить: включён ли Firewall Bridge, есть ли bridge filter rules, не смешаны ли порты из разных switch chip
10 Trunk и access порты перепутаны Конечное устройство не работает, хотя порт добавлен в bridge Access: pvid = нужный VLAN, запись как untagged. Trunk: pvid=1, запись как tagged во всех VLAN
11 VLAN-интерфейс создан на ether вместо 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

Альтернативы: другие подходы к настройке VLAN

RouterOS 6: свич-группы вместо Bridge VLAN Filtering

В RouterOS 6 VLAN настраивается через /interface ethernet switch — отдельный механизм. Bridge VLAN Filtering там либо отсутствует, либо работает иначе. Если ты на ROS 6 и обновляться нельзя — настройка через switch-группы и /interface vlan на физических портах. Это рабочий вариант, но hardware offload там тоже настраивается по-другому.

IP Services + address binding (без отдельного VLAN)

Быстрый вариант ограничить доступ к управлению без отдельного management VLAN:


/ip service
set winbox address=192.168.99.0/24
set ssh address=192.168.99.0/24

Минус: трафик управления ходит внутри существующих VLAN, только фильтруется по IP. VLAN hopping и компрометация подсети всё ещё угрожают. Для малых установок сойдёт, для продакшна — нет.

VPN-туннель для удалённого управления

WireGuard или IPsec туннель в management-подсеть. Никакого открытого WinBox наружу — только через VPN. Хорошо для удалённых объектов, требует дополнительной инфраструктуры.

Почему выбрали Bridge VLAN Filtering. Это нативный механизм RouterOS 7, работает без дополнительного ПО, поддерживает hardware offload на CRS и RB5009. Изоляция на уровне L2 — до IP-стека. Конфигурация читается в одном месте. В отличие от IP Services — VLAN hopping физически невозможен при правильных frame-types.

Профилактика: чеклист перед запуском в продакшн

# Проверка Команда
1 Конфиг экспортирован до начала работы /export file=backup-before-vlan
2 Все нужные VLAN прописаны в таблице bridge /interface bridge vlan print
3 Для каждого VLAN с IP указан tagged=bridge1 /interface bridge vlan print detail
4 PVID на всех access-портах совпадает с нужным VLAN ID /interface bridge port print
5 Management VLAN настроен до включения vlan-filtering
6 На trunk-портах frame-types=admit-only-vlan-tagged /interface bridge port print detail
7 На access-портах frame-types=admit-only-untagged-and-priority-tagged /interface bridge port print detail
8 Hardware offload активен — флаг H на нужных портах /interface bridge port print
9 Firewall блокирует управление из не-management VLAN /ip firewall filter print
10 DHCP-серверы привязаны к VLAN-интерфейсам, не к ether /ip dhcp-server print
11 IP Services ограничены подсетью management VLAN /ip service print
12 Serial console доступен как запасной вариант Физическая проверка

FAQ: часто задаваемые вопросы о настройке VLAN на MikroTik

Почему VLAN на MikroTik не работает после настройки?

Первым делом: /interface bridge vlan print detail. Проверь что для проблемного VLAN есть tagged=bridge1. Без него CPU RouterOS не получает тегированный трафик — IP назначен, пинг не идёт. Вторая причина: PVID на порту не совпадает с VLAN ID. Третья: vlan-filtering=no забыли включить в конце, или включили раньше времени.

Как проверить что настройка VLAN работает правильно?

Четыре проверки: 1) /interface bridge host print — MAC клиента должен быть в нужном VLAN ID. 2) /ping 192.168.10.1 с клиента — пинг до gateway должен проходить. 3) /tool torch interface=ether1 — на trunk должны быть видны нужные VLAN ID. 4) Попробуй подключиться к управлению из не-management VLAN — должен получить отказ.

Что делать если пропал WinBox после vlan-filtering yes?

Serial console, 115200 baud, 8N1. Команда: /interface bridge set bridge1 vlan-filtering=no — доступ вернётся. Потом проверяй VLAN-таблицу: management VLAN должен быть с tagged=bridge1 и untagged для твоего порта. И только потом снова vlan-filtering=yes.

Чем отличается Bridge VLAN Filtering от настройки через switch в RouterOS 6?

RouterOS 6 использовал /interface ethernet switch для hardware-based VLAN — отдельный механизм с другим синтаксисом. RouterOS 7 Bridge VLAN Filtering — единый унифицированный подход: одна таблица /interface bridge vlan управляет и software и hardware обработкой. Плюс нормальный hardware offload через тот же механизм. Мигрировать конфиг с ROS 6 на ROS 7 напрямую нельзя — нужно переписывать.

Почему нельзя создавать VLAN-интерфейс на ether вместо bridge1?

VLAN-интерфейс на физическом порту (ether1) обходит bridge. Трафик не проходит через bridge-механизм, не участвует в VLAN-таблице, hardware offload не задействован. Плюс это создаёт нестабильную конфигурацию — bridge и VLAN-интерфейс на одном физическом порту конфликтуют. Всегда: /interface vlan add interface=bridge1.

Как работает hardware offload и почему флаг H не появляется?

Hardware offload включается автоматически когда: Bridge VLAN Filtering включён, все порты bridge на одном switch chip, не используются функции требующие CPU (Firewall Bridge, bridge filter rules, mirror). Чаще всего флага H нет из-за bridge filter rules или use-ip-firewall=yes. Проверь: /interface bridge port print detail — поле hw покажет yes или no с причиной отсутствия offload.

Как настроить VLAN для гостевого Wi-Fi на MikroTik?

Создай datapath в CAPsMAN с vlan-id=20 vlan-mode=use-tag local-forwarding=no. Привяжи к SSID. В VLAN-таблице bridge добавь порт к AP как tagged для VLAN 20. В firewall добавь правило запрещающее трафик из VLAN 20 в VLAN 10 (офис). Ключевой момент: local-forwarding=no обязателен — без него VLAN-тег не применяется и весь трафик идёт в один сегмент.

Итог

Настройка VLAN на MikroTik по этой схеме даёт: изолированные сегменты для офиса, гостей, IoT и управления; management VLAN с firewall-периметром; hardware offload на поддерживаемых устройствах; защиту от VLAN hopping через ingress-filtering и frame-types.

Три вещи которые ломают VLAN чаще всего: нет tagged=bridge1, vlan-filtering включили раньше времени, VLAN-интерфейс создали на ether вместо bridge1. Все три — в troubleshooting выше с командами исправления.

Не заработало? Пиши в комментарии - разберёмся
Опиши: версию RouterOS (/system resource print), топологию (какой порт куда подключён), вывод /interface bridge vlan print detail и /interface bridge port print. С этим набором данных проблема решается за один-два ответа.

Оставайтесь на связи

Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.

Подписаться на IT-Аптеку →

Мы ВКонтакте

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

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

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

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

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