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

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

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

Например, работая в сети Beeline через встроенный модем, удавалось получить стабильно отличное качество сигнала (SINR и RSRP) и агрегацию частот B7+B3.

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

Отличный уровень сигнала вместе с агрегацией позволял достичь и хорошей скорости входящего соединения: на уровне 180 Мбит/сек (здесь и далее приведены результаты 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), но с учетом замеров WiFire представленных выше, использовать что-то более производительное в данном случае нецелесообразно.

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

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

Переходим на вкладку LTE и проверяем параметры LTE APN. Должен быть отмечен пункт “Add Default Route”, а “Default Route Distance” установлен бОльшим чем дистанция в профиле у lte1.

Настройка LTE APN

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

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

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

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

Далее добавляем правило обработки маршрутов для только что созданной таблицы.

Правило для таблицы 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. Собственно все: теперь по-умолчанию трафик отправляется через lte1, а трафик с NAS помечается и отправляется через lte2.

Конечно, рассмотренная схема не является полноценной балансировкой, но она позволяет удерживать трафик на основном канале lte1 в пределах установленного оператором лимита, а для меня это самое главное.