Настройка резервного канала на Mikrotik через 4G модем

роутер mikrotik с usb модемом
Сегодня мы поговорим о такой интересной теме, как настройка на mikrotik резервного канала связи через 4G модем с автоматическим переключением. В прошлой статье мы рассмотрели как сконфигурировать роутер для выхода в интернет через 4G модем, напомню, что прошивка на нем была Stick.

Тестовый стенд

  • Mikrotik RB951G;
  • Megafon M100-4 (он же Huawei E3372);
  • RouterOS 6.48.3;
  • Статический публичный IP адрес для проводного доступа в интернет.

Прошивка из Stick в Hilink

Ранее я говорил, как отличить обе эти прошивки, чем одна лучше другой и т.д. Но для настройки автопереключения каналов в сценарии, когда второй провайдер работает через «свисток» у нас встаёт одна проблема. В Stick прошивке, мы всегда получаем динамический серый адрес из сети провайдера (за исключением случаев с юридическими лицами, там ситуация может быть получше). И для того, чтобы скрипт переключения каналов отработал корректно, нужно иметь статические адреса на внешних интерфейсах. Причём не важно, отдаёт вам его провайдер белый или серый, главное, чтобы он не менялся. Вот именно эту проблему и решает смена прошивки.
РЕКОМЕНДАЦИЯ
Наша команда советует изучить углубленный курс по администрированию сетевых устройств MikroTik.
В курсе много лабораторных работ по итогам которых вы получите обратную связь.
После обучения вы получите диплом гос. образца РФ. Подробности и доступ к началу курса бесплатно тут.

Разлочка под всех операторов

  1. Первым делом разлочиваем модем. Вставляем его в ПК, устанавливаем коннект менеджер, вместе с ним и установятся драйвера;
  2. Узнаем IMEI модема. Он обычно находится под крышкой, рядом с отсеком SIM-карты;
  3. Качаем HUAWEI Unlock code калькулятор;
  4. Вводим в поле IMEI и жмем Calc. Сохраняем коды: v201, Flash, и на всякий случай v2;
  5. Вставляем симку от другого оператора, вставляем модем в ПК. В коннект менеджере выскочит окошко, с требованием ввести код разблокировки, пишем туда v201 код и жмём ок (если не получилось, то v2 code);
Все, после этого свисток поддерживает всех операторов.
Huawei Unlock code

Прошиваем модем

  • Извлекаем его из ПК;
  • Удаляем все коннект менеджеры, причём не важно, от какого оператора;
  • Устанавливаем последовательно 3 драйвера:
  • Вставляем свисток в комп, не мешаем ОС установить дрова на устройства;
  • Далее может предложить установить коннект менеджер – игнорируем и не допускаем этого. Если ОС после установки дров попросит ребут – не отказываем, если предложения не поступило – не перезагружаемся;
  • В диспетчере устройств, смотрим, чтобы не было жёлтых восклицательных знаков. Закрываем все программы, которые могут потенциально использовать модем, а также все антивирусы (желательно остановить его работу). Отключаем ПК от вашей сетки или wifi;
  • Качаем прошивку E3272S_Update_22.491.03.00.00_ADB_TLN_02 и запускаем файл на исполнение;
  • В поле запроса ввода кода, пишем Flash code и жмем ОК. Дожидаемся установки и определения новых устройств в ОС, должно быть так;
определение устройств в Hilink
Качаем sw_mode_E327x_new и с помощью sw_debug_mode.cmd переключаем модем в режим двух портов. Запускать от имени администратора. Если все норм, то увидим такую картину:
переводим модем в режим портов
  • Качаем Update_WEBUI_17.100.08.00.03_V7R1_Mod1.2 и запускам на исполнение. Дожидаемся окончания прошивки, и когда ОС установить драйвера.
У меня сразу открылась веб-морда свистка. Если у вас такого не произошло, то просто отключите / подключите его в ПК или сетевой RNDIS интерфейс в центре управления сетями и общим доступом.
проверяем установки веб морды для hajlink
Я предлагаю сразу изменить IP адресацию. Заходим во вкладку настройки. Пишем 192.168.254.1 и диапазон раздаваемых адресов сразу изменится. Применяем. У вас выскочит предупреждение что устройство перезагрузится – соглашаемся.
изменяем IP адресацию модема
Обращаю ваше внимание на диапазон IP-адресов DHCP, мы в принципе можем выключить их раздачу, но если по какой-либо причине вам это нужно, то лучше эти параметры не менять.
Проверим что адресация изменилась.
подключаемся к модему
Для справки, во вкладке Виртуальный сервер, вы можете настроить проброс портов. Но это больше для тех, у кого статический белый адрес.
проброс портов в Huawei E3372

Настройка RB951G под два провайдера

Данный девайс у нас в Blank конфиге. Начинаем все с чистого листа. Модем пока не подключаем.

Выход в интернет

