В качестве пододпытного используем 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 при переключении каналов.