Как организовать автоматическое переключение интернета на резервный канал на примере Mikrotik?

Содержание статьи

Как организовать автоматическое переключение интернета на резервный канал?

Дано

  • 2 провода с интерннетом от инетрнет-провайдера
  • Роутер Микротик

Задача

Автоматическое переключение между поставщиками при проблемах со связью

Решение

Принцип работы.

Мониторинг основного канала передачи данных происходит раз в минуту.
В случае падения основного канала (недоступен заданный узел по ip адресу) включается резервный канал. 
Когда основной канал становится доступным, происходит обратное переключение.

Подготовка.

На микротике два интерфейса ethernet должны быть подключены к провайдерам (любым сетям с доступом в интернет).
Не имеет значения, к каким портам они подключены.

Требуется выяснить у провайдера настройки для подключения - ip адрес шлюза, маска сети и выделенный ip адрес для роутера, и настроить адреса для соответствующих интерфейсов.
Адреса могут быть динамические.

Получить из кабинета партнера mobileproxy данные и заменить следующие переменные вашими значениями:
{server_id}
{API_TOKEN}

Для примера адреса 192.168.77.1 (провайдер в рамках настройки mikrotik назван "inet1") и 192.168.88.1 (название провайдера "inet2").
inet1 - основной канал, inet2 - резервный канал, который будет включаться только при отсутствии доступа к "высокодоступному" узлу в сети Интернет

В приведенном ниже коде заменить адреса на ваши.
Через web или Winbox создаем скрипт, /system script.
Название скрипта - mobileproxy-send-current-ip  
Код скрипта:

---
# mobileproxy.space
# mikrotik send server current ip

:local ServerID {server_id}
:local MobileproxyAPItoken {API_TOKEN}
:local ServerLocalIP {192.168.77.2}
:global CurrentIP
:local ServerComment ""

/tool fetch url="https://mobileproxy.space/api.html?command=edit_servers&server_id=$ServerID&server_local_ip=$ServerLocalIP&server_static_ip=$CurrentIP&server_comment=$ServerComment" http-header-field="Authorization: Bearer $MobileproxyAPItoken"  
---

Далее создаем netwatch, /tool netwatch
down-script="/ip route set [find comment=\"inet1\"] disabled=yes\r\
    \n/ip route set [find comment=\"inet2\"] disabled=no" host=8.8.8.8\r\
  \n/system script run mobileproxy-send-current-ip \
up-script="/ip route set [find comment=\"inet1\"] disabled=no\r\
    \n/ip route set [find comment=\"inet2\"] disabled=yes"\r\
  \n/system script run mobileproxy-send-current-ip

Далее создаем в таблице маршрутизации маршруты к двум шлюзам с обязательным указанием поля comment и указанным ниже содерджимым:

/ip route
comment=inet1 distance=1 gateway=192.168.77.1
comment=inet2 distance=2 gateway=192.168.88.1

Оставайтесь с нами, дальше будет еще интереснее!


Поделитесь статьёй: