Ошибка input does not match any value of new routing mark появляется в RouterOS при попытке сохранить правило mangle или маршрут, где указана метка маршрутизации, которой нет в таблице /routing table. Система буквально сообщает: введённое значение не совпадает ни с одним из существующих значений параметра new routing mark. Чаще всего это происходит после импорта конфигурации с другого роутера, опечатки в имени метки или удаления таблицы маршрутизации, на которую ссылались правила.

Ошибка не критична для работы роутера — трафик продолжает обрабатываться по старым правилам, — но она блокирует сохранение изменений и сигнализирует о рассогласовании конфигурации. Если её игнорировать, политики маршрутизации (PBR, балансировка, VPN-разделение) перестанут работать так, как задумано. Ниже разберём, откуда берётся эта ошибка, как найти проблемное правило и как привести конфигурацию в согласованное состояние.

Что означает эта ошибка в RouterOS

В RouterOS версии 7 механизм меток маршрутизации был переработан: routing mark теперь жёстко привязан к записям в /routing table. Раньше, в RouterOS v6, метку можно было назначить произвольной строкой — таблица создавалась неявно. В седьмой версии система проверяет, существует ли таблица с таким именем, и если нет — отклоняет ввод с сообщением input does not match any value of new routing mark.

То же самое касается параметра routing-table в правилах /ip route rule и /ip firewall mangle. Любая ссылка на несуществующую таблицу вызывает отказ валидации. Это защитный механизм: он не даёт создать «висячие» правила, которые формально есть в конфигурации, но фактически не маршрутизируют трафик.

💡

Ошибка возникает не из-за сбоя, а из-за проверки целостности: RouterOS v7 требует, чтобы каждая routing mark соответствовала существующей записи в /routing table.

Типичные причины появления

Проблема почти всегда сводится к несоответствию между правилами и таблицами маршрутизации. Конкретные сценарии:

  • 🔀 Импорт конфигурации с RouterOS v6 — старый экспорт содержит произвольные routing mark, а в v7 соответствующие таблицы не созданы автоматически.
  • ✏️ Опечатка в имени метки — например, таблица называется to_isp1, а в правиле указано to-isp1 или To_ISP1 (регистр и дефисы имеют значение).
  • 🗑️ Удалённая таблица — запись из /routing table удалили, а правила mangle или route rules, ссылавшиеся на неё, остались.
  • 📋 Копирование конфигурации с другого роутера — перенесли firewall и routes, но забыли перенести сами таблицы маршрутизации.
  • 🔤 Лишние пробелы или невидимые символы при вставке имени метки через терминал или Winbox.

Ещё одна возможная причина — попытка указать метку прямо в поле routing-mark маршрута в /ip route, тогда как в v7 там используется параметр routing-table, принимающий только существующие таблицы. Синтаксис изменился, и старые привычки ввода приводят к отказу.

📊 Где вы столкнулись с этой ошибкой?
При импорте конфига с RouterOS v6
При ручном создании правила mangle
После удаления таблицы маршрутизации
При настройке балансировки / двух провайдеров

Как найти проблемное правило

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

/routing table print

/ip firewall mangle print

/ip route rule print

Сопоставьте имена: каждая метка из mangle и route rules должна присутствовать в выводе первой команды. Если какой-то метки в списке таблиц нет — это и есть источник ошибки. Удобно смотреть вывод с деталями через print detail, чтобы видеть все параметры правил.

Для быстрой проверки конкретного имени можно использовать поиск:

/routing table print where name="имя_метки"

Пустой вывод означает, что таблицы с таким именем не существует. Дальше два пути: создать таблицу или исправить ссылку в правиле.

💡

В Winbox несуществующие ссылки часто подсвечиваются красным в списках правил — это самый быстрый способ визуально найти «битые» записи без терминала.

Пошаговое исправление ошибки

Последовательность зависит от того, должна ли метка существовать. Если правило осмысленное и метка нужна — создаём таблицу. Если правило устарело — удаляем или исправляем его.

☑️ Приведение конфигурации в порядок

Выполнено: 0 / 5

Вариант 1: создать недостающую таблицу. Если метка нужна для policy-based routing, добавьте таблицу с точно таким же именем:

/routing table add name=to_isp1 fib

Параметр fib включает таблицу в процесс принятия решений о маршрутизации. После этого правило mangle с new-routing-mark=to_isp1 сохранится без ошибки.

Вариант 2: исправить ссылку в правиле. Если имя в правиле ошибочно, отредактируйте его, указав существующую таблицу:

/ip firewall mangle set [find new-routing-mark="to-isp1"] new-routing-mark=to_isp1
⚠️ Внимание: перед любыми правками маршрутизации на удалённом роутере включите Safe Mode в Winbox или используйте /system backup save и экспорт конфигурации. Ошибка в правилах маршрутизации может отрезать доступ к устройству, и без резервной копии восстановление потребует физического доступа.

Особенности при миграции с RouterOS v6 на v7

Именно переход на седьмую версию — самый массовый источник этой ошибки. В v6 конфигурация вида new-routing-mark=WAN2 работала сама по себе: метка существовала как строка в правиле. После обновления до v7 такие метки не конвертируются в таблицы автоматически, и любое редактирование старых правил вызывает отказ валидации.

Алгоритм миграции выглядит так: сначала создаются все таблицы в /routing table с именами, совпадающими со старыми метками, затем проверяются маршруты — в v7 у маршрута указывается routing-table вместо routing-mark. Только после этого правила mangle и route rules начинают сохраняться корректно.

Почему MikroTik изменили это поведение

В RouterOS v7 стек маршрутизации был переписан. Жёсткая привязка меток к таблицам устраняет ситуацию, когда правило ссылается на несуществующую политику и трафик молча уходит по основной таблице main. Проверка на этапе ввода заставляет администратора явно определить все таблицы, что делает конфигурацию предсказуемой и упрощает отладку.

Если роутер обновлён, а старые метки больше не нужны, проще удалить устаревшие правила, чем создавать пустые таблицы. Проверьте, какие правила реально участвуют в обработке трафика, — счётчики пакетов в /ip firewall mangle print stats покажут активность.

Проверка результата и типичные ошибки после исправления

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

/ip route print where routing-table=to_isp1

/tool traceroute 8.8.8.8 routing-table=to_isp1

Если трассировка идёт через не тот интерфейс — проверьте, есть ли в созданной таблице маршрут по умолчанию. Пустая таблица без маршрутов формально существует, ошибка валидации исчезает, но трафик с такой меткой не маршрутизируется или обрабатывается непредсказуемо.

СимптомВероятная причинаДействие
Ошибка при сохранении правила mangleМетки нет в /routing tableСоздать таблицу с тем же именем
Ошибка после обновления до v7Старые метки v6 не конвертированыСоздать таблицы по списку старых меток
Правило сохраняется, трафик не идётВ таблице нет маршрутовДобавить маршруты с routing-table
Ошибка при вставке через терминалПробелы или регистр в имениСверить имя посимвольно, ввести заново
Красная подсветка правила в WinboxСсылка на удалённую таблицуИсправить или удалить правило
⚠️ Внимание: не создавайте таблицы маршрутизации «про запас» без маршрутов внутри. Правило с меткой на пустую таблицу пройдёт валидацию, но трафик не получит корректного маршрута — диагностировать такую ситуацию сложнее, чем исходную ошибку.

Профилактика: как не столкнуться с ошибкой снова

Главное правило — поддерживать согласованность: любая метка, упомянутая в firewall, route rules или маршрутах, должна иметь запись в /routing table. При удалении таблицы сначала найдите и удалите все ссылающиеся на неё правила, а не наоборот.

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

💡

Давайте таблицам говорящие имена без пробелов и спецсимволов — например, isp1, vpn_office, guest_net. Это снижает риск опечаток и упрощает поиск ссылок на таблицу в конфигурации.

Часто задаваемые вопросы

Появилась ли эта ошибка из-за сбоя прошивки?

Нет. Это штатная проверка целостности конфигурации в RouterOS v7. Система отказывается сохранять правило, которое ссылается на несуществующую таблицу маршрутизации. Сама прошивка при этом работает корректно.

Можно ли отключить эту проверку?

Штатного способа отключить валидацию routing mark нет — это встроенное поведение сетевого стека RouterOS v7. Правильное решение — создать соответствующую таблицу или исправить ссылку в правиле.

Почему в RouterOS v6 такой ошибки не было?

В v6 метка маршрутизации была просто строкой и не требовала существования таблицы. В v7 стек маршрутизации переработан, и каждая метка обязана соответствовать записи в /routing table. Поэтому старые конфигурации после обновления требуют доработки.

Ошибка появляется при импорте .rsc-файла. Что делать?

Откройте файл экспорта в текстовом редакторе, найдите все упоминания routing-mark и routing-table, затем вручную создайте таблицы с этими именами до импорта остальных разделов. Либо импортируйте файл частями, начиная с секции /routing table.

Правило сохранилось, но трафик не идёт по нужному маршруту. Это связано с ошибкой?

Косвенно. Если таблица создана, но в ней нет маршрутов, трафик с этой меткой не получит корректного пути. Проверьте наличие маршрутов командой /ip route print where routing-table=имя_таблицы и добавьте нужные маршруты с указанием этой таблицы.