На тестовом стенде провайдером будет мой домашний роутер. Я настрою статический адрес, смотрящий с RB951G в мою домашнюю сеть.
прописываем статический адрес
Пропишем маршрут последней надежды с метрикой 10.
настройка маршрута по умолчанию
Дадим комментарий ISP1
даем комментарий на маршрут

Настройка DNS на Mikrotik

настройка DNS на Mikrotik

Настройка локальной сети

Создаём Bridge-LAN.
создаем Bridge LAN
Добавляем порты с ether2-ether5 и wlan1.
добавляем порты в Bridge-LAN
Навешиваем на него адрес локальной сети.
настройка адреса локальной сети

NAT

Создаём правило NAT для основного, проводного провайдера.
создаем правило выхода в интернет

DHCP

Настраиваем DHCP-Server в терминале
/ip pool
add name=dhcp_pool0 ranges=192.168.200.2-192.168.200.254
/ip dhcp-server
add address-pool=dhcp_pool0 disabled=no interface=Bridge-LAN lease-time=1d name=dhcp1
/ip dhcp-server
network add address=192.168.200.0/24 dns-server=192.168.200.1 gateway=192.168.200.1

Firewall

/ip firewall
address-list add address=192.168.200.0/24 list=LAN-Networks
/ip firewall filter
add action=accept chain=input comment=in_Winbox&SSH-Allow connection-state=\
new dst-port=2204,56465 protocol=tcp
add action=accept chain=input comment=in_DNS-from-LAN-Allow dst-port=53 \
protocol=udp src-address-list=LAN-Networks
add action=accept chain=input comment=in_E&R-Allow connection-state=established,related
add action=drop chain=input comment=in-DROP-ALL
add action=accept chain=forward comment=frw_E&R&N-Allow connection-state=\
established,related,new
add action=drop chain=forward comment=frw_INVALID-DROP connection-state=invalid

Настраиваем IP сервисы и отключаем хелперы

/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh port=2204
set api disabled=yes
set winbox port=56465
set api-ssl disabled=yes
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set irc disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes

Настройка LTE на Mikrotik

Вставляем 4G модем с сим-картой в микротик и заходим в Interfaces – LTE. Интерфейс в статусе running, и как видите, мы получили адрес и маршрут по умолчанию. Это нас категорически не устраивает. Почему? Потому что маршрут, с метрикой 2, нам в таблице main вот вообще не нужен. Конкретно тем, что если вы захотите сделать ещё несколько маршрутов с более приоритетной метрикой, то у вас остаётся только одна, равная 1. Ко всему прочему, мы получили адрес динамически, об этом говорит флаг D напротив 192.168.254.100/24 в списке адресов Mikrotik. От этого нужно уйти, дабы обезопасить себя от потенциальных глюков модема.
подключаем USB модем
Что делать? Создаём правило NAT в сторону интерфейса lte1.
создаем правило выхода в интернет для резервного канала
Итого у нас должно быть 2 правила трансляции адресов.
NAT на два провайдера
Подключаем ПК в LAN порт микротика и заходим по адресу 192.168.254.1 Открывается уже знаковый веб-интерфейс, переходим в Настройки – Система – DHCP и отключаем DHCP сервер соглашаясь с предупреждением.
отключаем DHCP сервер на модеме
В логах мы увидим, что лиза остановилась и модем перезагрузился успешно.
записи в логах о перезагрузке lte интерфейса
Нам остаётся прописать адрес на lte интерфейсе вручную, а также маршрут по умолчанию через данный интерфейс с метрикой 20.
настройка выхода в интенет для LTE
Дадим комментарий на маршрут через lte.
даем комментарий на маршрут ISP2.jpg

Настройка автоматического переключения каналов

Для того, чтобы микротик понимал, с какого интерфейса трафик ушёл и на какой пришёл, нам нужно промаркировать его. Так же нам это нужно, чтобы скрипт понимал из-под какого интерфейса есть доступ в интернет, а из-под какого нет. Ранее я это описывал как делать в Winbox (вставить ссылку на dual wan), здесь, я сделаю упор на CLI.

Создаём правило маркировки для ISP1

/ip firewall mangle
add action=mark-connection chain=prerouting comment=out-in-ISP1 in-interface=\
ether1 new-connection-mark=from-ISP1-WAN passthrough=yes
add action=mark-routing chain=prerouting connection-mark=from-ISP1-WAN \
new-routing-mark=to-ISP1-MR passthrough=yes
add action=mark-routing chain=output connection-mark=from-ISP1-WAN \
new-routing-mark=to-ISP1-MR passthrough=yes
add action=mark-routing chain=output new-routing-mark=to-ISP1-MR passthrough=\
yes src-address=192.168.10.254

Создаём правило маркировки для ISP2

