Автоматическое переключение на резервный интернет и обратно в устройствах Mikrotik

В качестве пододпытного используем HEX-PoE и отличный 4G-модем Huawei E3372H. Он прекрасно определяется в Mikrotik-девайсах, и создает отдельный lte-интерфейс.

Для начала — воткнули модем в устройство. Убедились, что

  • интерфейс lte1 (или как он будет у вас называться) — появился в cписке интерфейсов. Запомните имя этого интерфейса — оно пригодится в дальнейшем
  • на интерфейсе появился адрес, полученный по DHCP от провайдера
  • в списке маршрутов появился дополнительный маршрут 0.0.0.0/0 указывающий на шлюз LTE-провайдера.

Далее

  • Добавляем правило для NAT (чтобы пакеты и через 4G-модем тоже натились). Здесь lte1 — это название(!) интерфейса 4G-модема, если у вас он под другому называется — поправьте под себя.
 /ip firewall nat add action=masquerade chain=srcnat out-interface=lte1
  • Добавляем маршрут, чтобы пакеты на «хост мониторинга» 8.8.4.4 всегда шли через основного провайдера (здесь х.х.х.х — это шлюз вашего основного провайдера. В комментарии маршрута есть сочетание ISP, это важно — по нему мы будем находить этот маршрут и включать-выключать его.
/ip route add comment="always route monitoring host via ISP1" disabled=no dst-address=8.8.4.4/32 gateway=x.x.x.x
  • Создаем blackhole маршрут для «хоста мониторинга» с низким приоритетом (чтобы избавиться от «проблемы неработающего маршрута, при отсутствии линка на WAN-интерфейсе»)
/ip route add comment="blackhole for monitoring host" disabled=no dst-address=8.8.4.4/32 distance=200 type=blackhole
  • Создаем задание Netwatch. Идея такая: каждые 30 секунд проверяется «хост мониторинга» по адресу 8.8.4.4, если он недоступен (статус «down»), то отключаем маршрут по умолчанию (с комментом isp) и включаем интерфейс 4G-модема. Модем работает так, что сразу подключается к мобильной сети и автоматом получает от провайдера адрес, DNS и самое главное — новый маршрут по умолчанию. При этом проверка 8.8.4.4 у нас по прежнему будет продолжаться через основного провайдера(из-за специального маршрута, который мы завели чуть ранее). В случае получения ответов от 8.8.4.4 (Netwatch поменяет статус на «up») интерфейс 4G-модема отключаем, тем самым отключая свой маршрут, и активируем маршрут через основного провайдера.
  • И да — при переключении делаются записи в лог.
/tool netwatch
add disabled=no down-script="/interface enable [find name=\"lte1\"];\r\
\n:log warning \"Switch to 4G modem\";\r\
\n/ip route disable [find comment=\"isp\"];\r\
\n" host=8.8.4.4 interval=30s timeout=500ms up-script="/interface disable \
[find name=\"lte1\"];\r\
\n:log warning \"Switch to main internet\";\r\
\n/ip route enable [find comment=\"ISP\"];\r\
\n"

Ах да, и если у вас очень суровые правила Firewall, то не забудьте в нем тоже прописать правило, разрешающее форвард трафика в Lte1 интерфейс

Проверяйте работу переключения — находясь физически рядом с роутером… «во избежание», так сказать.

И не забывайте про залипание «connection» при переключении маршрута по умолчанию. Если это по каким то причинам важно для вас — в скрипт netwatch можно добавить строку очищающую зависшие сonnection из connection table при переключении каналов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Post Navigation

Яндекс.Метрика