Лучший VPS сервер, который мне удалось найти: https://justhost.ru

  • Больше 30 стран локаций
  • Возможность 50 раз сменить страну и ip адрес вашего сервера
  • Все тарифы подходят для VPN и Proxy
  • Установка Mikrotik routerOS и linux из коробки
  • Оплата Российскими картами
  • Стоимость от 79 рублей в месяц за промо тариф

В переменной rmark необходимо указать нужную метку (например, isp1, isp2, isp3).
Значение "main" используется в том случае, если маршрут требуется добавить в основную таблицу маршрутизации.
Таблица маршрутизации должна быть создана заранее следующей командой:

/routing table add fib name=isp1

Скрипт размещается в разделе /ip/dhcp-client на соответствующем интерфейсе.

:local rmark "isp1"
:local recursiveGW "77.88.8.8"

:local recroute [/ip route print count-only where dst-address=0.0.0.0/0 !routing-mark gateway=$recursiveGW comment=$rmark ]
:local rmarkroute [/ip route print count-only where dst-address=0.0.0.0/0 routing-table=$rmark ]
:if ($bound=1) do={ :local gw "$"gateway-address"%$interface"

#set recroute :if (recroute=0) do={ /ip route add dst-address=$recursiveGW gateway=$gw scope=20 comment="$rmark" distance=10 disabled=no /ip route add dst-address=0.0.0.0/0 gateway=$recursiveGW check-gateway=ping distance=10 target-scope=20 comment=$rmark } else={ if ($rmark="main") do={ /ip route set [ find dst-address=$recursiveGW !routing-table gateway!=$gw ] gateway=$gw } else={ /ip route set [ find dst-address=$recursiveGW routing-table=$rmark gateway!=$gw ] gateway=$gw } }

#set rmark route :if ($rmarkroute=0) do={ /ip route add gateway=$gw routing-table=$rmark } else={ if ($rmark="main") do={ /ip route set [ find dst-address=0.0.0.0/0 !routing-table gateway!=$gw ] gateway=$gw } else={ /ip route set [ find dst-address=0.0.0.0/0 routing-table=$rmark gateway!=$gw ] gateway=$gw } } } else={
#remove routes :if ($rmark="main") do={ /ip route remove [ find dst-address=$recursiveGW/32 gateway~"%$interface" ] /ip route remove [ find dst-address=0.0.0.0/0 gateway=$recursiveGW ] } else={ /ip route remove [ find dst-address=$recursiveGW] /ip route remove [ find dst-address=0.0.0.0/0 gateway=$recursiveGW] /ip route remove [ find dst-address=0.0.0.0/0 routing-table=$rmark type=unicast ] } }

 

TAG: dhcp, recursive route, MikroTik, RouterOS 7, рекурсивная маршрутизация