Балансировка двух LTE в Mikrotik

Последние несколько лет единственными источниками интернета для моей домашней сети являются исключительно мобильные операторы, т.к. технической возможности подключения к какому-нибудь проводному провайдеру нет. За это время я успел сменить нескольких операторов, включая МТС, Мегафон и Yota, но в итоге пришел к выводу, что только использование нескольких операторов позволяет получить высокую входящую скорость и неограниченный трафик, поэтому сейчася использую сразу два LTE подключения.

В качестве основного роутера я использую Mikrotik Chateau LTE12 с внешней антенной Антекс AX-2513P MIMO 2×2. Как следует из названия, в этот роутер встроен LTE модем, который поддерживает агрегацию частот и, в теории, способен работать на скоростях до 600/150 Мбит/сек (Down/Up). На практике все, конечно, очень сильно зависит от взаимного расположения антенны и базовой станции, загрузки самой станции и выбранного оператора.

Так, работая в сети Beeline через встроенный модем, можно получить прекрасное отношение сигнал/шум и агрегацию частот B7+B3.

Beeline агрегация B7+B3

Отличный уровень сигнала обеспечивает хорошую скорость входящего трафика: на уровне 150 Мбит/сек (здесь и далее приведены результаты SpeedTest.net). Скорость исходящего трафика ожидаемо оказывается заметно ниже и остается в пределах скромных 20 Мбит/сек.

Speedtest, Beeline B7+B3

Казалось бы подобных результатов должно быть достаточно для нужд домашней сети, но дьявол кроется в деталях. Узким местом в случае с Билайн оказался непубличный тариф. Для подключения к Билайн я использую один из тарифов, предлагаемых Mixu.ru Но мой опыт показывает, что заявленный безлимитный интернет на проверку оказывается лимитным. Применительно к упомянутому Mixu, мне сложно определить точно объем включенного трафика, т.к. я не веду подсчет входящего/исходящего трафика в сети, но оценочно он составляет примерно 100ГБ, после чего скорость ограничивается на уровне 512Кбит/сек до окончания расчетного периода.

Поэтому следующим логичным шагом стал переход на публичный безлимитный тариф. Операторов, которые предлагают публичные безлимитные тарифы, но при этом не ограничивают скорость входящего трафика, в моем городе всего два: Yota и WiFire. Оба работают на базовых станциях Мегафона и поддерживают агрегацию частот. Я остановился на WiFire, при этом год активной эксплуатации Yota за плечами тоже имеется. Почему же именно WiFire? Все просто, он дешевле. Год Yota обошелся мне в 9000 руб., при этом оплата строго единовременная. В пересчете на месяц получается 750 руб., при этом услуги WiFire за аналогичный период обойдутся в 650 руб. Разница в стоимости небольшая, всего 100 руб., но в пересчете на год экономия уже 1200, а это почти два месяца от WiFire.

К сожалению, получить такое же хорошее качество сигнала как у Билайна в случае с Мегафон/Yota/WiFire не получилось. Отношение сигнал/шум откровенно плохое и в результате входящая скорость, даже с учетом агрегации B7+B7+B7, редко превышала 50 Мбит/сек.

WiFire агрегация B7+B7+B7

Тот самый случай, когда агрегация B7+B7+B7 не дает особых преимуществ, разве что скорость исходящего трафика, которая, к сожалению, не так интересна.

SpeedTest, WiFire B7+B7+B7

Забавно, но Speedtest в отчете упорно указывает в качестве провайдера Yota, хотя на самом деле оператор WiFire.

Таким образом, я оказался перед выбором из двух достаточно противоречивых вариантов. С одной стороны это быстрый, но явно ограниченный по объему трафика интернет от Beeline, а с другой не очень быстрый, но безлимитный интернет от WiFire. И возник вопрос, а можно ли их как-то объединить, чтобы пользоваться быстрым вариантом, например, на смартфоне, а тяжелый контент с NAS направлять через безлимитный вариант? Да, можно! И в случае с Mikrotik RouterOS 7 сделать это достаточно просто и интуитивно понятно. Ниже небольшая инструкция. Забегая вперед отмечу, что не являюсь экспертом в области конфигурации сетевого оборудования, поэтому если у вас есть замечания по существу, напишите об этом в комментариях, я обязательно дополню материал.

