RoMON на MikroTik — удалённое управление через L2
RoMON (Router Management Overlay Network) — технология MikroTik для управления устройствами на канальном уровне (Layer 2) без необходимости IP-связности. Представьте ситуацию: коммутатор в серверной потерял IP-адрес из-за ошибки конфигурации, точка доступа за NAT недоступна по IP, а до удалённого устройства нет маршрута. Стандартное подключение через WinBox/SSH невозможно. RoMON позволяет «пробросить» управляющее соединение через цепочку MikroTik-устройств по MAC-адресам, минуя IP-стек полностью. Это аварийный и повседневный инструмент управления, особенно в сетях с большим количеством устройств MikroTik.
Все команды приведены для RouterOS 7.20+.
Описание
Как работает RoMON
RoMON создаёт оверлейную сеть управления поверх существующей L2-инфраструктуры. Каждое устройство с включённым RoMON становится узлом этой сети и может выступать как транзитная точка для управления другими устройствами.
Принцип работы:
- Устройства с включённым RoMON обмениваются специальными L2-фреймами (не IP-пакетами) через разрешённые интерфейсы.
- Каждый узел узнаёт о соседних RoMON-устройствах и строит таблицу доступных устройств.
- Администратор подключается к ближайшему MikroTik через WinBox и через меню Tools → RoMON видит все обнаруженные устройства.
- Выбрав устройство, WinBox устанавливает управляющее соединение через цепочку RoMON-узлов.
Важно: RoMON работает исключительно на устройствах MikroTik с RouterOS. Устройства других производителей невидимы для RoMON, но RoMON-фреймы могут проходить через неуправляемые коммутаторы (они просто коммутируются как обычные L2-фреймы).
RoMON vs MAC-подключение
WinBox поддерживает подключение по MAC-адресу (MAC Telnet, MAC WinBox). В чём отличие от RoMON?
| Параметр | MAC-подключение | RoMON |
|---|---|---|
| Область работы | Только в пределах одного L2-сегмента (broadcast domain) | Через несколько L2-сегментов (транзитные узлы) |
| Безопасность | Нет аутентификации на транспортном уровне | Поддержка shared secret |
| Обнаружение | MAC Neighbor Discovery | RoMON Discovery |
| Через маршрутизаторы | Нет (L2 broadcast не проходит через роутер) | Да (через цепочку RoMON-узлов) |
| Протокол | Проприетарный MikroTik L2 | Оверлейная L2-сеть MikroTik |
Главное преимущество RoMON — возможность управлять устройством, которое находится за несколькими маршрутизаторами/коммутаторами, без IP-связности. MAC-подключение работает только в одном broadcast-домене.
Сценарии использования
- Управление SwOS-коммутаторами — устройства без IP (CSS326, CRS3xx в SwOS) доступны через RoMON.
- Доступ к точке доступа за NAT — AP, получающая IP по DHCP от контроллера, доступна через RoMON без знания её адреса.
- Аварийный доступ при ошибке IP-конфигурации — вы случайно удалили IP-адрес или сломали маршрутизацию? RoMON всё ещё работает.
- Управление CAPsMAN-точками — удобный способ массового доступа к управляемым AP.
- Цепочка управления — офис → роутер1 → роутер2 → коммутатор → целевое устройство.
Настройка
Шаг 1: Включение RoMON
Включите RoMON на каждом устройстве в сети, которое вы хотите использовать как транзитный узел или целевое устройство:
[admin@MikroTik] ># Включить RoMON /tool/romon/set enabled=yes # Проверить статус /tool/romon/print # enabled: yes # id: AA:BB:CC:DD:EE:FF (MAC-адрес устройства)
Шаг 2: Настройка RoMON-портов
По умолчанию после включения RoMON доступен на всех интерфейсах. Рекомендуется явно указать, на каких интерфейсах разрешены RoMON-фреймы:
[admin@MikroTik] ># Вариант 1: Разрешить на всех интерфейсах (по умолчанию) /tool/romon/port add interface=all cost=100 disabled=no # Вариант 2: Только на конкретных интерфейсах (безопаснее) /tool/romon/port add interface=ether1 cost=100 disabled=no add interface=ether2 cost=100 disabled=no add interface=bridge1 cost=100 disabled=no
Параметр cost влияет на выбор пути, если между устройствами несколько маршрутов RoMON. Меньшее значение — предпочтительнее.
[admin@MikroTik] ># Просмотр настроенных портов /tool/romon/port/print # INTERFACE COST DISABLED # all 100 no # Удалить порт /tool/romon/port/remove [find interface=all]
Шаг 3: Настройка RoMON Secret (безопасность)
RoMON Secret — общий пароль, который должен совпадать на всех устройствах в RoMON-сети. Устройства с разными secret не смогут обнаружить друг друга.
[admin@MikroTik] ># Установить секрет (одинаковый на ВСЕХ устройствах!) /tool/romon/set secret="MyR0M0NsEcret2024" # Проверить (значение не показывается, только факт наличия) /tool/romon/print # enabled: yes # id: AA:BB:CC:DD:EE:FF # secrets: 1
Важно: если вы устанавливаете secret на одном устройстве — он должен быть одинаковым на всех остальных. Несовпадение secret полностью блокирует RoMON-обнаружение между устройствами.
Шаг 4: Ограничение по интерфейсам (hardening)
В production-сети рекомендуется ограничить RoMON только внутренними (LAN) интерфейсами. Не разрешайте RoMON на WAN-интерфейсах:
[admin@MikroTik] ># Удалить правило "all" /tool/romon/port/remove [find interface=all] # Добавить только внутренние интерфейсы /tool/romon/port add interface=bridge-lan cost=100 disabled=no comment="LAN" add interface=ether3 cost=100 disabled=no comment="to-switch" add interface=ether4 cost=100 disabled=no comment="to-AP" # НЕ добавляйте WAN-интерфейсы (ether1 и т.д.)
Пример полной настройки на трёх устройствах
Роутер (шлюз сети):
[admin@MikroTik] >/tool/romon/set enabled=yes secret="MyR0M0NsEcret2024" /tool/romon/port/remove [find] /tool/romon/port add interface=bridge-lan cost=100 add interface=ether3-to-switch cost=100
Коммутатор (CRS326):
[admin@MikroTik] >/tool/romon/set enabled=yes secret="MyR0M0NsEcret2024" /tool/romon/port add interface=all cost=100
Точка доступа (cAP ax):
[admin@MikroTik] >/tool/romon/set enabled=yes secret="MyR0M0NsEcret2024" /tool/romon/port add interface=ether1 cost=100
Подключение через WinBox
Использование RoMON в WinBox 4
- Откройте WinBox и подключитесь к ближайшему MikroTik обычным способом (IP или MAC).
- Перейдите в Tools → RoMON.
- В таблице отобразятся все обнаруженные RoMON-устройства с их MAC-адресами, identity и адресами.
- Дважды кликните на нужное устройство — WinBox откроет новое окно управления через RoMON-туннель.
Также можно подключиться через RoMON напрямую из окна подключения WinBox:
- В окне WinBox нажмите кнопку RoMON (рядом с обычным Connect).
- Выберите «транзитный» агент — устройство, через которое будет проходить подключение.
- Выберите целевое устройство из списка обнаруженных.
- Введите логин/пароль целевого устройства.
RoMON через CLI
[admin@MikroTik] ># Обнаружение устройств RoMON /tool/romon/discover # ADDRESS COST HOPS PATH IDENTITY # AA:BB:CC:DD:EE:01 100 1 bridge-lan Router-GW # AA:BB:CC:DD:EE:02 200 2 bridge-lan,ether1 Switch-Core # AA:BB:CC:DD:EE:03 300 3 bridge-lan,ether1,e2 AP-Office # Ping через RoMON (проверка связности) /tool/romon/ping id=AA:BB:CC:DD:EE:02 count=5
Проверка
[admin@MikroTik] ># Статус RoMON /tool/romon/print # enabled: yes # id: AA:BB:CC:DD:EE:FF # Список портов /tool/romon/port/print # INTERFACE COST DISABLED # bridge-lan 100 no # ether3 100 no # Обнаруженные устройства /tool/romon/discover # Проверка доступности конкретного узла /tool/romon/ping id=AA:BB:CC:DD:EE:02 count=3
Типичные ошибки
1. RoMON не обнаруживает соседние устройства
Причины:
- RoMON не включён на соседнем устройстве.
- Разные RoMON secret на устройствах.
- RoMON-порт не добавлен для нужного интерфейса.
- Между устройствами стоит managed-коммутатор не-MikroTik, который фильтрует неизвестные L2-фреймы.
Диагностика:
[admin@MikroTik] ># Проверить, что RoMON включён /tool/romon/print # Проверить порты /tool/romon/port/print # Проверить secret (должен совпадать на обоих устройствах!) # Секрет не отображается — пересоздайте, если не уверены /tool/romon/set secret="NewSecret123"
2. RoMON включён на WAN-интерфейсе
Проблема: потенциальная угроза безопасности. Злоумышленник в сети провайдера может обнаружить и попытаться подключиться к вашему устройству через RoMON.
Решение:
[admin@MikroTik] ># Удалить правило "all" /tool/romon/port/remove [find interface=all] # Добавить только внутренние интерфейсы /tool/romon/port/add interface=bridge-lan cost=100
3. Не работает через неуправляемый коммутатор
Проблема: некоторые дешёвые неуправляемые коммутаторы могут не пропускать RoMON-фреймы (они используют специфический EtherType).
Решение: попробуйте подключить устройства напрямую для проверки. Если прямое подключение работает — проблема в промежуточном коммутаторе. Замените его или используйте MikroTik-коммутатор.
4. Путаница между RoMON ID и MAC-адресом
Проблема: RoMON ID по умолчанию совпадает с MAC-адресом устройства, но может быть изменён вручную. При поиске устройства убедитесь, что ориентируетесь на правильный идентификатор.
[admin@MikroTik] ># Посмотреть текущий RoMON ID /tool/romon/print # id: AA:BB:CC:DD:EE:FF # ID можно изменить (не рекомендуется без необходимости) /tool/romon/set id=00:11:22:33:44:55
5. RoMON не работает через VLAN
Проблема: если между устройствами настроены VLAN, RoMON-фреймы могут не проходить, если VLAN настроен на уровне switch-chip (hardware offload) и RoMON-порт привязан к физическому интерфейсу, а не к VLAN-интерфейсу.
Решение: добавьте VLAN-интерфейс как RoMON-порт:
[admin@MikroTik] >/tool/romon/port add interface=vlan100-mgmt cost=100
Или добавьте bridge, в который включены VLAN:
[admin@MikroTik] >/tool/romon/port add interface=bridge-mgmt cost=100
RoMON — незаменимый инструмент для сетей с несколькими устройствами MikroTik. Его главная ценность — аварийный доступ к устройству, когда IP-связность потеряна. Включите RoMON на всех ваших MikroTik-устройствах с одинаковым secret, ограничьте его внутренними интерфейсами, и вы всегда сможете добраться до любого узла в сети через WinBox.
# Включить RoMON /tool/romon/set enabled=yes # Проверить статус /tool/romon/print # enabled: yes # id: AA:BB:CC:DD:EE:FF (MAC-адрес устройства) # Вариант 1: Разрешить на всех интерфейсах (по умолчанию) /tool/romon/port add interface=all cost=100 disabled=no # Вариант 2: Только на конкретных интерфейсах (безопаснее) /tool/romon/port add interface=ether1 cost=100 disabled=no add interface=ether2 cost=100 disabled=no add interface=bridge1 cost=100 disabled=no # Просмотр настроенных портов /tool/romon/port/print # INTERFACE COST DISABLED # all 100 no # Удалить порт /tool/romon/port/remove [find interface=all] # Установить секрет (одинаковый на ВСЕХ устройствах!) /tool/romon/set secret="MyR0M0NsEcret2024" # Проверить (значение не показывается, только факт наличия) /tool/romon/print # enabled: yes # id: AA:BB:CC:DD:EE:FF # secrets: 1 # Удалить правило "all" /tool/romon/port/remove [find interface=all] # Добавить только внутренние интерфейсы /tool/romon/port add interface=bridge-lan cost=100 disabled=no comment="LAN" add interface=ether3 cost=100 disabled=no comment="to-switch" add interface=ether4 cost=100 disabled=no comment="to-AP" # НЕ добавляйте WAN-интерфейсы (ether1 и т.д.) /tool/romon/set enabled=yes secret="MyR0M0NsEcret2024" /tool/romon/port/remove [find] /tool/romon/port add interface=bridge-lan cost=100 add interface=ether3-to-switch cost=100 /tool/romon/set enabled=yes secret="MyR0M0NsEcret2024" /tool/romon/port add interface=all cost=100 /tool/romon/set enabled=yes secret="MyR0M0NsEcret2024" /tool/romon/port add interface=ether1 cost=100 # Обнаружение устройств RoMON /tool/romon/discover # ADDRESS COST HOPS PATH IDENTITY # AA:BB:CC:DD:EE:01 100 1 bridge-lan Router-GW # AA:BB:CC:DD:EE:02 200 2 bridge-lan,ether1 Switch-Core # AA:BB:CC:DD:EE:03 300 3 bridge-lan,ether1,e2 AP-Office # Ping через RoMON (проверка связности) /tool/romon/ping id=AA:BB:CC:DD:EE:02 count=5 # Статус RoMON /tool/romon/print # enabled: yes # id: AA:BB:CC:DD:EE:FF # Список портов /tool/romon/port/print # INTERFACE COST DISABLED # bridge-lan 100 no # ether3 100 no # Обнаруженные устройства /tool/romon/discover # Проверка доступности конкретного узла /tool/romon/ping id=AA:BB:CC:DD:EE:02 count=3 # Проверить, что RoMON включён /tool/romon/print # Проверить порты /tool/romon/port/print # Проверить secret (должен совпадать на обоих устройствах!) # Секрет не отображается — пересоздайте, если не уверены /tool/romon/set secret="NewSecret123" # Удалить правило "all" /tool/romon/port/remove [find interface=all] # Добавить только внутренние интерфейсы /tool/romon/port/add interface=bridge-lan cost=100 # Посмотреть текущий RoMON ID /tool/romon/print # id: AA:BB:CC:DD:EE:FF # ID можно изменить (не рекомендуется без необходимости) /tool/romon/set id=00:11:22:33:44:55 /tool/romon/port add interface=vlan100-mgmt cost=100 /tool/romon/port add interface=bridge-mgmt cost=100