mikrotik-wiki.ru
Главная
Загрузка...

VLAN — сегментация сети

RouterOS 7.xInterfaces13 мин830 мар. 2026 г.
TelegramVK

VLAN на MikroTik — сегментация сети через Bridge VLAN Filtering

Это руководство описывает настройку VLAN на MikroTik RouterOS 7.x с использованием метода Bridge VLAN Filtering. Мы разберём теорию, настроим trunk и access порты, создадим три VLAN для типичного офиса, поднимем DHCP Server на каждый VLAN и настроим firewall для изоляции сегментов.

Инструкция подходит для всех моделей MikroTik с RouterOS 7.x: hAP ax2, hAP ax3, RB5009, CCR2004, CRS3xx и других. Мы используем именно Bridge VLAN Filtering — это рекомендованный метод для RouterOS 7.x, а не устаревшие switch chip rules.

1. Что такое VLAN и зачем он нужен

VLAN (Virtual Local Area Network) — это технология, позволяющая разделить одну физическую сеть на несколько изолированных логических сегментов. Устройства в разных VLAN не видят друг друга на L2-уровне, даже если подключены к одному коммутатору.

Зачем это нужно на практике:

  • Безопасность — гостевой Wi-Fi изолирован от рабочей сети, устройства управления недоступны для обычных пользователей
  • Производительность — broadcast-трафик ограничен рамками одного VLAN и не засоряет всю сеть
  • Порядок — каждый сегмент имеет свою подсеть, свой DHCP, свои правила доступа
  • Соответствие требованиям — PCI DSS, ФЗ-152 и другие стандарты требуют сегментации сети

В нашем примере мы создадим три VLAN:

VLAN IDНазначениеПодсеть
10Сотрудники192.168.10.0/24
20Гости192.168.20.0/24
30Управление192.168.30.0/24

2. Терминология: tagged, untagged, trunk, access, PVID

Прежде чем переходить к настройке, разберём ключевые термины. Понимание этих концепций критически важно — большинство ошибок в настройке VLAN связаны именно с путаницей в терминологии:

Tagged (тегированный) — кадр, к которому добавлен заголовок 802.1Q с номером VLAN. Устройство на другом конце должно понимать VLAN-теги. Тегированные порты используются для соединения между коммутаторами и маршрутизаторами.

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

Trunk порт — порт, через который проходит трафик нескольких VLAN в тегированном виде. Обычно это аплинк между коммутаторами или соединение с маршрутизатором.

Access порт — порт, к которому подключено конечное устройство. Трафик приходит без тега, коммутатор назначает VLAN на основании PVID порта.

PVID (Port VLAN ID) — VLAN, который назначается входящим нетегированным кадрам на данном порту. Для access-порта PVID определяет, в каком VLAN будет работать подключённое устройство.

Bridge VLAN Filtering — механизм в RouterOS, при котором bridge выполняет фильтрацию VLAN на программном уровне. Это универсальный метод, работающий на всех моделях. В RouterOS 6.x существовал альтернативный метод через switch chip rules, но он был аппаратно-зависимым и работал не на всех чипах. В RouterOS 7.x Bridge VLAN Filtering является стандартным и рекомендованным подходом. На моделях с аппаратной поддержкой (CRS3xx, CRS5xx) bridge автоматически использует hardware offloading для VLAN — производительность не страдает.

3. Как работает Bridge VLAN Filtering изнутри

Когда vlan-filtering включён, bridge обрабатывает каждый Ethernet-кадр по следующему алгоритму:

  1. Кадр приходит на порт bridge (ingress). Если кадр без тега — bridge добавляет тег, равный PVID этого порта. Если кадр уже с тегом — bridge проверяет, разрешён ли этот VLAN на данном порту (порт должен быть tagged для этого VLAN).
  2. Bridge выполняет MAC-learning и forwarding в пределах данного VLAN. Кадр не может попасть в другой VLAN на L2-уровне.
  3. На выходе (egress) bridge проверяет, как порт назначения указан для этого VLAN. Если порт tagged — кадр уходит с VLAN-тегом. Если порт untagged — тег снимается и кадр уходит обычным Ethernet-фреймом.
  4. Если порт назначения не указан ни в tagged, ни в untagged для данного VLAN — кадр отбрасывается.

Именно шаг 4 объясняет, почему включение vlan-filtering с пустой таблицей VLAN блокирует весь трафик.

