К основному контенту

Mikrotik и LTE-модем Huawei ME909s-120 Mini PCIe. Настройка и общение AT-командами

В трудовой деятельности мне часто приходится работать с оборудованием Mikrotik, на данный момент у меня в работе около сотни маршрутизаторов этой фирмы, большинство отвечают за VPN. И сейчас остро стоит вопрос с резервированием каналов связи до объектов. У Mikrotik есть линейки устройств с mini PCIe разъемами для подключения периферии. Например, в новом wAP R, который с модемом R11e-LTE превращается в wAP LTE Kit.

Однако ко мне в руки попало еще несколько модемов, в частности весьма популярный Huawei ME909s-120 в формате mini PCIe. И, в отличие от фирменного модема R11e-LTE, из интерфейса RouterOS ему нельзя принудительно установить Band или узнать, к какому band-у он сейчас подключен. Поэтому пришлось повозиться с AT-командами. Их полный список есть в официальном руководстве аж на 519 страниц.

Сразу предупрежу. Я не являюсь экспертом в области LTE-сетей, поэтому подача материала может быть простоватой. Данный материал - скорее итог исследования работы с LTE модемами в Mikrotik RouterOS, чем технический гайд. Информация может быть применима к другим модемам кроме ME909s-120, а может и не быть :)

Общение с LTE-модемами в Mikrotik RouterOS

Для отправки AT-команд на модем и получения ответа в ROS используется команда at-chat, доступная к вызову, например, со следующим синтаксисом:

/interface lte at-chat lte1 wait=yes input="AT^MONSC"

В некоторых командах требуется поставить знак вопроса, в консоли ROS его нужно экранировать символом "\". Т.е. итоговый AT запрос будет выглядеть примерно так:

/interface lte at-chat lte1 wait=yes input="AT^LTECAT\?"

Также стоит отметить, что все AT команды вводятся без пробелов. Сокращения, ошибки и вольности здесь недопустимы.

Полезные AT-команды

AT^LTECAT?

Возвращает информацию о категории модема.

AT^MONSC

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

Пример возвращаемой строки:

output: ^MONSC: LTE,250,02,6350,FFFFFF,131,AAAA,-104,-12,-81

где:

LTE - тип подключения;
250 - MCC (Mobile Country Code) - код страны, для России это 250;
02 - MNC (Mobile Network Code) - код оператора. Мегафон - 02, Билайн - 99, МТС - 01;
6350 - ARFCN (Absolute Radio Frequency Channel Number) - закодированное значение несущих частот для текущего подключения. Подробнее о нем будет сказано ниже;
FFFFFF - Cell_ID - уникальный идентификатор базовой станции;
131 - PCI - Physical cell ID;
AAAA - TAC (Tracking Area Code);
-104 - RSRP (Reference Signal Received Power);
-12 - RSRQ (Reference Signal Received Quality);
-81 - RXLEV (Receiving Signal strength)

AT^HCSQ

Позволяет получить значения RSSI, RSRP, SINR, RSRQ для текущего подключения, правда в целочисленном формате, т.е. значения придется переводить в dB и dBm самостоятельно. В случае, если эта команда вам потребуется, рекомендую обратиться к руководству, где подробно расписаны шаги значений для вычисления.

AT^MONNC

Должна возвращать список соседних базовых станций и технологий подключения. Но из моих опытов делает это не всегда.

ARFCN

Стоит отдельно поговорить про эту аббревиатуру, т.к. при первом столкновении с ней у меня ушло некоторое время на то, чтобы понять, что это, и как его использовать. Дословно ARFCN расшифровывается как Absolute radio-frequency channel number, т.е. номер частотного канала. По сути в это значение заложены частоты на аплинк (передачу с т.з. клиента) и даунлинк (прием).

Как известно, в LTE имеется огромное число band-ов, каждый из которых работает на своих диапазонах частот. Наиболее популярны в России: b20 - 800 МГц, b3 - 1800 МГц, b7 - 2600 МГц. В каждом диапазоне есть набор частот с определенным шагом (назовем его шириной канала), на которых может работать базовая станция. И клиенты подключаются к базовым станциям, используя значения этих частот.

В примере выше мой ARFCN был 6350. Попробуем перевести это в понятные значения band-а и частоты с помощью калькулятора. Получился band 20 с частотой передачи 852 МГц, а приема - 811 МГц.

Залочивание модема на подключение по LTE только по частотам определенного Band-а

Фирменный модем R11e-LTE хорош тем, что прямо из интерфейса RouterOS можно отслеживать основные параметры качества связи, band, к которому он подключился, а также ограничить список технологий для подключения (GSM, 3G или LTE) и выбрать band. Со сторонними модемами вроде Huawei ME909s-120 так нельзя. С другой стороны, R11e лично у меня дико любит подключаться к band 20. Оно и логично - в условиях плохого уровня сигнала band 20 обеспечивает лучшее качество связи на большем расстоянии от базовой станции. Вот только скорости в при таком сценарии лично у меня не ахти какие, помогает как раз ручное указание band-ов, в которым можно подключаться.