/ip firewall mangle
add action=mark-connection chain=prerouting comment=out-in-ISP2 in-interface=\
lte1 new-connection-mark=from-ISP2-WAN passthrough=yes
add action=mark-routing chain=prerouting connection-mark=from-ISP2-WAN \
new-routing-mark=to-ISP2-MR passthrough=yes
add action=mark-routing chain=output connection-mark=from-ISP2-WAN \
new-routing-mark=to-ISP2-MR passthrough=yes
add action=mark-routing chain=output new-routing-mark=to-ISP2-MR passthrough=\
yes src-address=192.168.254.2

Направляем трафик по таблицам

/ip route rule
add src-address=192.168.10.254/32 table=table-ISP1
add src-address=192.168.254.2/32 table=table-ISP2
add dst-address=192.168.200.0/24 table=main
add routing-mark=to-ISP1-MR table=table-ISP1
add routing-mark=to-ISP2-MR table=table-ISP2

Маршруты по умолчанию в новых таблицах

/ip route
add distance=10 gateway=192.168.10.1 routing-mark=table-ISP1
add distance=10 gateway=192.168.254.1 routing-mark=table-ISP2
Картина должна выглядеть следующим образом
конфигурация Mikrotik маркировки и route rules двух провайдеров

Автоматическое переключение WAN каналов

Заключительный этап, это настройка скрипта переключения каналов. Ранее я рассказывал более подробно, как он работает. Нам нужно сказать скрипту следующее (в номерах строк):
  • Интерфейсы, 2 и 4;
  • Что пингуем, 6;
  • Глобально задаём поиск по комментариям, 23-24;
  • Переключение на основной, 28-29;
  • Переключение на резервный, 35-36.
Т.е. мы регулируем переключение метриками в таблице main, плюс попутно чистим все соединения Connection Tracker.
#Main interface name
:global MainIf ether1
#Failover interface name
:global RsrvIf lte1
:local PingCount 1
:local PingTargets {77.88.8.8; 8.8.8.8}
:local host
:local MainIfInetOk false
:local RsrvIfInetOk false
:local MainPings 0
:local RsrvPings 0
foreach host in=$PingTargets do={
:local res [/ping $host count=$PingCount interface=$MainIf]
:set MainPings ($MainPings + $res)
:local res [/ping $host count=$PingCount interface=$RsrvIf]
:set RsrvPings ($RsrvPings + $res)
:delay 1
}
:set MainIfInetOk ($MainPings >= 1)
:set RsrvIfInetOk ($RsrvPings >= 1)
:put "MainIfInetOk=$MainIfInetOk"
:put "RsrvIfInetOk=$RsrvIfInetOk"
:local MainGWDistance [/ip route get [find comment="ISP1"] distance]
:local RsrvGWDistance [/ip route get [find comment="ISP2"] distance]
:put "MainGWDistance=$MainGWDistance"
:put "RsrvGWDistance=$RsrvGWDistance"
if ($MainIfInetOk && ($MainGWDistance >= $RsrvGWDistance)) do={
/ip route set [find comment="ISP1"] distance=10
/ip route set [find comment="ISP2"] distance=20
:put "switched to MAIN internet connection"
/log info "switched to MAIN internet connection"
/ip firewall connection remove [find]
}
if (!$MainIfInetOk && $RsrvIfInetOk && ($MainGWDistance <= $RsrvGWDistance)) do={
/ip route set [find comment="ISP1"] distance=20
/ip route set [find comment="ISP2"] distance=10
:put "switched to RESERVE internet connection"
/log info "switched to RESERVE internet connection"
/ip firewall connection remove [find]
}
Проверяем все ещё раз и создаём скрипт в system.
автоматизируем запуск скриптов в Mikrotik
Проверим, что покажет нам запуск скрипта.
проверка переключения когда резервный провайдер не работает
Интернет отсутствует за lte1. Причина – я забыл вставить сим-карту :). Исправляемся.
настройка автоматического переключения каналов ISP1 и ISP2
Теперь на своём домашнем Mikrotik, который выступает провайдером, заблокируем ICMP и посмотрим, как произойдёт переключение каналов.
проверка переключения когда основной провайдер не работает
Как мы видим, метрика на резервном маршруте изменилась. Засовываем команду запуска скрипта в планировщик и живём счастливо.
планировщик задач в Mikrotik
На этом настройка резервного канала 4G с автопереключением на Микротик закончена. Вы можете спокойно отключать один из каналов и у вас все прекрасно будет работать. Единственная рекомендация, интервал запуска скрипта в планировщике не делать менее 15 сек. Т.к. из-за таймаутов по беспроводке, скрипт может запуститься, не успев отработать.
РЕКОМЕНДАЦИЯ
Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в углубленном курсе «Администрирование сетевых устройств MikroTik». В курсе много практических лабораторных работ по результату выполнения которых вы получите обратную связь. После окончания обучения вы получите диплом гос. образца РФ. Подробности и доступ к началу курса бесплатно тут.