Настройка Mikrotik для работы с LTE модемом

Начнем с того, что нам нужен Mikrotik с USB-разъемом, либо microUSB (как у модели RB2011UAS-2HnD, например), но тогда потребуется OTG-кабель. Так или иначе подключим модем и переходим в настройки самого роутера.
Переходим в раздел Interfaces.
Настройка Mikrotik для работы с LTE
Находим среди интерфейсов тот, который называется lte1 и активируем его.
1528317490 jota2 1
Теперь нам нужно в IP > DHCP Client.
1528317550 j3 2
Там тыкаем + и создаем клиент на интерфейсе lte1. Нажимаем ОК.
1528317566 j4 3
В этом же окне проверим, что на интерфейс навесится IP:
1528317509 j5 4
Дальше нам нужно объяснить пакетам, через что они будут ходить в сеть. Для этого зайдем в IP > Firewall, а там во вкладку NAT.
1528317494 j6 5
Тыкаем на + и создаем правило. Откроется окно, где в первой вкладке General выбираем Chain=srcnat и Out Interface = lte1, а остальное не трогаем.
1528317498 j7 6
Теперь откроем вкладку Action и выберем действие Masquerade.
1528317524 j8 7
Жмем OK, тем самым сохраняя правило.
1528317485 j9 8
Вполне возможно, что вы правите заводской конфиг, тогда нам нужно сделать еще кое-что. Там же в Firewall откройте вкладку Filter Rules.
1528317515 j10 9
Уже знакомым образом жмем на + и создаем новое правило. Во вкладке General ставим Chain=input и In Interface = lte1.
1528318182 j11 10
После во вкладке Action выберем Drop.
1528318165 j12 11
Жмем ОК.

Всё те же действия можно выполнить в командной строке терминала Mikrotik:

> interface lte set 0 disabled=no
> ip dhcp-client add interface=lte1 add-default-route=yes
> /ip firewall nat add chain=srcnat action=masquerade out-interface=lte1


Окей, подключение через модем настроено, что дальше? Давйте поговорим о резервировании канала. Скорее всего LTE будет у нас запасным вариантом, который спасет сеть при падении основного канала.
ether1-gateway — интерфейс основного канала
lte1 — мобильный свисток
Выше мы уже настроили получение на резервный интерфейс IP-адреса, идем дальше. Ах да, проверьте, что в IP > DHCP Client в пункте Add default route стоит no.

Создадим два статически раута для пинга:

/ip route add disabled=no distance=1 dst-address=8.8.8.8/32 gateway=основной_шлюз
/ip route add disabled=no distance=1 dst-address=8.8.4.4/32 gateway=запасной_шлюз


Первым шлюзом будет default gateway основного канала связи, а вторым — резервного.
Следующим шагом нам нужно добавить два маршрута по-умолчанию для каждого из провайдеров, только не забудьте писать коментарии, чтоб не запутаться впоследствии.
1528318961 route 12
Тут мы последовательно указали шлюз gw1 в качестве дефолтного в сеть 0.0.0.0/0 и так же с gw2.
Теперь начинается магия.
Идем в System > Scheduler и пилим задание на выполнение следующего скрипта:

:local PingCount 3;
:local CheckIp1 8.8.8.8;
:local CheckIp2 8.8.4.4;
:local rName [/system identity get name];
:local rDate [/system clock get date];
:local rTime [/system clock get time];
:local isp1 [/ping $CheckIp1 count=$PingCount];
:local isp2 [/ping $CheckIp2 count=$PingCount];
:local BackGw [/ip route get [find comment="gw2"] disable];
:if (($isp1=0) && ($isp2=$PingCount) && ($BackGw=true)) do={
:log warning "Set routes to gw2";
/ip route disable [find comment="gw1"];
/ip route enable [find comment="gw2"];
}
:local MainGw [/ip route get [find comment="gw1"] disable];
:if (($isp1=$PingCount) && ($MainGw=true)) do={
:log warning "Set routes to gw1";
/ip route enable [find comment="gw1"];
/ip route disable [find comment="gw2"];
}


Интервал выполнения задаем раз в полминуты: 00:00:30.
Проверяем. При отсутствии пинга до 8.8.8.8 маршрут gw1 будет переходить в статус disable, а gw2 в enable. Это будет отражаться в логе строчкой Set routes to gw2. При возобновлении пингов всё вернется на круги своя с текстом Set routes to gw1.