Более того, залочить модем Huawei на подключение к базовой станции по частотам определенного band-а у меня также не вышло. А лочится он по определенному коду ARFCN, т.е. по конкретным частотам. Пример команды для этого выглядит следующим образом:
AT^FREQLOCK=1,"04",6350,,,
где:
1 - включить лок;
"04" (обратите внимание, с кавычками) - технология связи, в данном случае LTE;
6350 - ARFCN для подключения к базовой станции.

В таком режиме модем будет подключаться по технологии LTE только к базовым станциям, работающим на частотах ARFCN 6350. А в случае их отсутствия переходить на 3G. Залочить модем можно и для технологий GSM, WCDMA и TD-SCDMA.

Посмотреть список текущих блокировок можно командой
AT^FREQLOCK?

Сохранение настроек

Если не сохранить настройки, после пропадания питания модем вернется к тем, что уже были в него зашиты. Традиционно командой для сохранения настроек модема является AT&W, но ее реализация в разных модемах, насколько могу судить, весьма опциональная. Так что, например, настройки лока на частоту в данном модеме не сохраняются. Поэтому в случае необходимости, видимо, придется писать небольшой скрипт, который бы обновлял настройки модема.

Если у вас есть интересная информация по теме, пожалуйста, напишите в комментариях. И не забудьте подписать на свежесозданный канал в Телеграм. :)

Комментарии

Популярные сообщения из этого блога

В чем разница между частотами russia, russia2, russia3 и russia4 в Mikrotik.

Для большинства пользователей WiFi бывает только 2,4 ГГц и 5 ГГц. Если кто-то еще и слышал о стандартах вроде b/g/n/ac, то уж про каналы почти никто не знает, а про частоты — тем более. К счастью, мы с вами (я надеюсь) разбираемся в вопросе лучше простых пользователей, а значит должны настраивать оборудование правильно. С начала года все ввозимые на территорию РФ устройства Mikrotik с поддержкой WiFi залочены на Country: russia3. Увидеть это можно, если открыть свойства беспроводного интерфейса, нажать на кнопку Advanced Mode/Simple Mode и оценить поля Frequency Mode и Country. Наиболее простым и понятным вариантом здесь является regulatory-domain, т.е. на основе законодательства страны, выбранной в поле Country. Это гарантированно избавит вас от возможных проблем с радиочастотными службами и подбором силы излучения передатчика. Напомню, что для России максимально разрешенным является уровень излучения 20 dBm или 100 мВт. Устанавливая значение передатчика больше умышленно, вы не

Кратко и понятно о SR-IOV

Эту статью я публикую с целью лишь познакомить читателя с самим фактом существования технологии SR-IOV, а не с тонкостями настройки Hyper-V или сетевых адаптеров. Я сам впервые столкнулся с ней, и потратил много времени, чтобы понять, что к чему, такого очень краткого ликбеза мне не хватало. В связи с запуском новых серверов и переходом на 10 Гбит/с. решил поразбираться с SR-IOV. После прочтения пачки статей сложилось поверхностное понимание того, что это и как им пользоваться. И почему после установки галочки «Включить SR-IOV» в свойствах сетевого адаптера ВМ в Hyper-V магии не случается. Сразу отмечу, что пытаться запустить ее на 1Гбит/с. нет смысла. Не все адаптеры это поддерживают, да и толку будет мало. SR-IOV (Single Root Input/Output Virtualization) — технология виртуализации части аппаратных функций хоста, которая позволяет предоставлять виртуальным машинам прямой доступ к ним. По сути, насколько я понимаю, это еще один механизм оптимизации виртуализации вроде Intel VT-x

Проблема в Zabbix: Ping loss is too high при больших задержках

Столкнулся с интересной проблемой, до сути которой докопался как-то не сразу, хотя решение в итоге вышло простым. После настройки мониторинга резервных каналов связи на объектах Zabbix стал регулярно ругаться, что на этих элементах большие потери пакетов, хотя по факту их не было. Зато были задержки: по 900 и более мс. Попытавшись как-то потюнить сам Zabbix, начал копать глубже, в результате чего выяснилось, что простые проверки, реализованные в частности в дефолтном шаблоне системы Template ICMP Ping, опираются на fping с параметрами по-умолчанию, что описано в данной статье . То есть если ответ на ICMP запрос не получен в установленное время, пинг считается потерянным. В моем случае zabbix 3.0 и fping 3.8 значение таймаута по умолчанию составляет 500 мс, что явно меньше того, что требуется. Увеличить это можно в самих настройках шаблона, указав в элементе ICMP loss ключ icmppingloss[,,,,3000], где 3000 - искомый таймаут (тут каждому свой, я установил 3000 для компенсации роста зад