4. Схема сети для примера

Допустим, у нас MikroTik hAP ax3 с пятью Ethernet-портами:

  • ether1 — аплинк (trunk), подключение к вышестоящему коммутатору или интернету
  • ether2, ether3 — access-порты, VLAN 10 (сотрудники)
  • ether4 — access-порт, VLAN 20 (гости)
  • ether5 — access-порт, VLAN 30 (управление)

MikroTik будет выступать одновременно как коммутатор (L2 VLAN bridging) и как маршрутизатор (L3 inter-VLAN routing, DHCP, firewall).

5. Подготовка Bridge

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

[admin@MikroTik] >
/interface/bridge add name=bridge1 vlan-filtering=no comment="Main VLAN bridge"

Добавляем порты в bridge. Каждому access-порту сразу назначаем правильный PVID:

[admin@MikroTik] >
/interface/bridge/port
  add bridge=bridge1 interface=ether1 pvid=1
  add bridge=bridge1 interface=ether2 pvid=10
  add bridge=bridge1 interface=ether3 pvid=10
  add bridge=bridge1 interface=ether4 pvid=20
  add bridge=bridge1 interface=ether5 pvid=30

Порт ether1 — trunk, его PVID можно оставить 1 (по умолчанию), потому что весь трафик на нём будет тегированным. Порты ether2-ether5 получают PVID соответствующего VLAN — входящие нетегированные кадры будут автоматически отнесены к нужному VLAN.

6. Настройка таблицы VLAN на Bridge

Теперь определяем, какие порты для каждого VLAN являются tagged, а какие — untagged. Сам bridge1 должен быть tagged для каждого VLAN, чтобы VLAN-интерфейсы, созданные поверх bridge, могли принимать трафик.

[admin@MikroTik] >
/interface/bridge/vlan
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether2,ether3 vlan-ids=10
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether4 vlan-ids=20
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether5 vlan-ids=30

Что здесь происходит:

  • VLAN 10: кадры уходят тегированными через bridge1 (для локальных VLAN-интерфейсов) и ether1 (trunk). Через ether2 и ether3 кадры уходят без тега — конечные устройства сотрудников не знают про VLAN.
  • VLAN 20: аналогично, но untagged только ether4 — гостевой порт.
  • VLAN 30: untagged только ether5 — порт управления.

Если ether1 подключен к управляемому коммутатору, на том коммутаторе этот порт тоже должен быть настроен как trunk с VLAN 10, 20, 30 в tagged.

7. Создание VLAN-интерфейсов

Для маршрутизации между VLAN и назначения IP-адресов создаём VLAN-интерфейсы поверх bridge1:

[admin@MikroTik] >
/interface/vlan
  add name=vlan10-staff interface=bridge1 vlan-id=10
  add name=vlan20-guests interface=bridge1 vlan-id=20
  add name=vlan30-mgmt interface=bridge1 vlan-id=30

Используем понятные имена — это упрощает диагностику и чтение firewall-правил.

8. IP-адресация

Назначаем IP-адрес на каждый VLAN-интерфейс. MikroTik станет шлюзом по умолчанию для каждого сегмента:

[admin@MikroTik] >
/ip/address
  add address=192.168.10.1/24 interface=vlan10-staff network=192.168.10.0
  add address=192.168.20.1/24 interface=vlan20-guests network=192.168.20.0
  add address=192.168.30.1/24 interface=vlan30-mgmt network=192.168.30.0

9. DHCP Server на каждый VLAN

Для каждого VLAN создаём пул адресов, DHCP-сеть и сервер.

Пулы адресов:

[admin@MikroTik] >
/ip/pool
  add name=pool-vlan10 ranges=192.168.10.100-192.168.10.254
  add name=pool-vlan20 ranges=192.168.20.100-192.168.20.254
  add name=pool-vlan30 ranges=192.168.30.100-192.168.30.254

DHCP-сети с параметрами:

[admin@MikroTik] >
/ip/dhcp-server/network
  add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1 comment="Staff"
  add address=192.168.20.0/24 gateway=192.168.20.1 dns-server=192.168.20.1 comment="Guests"
  add address=192.168.30.0/24 gateway=192.168.30.1 dns-server=192.168.30.1 comment="Management"

DHCP-серверы:

[admin@MikroTik] >
/ip/dhcp-server
  add name=dhcp-vlan10 interface=vlan10-staff address-pool=pool-vlan10 lease-time=8h disabled=no
  add name=dhcp-vlan20 interface=vlan20-guests address-pool=pool-vlan20 lease-time=1h disabled=no
  add name=dhcp-vlan30 interface=vlan30-mgmt address-pool=pool-vlan30 lease-time=8h disabled=no

Обратите внимание на lease-time: для гостевой сети ставим 1 час — адреса освобождаются быстрее при высокой текучке устройств.

Не забудьте настроить DNS, если MikroTik выступает DNS-сервером:

[admin@MikroTik] >
/ip/dns set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4

10. Включение VLAN Filtering — последний шаг

ВНИМАНИЕ: Это самый ответственный момент. Включение vlan-filtering до завершения настройки VLAN-таблицы приведёт к потере доступа к роутеру. Все порты, не прописанные в bridge/vlan, перестанут пропускать трафик. Если вы потеряете доступ — только аппаратный сброс (кнопка Reset) вернёт роутер к жизни.

Правило простое: сначала настрой — потом включай.

Убедитесь, что:

  1. Все порты добавлены в bridge с правильным PVID
  2. Таблица bridge/vlan заполнена для всех нужных VLAN
  3. Bridge добавлен как tagged для каждого VLAN
  4. Вы подключены через порт, который прописан в untagged или tagged

Только после этого:

[admin@MikroTik] >
/interface/bridge set bridge1 vlan-filtering=yes

Если всё настроено правильно — доступ сохранится. Если вы потеряли связь — зажмите кнопку Reset на 5 секунд, роутер сбросится к заводским настройкам.

Совет: если настраиваете удалённо, используйте Safe Mode в WinBox или терминале. В терминале нажмите Ctrl+X для входа в Safe Mode — если соединение разорвётся, все изменения откатятся автоматически.

11. Firewall между VLAN

По умолчанию, после создания VLAN-интерфейсов MikroTik маршрутизирует трафик между всеми VLAN. Это значит, что гости могут попасть в сеть сотрудников. Нужно это запретить с помощью firewall.

Стратегия: создаём interface-list для каждой зоны, затем пишем правила на основе списков.

Списки интерфейсов:

[admin@MikroTik] >
/interface/list
  add name=VLAN-STAFF
  add name=VLAN-GUESTS
  add name=VLAN-MGMT

/interface/list/member
  add interface=vlan10-staff list=VLAN-STAFF
  add interface=vlan20-guests list=VLAN-GUESTS
  add interface=vlan30-mgmt list=VLAN-MGMT

Правила firewall (filter):

[admin@MikroTik] >
/ip/firewall/filter
  add chain=forward action=accept connection-state=established,related comment="Allow established"
  add chain=forward action=drop connection-state=invalid comment="Drop invalid"
  add chain=forward action=accept in-interface-list=VLAN-STAFF out-interface-list=VLAN-STAFF comment="Staff internal"
  add chain=forward action=accept in-interface-list=VLAN-MGMT comment="Management to all"
  add chain=forward action=drop in-interface-list=VLAN-GUESTS out-interface-list=VLAN-STAFF comment="Block guests to staff"
  add chain=forward action=drop in-interface-list=VLAN-GUESTS out-interface-list=VLAN-MGMT comment="Block guests to mgmt"
  add chain=forward action=accept in-interface-list=VLAN-GUESTS out-interface=ether1 comment="Guests to internet only"
  add chain=forward action=drop in-interface-list=VLAN-GUESTS comment="Drop all other guest traffic"

Логика правил:

  1. Разрешаем established и related — без этого не работают ответные пакеты
  2. Дропаем invalid-пакеты — мусор, сканы, битые сессии
  3. Сотрудники могут общаться между собой внутри VLAN 10
  4. Управление (VLAN 30) имеет доступ ко всем сегментам — для мониторинга и администрирования
  5. Гостям запрещён доступ к сотрудникам и управлению
  6. Гостям разрешён выход в интернет через ether1
  7. Весь остальной гостевой трафик дропается

Ограничиваем доступ к самому роутеру — разрешаем управление только из VLAN 30:

[admin@MikroTik] >
/ip/firewall/filter
  add chain=input action=accept connection-state=established,related comment="Allow established to router"
  add chain=input action=drop connection-state=invalid comment="Drop invalid to router"
  add chain=input action=accept in-interface-list=VLAN-MGMT comment="Management access to router"
  add chain=input action=accept protocol=udp dst-port=67 comment="Allow DHCP requests"
  add chain=input action=accept protocol=udp dst-port=53 comment="Allow DNS queries"
  add chain=input action=accept protocol=tcp dst-port=53 comment="Allow DNS queries TCP"
  add chain=input action=drop in-interface-list=VLAN-GUESTS comment="Block guests to router"
  add chain=input action=drop in-interface-list=VLAN-STAFF comment="Block staff to router (except DHCP/DNS)"

Здесь мы разрешаем DHCP и DNS для всех VLAN (иначе устройства не получат адрес и не смогут резолвить имена), но прямой доступ к роутеру (WinBox, SSH, WebFig) — только из VLAN 30.

12. NAT для выхода в интернет

Если MikroTik является шлюзом в интернет, добавьте masquerade для всех VLAN:

[admin@MikroTik] >
/ip/firewall/nat
  add chain=srcnat action=masquerade out-interface=ether1 comment="NAT to internet"

Если вы хотите ограничить выход в интернет только определённым VLAN:

[admin@MikroTik] >
/ip/firewall/nat
  add chain=srcnat action=masquerade src-address=192.168.10.0/24 out-interface=ether1 comment="NAT staff"
  add chain=srcnat action=masquerade src-address=192.168.20.0/24 out-interface=ether1 comment="NAT guests"

В этом случае VLAN 30 (управление) не имеет выхода в интернет — это повышает безопасность.

13. Проверка и диагностика

После включения vlan-filtering проверяем, что всё работает.

Проверка bridge и портов:

[admin@MikroTik] >
/interface/bridge print
/interface/bridge/port print
/interface/bridge/vlan print

Убедитесь, что vlan-filtering=yes, все порты в bridge, PVID назначены правильно, таблица VLAN заполнена.

Проверка VLAN-интерфейсов:

[admin@MikroTik] >
/interface/vlan print
/ip/address print

Проверка DHCP:

[admin@MikroTik] >
/ip/dhcp-server print
/ip/dhcp-server/lease print

Если клиенты получают адреса — DHCP работает. Если нет — проверьте, что DHCP-сервер привязан к правильному VLAN-интерфейсу и пул адресов соответствует подсети.

Тестирование связности с роутера:

[admin@MikroTik] >
/ping 192.168.10.100
/ping 192.168.20.100
/ping 192.168.30.100

Проверка изоляции — подключитесь к гостевой сети и попробуйте пинговать адреса сотрудников (192.168.10.x). Если firewall настроен правильно, пинги не пройдут.

Мониторинг трафика по VLAN:

[admin@MikroTik] >
/interface/monitor-traffic vlan10-staff,vlan20-guests,vlan30-mgmt once

Просмотр MAC-таблицы bridge с информацией о VLAN:

[admin@MikroTik] >
/interface/bridge/host print where bridge=bridge1

14. Добавление Wi-Fi в структуру VLAN

В реальном офисе Wi-Fi тоже должен быть разнесён по VLAN. Если у вас есть Wi-Fi модуль на MikroTik (hAP ax2, hAP ax3, Audience), создайте отдельные виртуальные точки доступа.

На RouterOS 7.x с новым Wi-Fi (wifi пакет):

[admin@MikroTik] >
/interface/wifi/security
  add name=sec-staff authentication-types=wpa2-psk,wpa3-psk passphrase="StaffPass2024"
  add name=sec-guests authentication-types=wpa2-psk passphrase="GuestWiFi"

/interface/wifi/configuration
  add name=cfg-staff ssid="Office-Staff" security=sec-staff
  add name=cfg-guests ssid="Office-Guests" security=sec-guests

/interface/wifi
  set wifi1 configuration=cfg-staff disabled=no
  add master-interface=wifi1 configuration=cfg-guests name=wifi-guests disabled=no

Добавляем Wi-Fi интерфейсы в bridge с правильным PVID:

[admin@MikroTik] >
/interface/bridge/port
  add bridge=bridge1 interface=wifi1 pvid=10
  add bridge=bridge1 interface=wifi-guests pvid=20

Обновляем таблицу VLAN на bridge:

[admin@MikroTik] >
/interface/bridge/vlan
  set [find vlan-ids=10] untagged=ether2,ether3,wifi1
  set [find vlan-ids=20] untagged=ether4,wifi-guests

