Полезный скрипт для временный решений для Mikrotik

По работе требовалось много раз настраивать микротик на работу через какого-нибудь сотового оператора. Обычно это нужно для организации какого-нибудь временного решения, либо когда нужен дешевый низкоскоростной канал. После недолгих экспериментов родился следующий скрипт. Копируем текст, вставляем в консоль любимого микрота.
Тестировалось на RB/751, за любые отзывы буду благодарен.
Если вам все еще интересно, добро пожаловать под кат!

# Проверяем, что на устройстве нет никаких лишних дефолтов
foreach i in [/ip route find dst-address="0.0.0.0/0"] do={ ip route remove $i }
# Устанавливаем галку Add Default Route в свойствах ovpn-подключения
/interface ovpn-client set 0 add-default-route=yes

Предварительно нужно создать OpenVPN-подключение. Как это сделать, написано вот тут и вот тут.

#Скрипт автонастройки для 3G-свистков. Срабатывает раз в минуту
#Добавляет ppp-client и нужные роуты. При отключении свистка убирает лишнее
#Расчитано на мегафоновские свистки Huawei, например E-1550, E-173.
#Адрес сервера x.x.x.x необходимо заменить на свой.
/system scheduler
add interval=1m name=3gman on-event="if ([system resource usb find name=\"HUAWEI Mobile\"] != \"\" ) do={\r\
    \n\tif ([/interface ppp-client find] = \"\") do={\r\
    \n\t\t/interface ppp-client add name=\"ppp-out1\" data-channel=\"0\" \\\r\
    \n\t\tinfo-channel=\"0\" apn=\"internet\" pin=\"\" user=\"\" password=\"\" \\\r\
    \n\t\tphone=\"\" dial-command=\"ATDT\" modem-init=\"\" null-modem=\"no\" \\\r\
    \n\t\tdial-on-demand=\"no\" add-default-route=\"no\" use-peer-dns=\"no\" \\\r\
    \n\t\tkeepalive-timeout=\"30\" allow=\"pap,chap,mschap1,mschap2\" disabled=\"no\";\r\
    \n\t} else={\r\
    \n\t\t/interface ppp-client set 0 disabled=no add-default-route=no;\r\
    \n\t}\r\
    \n\tif ([/ip route find dst-address=x.x.x.x gateway=ppp-out1] = \"\") do={\r\
    \n\t\t/ip route add dst-address=x.x.x.x gateway=ppp-out1;\r\
    \n\t};\r\
    \n}else={\r\
    \n\tforeach i in [/interface ppp-client find ] do={\r\
    \n\t\t/interface ppp-client remove \$i\r\
    \n\t};\r\
    \n\tforeach j in [/ip route find dst-address=x.x.x.x/32 gateway=ppp-out1] do={\r\
    \n\t\t/ip route remove \$j;\r\
    \n\t};\t\r\
    \n}" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-time=startup

#Скрипт автонастройки для Yota-свистков. Срабатывает раз в минуту
#Добавляет dhcp-client и нужные роуты. При отключении свистка убирает лишнее.
#Расчитан на работу с USB-свистками
/system scheduler
add interval=1m name=yotaman on-event="if ([system resource usb find name=\"Modem Yota\"] != \"\" ) do={\r\
    \n\t/interface lte set 0 disabled=no;\r\
    \n\t/ip dhcp-client add interface=lte1 add-default-route=no disabled=no;\t\r\
    \n\tif ([/ip route find dst-address=x.x.x.x gateway=10.0.0.1] = \"\") do={\r\
    \n\t\t/ip route add dst-address=x.x.x.x gateway=10.0.0.1;\r\
    \n\t};\r\
    \n} else={\r\
    \n\tforeach i in [/ip dhcp-client find] do={\r\
    \n\t\t/ip dhcp-client remove \$i;\r\
    \n\t};\t\r\
    \n\tforeach j in [/ip route find dst-address=x.x.x.x/32 gateway=10.0.0.1] do={\r\
    \n\t\t/ip route remove \$j;\r\
    \n\t};\r\
    \n}" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-time=startup

3 Comments

      1. Да, все правильно.
        Только это не со стороны внутренней сети, это старое имя ресурса – не везде вычистил. спасибо!

Leave a Reply