Найти тему
Мысли вслух

Настройка MikroTik RouterOS для Автоматического Переключения Между Двумя Провайдерами Интернета

Оглавление

В современном мире постоянный доступ к интернету является критически важным для большинства организаций и домашних пользователей. Сбои в работе интернет-провайдера могут привести к простою и потере дохода. Использование двух интернет-провайдеров на MikroTik RouterOS с автоматическим переключением при сбое одного из них обеспечивает надёжность связи. В этой статье мы подробно рассмотрим, как настроить MikroTik RouterOS для работы с двумя провайдерами интернета, включая динамическую настройку Netwatch для мониторинга доступности интернета.

Основная Конфигурация

Для начала необходимо настроить базовую конфигурацию интерфейсов и маршрутизации. Предполагается, что у вас уже есть два подключения к интернету через интерфейсы ether1 (основной провайдер) и ether2 (резервный провайдер).

Настройка Netwatch и Скриптов

Цель Netwatch здесь — мониторить доступность внешних IP-адресов (например, 8.8.8.8 и 8.8.4.4) и выполнять скрипты для переключения маршрутов при обрыве соединения с одним из провайдеров. Основная сложность заключается в динамическом использовании IP-адресов интерфейсов для проверок Netwatch без необходимости вручную обновлять эти адреса при их изменении провайдером.

Шаг 1: Создание Скрипта для Автоматического Обновления Netwatch

code/system script add name="update-netwatch" source={

:local ether1Address [/ip address get [find interface="ether1"] address];

:local ether2Address [/ip address get [find interface="ether2"] address];

:set ether1Address [:pick $ether1Address 0 ([:len $ether1Address] -3)];

:set ether2Address [:pick $ether2Address 0 ([:len $ether2Address] -3)];

/tool netwatch remove [find];

/tool netwatch add host=8.8.8.8 interval=10s timeout=1s src-address=$ether1Address up-script="change-route-up" down-script="change-route-down";

/tool netwatch add host=8.8.4.4 interval=10s timeout=1s src-address=$ether2Address up-script="change-route-up" down-script="change-route-down";

}

Этот скрипт сначала извлекает и очищает IP-адреса для ether1 и ether2, затем перенастраивает задания Netwatch с актуальными src-address.

Шаг 2: Автоматизация Запуска Скрипта

Для регулярного обновления конфигурации Netwatch используйте Scheduler:

code/system scheduler add name="update-netwatch-scheduler" interval=1h on-event="update-netwatch"

Здесь скрипт update-netwatch будет запускаться каждый час, что гарантирует актуальность src-address в заданиях Netwatch.

Скрипты change-route-up и change-route-down

Скрипт change-route-up активируется, когда доступность внешнего IP подтверждается, и он устанавливает предпочтительный маршрут через основного провайдера. Скрипт change-route-down срабатывает при потере доступности, переключая трафик на резервного провайдера.

code/system script add name="change-route-up" source={

/ip route set [find comment="main"] distance=1

/ip route set [find comment="backup"] distance=2

:log info "Switched to main provider."

}

/system script add name="change-route-down" source={

/ip route set [find comment="backup"] distance=1

/ip route set [find comment="main"] distance=2

:log info "Switched to backup provider."

}

Заключение

Данная настройка обеспечивает эффективное переключение между двумя провайдерами интернета в MikroTik RouterOS, минимизируя простои и обеспечивая непрерывный доступ в интернет. Использование динамического обновления Netwatch позволяет автоматически адаптироваться к изменениям в конфигурации сети без необходимости ручного вмешательства, что делает вашу сеть гибкой и адаптивной к изменениям условий связи.