Иногда на MikroTik нужно сделать не общий VPN для всей сети, а более точную настройку: чтобы одно устройство, один сервер, виртуальная машина, касса, камера или рабочий компьютер выходили в интернет через VPN, второго провайдера или отдельный шлюз.
Например, есть виртуальная машина с IP 192.168.88.53. Нам нужно, чтобы именно она ходила в интернет через VPN-туннель в Нидерландах или через резервного провайдера, а остальные компьютеры продолжали работать через основной интернет.
Что мы настраиваем
Задача простая: весь обычный трафик сети идет как раньше, но один внутренний IP отправляется в другой маршрут. Это называется policy routing: MikroTik смотрит не только на адрес назначения, но и на источник трафика.
В примере будем использовать:
- 192.168.88.53 — устройство, которое надо пустить через VPN или второго провайдера.
- mangle_vpn — метка маршрутизации для этого устройства.
- 192.168.42.1 — шлюз VPN, второго провайдера или отдельного маршрута. У вас он будет свой.
Как пустить трафик одного устройства через VPN
Первым делом идём в IP -> Firewall -> Mangle и создаём новое правило. Во вкладке General выбираем:
- Chain: prerouting
- Src. Address: 192.168.88.53

Дальше переходим во вкладку Action и выбираем:
- Action: mark routing
- New Routing Mark: mangle_vpn
- Passthrough: обычно можно оставить включенным, если ниже есть другие нужные правила, или отключить, если это последнее правило для такого трафика.

Теперь трафик от устройства 192.168.88.53 помечается. Осталось сказать MikroTik, куда отправлять трафик с этой меткой.
Маршрутизация отдельного хоста через второго провайдера
Если нужно пустить отдельный компьютер не через VPN, а через второго провайдера, логика такая же. Отличается только шлюз. Вместо VPN-шлюза указываем gateway второго WAN.
Переходим в IP -> Routes и добавляем маршрут:
- Dst. Address: 0.0.0.0/0
- Gateway: 192.168.42.1 — замените на шлюз VPN или второго провайдера.
- Distance: 1
- Scope: 30
- Target Scope: 10
- Routing Mark: mangle_vpn

После этого только выбранный IP будет уходить через указанный шлюз. Остальная сеть продолжит ходить через основной маршрут.
Пример команд для RouterOS
Если удобнее через терминал, базовая логика выглядит так. Имена интерфейсов, адреса и gateway меняем под себя.
/ip firewall mangle add chain=prerouting src-address=192.168.88.53 action=mark-routing new-routing-mark=mangle_vpn passthrough=yes comment="Host 192.168.88.53 via VPN"
/ip route add dst-address=0.0.0.0/0 gateway=192.168.42.1 routing-mark=mangle_vpn distance=1 comment="Marked host via VPN or second WAN"
Для RouterOS v7 часто понадобится заранее создать отдельную таблицу маршрутизации:
/routing table add name=mangle_vpn fib
/ip firewall mangle add chain=prerouting src-address=192.168.88.53 action=mark-routing new-routing-mark=mangle_vpn passthrough=yes
/ip route add dst-address=0.0.0.0/0 gateway=192.168.42.1 routing-table=mangle_vpn distance=1
Если после копирования команды MikroTik ругается на параметр, не паникуем. Это как раз тот случай, когда версия RouterOS отличается: в одной версии используется routing-mark, в другой маршрут привязывается к routing-table.
Исключения для локальных адресов
Частая ошибка: мы отправили устройство через VPN, а потом оно перестало нормально видеть локальные ресурсы — сервер 1С, принтер, NAS, RDP внутри офиса или сам MikroTik. Чтобы этого не было, локальный трафик лучше исключить до правила маркировки.
Например, если локальная сеть 192.168.88.0/24, добавляем правило выше основного mangle:
/ip firewall mangle add chain=prerouting src-address=192.168.88.53 dst-address=192.168.88.0/24 action=accept comment="Do not route local traffic via VPN"
Если локальных сетей несколько, добавьте исключения для каждой: офисная сеть, сеть серверов, сеть принтеров, VPN-сеть второго офиса. Смысл простой: всё локальное остается локальным, наружу уходит через VPN или второго провайдера.
Проверка правил firewall и mangle
После настройки не надо верить на слово даже самому себе. MikroTik прекрасно показывает, работает правило или нет.
Проверяем счетчики в mangle:
/ip firewall mangle print stats
Если с компьютера 192.168.88.53 открыть браузер или сделать ping, у нужного правила должны расти packets и bytes. Если счетчики не растут, значит правило не попадает в трафик: не тот IP, не та цепочка, правило стоит ниже другого accept/drop или трафик вообще не проходит через этот MikroTik.
Проверяем маршрут:
/ip route print detail where routing-mark=mangle_vpn
/ip route print detail where routing-table=mangle_vpn
Проверяем соединения:
/ip firewall connection print where src-address~"192.168.88.53"
И самый простой бытовой тест: зайти с нужного устройства на сайт проверки внешнего IP. Если всё сделано правильно, внешний IP будет от VPN или второго провайдера.

Если не работает
Вот короткий чек-лист, который обычно быстрее всего находит ошибку:
- Проверьте, что у устройства действительно IP 192.168.88.53, а не другой адрес от DHCP.
- Проверьте порядок правил в Firewall -> Mangle: исключения для локальных сетей должны быть выше маркировки всего остального трафика.
- Проверьте, что gateway VPN или второго провайдера доступен и маршрут активный.
- Проверьте NAT: для выхода через другой WAN или VPN может понадобиться отдельное masquerade-правило на нужный out-interface.
- Проверьте FastTrack: в некоторых схемах FastTrack мешает mangle и policy routing, потому что часть трафика начинает обходить обычную обработку firewall.
Вывод
Чтобы направить трафик одного устройства через VPN или второго провайдера на MikroTik, нужно сделать три вещи: отметить трафик этого IP в mangle, добавить маршрут для этой метки и не забыть исключить локальные адреса, чтобы не сломать доступ к внутренним ресурсам.
И главное: не копируйте команды вслепую. На MikroTik многое зависит от версии RouterOS, модели устройства, схемы WAN/VPN и уже существующих firewall-правил. Сначала меняем адреса под свою сеть, потом проверяем счетчики mangle, маршруты и внешний IP.