В качестве второго модема я использую USB модем Huawei E8372H-153. Этот модем не поддерживает агрегацию и может обеспечить работу лишь на скоростях до 150/50 Мбит/сек (Down/Up).

После подключения модема в Mikrotik в списке интерфейсов должен появиться еще один интерфейс LTE. На скриншоте ниже это lte2, а lte1 это встроенный модем роутера.

USB LTE модем в списке интерфейсов Mikrotik

Переходим на вкладку LTE и проверяем параметры LTE APN. Должен быть отмечен пункт «Add Default Route», а «Default Route Distance» установлен не менее 2.

Настройка LTE APN

Чтобы получить доступ к web-панели управления модемом Huawei, находящейся по адресу 192.168.8.1, необходимо добавить lte2 в список WAN интерфейсов (справедливо при условии что дефолтные правила Firewall не удалены, в противном случае нужно создать правило masquerde для srcnat для lte2).

Собственно минимально необходимые настройки выполнены и простейшая балансировка уже начнет работать. Роутер начнет автоматически выбирать маршруты как через lte1, так и через lte2. Однако, чтобы иметь возможность маркировать и выборочно направить трафик через интерфейс lte2, нужно добавить несколько правил и создать отдельную таблицу маршрутизации.

Переходим в раздел Routing / Tables и создадим новую таблицу маршрутизации, которую так и назовем LTE2. Обязательно отмечаем использование FIB (Forwarding Information Base).

Добавление таблицы LTE2

Следующим шагом добавим новый статический маршрут в разделе IP / Routes, для того чтобы трафик из таблицы маршрутизации LTE2 направлялся только через указанный шлюз. В моем случае это IP адрес 192.168.8.1, соответствующий USB модему Huawei.

Добавление шлюза для таблицы LTE2

Остается только добавить правила в Firewall / Mangle, которые будут маркировать трафик. В моей домашней сети есть NAS с IP адресом 192.168.1.10. Так как NAS является получателем достаточно большого трафика, то весь внешний трафик логично пропустить через интерфейс lte2, на котором нет ограничений. Для этого можно сформулировать следующее правило: с адреса 192.168.1.10 на любой адрес, не относящийся к списку адресов Wireguard, ставится маркер маршрутизации LTE2.

Условия правила маркировки
Маркировка пакетов

Исключение со списком адресов WireGuard необходимо для того, чтобы не потерять доступ к NAS через VPN WireGuard. Если вы не используете доступ к домашней сети через VPN, то это условие можно не вводить.

На этом настройку можно считать завершенной. Трафик от NAS теперь будет ходить только через LTE WiFire. Ниже, для примера, скриншот истории загрузки примерно 140 ГБ данных на NAS.

Конечно, скептики могут сказать что и на WiFire есть ограничения, просто не был достигнут нужный объем, после которого они применяются. Что ж, возможно, но могу совершенно точно сказать, что этот порог явно превышает 1ТБ в месяц, что, по моему мнению, должно хватить для самых тяжелых сценариев.

Статистика трафика WiFire

Аналогичным образом, при желании, можно маркировать и направлять трафик через lte1.

Выбор маршрута для непомеченного трафика, т.е. для которого значение routing-mark не определено, Mikrotik осуществляет в соответствии с таблицей main. Это означает, что в итоге будут выбираться маршруты, проходящие как через интерфейс lte1, так и через lte2. Такой сценарий позволяет говорить о балансировке и при определенных условиях использовать входящую пропускную способность обоих каналов.

Распределение входящего трафика по интерфейсам

Конечно, такая простая схема имеет свои минусы, в том числе, связанные с резервированием, и ее можно улучшить, в том числе с помощью скриптов и анализа состояния каналов. Но об этом, пожалуй, как-нибудь в следующий раз.