Теперь Wi-Fi клиенты, подключённые к SSID "Office-Staff", попадают в VLAN 10, а подключённые к "Office-Guests" — в VLAN 20.

15. Типичные ошибки

1. Включение vlan-filtering до настройки таблицы VLAN

Самая частая ошибка. После включения фильтрации bridge отбрасывает все кадры, которые не соответствуют таблице VLAN. Если таблица пуста — дропается всё, включая ваше подключение. Решение: всегда включайте vlan-filtering последним шагом. Используйте Safe Mode (Ctrl+X в терминале).

2. Забыли добавить bridge1 в tagged

Если bridge1 не добавлен как tagged для VLAN, то VLAN-интерфейсы (vlan10, vlan20, vlan30) не будут получать трафик. Без этого не работают IP-адреса, DHCP, маршрутизация между VLAN. В таблице bridge/vlan для каждого VLAN должен быть tagged=bridge1.

3. Неправильный PVID на access-порту

Если PVID порта не совпадает с VLAN, в котором порт указан как untagged, трафик не пойдёт. Пример: порт ether2 с pvid=1, но в таблице VLAN он untagged для VLAN 10. Входящие кадры получат тег VLAN 1, а не VLAN 10. Результат — устройство не получит адрес по DHCP и не попадёт в нужный сегмент.

4. Дублирование порта в untagged для разных VLAN

Один порт может быть untagged только для одного VLAN. Если вы добавите ether2 как untagged для VLAN 10 и VLAN 20 — поведение будет непредсказуемым. Порт может быть tagged для нескольких VLAN, но untagged — только для одного.

5. Не настроен firewall между VLAN

VLAN без firewall — это только L2-изоляция. На L3-уровне MikroTik по умолчанию маршрутизирует трафик между всеми подсетями. Гости смогут обращаться к ресурсам сотрудников по IP. Firewall обязателен для полноценной изоляции.

6. DHCP-сервер привязан к bridge вместо VLAN-интерфейса

DHCP-сервер должен быть привязан к конкретному VLAN-интерфейсу (vlan10-staff), а не к bridge1. Если привязать к bridge — клиенты из всех VLAN будут получать адреса из одного пула, что нарушает сегментацию.

7. Неправильный порядок firewall-правил

Правила в RouterOS обрабатываются сверху вниз. Если правило drop стоит перед правилом accept — трафик будет заблокирован. Всегда ставьте accept established,related первым, затем drop invalid, затем разрешающие правила, и drop в конце.

16. Полная конфигурация одним блоком

Для удобства — вся конфигурация VLAN одним скриптом. Выполняйте строго в указанном порядке:

[admin@MikroTik] >
# 1. Bridge
/interface/bridge add name=bridge1 vlan-filtering=no

# 2. Порты
/interface/bridge/port
  add bridge=bridge1 interface=ether1 pvid=1
  add bridge=bridge1 interface=ether2 pvid=10
  add bridge=bridge1 interface=ether3 pvid=10
  add bridge=bridge1 interface=ether4 pvid=20
  add bridge=bridge1 interface=ether5 pvid=30

# 3. Таблица VLAN
/interface/bridge/vlan
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether2,ether3 vlan-ids=10
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether4 vlan-ids=20
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether5 vlan-ids=30

# 4. VLAN-интерфейсы
/interface/vlan
  add name=vlan10-staff interface=bridge1 vlan-id=10
  add name=vlan20-guests interface=bridge1 vlan-id=20
  add name=vlan30-mgmt interface=bridge1 vlan-id=30

# 5. IP-адреса
/ip/address
  add address=192.168.10.1/24 interface=vlan10-staff network=192.168.10.0
  add address=192.168.20.1/24 interface=vlan20-guests network=192.168.20.0
  add address=192.168.30.1/24 interface=vlan30-mgmt network=192.168.30.0

# 6. DHCP
/ip/pool
  add name=pool-vlan10 ranges=192.168.10.100-192.168.10.254
  add name=pool-vlan20 ranges=192.168.20.100-192.168.20.254
  add name=pool-vlan30 ranges=192.168.30.100-192.168.30.254

/ip/dhcp-server/network
  add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1
  add address=192.168.20.0/24 gateway=192.168.20.1 dns-server=192.168.20.1
  add address=192.168.30.0/24 gateway=192.168.30.1 dns-server=192.168.30.1

/ip/dhcp-server
  add name=dhcp-vlan10 interface=vlan10-staff address-pool=pool-vlan10 lease-time=8h disabled=no
  add name=dhcp-vlan20 interface=vlan20-guests address-pool=pool-vlan20 lease-time=1h disabled=no
  add name=dhcp-vlan30 interface=vlan30-mgmt address-pool=pool-vlan30 lease-time=8h disabled=no

/ip/dns set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4

# 7. Firewall
/interface/list
  add name=VLAN-STAFF
  add name=VLAN-GUESTS
  add name=VLAN-MGMT

/interface/list/member
  add interface=vlan10-staff list=VLAN-STAFF
  add interface=vlan20-guests list=VLAN-GUESTS
  add interface=vlan30-mgmt list=VLAN-MGMT

/ip/firewall/filter
  add chain=forward action=accept connection-state=established,related
  add chain=forward action=drop connection-state=invalid
  add chain=forward action=accept in-interface-list=VLAN-MGMT
  add chain=forward action=drop in-interface-list=VLAN-GUESTS out-interface-list=VLAN-STAFF
  add chain=forward action=drop in-interface-list=VLAN-GUESTS out-interface-list=VLAN-MGMT
  add chain=forward action=accept in-interface-list=VLAN-GUESTS out-interface=ether1
  add chain=forward action=drop in-interface-list=VLAN-GUESTS
  add chain=input action=accept connection-state=established,related
  add chain=input action=drop connection-state=invalid
  add chain=input action=accept in-interface-list=VLAN-MGMT
  add chain=input action=accept protocol=udp dst-port=67
  add chain=input action=accept protocol=udp dst-port=53
  add chain=input action=accept protocol=tcp dst-port=53
  add chain=input action=drop in-interface-list=VLAN-GUESTS
  add chain=input action=drop in-interface-list=VLAN-STAFF

/ip/firewall/nat
  add chain=srcnat action=masquerade out-interface=ether1

# 8. ПОСЛЕДНИЙ ШАГ — включение VLAN filtering
/interface/bridge set bridge1 vlan-filtering=yes

После выполнения этого скрипта у вас будет полностью работающая VLAN-сегментация с тремя изолированными сегментами, DHCP-серверами, DNS и firewall.

Заключение

Bridge VLAN Filtering — это мощный и гибкий метод сегментации сети на MikroTik RouterOS 7.x. Ключевые правила, которые стоит запомнить:

  1. vlan-filtering=yes включается последним — после настройки всех портов, таблицы VLAN, IP-адресов и DHCP
  2. bridge1 должен быть tagged для каждого VLAN, в котором нужна маршрутизация
  3. PVID access-порта должен совпадать с VLAN, в котором порт указан как untagged
  4. Один порт — один untagged VLAN, но можно несколько tagged
  5. Firewall обязателен — без него VLAN дают только L2-изоляцию
  6. Safe Mode (Ctrl+X) — ваша страховка при удалённой настройке

Правильно настроенные VLAN значительно повышают безопасность и управляемость сети. Потратьте время на планирование схемы VLAN до начала настройки — перенос устройств между VLAN потом займёт гораздо больше времени.

[admin@MikroTik] >
/interface/bridge add name=bridge1 vlan-filtering=no comment="Main VLAN bridge"
/interface/bridge/port
  add bridge=bridge1 interface=ether1 pvid=1
  add bridge=bridge1 interface=ether2 pvid=10
  add bridge=bridge1 interface=ether3 pvid=10
  add bridge=bridge1 interface=ether4 pvid=20
  add bridge=bridge1 interface=ether5 pvid=30
/interface/bridge/vlan
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether2,ether3 vlan-ids=10
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether4 vlan-ids=20
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether5 vlan-ids=30
/interface/vlan
  add name=vlan10-staff interface=bridge1 vlan-id=10
  add name=vlan20-guests interface=bridge1 vlan-id=20
  add name=vlan30-mgmt interface=bridge1 vlan-id=30
/ip/address
  add address=192.168.10.1/24 interface=vlan10-staff network=192.168.10.0
  add address=192.168.20.1/24 interface=vlan20-guests network=192.168.20.0
  add address=192.168.30.1/24 interface=vlan30-mgmt network=192.168.30.0
