Добавить в корзинуПозвонить
Найти в Дзене
Записки админа

Настройка двух Интернет-каналов (резервирование) на mikrotik

Основная идея настройки заимствована отсюда и протестирована на RouterOS 7.22.2 Легенда: К нам заходит 2 провайдера. Пусть это будут интерфейсы ether1 и ether2, оба имеют внешние адреса, которые получают по dhcp. Основной канал это ether1, где используется шлюз 111.111.111.111. Канал ether2 со шлюзом 222.222.222.222 - в нашем случае резервный. Первым делом настроим клиентов dhcp - отключим дефолтный маршрут, ntp и dns от провайдеров. /ip dhcp-client add add-default-route=no comment=WAN2 default-route-tables=main \ interface=ether2 name=client2 use-peer-dns=no use-peer-ntp=no add add-default-route=no comment=WAN1 default-route-tables=main interface=\ ether1 name=client1 use-peer-dns=no use-peer-ntp=no Лишнее отключили, теперь добавим комментарии нашим провайдерам: /ip route set comment=WAN1 [find gateway=111.111.111.111] set comment=WAN2 [find gateway=222.222.222.222] Для определения "доступности интернета" будем с помощью утилиты netwatch пинговать общедоступный ресурс. Как показы

Основная идея настройки заимствована отсюда и протестирована на RouterOS 7.22.2

Легенда:

К нам заходит 2 провайдера. Пусть это будут интерфейсы ether1 и ether2, оба имеют внешние адреса, которые получают по dhcp.

Основной канал это ether1, где используется шлюз 111.111.111.111. Канал ether2 со шлюзом 222.222.222.222 - в нашем случае резервный.

Первым делом настроим клиентов dhcp - отключим дефолтный маршрут, ntp

и dns от провайдеров.

/ip dhcp-client
add add-default-route=no comment=WAN2 default-route-tables=main \
interface=ether2 name=client2 use-peer-dns=no use-peer-ntp=no
add add-default-route=no comment=WAN1 default-route-tables=main interface=\
ether1 name=client1 use-peer-dns=no use-peer-ntp=no

Лишнее отключили, теперь добавим комментарии нашим провайдерам:

/ip route
set comment=WAN1 [find gateway=111.111.111.111]
set comment=WAN2 [find gateway=222.222.222.222]

Для определения "доступности интернета" будем с помощью утилиты netwatch пинговать общедоступный ресурс.

Как показывает практика, ориентироваться лучше всего на ресурс который не попадет с черные списки РКН, по этому, возьмем один из серверов Яндекс.Днс (если Вы используете общедоступные базовые днс сервера Яндекса, для netwatch используйте один из базового или семейного).

/ip route
add distance=1 dst-address=77.88.8.3/32 gateway=111.111.111.111

И обязательно заблокируем пинг ресурса вторым провайдером

/ip firewall filter
add action=drop chain=output dst-address=77.88.8.3 out-interface=ether2 protocol=icmp place-before=0

Ну и наконец, сам скрипт netwatch

/tool netwatch
add comment=wan1_default disabled=no down-script="/ip route set [find comme\
nt=\"WAN1\"] disabled=yes\
\n\r\
\n/ip route set [find comment=\"WAN2\"] disabled=no\
\n\r\
\n/ip firewall connection remove [find where idle-timeout > 1m]" host=\
77.88.8.3 http-codes="" test-script="" type=simple up-script="/ip route se\
t [find comment=\"WAN1\"] disabled=no\
\n\r\
\n/ip route set [find comment=\"WAN2\"] disabled=yes\
\n\r\
\n/ip firewall connection remove [find where idle-timeout > 1m]"

В отличии от множества подобных инструкций, добавление строки

/ip firewall connection remove [find where idle-timeout > 1m]

позволяет обрывать подвисшие соединения, что бывает очень полезно при использовании различных сервисов.