MikroTik Script AutoUpdate Routes (RouterOS 7) - zhovner/zaborona_help GitHub Wiki

Скрипт автозагрузки маршрутов для OpenVPN без замены gateway. Добавить код в System -> Scripts с именем zaborona-route-autoupdate Чтобы файл с маршрутами сработал без правок, интерфейс для Забороны должен называться: zaborona ( если вы настраивали по нашей инструкции )

    :local url "https://zaborona.help/mikrotik-add-ranges.txt"
    :local fileName "mikrotik-add-ranges.txt"
    :local tag "zaborona-autoupdate"

    :log info ("[ZABORONA] Start routes autoupdate")

    # --- скачать файл ---
    :log info ("[ZABORONA] Downloading routes file")
    /tool fetch url=$url dst-path=$fileName mode=https

    :delay 1

    :if ([:len [/file find name=$fileName]] = 0) do={
        :log error ("[ZABORONA] File not downloaded, abort")
        :error "Download failed"
    }

    # --- Delete old routes ---
    :local oldCount [:len [/ip route find comment=$tag]]
    :log info ("[ZABORONA] Removing old routes: $oldCount")
    /ip route remove [find comment=$tag]

    # --- Importing new routes ---
    :log info ("[ZABORONA] Importing new routes")
    /import $fileName

    :delay 1

    # --- Check the result ---
    :local newCount [:len [/ip route find comment=$tag]]
    :log info ("[ZABORONA] Routes after import: $newCount")

    # --- Delete file ---
    /file remove [find name=$fileName]
    :log info ("[ZABORONA] Routes file removed")

    :log info ("[ZABORONA] Routes autoupdate finished")

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

add name=zaborona-route-autoupdate-job \
    start-time=03:00:00 \
    interval=7d \
    on-event="/system script run zaborona-route-autoupdate" \

Скрипт настроен на запуск раз в 7 дней в 3 часа ночи. Время запуска и периодичность запуска отредактируйте под себя, если необходимо. На сервере список маршрутов генерируется раз в неделю.


Чтобы файл с маршрутами сработал без правок, интерфейс для Забороны должен называться: zaborona ( если вы настраивали по нашей инструкции ). Если у вас интерфейс называется по-другому, тогда вам нужно вручную (либо через скрипт) заменить в файле интерфейс с gateway=zaborona на gateway=ВАШ_ИНТЕРФЕЙС

Загрузить список вручную: /tool fetch url="https://zaborona.help/mikrotik-add-ranges.txt" dst-path=mikrotik-add-ranges.txt mode=https

Пример результата выполнения команды:

[admin@MikroTik] > /tool fetch url="https://zaborona.help/mikrotik-add-ranges.txt" dst-path=mikrotik-add-ranges.txt mode=https
      status: finished
  downloaded: 1015KiB 
    duration: 1s     

Проверить, что файл скачался: /file print where name="mikrotik-add-ranges.txt"

Пример результата выполнения команды:

[admin@MikroTik] > /file print where name="mikrotik-add-ranges.txt"
Columns: NAME, TYPE, SIZE, LAST-MODIFIED
# NAME                     TYPE       SIZE       LAST-MODIFIED      
0 mikrotik-add-ranges.txt  .txt file  1015.3KiB  2025-12-18 01:34:48

Импортировать маршруты: /import file-name=mikrotik-add-ranges.txt

Пример результата выполнения команды:

[admin@MikroTik] > /import file-name=mikrotik-add-ranges.txt                                                                  
Script file loaded and executed successfully

Проверить список маршрутов, которые применились: /ip route print where comment=zaborona-autoupdate либо узнать общее количество, без вывода списка маршрутов: :put [:len [/ip route find comment=zaborona-autoupdate]]

Пример результата выполнения команды:

[admin@MikroTik] > /ip route print where comment=zaborona-autoupdate
Flags: D - dynamic; X - disabled, I - inactive, A - active; c - connect, s - static, r - rip, b - bgp, o - ospf, i - is-is, d - dhcp, v - vpn, m - modem, y - bgp-mpls-vpn>
H - hw-offloaded; + - ecmp 
 #       DST-ADDRESS        GATEWAY            ROUTING-TABLE                                                                                                        DISTAN>
 0  As   ;;; zaborona-autoupdate
         2.56.24.0/22       zaborona           main                                                                                                                       >
 1  As   ;;; zaborona-autoupdate
         2.56.88.0/22       zaborona           main                                                                                                                       >
 2  As   ;;; zaborona-autoupdate
         2.56.180.0/22      zaborona           main                                                                                                                       >
 3  As   ;;; zaborona-autoupdate
         2.57.0.0/24        zaborona           main                                                                                                                       >
 4  As   ;;; zaborona-autoupdate
         2.57.36.0/22       zaborona           main                                                                                                                       >

Пример результата выполнения команды:

[admin@MikroTik] > :put [:len [/ip route find comment=zaborona-autoupdate]]
8369

Удалить маршруты (массово): /ip route remove [find comment=zaborona-autoupdate]


Удалить единичные маршруты (пример): /ip route remove [find dst-address=10.10.0.0/24] Вместо 10.10.0.0/24 нужно подставить адрес сети, который нужно удалить. Например, если не нужно, чтобы сайт открывался через Заборону.