/ip/pool
  add name=pool-vlan10 ranges=192.168.10.100-192.168.10.254
  add name=pool-vlan20 ranges=192.168.20.100-192.168.20.254
  add name=pool-vlan30 ranges=192.168.30.100-192.168.30.254
/ip/dhcp-server/network
  add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1 comment="Staff"
  add address=192.168.20.0/24 gateway=192.168.20.1 dns-server=192.168.20.1 comment="Guests"
  add address=192.168.30.0/24 gateway=192.168.30.1 dns-server=192.168.30.1 comment="Management"
/ip/dhcp-server
  add name=dhcp-vlan10 interface=vlan10-staff address-pool=pool-vlan10 lease-time=8h disabled=no
  add name=dhcp-vlan20 interface=vlan20-guests address-pool=pool-vlan20 lease-time=1h disabled=no
  add name=dhcp-vlan30 interface=vlan30-mgmt address-pool=pool-vlan30 lease-time=8h disabled=no
/ip/dns set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4
/interface/bridge set bridge1 vlan-filtering=yes
/interface/list
  add name=VLAN-STAFF
  add name=VLAN-GUESTS
  add name=VLAN-MGMT

/interface/list/member
  add interface=vlan10-staff list=VLAN-STAFF
  add interface=vlan20-guests list=VLAN-GUESTS
  add interface=vlan30-mgmt list=VLAN-MGMT
/ip/firewall/filter
  add chain=forward action=accept connection-state=established,related comment="Allow established"
  add chain=forward action=drop connection-state=invalid comment="Drop invalid"
  add chain=forward action=accept in-interface-list=VLAN-STAFF out-interface-list=VLAN-STAFF comment="Staff internal"
  add chain=forward action=accept in-interface-list=VLAN-MGMT comment="Management to all"
  add chain=forward action=drop in-interface-list=VLAN-GUESTS out-interface-list=VLAN-STAFF comment="Block guests to staff"
  add chain=forward action=drop in-interface-list=VLAN-GUESTS out-interface-list=VLAN-MGMT comment="Block guests to mgmt"
  add chain=forward action=accept in-interface-list=VLAN-GUESTS out-interface=ether1 comment="Guests to internet only"
  add chain=forward action=drop in-interface-list=VLAN-GUESTS comment="Drop all other guest traffic"
/ip/firewall/filter
  add chain=input action=accept connection-state=established,related comment="Allow established to router"
  add chain=input action=drop connection-state=invalid comment="Drop invalid to router"
  add chain=input action=accept in-interface-list=VLAN-MGMT comment="Management access to router"
  add chain=input action=accept protocol=udp dst-port=67 comment="Allow DHCP requests"
  add chain=input action=accept protocol=udp dst-port=53 comment="Allow DNS queries"
  add chain=input action=accept protocol=tcp dst-port=53 comment="Allow DNS queries TCP"
  add chain=input action=drop in-interface-list=VLAN-GUESTS comment="Block guests to router"
  add chain=input action=drop in-interface-list=VLAN-STAFF comment="Block staff to router (except DHCP/DNS)"
/ip/firewall/nat
  add chain=srcnat action=masquerade out-interface=ether1 comment="NAT to internet"
/ip/firewall/nat
  add chain=srcnat action=masquerade src-address=192.168.10.0/24 out-interface=ether1 comment="NAT staff"
  add chain=srcnat action=masquerade src-address=192.168.20.0/24 out-interface=ether1 comment="NAT guests"
/interface/bridge print
/interface/bridge/port print
/interface/bridge/vlan print
/interface/vlan print
/ip/address print
/ip/dhcp-server print
/ip/dhcp-server/lease print
/ping 192.168.10.100
/ping 192.168.20.100
/ping 192.168.30.100
/interface/monitor-traffic vlan10-staff,vlan20-guests,vlan30-mgmt once
/interface/bridge/host print where bridge=bridge1
/interface/wifi/security
  add name=sec-staff authentication-types=wpa2-psk,wpa3-psk passphrase="StaffPass2024"
  add name=sec-guests authentication-types=wpa2-psk passphrase="GuestWiFi"

/interface/wifi/configuration
  add name=cfg-staff ssid="Office-Staff" security=sec-staff
  add name=cfg-guests ssid="Office-Guests" security=sec-guests

