Дизайн корпоративной сети на MikroTik
Дизайн корпоративной сети на MikroTik — архитектура и планирование
Правильное проектирование сети — фундамент стабильной IT-инфраструктуры. MikroTik предлагает оборудование для сетей любого масштаба: от домашнего офиса до провайдерской сети на тысячи абонентов. Однако без грамотного планирования даже дорогое оборудование не спасёт от проблем. В этом руководстве разберём полный цикл проектирования корпоративной сети — от сбора требований до документирования и мониторинга.
Описание
Зачем проектировать сеть
Типичный подход «купим роутер и настроим по ходу» приводит к предсказуемым проблемам: плоская сеть без сегментации, broadcast-штормы, невозможность масштабирования, отсутствие резервирования. Проектирование решает эти проблемы до их появления.
Ключевые принципы:
- Сегментация — разделение сети на VLAN по функциям (пользователи, серверы, гости, VoIP, IoT)
- Масштабируемость — архитектура, которую можно расширить без переделки
- Резервирование — отказ одного компонента не должен класть всю сеть
- Безопасность — минимальные привилегии, межзональный firewall, мониторинг
- Документация — без документации сеть превращается в «чёрный ящик»
Сбор требований
Перед выбором оборудования ответьте на вопросы:
| Параметр | Вопросы |
|---|---|
| Пользователи | Сколько сотрудников? Сколько устройств на одного? Есть ли BYOD? |
| Сервисы | IP-телефония? Видеонаблюдение? Серверы? Облачные сервисы? |
| Каналы связи | Какой провайдер? Скорость? Нужен ли резервный канал? |
| Филиалы | Сколько офисов? Нужен ли VPN между ними? |
| Wi-Fi | Площадь покрытия? Количество одновременных клиентов? |
| Бюджет | Приоритеты: функциональность vs стоимость |
| Рост | Планируемое расширение на 1-3 года |
Настройка
Типовые архитектуры
Малый офис (10-20 пользователей)
Оборудование:
- Роутер: hAP ax3 (RB5009 — если нет нужды в Wi-Fi)
- Коммутатор: встроенные порты или CRS112-8P-4S (если нужен PoE)
- Wi-Fi: встроенный в hAP ax3 (хватит на 1 помещение)
Схема: «всё в одном» — роутер выполняет функции маршрутизатора, firewall, DHCP, DNS, Wi-Fi AP.
[admin@MikroTik] ># === Базовая настройка малого офиса на hAP ax3 === # Задаём имя устройства /system/identity/set name="Office-GW" # Настраиваем WAN (ether1) /ip/address/add address=10.0.0.2/30 interface=ether1 # Создаём bridge для LAN /interface/bridge/add name=bridge-lan # Добавляем порты в bridge /interface/bridge/port/add bridge=bridge-lan interface=ether2 /interface/bridge/port/add bridge=bridge-lan interface=ether3 /interface/bridge/port/add bridge=bridge-lan interface=ether4 /interface/bridge/port/add bridge=bridge-lan interface=ether5 # LAN IP /ip/address/add address=192.168.10.1/24 interface=bridge-lan # DHCP-сервер /ip/pool/add name=pool-lan ranges=192.168.10.100-192.168.10.200 /ip/dhcp-server/add name=dhcp-lan interface=bridge-lan \ address-pool=pool-lan lease-time=8h /ip/dhcp-server/network/add address=192.168.10.0/24 \ gateway=192.168.10.1 dns-server=192.168.10.1 # DNS /ip/dns/set allow-remote-requests=yes servers=1.1.1.1,8.8.8.8 # NAT /ip/firewall/nat/add chain=srcnat out-interface=ether1 action=masquerade # Маршрут по умолчанию /ip/route/add dst-address=0.0.0.0/0 gateway=10.0.0.1 # Wi-Fi (RouterOS 7.20+, пакет wifi) /interface/wifi/security/add name=sec-office \ authentication-types=wpa2-psk,wpa3-psk \ passphrase="SecurePassword123!" \ encryption=ccmp /interface/wifi/configuration/add name=cfg-office \ ssid="Office-WiFi" \ country=Russia \ security=sec-office \ channel.frequency=5180,5260,5500 /interface/wifi/set wifi1 configuration=cfg-office disabled=no
Средний офис (50-100 пользователей)
Оборудование:
- Маршрутизатор: RB5009UG+S+IN (8 портов Gigabit + SFP+ 10G)
- Коммутатор ядра: CRS326-24G-2S+RM (24 Gigabit + 2 SFP+ 10G)
- Wi-Fi AP: cAP ax × 4-8 шт. (управляются через CAPsMAN v2)
- PoE-коммутатор: CRS328-24P-4S+RM (для питания AP)
Схема: RB5009 — маршрутизация, firewall, VPN. CRS326 — L2-коммутация, VLAN. cAP ax — Wi-Fi через CAPsMAN.
[admin@MikroTik] ># === Настройка RB5009 как шлюза среднего офиса === /system/identity/set name="HQ-Router" # WAN /ip/address/add address=203.0.113.2/30 interface=ether1 # VLAN на trunk к коммутатору (ether8 или SFP+) /interface/vlan/add name=vlan10-mgmt vlan-id=10 interface=sfp-sfpplus1 /interface/vlan/add name=vlan20-users vlan-id=20 interface=sfp-sfpplus1 /interface/vlan/add name=vlan30-servers vlan-id=30 interface=sfp-sfpplus1 /interface/vlan/add name=vlan40-voip vlan-id=40 interface=sfp-sfpplus1 /interface/vlan/add name=vlan50-guest vlan-id=50 interface=sfp-sfpplus1 /interface/vlan/add name=vlan60-iot vlan-id=60 interface=sfp-sfpplus1 # IP-адреса для каждой VLAN (шлюз) /ip/address/add address=10.0.10.1/24 interface=vlan10-mgmt /ip/address/add address=10.0.20.1/23 interface=vlan20-users /ip/address/add address=10.0.30.1/24 interface=vlan30-servers /ip/address/add address=10.0.40.1/24 interface=vlan40-voip /ip/address/add address=10.0.50.1/24 interface=vlan50-guest /ip/address/add address=10.0.60.1/24 interface=vlan60-iot # DHCP-пулы /ip/pool/add name=pool-users ranges=10.0.20.100-10.0.21.250 /ip/pool/add name=pool-voip ranges=10.0.40.100-10.0.40.200 /ip/pool/add name=pool-guest ranges=10.0.50.100-10.0.50.200 /ip/pool/add name=pool-iot ranges=10.0.60.100-10.0.60.200 # DHCP-серверы /ip/dhcp-server/add name=dhcp-users interface=vlan20-users \ address-pool=pool-users lease-time=8h /ip/dhcp-server/network/add address=10.0.20.0/23 \ gateway=10.0.20.1 dns-server=10.0.20.1 domain=office.local /ip/dhcp-server/add name=dhcp-voip interface=vlan40-voip \ address-pool=pool-voip lease-time=8h /ip/dhcp-server/network/add address=10.0.40.0/24 \ gateway=10.0.40.1 dns-server=10.0.40.1 /ip/dhcp-server/add name=dhcp-guest interface=vlan50-guest \ address-pool=pool-guest lease-time=1h /ip/dhcp-server/network/add address=10.0.50.0/24 \ gateway=10.0.50.1 dns-server=1.1.1.1,8.8.8.8 /ip/dhcp-server/add name=dhcp-iot interface=vlan60-iot \ address-pool=pool-iot lease-time=24h /ip/dhcp-server/network/add address=10.0.60.0/24 \ gateway=10.0.60.1 dns-server=10.0.60.1 # NAT /ip/firewall/nat/add chain=srcnat out-interface=ether1 action=masquerade # Inter-VLAN firewall: гостевая сеть изолирована /ip/firewall/filter/add chain=forward \ src-address=10.0.50.0/24 dst-address=10.0.0.0/16 action=drop \ comment="Guest: deny access to internal networks" /ip/firewall/filter/add chain=forward \ src-address=10.0.50.0/24 action=accept \ comment="Guest: allow Internet" # IoT — только интернет, запрет на внутренние сети /ip/firewall/filter/add chain=forward \ src-address=10.0.60.0/24 dst-address=10.0.0.0/16 action=drop \ comment="IoT: deny access to internal networks" /ip/firewall/filter/add chain=forward \ src-address=10.0.60.0/24 action=accept \ comment="IoT: allow Internet"
Настройка CRS326 как VLAN-коммутатора:
[admin@MikroTik] ># === Настройка CRS326-24G-2S+ как L2 VLAN-коммутатора === /system/identity/set name="HQ-Switch" # Создаём bridge с VLAN filtering /interface/bridge/add name=bridge1 vlan-filtering=no # Добавляем все порты в bridge # ether1-ether20 = access-порты для пользователей # ether21-ether24 = access-порты для серверов # sfp-sfpplus1 = trunk к роутеру (RB5009) # sfp-sfpplus2 = trunk к PoE-коммутатору (для AP) /interface/bridge/port/add bridge=bridge1 interface=ether1 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether2 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether3 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether4 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether5 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether6 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether7 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether8 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether9 pvid=20 /interface/bridge/port/add bridge=bridge1 interface=ether10 pvid=20 # ... аналогично для ether11-ether20 # Серверные порты /interface/bridge/port/add bridge=bridge1 interface=ether21 pvid=30 /interface/bridge/port/add bridge=bridge1 interface=ether22 pvid=30 /interface/bridge/port/add bridge=bridge1 interface=ether23 pvid=30 /interface/bridge/port/add bridge=bridge1 interface=ether24 pvid=40 # Trunk-порты (все VLAN тегированы) /interface/bridge/port/add bridge=bridge1 interface=sfp-sfpplus1 /interface/bridge/port/add bridge=bridge1 interface=sfp-sfpplus2 # VLAN-таблица /interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1,sfp-sfpplus2 \ untagged=ether1,ether2,ether3,ether4,ether5,ether6,ether7,ether8,ether9,ether10 \ vlan-ids=20 /interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1 \ untagged=ether21,ether22,ether23 vlan-ids=30 /interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1 \ untagged=ether24 vlan-ids=40 /interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1,sfp-sfpplus2 \ vlan-ids=10 /interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1,sfp-sfpplus2 \ vlan-ids=50 /interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1,sfp-sfpplus2 \ vlan-ids=60 # Management VLAN /interface/vlan/add name=vlan10-mgmt vlan-id=10 interface=bridge1 /ip/address/add address=10.0.10.2/24 interface=vlan10-mgmt /ip/route/add dst-address=0.0.0.0/0 gateway=10.0.10.1 # Включаем VLAN filtering ПОСЛЕ настройки # ВАЖНО: если включить раньше, можно потерять доступ! /interface/bridge/set bridge1 vlan-filtering=yes
Филиальная сеть (3-5 офисов)
Оборудование на каждый офис:
- Шлюз: RB5009UG+S+IN
- Коммутатор: CRS326-24G-2S+RM
- Wi-Fi: cAP ax (количество по площади)
Связность: WireGuard VPN между офисами + OSPF для динамической маршрутизации.
Топология: Hub-and-spoke (центральный офис + филиалы).
[admin@MikroTik] ># === Центральный офис (Hub) — RB5009 === /system/identity/set name="HQ-Router" # WireGuard интерфейс /interface/wireguard/add name=wg-hub listen-port=13231 /ip/address/add address=10.255.0.1/24 interface=wg-hub # Peer: филиал 1 /interface/wireguard/peers/add interface=wg-hub \ public-key="<BRANCH1_PUBLIC_KEY>" \ allowed-address=10.255.0.2/32,10.1.0.0/16 \ endpoint-address=198.51.100.1 endpoint-port=13231 # Peer: филиал 2 /interface/wireguard/peers/add interface=wg-hub \ public-key="<BRANCH2_PUBLIC_KEY>" \ allowed-address=10.255.0.3/32,10.2.0.0/16 \ endpoint-address=198.51.100.2 endpoint-port=13231 # Peer: филиал 3 /interface/wireguard/peers/add interface=wg-hub \ public-key="<BRANCH3_PUBLIC_KEY>" \ allowed-address=10.255.0.4/32,10.3.0.0/16 \ endpoint-address=198.51.100.3 endpoint-port=13231 # OSPF для динамической маршрутизации между филиалами /routing/ospf/instance/add name=ospf-main router-id=10.255.0.1 /routing/ospf/area/add name=backbone instance=ospf-main area-id=0.0.0.0 # Анонсируем сети через OSPF /routing/ospf/interface-template/add area=backbone \ interfaces=wg-hub type=ptp networks=10.255.0.0/24 /routing/ospf/interface-template/add area=backbone \ interfaces=vlan20-users type=broadcast networks=10.0.20.0/23 /routing/ospf/interface-template/add area=backbone \ interfaces=vlan30-servers type=broadcast networks=10.0.30.0/24 # Firewall: разрешаем WireGuard /ip/firewall/filter/add chain=input protocol=udp dst-port=13231 \ action=accept comment="Allow WireGuard" /ip/firewall/filter/add chain=forward in-interface=wg-hub \ action=accept comment="Allow WG forward"
[admin@MikroTik] ># === Филиал 1 (Spoke) — RB5009 === /system/identity/set name="Branch1-Router" # WireGuard к центральному офису /interface/wireguard/add name=wg-branch listen-port=13231 /ip/address/add address=10.255.0.2/24 interface=wg-branch /interface/wireguard/peers/add interface=wg-branch \ public-key="<HQ_PUBLIC_KEY>" \ allowed-address=0.0.0.0/0 \ endpoint-address=203.0.113.1 endpoint-port=13231 \ persistent-keepalive=25s # OSPF /routing/ospf/instance/add name=ospf-main router-id=10.255.0.2 /routing/ospf/area/add name=backbone instance=ospf-main area-id=0.0.0.0 /routing/ospf/interface-template/add area=backbone \ interfaces=wg-branch type=ptp networks=10.255.0.0/24 /routing/ospf/interface-template/add area=backbone \ interfaces=vlan20-users type=broadcast networks=10.1.20.0/23
ISP / Провайдерская сеть (500+ абонентов)
Оборудование:
- Core-маршрутизатор: CCR2004-1G-12S+2XS (12 SFP+ 10G + 2 SFP28 25G)
- Aggregation-коммутаторы: CRS326-24G-2S+RM
- BRAS (PPPoE): CCR2004 или CHR на мощном сервере
- Access-коммутаторы: CRS112-8G-4S или CSS610-8G-2S+
- Wi-Fi CPE: hAP ax2 / hAP ax3 для абонентов
Архитектура: Core → Aggregation → Access → CPE с PPPoE-авторизацией абонентов.
Схема VLAN
Грамотная VLAN-схема — основа сегментации. Рекомендуемый шаблон:
| VLAN ID | Назначение | Подсеть | Описание |
|---|---|---|---|
| 10 | Management | 10.0.10.0/24 | Управление оборудованием |
| 20 | Users | 10.0.20.0/23 | Рабочие станции сотрудников |
| 30 | Servers | 10.0.30.0/24 | Физические и виртуальные серверы |
| 40 | VoIP | 10.0.40.0/24 | IP-телефоны |
| 50 | Guest | 10.0.50.0/24 | Гостевой Wi-Fi |
| 60 | IoT | 10.0.60.0/24 | Камеры, датчики, принтеры |
| 100 | DMZ | 10.0.100.0/24 | Серверы с доступом из интернета |
Принципы назначения VLAN ID:
- 1-9 — зарезервировано (VLAN 1 — default, не используйте)
- 10-99 — инфраструктурные VLAN
- 100-199 — сервисные VLAN (DMZ, мониторинг)
- 200-999 — пользовательские VLAN (при большом количестве подразделений)
Архитектура Firewall
MikroTik firewall строится на цепочках (chains). Для корпоративной сети используем зональный подход:
[admin@MikroTik] ># === Межзональный firewall === # Списки адресов для зон /ip/firewall/address-list/add list=zone-users address=10.0.20.0/23 /ip/firewall/address-list/add list=zone-servers address=10.0.30.0/24 /ip/firewall/address-list/add list=zone-voip address=10.0.40.0/24 /ip/firewall/address-list/add list=zone-guest address=10.0.50.0/24 /ip/firewall/address-list/add list=zone-iot address=10.0.60.0/24 /ip/firewall/address-list/add list=zone-internal \ address=10.0.0.0/16 # FastTrack для ускорения established-соединений /ip/firewall/filter/add chain=forward \ connection-state=established,related action=fasttrack-connection \ comment="FastTrack established" /ip/firewall/filter/add chain=forward \ connection-state=established,related action=accept \ comment="Accept established" /ip/firewall/filter/add chain=forward \ connection-state=invalid action=drop \ comment="Drop invalid" # Users → Servers: разрешено /ip/firewall/filter/add chain=forward \ src-address-list=zone-users dst-address-list=zone-servers \ action=accept comment="Users -> Servers: allow" # Users → Internet: разрешено /ip/firewall/filter/add chain=forward \ src-address-list=zone-users dst-address-list=!zone-internal \ action=accept comment="Users -> Internet: allow" # VoIP → SIP-сервер и Internet: разрешено /ip/firewall/filter/add chain=forward \ src-address-list=zone-voip dst-address=10.0.30.10 \ action=accept comment="VoIP -> SIP server" /ip/firewall/filter/add chain=forward \ src-address-list=zone-voip dst-address-list=!zone-internal \ action=accept comment="VoIP -> Internet" # Guest → Internet only /ip/firewall/filter/add chain=forward \ src-address-list=zone-guest dst-address-list=zone-internal \ action=drop comment="Guest -> Internal: deny" /ip/firewall/filter/add chain=forward \ src-address-list=zone-guest action=accept \ comment="Guest -> Internet: allow" # IoT → Internet only (с ограничениями) /ip/firewall/filter/add chain=forward \ src-address-list=zone-iot dst-address-list=zone-internal \ action=drop comment="IoT -> Internal: deny" /ip/firewall/filter/add chain=forward \ src-address-list=zone-iot action=accept \ comment="IoT -> Internet: allow" # Servers → Internet: ограниченно (только обновления) /ip/firewall/filter/add chain=forward \ src-address-list=zone-servers dst-address-list=!zone-internal \ protocol=tcp dst-port=80,443 action=accept \ comment="Servers -> Internet: HTTP/HTTPS only" # Default deny /ip/firewall/filter/add chain=forward action=drop \ comment="Default deny forward"
Выбор оборудования
| Задача | Рекомендуемая модель | Почему |
|---|---|---|
| SOHO-роутер | hAP ax3 | Wi-Fi 6, 4 ядра ARM64, USB-C, PoE-in |
| Роутер среднего офиса | RB5009UG+S+IN | 8 портов GbE + SFP+ 10G, мощный CPU |
| Core-роутер ISP | CCR2004-1G-12S+2XS | 12×10G SFP+, 2×25G SFP28, ARM64 |
| L2-коммутатор 24 порта | CRS326-24G-2S+RM | 24 GbE + 2 SFP+ 10G, VLAN, rack |
| PoE-коммутатор | CRS328-24P-4S+RM | 24 PoE портов (500W), rack |
| Wi-Fi AP indoor | cAP ax | Wi-Fi 6, потолочный монтаж, PoE |
| Wi-Fi AP outdoor | OmniTIK 5 ac | 360° покрытие, уличное исполнение |
| CPE для абонентов | hAP ax2 | Wi-Fi 6, компактный, доступная цена |
Планирование Wi-Fi
Правила размещения точек доступа:
- 1 AP на 20-30 клиентов (при активном использовании)
- Радиус покрытия indoor: 15-25 метров (зависит от стен)
- Каналы 5 ГГц: используйте неперекрывающиеся каналы (36, 52, 100, 132)
- Мощность: не максимум! Слишком мощный сигнал создаёт интерференцию
- Монтаж: потолок или высоко на стене, антенной вниз
[admin@MikroTik] ># === CAPsMAN v2 на RB5009 для управления cAP ax === # Создаём конфигурацию для AP /interface/wifi/security/add name=sec-corp \ authentication-types=wpa2-psk,wpa3-psk \ passphrase="CorpWiFi2024!" encryption=ccmp /interface/wifi/security/add name=sec-guest \ authentication-types=wpa2-psk \ passphrase="GuestWiFi" encryption=ccmp # Provisioning для автоматического подключения AP /interface/wifi/provisioning/add \ supported-bands=2ghz-ax \ master-configuration=cfg-corp-2g \ slave-configurations=cfg-guest-2g \ action=create-dynamic-enabled /interface/wifi/provisioning/add \ supported-bands=5ghz-ax \ master-configuration=cfg-corp-5g \ slave-configurations=cfg-guest-5g \ action=create-dynamic-enabled # Конфигурации /interface/wifi/configuration/add name=cfg-corp-5g \ ssid="Corp-Office" security=sec-corp \ country=Russia channel.frequency=5180,5260,5500 \ channel.width=20/40/80mhz /interface/wifi/configuration/add name=cfg-corp-2g \ ssid="Corp-Office" security=sec-corp \ country=Russia channel.frequency=2412,2437,2462 \ channel.width=20mhz /interface/wifi/configuration/add name=cfg-guest-5g \ ssid="Guest-WiFi" security=sec-guest \ country=Russia channel.frequency=5180,5260,5500 /interface/wifi/configuration/add name=cfg-guest-2g \ ssid="Guest-WiFi" security=sec-guest \ country=Russia channel.frequency=2412,2437,2462
VPN между офисами
Hub-and-spoke — все филиалы подключаются к центральному офису. Простая топология, но трафик между филиалами идёт через hub.
Full-mesh — все офисы соединены друг с другом напрямую. Оптимальная маршрутизация, но сложнее в настройке (N×(N-1)/2 туннелей).
Рекомендация: для 3-5 офисов — hub-and-spoke с WireGuard + OSPF. При необходимости прямого трафика между филиалами — добавляйте отдельные туннели.
Резервирование
Dual-WAN (два провайдера)
[admin@MikroTik] ># Два провайдера: ether1 (основной), ether2 (резервный) /ip/address/add address=203.0.113.2/30 interface=ether1 /ip/address/add address=198.51.100.2/30 interface=ether2 # Recursive routing с check-gateway /ip/route/add dst-address=1.1.1.1/32 gateway=203.0.113.1 scope=10 /ip/route/add dst-address=8.8.8.8/32 gateway=198.51.100.1 scope=10 /ip/route/add dst-address=0.0.0.0/0 gateway=1.1.1.1 distance=1 \ check-gateway=ping comment="Primary WAN" /ip/route/add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=2 \ check-gateway=ping comment="Backup WAN" # NAT для обоих каналов /ip/firewall/nat/add chain=srcnat out-interface=ether1 action=masquerade /ip/firewall/nat/add chain=srcnat out-interface=ether2 action=masquerade
VRRP (резервирование шлюза)
[admin@MikroTik] ># На Router 1 (Master) /interface/vrrp/add name=vrrp1 interface=vlan20-users vrid=20 priority=150 /ip/address/add address=10.0.20.1/24 interface=vrrp1 # На Router 2 (Backup) /interface/vrrp/add name=vrrp1 interface=vlan20-users vrid=20 priority=100 /ip/address/add address=10.0.20.1/24 interface=vrrp1 # Клиенты используют 10.0.20.1 как шлюз — при отказе Router 1 # Router 2 автоматически подхватывает этот IP
Мониторинг и обслуживание
Сеть без мониторинга — слепая сеть. Минимальный набор:
- SNMP — для мониторинга через Zabbix/PRTG
- Netwatch — автоматическая проверка доступности хостов
- Автобэкап — ежедневный экспорт конфигурации на email/FTP
- Обновления — регулярная проверка обновлений RouterOS
[admin@MikroTik] ># SNMP для Zabbix /snmp/set enabled=yes /snmp/community/set [ find default=yes ] name=monitoring \ addresses=10.0.10.100/32 read-access=yes # Netwatch: мониторинг шлюза провайдера /tool/netwatch/add host=203.0.113.1 interval=30s type=icmp \ up-script="" \ down-script="/log warning \"ISP gateway DOWN\"" # Автобэкап конфигурации /system/scheduler/add name=daily-backup interval=24h \ start-time=02:00:00 \ on-event="/export file=daily-backup; \ /tool/e-mail/send to=admin@company.com \ subject=\"[MikroTik] Daily backup\" \ file=daily-backup.rsc"
Документация сети
Каждая корпоративная сеть должна иметь:
- Схема сети — логическая и физическая топология (draw.io, Visio)
- IP-план — таблица всех подсетей, VLAN, назначений
- Таблица оборудования — модель, серийный номер, IP-адрес управления, расположение
- Список паролей — в защищённом хранилище (KeePass, Bitwarden)
- Процедуры — что делать при отказе, как обновлять, как добавлять пользователей
Проверка
После развёртывания сети выполните полную проверку:
[admin@MikroTik] ># Проверяем маршрутизацию /ip/route/print where active=yes # Все сети должны быть доступны # Проверяем VLAN /interface/bridge/vlan/print # Все VLAN должны быть в таблице # Проверяем DHCP /ip/dhcp-server/lease/print # Клиенты получают IP-адреса # Проверяем firewall /ip/firewall/filter/print stats # Правила срабатывают, counter увеличивается # Тест связности между VLAN /ping 10.0.20.100 /ping 10.0.30.10 # Тест скорости между офисами /tool/bandwidth-test address=10.255.0.2 protocol=tcp duration=10s # Проверяем загрузку CPU /system/resource/print # CPU не должен быть > 70% в нормальном режиме # Проверяем Wi-Fi /interface/wifi/registration-table/print # AP подключены, клиенты регистрируются
Типичные ошибки
Плоская сеть без VLAN
Проблема: все устройства в одной подсети 192.168.88.0/24.
Последствия: broadcast-штормы при росте сети, невозможность ограничить доступ, IoT-устройства видят серверы.
Решение: сегментируйте сеть на VLAN с первого дня. Даже для 20 устройств разделите как минимум на Users, Servers и Guest.
Неправильный порядок включения VLAN filtering
Проблема: включили vlan-filtering=yes на bridge до настройки VLAN-таблицы — потеряли доступ к коммутатору.
Решение: всегда настраивайте VLAN-таблицу и management VLAN до включения vlan-filtering=yes. Если потеряли доступ — сброс через Reset-кнопку.
Избыточная мощность Wi-Fi
Проблема: выкрутили tx-power на максимум, но Wi-Fi работает хуже.
Решение: высокая мощность AP не помогает, если клиент (ноутбук, телефон) не может ответить с той же мощностью. Снижайте мощность AP, увеличивайте количество точек доступа.
Отсутствие резервирования
Проблема: единственный провайдер, единственный роутер — любой отказ = полный простой.
Решение: для критичных объектов — dual-WAN с failover, VRRP для резервирования шлюза, резервное питание (PoE от ИБП).
Забытая документация
Проблема: сеть настроена, но через год никто не помнит, зачем нужно правило firewall №47.
Решение: используйте comment во всех правилах firewall, NAT, routes. Ведите актуальную схему сети и IP-план. Храните экспорт конфигурации в Git.
Грамотное проектирование сети с самого начала экономит десятки часов на устранение проблем в будущем. Начинайте с требований, планируйте VLAN-схему, выбирайте оборудование с запасом, документируйте каждое решение — и сеть будет работать стабильно и предсказуемо.
# === Базовая настройка малого офиса на hAP ax3 ===
# Задаём имя устройства
/system/identity/set name="Office-GW"
# Настраиваем WAN (ether1)
/ip/address/add address=10.0.0.2/30 interface=ether1
# Создаём bridge для LAN
/interface/bridge/add name=bridge-lan
# Добавляем порты в bridge
/interface/bridge/port/add bridge=bridge-lan interface=ether2
/interface/bridge/port/add bridge=bridge-lan interface=ether3
/interface/bridge/port/add bridge=bridge-lan interface=ether4
/interface/bridge/port/add bridge=bridge-lan interface=ether5
# LAN IP
/ip/address/add address=192.168.10.1/24 interface=bridge-lan
# DHCP-сервер
/ip/pool/add name=pool-lan ranges=192.168.10.100-192.168.10.200
/ip/dhcp-server/add name=dhcp-lan interface=bridge-lan \
address-pool=pool-lan lease-time=8h
/ip/dhcp-server/network/add address=192.168.10.0/24 \
gateway=192.168.10.1 dns-server=192.168.10.1
# DNS
/ip/dns/set allow-remote-requests=yes servers=1.1.1.1,8.8.8.8
# NAT
/ip/firewall/nat/add chain=srcnat out-interface=ether1 action=masquerade
# Маршрут по умолчанию
/ip/route/add dst-address=0.0.0.0/0 gateway=10.0.0.1
# Wi-Fi (RouterOS 7.20+, пакет wifi)
/interface/wifi/security/add name=sec-office \
authentication-types=wpa2-psk,wpa3-psk \
passphrase="SecurePassword123!" \
encryption=ccmp
/interface/wifi/configuration/add name=cfg-office \
ssid="Office-WiFi" \
country=Russia \
security=sec-office \
channel.frequency=5180,5260,5500
/interface/wifi/set wifi1 configuration=cfg-office disabled=no
# === Настройка RB5009 как шлюза среднего офиса ===
/system/identity/set name="HQ-Router"
# WAN
/ip/address/add address=203.0.113.2/30 interface=ether1
# VLAN на trunk к коммутатору (ether8 или SFP+)
/interface/vlan/add name=vlan10-mgmt vlan-id=10 interface=sfp-sfpplus1
/interface/vlan/add name=vlan20-users vlan-id=20 interface=sfp-sfpplus1
/interface/vlan/add name=vlan30-servers vlan-id=30 interface=sfp-sfpplus1
/interface/vlan/add name=vlan40-voip vlan-id=40 interface=sfp-sfpplus1
/interface/vlan/add name=vlan50-guest vlan-id=50 interface=sfp-sfpplus1
/interface/vlan/add name=vlan60-iot vlan-id=60 interface=sfp-sfpplus1
# IP-адреса для каждой VLAN (шлюз)
/ip/address/add address=10.0.10.1/24 interface=vlan10-mgmt
/ip/address/add address=10.0.20.1/23 interface=vlan20-users
/ip/address/add address=10.0.30.1/24 interface=vlan30-servers
/ip/address/add address=10.0.40.1/24 interface=vlan40-voip
/ip/address/add address=10.0.50.1/24 interface=vlan50-guest
/ip/address/add address=10.0.60.1/24 interface=vlan60-iot
# DHCP-пулы
/ip/pool/add name=pool-users ranges=10.0.20.100-10.0.21.250
/ip/pool/add name=pool-voip ranges=10.0.40.100-10.0.40.200
/ip/pool/add name=pool-guest ranges=10.0.50.100-10.0.50.200
/ip/pool/add name=pool-iot ranges=10.0.60.100-10.0.60.200
# DHCP-серверы
/ip/dhcp-server/add name=dhcp-users interface=vlan20-users \
address-pool=pool-users lease-time=8h
/ip/dhcp-server/network/add address=10.0.20.0/23 \
gateway=10.0.20.1 dns-server=10.0.20.1 domain=office.local
/ip/dhcp-server/add name=dhcp-voip interface=vlan40-voip \
address-pool=pool-voip lease-time=8h
/ip/dhcp-server/network/add address=10.0.40.0/24 \
gateway=10.0.40.1 dns-server=10.0.40.1
/ip/dhcp-server/add name=dhcp-guest interface=vlan50-guest \
address-pool=pool-guest lease-time=1h
/ip/dhcp-server/network/add address=10.0.50.0/24 \
gateway=10.0.50.1 dns-server=1.1.1.1,8.8.8.8
/ip/dhcp-server/add name=dhcp-iot interface=vlan60-iot \
address-pool=pool-iot lease-time=24h
/ip/dhcp-server/network/add address=10.0.60.0/24 \
gateway=10.0.60.1 dns-server=10.0.60.1
# NAT
/ip/firewall/nat/add chain=srcnat out-interface=ether1 action=masquerade
# Inter-VLAN firewall: гостевая сеть изолирована
/ip/firewall/filter/add chain=forward \
src-address=10.0.50.0/24 dst-address=10.0.0.0/16 action=drop \
comment="Guest: deny access to internal networks"
/ip/firewall/filter/add chain=forward \
src-address=10.0.50.0/24 action=accept \
comment="Guest: allow Internet"
# IoT — только интернет, запрет на внутренние сети
/ip/firewall/filter/add chain=forward \
src-address=10.0.60.0/24 dst-address=10.0.0.0/16 action=drop \
comment="IoT: deny access to internal networks"
/ip/firewall/filter/add chain=forward \
src-address=10.0.60.0/24 action=accept \
comment="IoT: allow Internet"
# === Настройка CRS326-24G-2S+ как L2 VLAN-коммутатора ===
/system/identity/set name="HQ-Switch"
# Создаём bridge с VLAN filtering
/interface/bridge/add name=bridge1 vlan-filtering=no
# Добавляем все порты в bridge
# ether1-ether20 = access-порты для пользователей
# ether21-ether24 = access-порты для серверов
# sfp-sfpplus1 = trunk к роутеру (RB5009)
# sfp-sfpplus2 = trunk к PoE-коммутатору (для AP)
/interface/bridge/port/add bridge=bridge1 interface=ether1 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether2 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether3 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether4 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether5 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether6 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether7 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether8 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether9 pvid=20
/interface/bridge/port/add bridge=bridge1 interface=ether10 pvid=20
# ... аналогично для ether11-ether20
# Серверные порты
/interface/bridge/port/add bridge=bridge1 interface=ether21 pvid=30
/interface/bridge/port/add bridge=bridge1 interface=ether22 pvid=30
/interface/bridge/port/add bridge=bridge1 interface=ether23 pvid=30
/interface/bridge/port/add bridge=bridge1 interface=ether24 pvid=40
# Trunk-порты (все VLAN тегированы)
/interface/bridge/port/add bridge=bridge1 interface=sfp-sfpplus1
/interface/bridge/port/add bridge=bridge1 interface=sfp-sfpplus2
# VLAN-таблица
/interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1,sfp-sfpplus2 \
untagged=ether1,ether2,ether3,ether4,ether5,ether6,ether7,ether8,ether9,ether10 \
vlan-ids=20
/interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1 \
untagged=ether21,ether22,ether23 vlan-ids=30
/interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1 \
untagged=ether24 vlan-ids=40
/interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1,sfp-sfpplus2 \
vlan-ids=10
/interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1,sfp-sfpplus2 \
vlan-ids=50
/interface/bridge/vlan/add bridge=bridge1 tagged=sfp-sfpplus1,sfp-sfpplus2 \
vlan-ids=60
# Management VLAN
/interface/vlan/add name=vlan10-mgmt vlan-id=10 interface=bridge1
/ip/address/add address=10.0.10.2/24 interface=vlan10-mgmt
/ip/route/add dst-address=0.0.0.0/0 gateway=10.0.10.1
# Включаем VLAN filtering ПОСЛЕ настройки
# ВАЖНО: если включить раньше, можно потерять доступ!
/interface/bridge/set bridge1 vlan-filtering=yes
# === Центральный офис (Hub) — RB5009 ===
/system/identity/set name="HQ-Router"
# WireGuard интерфейс
/interface/wireguard/add name=wg-hub listen-port=13231
/ip/address/add address=10.255.0.1/24 interface=wg-hub
# Peer: филиал 1
/interface/wireguard/peers/add interface=wg-hub \
public-key="<BRANCH1_PUBLIC_KEY>" \
allowed-address=10.255.0.2/32,10.1.0.0/16 \
endpoint-address=198.51.100.1 endpoint-port=13231
# Peer: филиал 2
/interface/wireguard/peers/add interface=wg-hub \
public-key="<BRANCH2_PUBLIC_KEY>" \
allowed-address=10.255.0.3/32,10.2.0.0/16 \
endpoint-address=198.51.100.2 endpoint-port=13231
# Peer: филиал 3
/interface/wireguard/peers/add interface=wg-hub \
public-key="<BRANCH3_PUBLIC_KEY>" \
allowed-address=10.255.0.4/32,10.3.0.0/16 \
endpoint-address=198.51.100.3 endpoint-port=13231
# OSPF для динамической маршрутизации между филиалами
/routing/ospf/instance/add name=ospf-main router-id=10.255.0.1
/routing/ospf/area/add name=backbone instance=ospf-main area-id=0.0.0.0
# Анонсируем сети через OSPF
/routing/ospf/interface-template/add area=backbone \
interfaces=wg-hub type=ptp networks=10.255.0.0/24
/routing/ospf/interface-template/add area=backbone \
interfaces=vlan20-users type=broadcast networks=10.0.20.0/23
/routing/ospf/interface-template/add area=backbone \
interfaces=vlan30-servers type=broadcast networks=10.0.30.0/24
# Firewall: разрешаем WireGuard
/ip/firewall/filter/add chain=input protocol=udp dst-port=13231 \
action=accept comment="Allow WireGuard"
/ip/firewall/filter/add chain=forward in-interface=wg-hub \
action=accept comment="Allow WG forward"
# === Филиал 1 (Spoke) — RB5009 ===
/system/identity/set name="Branch1-Router"
# WireGuard к центральному офису
/interface/wireguard/add name=wg-branch listen-port=13231
/ip/address/add address=10.255.0.2/24 interface=wg-branch
/interface/wireguard/peers/add interface=wg-branch \
public-key="<HQ_PUBLIC_KEY>" \
allowed-address=0.0.0.0/0 \
endpoint-address=203.0.113.1 endpoint-port=13231 \
persistent-keepalive=25s
# OSPF
/routing/ospf/instance/add name=ospf-main router-id=10.255.0.2
/routing/ospf/area/add name=backbone instance=ospf-main area-id=0.0.0.0
/routing/ospf/interface-template/add area=backbone \
interfaces=wg-branch type=ptp networks=10.255.0.0/24
/routing/ospf/interface-template/add area=backbone \
interfaces=vlan20-users type=broadcast networks=10.1.20.0/23
# === Межзональный firewall ===
# Списки адресов для зон
/ip/firewall/address-list/add list=zone-users address=10.0.20.0/23
/ip/firewall/address-list/add list=zone-servers address=10.0.30.0/24
/ip/firewall/address-list/add list=zone-voip address=10.0.40.0/24
/ip/firewall/address-list/add list=zone-guest address=10.0.50.0/24
/ip/firewall/address-list/add list=zone-iot address=10.0.60.0/24
/ip/firewall/address-list/add list=zone-internal \
address=10.0.0.0/16
# FastTrack для ускорения established-соединений
/ip/firewall/filter/add chain=forward \
connection-state=established,related action=fasttrack-connection \
comment="FastTrack established"
/ip/firewall/filter/add chain=forward \
connection-state=established,related action=accept \
comment="Accept established"
/ip/firewall/filter/add chain=forward \
connection-state=invalid action=drop \
comment="Drop invalid"
# Users → Servers: разрешено
/ip/firewall/filter/add chain=forward \
src-address-list=zone-users dst-address-list=zone-servers \
action=accept comment="Users -> Servers: allow"
# Users → Internet: разрешено
/ip/firewall/filter/add chain=forward \
src-address-list=zone-users dst-address-list=!zone-internal \
action=accept comment="Users -> Internet: allow"
# VoIP → SIP-сервер и Internet: разрешено
/ip/firewall/filter/add chain=forward \
src-address-list=zone-voip dst-address=10.0.30.10 \
action=accept comment="VoIP -> SIP server"
/ip/firewall/filter/add chain=forward \
src-address-list=zone-voip dst-address-list=!zone-internal \
action=accept comment="VoIP -> Internet"
# Guest → Internet only
/ip/firewall/filter/add chain=forward \
src-address-list=zone-guest dst-address-list=zone-internal \
action=drop comment="Guest -> Internal: deny"
/ip/firewall/filter/add chain=forward \
src-address-list=zone-guest action=accept \
comment="Guest -> Internet: allow"
# IoT → Internet only (с ограничениями)
/ip/firewall/filter/add chain=forward \
src-address-list=zone-iot dst-address-list=zone-internal \
action=drop comment="IoT -> Internal: deny"
/ip/firewall/filter/add chain=forward \
src-address-list=zone-iot action=accept \
comment="IoT -> Internet: allow"
# Servers → Internet: ограниченно (только обновления)
/ip/firewall/filter/add chain=forward \
src-address-list=zone-servers dst-address-list=!zone-internal \
protocol=tcp dst-port=80,443 action=accept \
comment="Servers -> Internet: HTTP/HTTPS only"
# Default deny
/ip/firewall/filter/add chain=forward action=drop \
comment="Default deny forward"
# === CAPsMAN v2 на RB5009 для управления cAP ax ===
# Создаём конфигурацию для AP
/interface/wifi/security/add name=sec-corp \
authentication-types=wpa2-psk,wpa3-psk \
passphrase="CorpWiFi2024!" encryption=ccmp
/interface/wifi/security/add name=sec-guest \
authentication-types=wpa2-psk \
passphrase="GuestWiFi" encryption=ccmp
# Provisioning для автоматического подключения AP
/interface/wifi/provisioning/add \
supported-bands=2ghz-ax \
master-configuration=cfg-corp-2g \
slave-configurations=cfg-guest-2g \
action=create-dynamic-enabled
/interface/wifi/provisioning/add \
supported-bands=5ghz-ax \
master-configuration=cfg-corp-5g \
slave-configurations=cfg-guest-5g \
action=create-dynamic-enabled
# Конфигурации
/interface/wifi/configuration/add name=cfg-corp-5g \
ssid="Corp-Office" security=sec-corp \
country=Russia channel.frequency=5180,5260,5500 \
channel.width=20/40/80mhz
/interface/wifi/configuration/add name=cfg-corp-2g \
ssid="Corp-Office" security=sec-corp \
country=Russia channel.frequency=2412,2437,2462 \
channel.width=20mhz
/interface/wifi/configuration/add name=cfg-guest-5g \
ssid="Guest-WiFi" security=sec-guest \
country=Russia channel.frequency=5180,5260,5500
/interface/wifi/configuration/add name=cfg-guest-2g \
ssid="Guest-WiFi" security=sec-guest \
country=Russia channel.frequency=2412,2437,2462
# Два провайдера: ether1 (основной), ether2 (резервный)
/ip/address/add address=203.0.113.2/30 interface=ether1
/ip/address/add address=198.51.100.2/30 interface=ether2
# Recursive routing с check-gateway
/ip/route/add dst-address=1.1.1.1/32 gateway=203.0.113.1 scope=10
/ip/route/add dst-address=8.8.8.8/32 gateway=198.51.100.1 scope=10
/ip/route/add dst-address=0.0.0.0/0 gateway=1.1.1.1 distance=1 \
check-gateway=ping comment="Primary WAN"
/ip/route/add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=2 \
check-gateway=ping comment="Backup WAN"
# NAT для обоих каналов
/ip/firewall/nat/add chain=srcnat out-interface=ether1 action=masquerade
/ip/firewall/nat/add chain=srcnat out-interface=ether2 action=masquerade
# На Router 1 (Master)
/interface/vrrp/add name=vrrp1 interface=vlan20-users vrid=20 priority=150
/ip/address/add address=10.0.20.1/24 interface=vrrp1
# На Router 2 (Backup)
/interface/vrrp/add name=vrrp1 interface=vlan20-users vrid=20 priority=100
/ip/address/add address=10.0.20.1/24 interface=vrrp1
# Клиенты используют 10.0.20.1 как шлюз — при отказе Router 1
# Router 2 автоматически подхватывает этот IP
# SNMP для Zabbix
/snmp/set enabled=yes
/snmp/community/set [ find default=yes ] name=monitoring \
addresses=10.0.10.100/32 read-access=yes
# Netwatch: мониторинг шлюза провайдера
/tool/netwatch/add host=203.0.113.1 interval=30s type=icmp \
up-script="" \
down-script="/log warning \"ISP gateway DOWN\""
# Автобэкап конфигурации
/system/scheduler/add name=daily-backup interval=24h \
start-time=02:00:00 \
on-event="/export file=daily-backup; \
/tool/e-mail/send to=admin@company.com \
subject=\"[MikroTik] Daily backup\" \
file=daily-backup.rsc"
# Проверяем маршрутизацию
/ip/route/print where active=yes
# Все сети должны быть доступны
# Проверяем VLAN
/interface/bridge/vlan/print
# Все VLAN должны быть в таблице
# Проверяем DHCP
/ip/dhcp-server/lease/print
# Клиенты получают IP-адреса
# Проверяем firewall
/ip/firewall/filter/print stats
# Правила срабатывают, counter увеличивается
# Тест связности между VLAN
/ping 10.0.20.100
/ping 10.0.30.10
# Тест скорости между офисами
/tool/bandwidth-test address=10.255.0.2 protocol=tcp duration=10s
# Проверяем загрузку CPU
/system/resource/print
# CPU не должен быть > 70% в нормальном режиме
# Проверяем Wi-Fi
/interface/wifi/registration-table/print
# AP подключены, клиенты регистрируются