/interface/wifi
  set wifi1 configuration=cfg-staff disabled=no
  add master-interface=wifi1 configuration=cfg-guests name=wifi-guests disabled=no
/interface/bridge/port
  add bridge=bridge1 interface=wifi1 pvid=10
  add bridge=bridge1 interface=wifi-guests pvid=20
/interface/bridge/vlan
  set [find vlan-ids=10] untagged=ether2,ether3,wifi1
  set [find vlan-ids=20] untagged=ether4,wifi-guests
# 1. Bridge
/interface/bridge add name=bridge1 vlan-filtering=no

# 2. Порты
/interface/bridge/port
  add bridge=bridge1 interface=ether1 pvid=1
  add bridge=bridge1 interface=ether2 pvid=10
  add bridge=bridge1 interface=ether3 pvid=10
  add bridge=bridge1 interface=ether4 pvid=20
  add bridge=bridge1 interface=ether5 pvid=30

# 3. Таблица VLAN
/interface/bridge/vlan
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether2,ether3 vlan-ids=10
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether4 vlan-ids=20
  add bridge=bridge1 tagged=bridge1,ether1 untagged=ether5 vlan-ids=30

# 4. VLAN-интерфейсы
/interface/vlan
  add name=vlan10-staff interface=bridge1 vlan-id=10
  add name=vlan20-guests interface=bridge1 vlan-id=20
  add name=vlan30-mgmt interface=bridge1 vlan-id=30

# 5. IP-адреса
/ip/address
  add address=192.168.10.1/24 interface=vlan10-staff network=192.168.10.0
  add address=192.168.20.1/24 interface=vlan20-guests network=192.168.20.0
  add address=192.168.30.1/24 interface=vlan30-mgmt network=192.168.30.0

# 6. DHCP
/ip/pool
  add name=pool-vlan10 ranges=192.168.10.100-192.168.10.254
  add name=pool-vlan20 ranges=192.168.20.100-192.168.20.254
  add name=pool-vlan30 ranges=192.168.30.100-192.168.30.254

/ip/dhcp-server/network
  add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1
  add address=192.168.20.0/24 gateway=192.168.20.1 dns-server=192.168.20.1
  add address=192.168.30.0/24 gateway=192.168.30.1 dns-server=192.168.30.1

/ip/dhcp-server
  add name=dhcp-vlan10 interface=vlan10-staff address-pool=pool-vlan10 lease-time=8h disabled=no
  add name=dhcp-vlan20 interface=vlan20-guests address-pool=pool-vlan20 lease-time=1h disabled=no
  add name=dhcp-vlan30 interface=vlan30-mgmt address-pool=pool-vlan30 lease-time=8h disabled=no

/ip/dns set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4

# 7. Firewall
/interface/list
  add name=VLAN-STAFF
  add name=VLAN-GUESTS
  add name=VLAN-MGMT

/interface/list/member
  add interface=vlan10-staff list=VLAN-STAFF
  add interface=vlan20-guests list=VLAN-GUESTS
  add interface=vlan30-mgmt list=VLAN-MGMT

/ip/firewall/filter
  add chain=forward action=accept connection-state=established,related
  add chain=forward action=drop connection-state=invalid
  add chain=forward action=accept in-interface-list=VLAN-MGMT
  add chain=forward action=drop in-interface-list=VLAN-GUESTS out-interface-list=VLAN-STAFF
  add chain=forward action=drop in-interface-list=VLAN-GUESTS out-interface-list=VLAN-MGMT
  add chain=forward action=accept in-interface-list=VLAN-GUESTS out-interface=ether1
  add chain=forward action=drop in-interface-list=VLAN-GUESTS
  add chain=input action=accept connection-state=established,related
  add chain=input action=drop connection-state=invalid
  add chain=input action=accept in-interface-list=VLAN-MGMT
  add chain=input action=accept protocol=udp dst-port=67
  add chain=input action=accept protocol=udp dst-port=53
  add chain=input action=accept protocol=tcp dst-port=53
  add chain=input action=drop in-interface-list=VLAN-GUESTS
  add chain=input action=drop in-interface-list=VLAN-STAFF

/ip/firewall/nat
  add chain=srcnat action=masquerade out-interface=ether1

# 8. ПОСЛЕДНИЙ ШАГ — включение VLAN filtering
/interface/bridge set bridge1 vlan-filtering=yes
Interfaces / VLAN — сегментация сети