Доброго времени суток уважаемый читатель. В данной статье я хочу поделиться моим опытом запуска лаборатории технологий мобильной сети в домашних условиях. Не буду вдаваться подробно в настройки (как настроить Open5GS или проект osmocom можно нагуглить без проблем), статья планируется все же обзорная. Позже, если будет время и заинтересованность читателей, возможно напишу более подробно – с настройками, дампами сигнального обмена и прочее.
Надеюсь моя работа вдохновит кого-нибудь тоже на подобные поиски и развитие в направлении технологий мобильной связи.
Итак, подобный проект я задумал довольно давно, но ввиду отсутствия времени и сил все откладывал до лучших времен. Да и открытый софт сейчас более стабилен чем ранее.
Для развертывания ядра сети я использовал частично старое вендорское ПО, имеющееся в моем архиве, частично опенсорс, а также кое-какие мои личные разработки. Работает все прекрасно.
Причем в интернете достаточно открытого ПО, чтобы собрать полноценную сеть только на открытом ПО. Да, возможно она не будет такой функциональной как моя сборка (где в вместе с opensource комбинируются вендорские и мои личные компоненты, со всеми необходимыми операторскими фичами), но просто передача данных, звонки и даже смс будут работать.
Основным камнем преткновения здесь является оконечное оборудование – базовые станции. Железо для нее (SDR), к сожалению, прийдется покупать. Есть, конечно, открытые проекты виртуальных эмуляторов, где просто запускается ПО, эмулирующее как базовую станцию, так и терминал (например vowifi ue simulator, srsUE, osmo-uecups или UERANSIM) (поначалу я такое тоже поднимал за неимением лучшего варианта, но реальный терминал это все же реальный терминал) Именно в таких условиях возможно сделать лабораторный стенд, на котором полноценно тестировать те или иные фичи.
Пройдемся по порядку по технологиям
1. Технология VoWIFI
Оборудование:
WIFI AP MikroTik HAP ac (RB962UiGS-5HacT2HnT)
Телефон 1 - Xiaomi 12 Lite 8/128 (международная версия)
Телефон 2 - Xiaomi Redmi Note 11 Pro 5G (международная версия)
Программируемая SIM карта и программатор. Взял китайскую OYEITIMES в принципе на aliexpressдовольно много вариантов за небольшую стоимость.
ПО:
Вендорские ePDG, PGW (можно воспользоваться osmo-ePDG и Open5GS PGW)
3GPP AAA с приложением собственной разработки, на базе пакета freeDiameter
Начал я с технологии Voice over WIFI. Не самая простая технология для старта, но, когда я начинал свои эксперименты, у меня не было SDR. SDR штука недешевая и достать его не так чтобы сложно, но и небыстро. А WIFI точка есть у всех. Нужно отметить, что WIFI точку здесь стоит использовать ту, которая имеет встроенный ДНС/ДНС прокси, чтобы произвести подмену ДНС записи и направить запросы на регистрацию в сторону вашего ePDG. Формат ДНС записи такой: epdg.epc.mnc001.mcc999.pub.3gppnetwork.org
Я воспользовался WiFi точкой MikroTik.
При выборе телефона нужно учитывать, что некоторые производители, прежде чем включить такие голосовые функции как VoWIFI, VoLTE, VoNR для того или иного оператора (PLMN) требуют обязательную сертификацию/проверку, которая выполняется для каждого оператора отдельно. Соответственно регистрация на таком аппарате в private сети не сработает, даже если все настроено правильно. У Xiaomi требования в этой области минимальны, сертификация не требуется, работает все из коробки. Во всяком случае, у меня с этим проблем не было (есть небольшие нюансы, но для лаборатории они некритичны).
Здесь я воспользовался уже имеющимся у меня архивным ПО PGW, ePDG (не opensource, но есть открытые проекты, которыми также можно воспользоваться: osmocom и Open5GS), а также 3GPP AAA собственной разработки. HSS я взял с проекта Open5GS.
Касательно IMS платформы пришлось повозиться. Имеющиеся opensource проекты оказались совсем негибкими, со множеством ограничений, поэтому я решил остановиться на простом и элегантном методе: ручное формирование SIP атрибутов сигнализации в нужном формате с помощью opensource sip сервера Kamalio. Для лабораторных целей мне в первую очередь требовался основной каркас работающего решения, без удобства в управлении, дополнительных фич и шифрования, которые обычно используются в коммерческих решениях у операторов. Итого, голосовые пакеты звонков у меня проходят end to end от терминала к терминалу, без шифрования. И этого достаточно, качество голоса на уровне, работает все прекрасно.


Также пытался сделать звонок c VoWIFI телефона на приложение SIP клиент на ноутбуке, но не сработало – требуется поддержка кодека AMR-WB на стороне ПК клиента. Сходу не нашел SIP клиент, который бы такое умел, заморачиваться дальше не стал.

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

Это был успех. Полноценная рабочая технология операторского уровня (не считая мелких нюансов с IMSплатформой), развернутая у меня на компьютере. Для экспериментов более чем.
Далее я, разумеется, захотел развить свой успех. Поднять прочие технологии: 2g,3g,4g и в особенности 5g. Но все упиралось в оконечное оборудование, программируемое радио.
Пришлось раскошелиться на SDR. Взял также китайский, пока еще недорогой, стоил в районе 270$.
Ранее долго решался купить LimeSDR, на тот момент он стоил около 700$, но мне не повезло, в момент, когда я все же решился, цена на него выросла в 3 раза. Правда позже немного припала, но за такую цену я покупать его был не готов, да и есть нюансы, для тестов лучше чтобы SDR был UHD. Есть опенсорс проекты, которые кроме UHD ничего не поддерживают.
Итак, пришел мой SDR довольно быстро.
План был таков: ядро сети запускать на личном сервере на виртуальных машинах под ESXi, а ПО для контроля базовой станции на Raspberry PI 4. Сейчас скажу, что лучше так не делать.
Некоторые проекты из-под Raspberry PI и ее арм архитектуры работают плохо. Разбираться с этим, чтобы постоянно отлавливать баги желания не было, поэтому пришлось купить небольшой мини ПК с процессором интел. На нем все работает без проблем.
На распберри мне удалось запустить в итоге 4G, 2G, но уже технологии 5G, начиная с NSA не хотели работать. 5G SA gNodeB так вообще вроде как запускалась, но индикатор на SDR очень странно мигал и в эфире соответственно ничего не было. На x86 ПК все запустилось стабильно.
2. 4G(LTE)
Оборудование:
Китайский SDR - Knotolus LibreSDR B220mini
Телефон 1 - Xiaomi 12 Lite 8/128 (международная версия)
Телефон 2 - Xiaomi Redmi Note 11 Pro 5G (международная версия)
Программируемая SIM карта и программатор. Взял китайскую OYEITIMES
Сперва Raspberry PI 4, позже BMAX Мини-ПК B4 Turbo-16+512G (Intel N150, RAM 16 ГБ, SSD 512 ГБ, Ubuntu 22.04)
ПО:
srsRAN_4G
Open5GS (HSS)
Вендорские MME, PGW, SGW, но можно использовать тот же Open5GS
Kamalio SIP server
Это была следующая технология, которую я решил запустить. Причем запустить на Raspberry PI 4.
В ходе этого пришлось побороться с мелкими нюансами, например, моему SDR не хватало питания и потребовалось дозаказать маленький кабель-разветвитель для подачи дополнительного питания на USBустройство. После этого базовая станция запустилась, и даже начались попытки регистрации.
Немного повозился с параметрами и вуаля, телефон зарегистрировался в 4G

Вот мои настройки enb.conf
[enb]
enb_id = 0x19B
mcc = 999
mnc = 01
mme_addr = 10.128.10.1
gtp_bind_addr = 172.31.53.20
s1c_bind_addr = 172.31.53.20
s1c_bind_port = 36412
n_prb = 15
tm = 1
nof_ports = 1
[rf]
dl_earfcn = 1934
tx_gain = 80
rx_gain = 40
device_name = UHD
device_args = auto

Кроме передачи данных, телефон также зарегистрировался в VoLTE (на все том же самом SIP сервере Kamalio) и с теми же параметрами, что и в VoWIFI.
Итого, у меня уже работали VoWIFI, 4G передача данных, VoLTE. Также потенциально можно запустить и смски (попытки на Kamalio зафиксированы, но я не поднимал СМС центр, и не настраивал маршрутизацию с помощью Kamalio, хотя потенциально это можно сделать – тогда будут работать и SMS-ки через SIP и IMS), это уже дело техники. Для моих текущих исследований работающие смски пока не требуются, но понадобится – подниму. Также в перспективе хочется поднять SGs интерфейс c opensource решением CS Core от osmocom и запустить смски по нему.
3. 2G
Оборудование:
Китайский SDR - Knotolus LibreSDR B220mini
Телефон 1 - Xiaomi 12 Lite 8/128 (международная версия)
Телефон 2 - Xiaomi Redmi Note 11 Pro 5G (международная версия)
Программируемая SIM карта и программатор. Взял китайскую OYEITIMES
Raspberry PI 4
ПО:
Osmocom project: osmo-bsc, osmo-bts, osmo-ggsn, osmo-hlr, osmo-mgw, osmo-msc, osmo-pcu, osmo-sgsn, osmo-stp, osmo-trx

Здесь все намного проще. Компоненты одного производителя, которые могут обеспечить полноценный сервис: голос, передачу данных, смс. Внешние компоненты ставить не потребовалось. В перспективе, для тестов хендоверов потребуется прикрутить мой внешний ggsn, но здесь проблем возникнуть не должно. Также в перспективе надеюсь потестировать CSFB процедуру и SGs интерфейс. По документации – поддержка в решении osmocom есть.

4. 5G
И наконец гвоздь данной программы – 5G
Причем 5G SA (Standalone)
Оборудование:
Китайский SDR - Knotolus LibreSDR B220mini
Телефон - Xiaomi 12 Lite 8/128 (международная версия)
Программируемая SIM карта и программатор. Взял китайскую 5G SIM с подержкой SUCI. Пришлось заказывать дополнительно, та, что я использовал для 4G, не подошла.
BMAX Мини-ПК B4 Turbo-16+512G (Intel N150, RAM 16 ГБ, SSD 512 ГБ, Ubuntu 22.04)
ПО:
Open5GS
srsRAN gNodeB
Особых настроек на стороне Open5GS core делать не пришлось, там практически все работает из коробки. Только прописал Ki и OPc коды на UDM и добавил правило NAT для того, чтобы выпустить абонента в интернет. И, по сути, все.
Итого 5G сессия поднялась, абонент вышел в интернет. Плюс поднялась голосовая сессия VoNR. Правда телефон подписал ее как VoLTE в значке сверху. Но это нормально, некоторые производители телефонов не пишут отдельно VoNR для 5G, принцип то, по сути, такой же – такая же отдельная регистрация в IMS ядре поверх сессии передачи данных.
Еще несколько слов по сим картам. Пробовал заказывать с Китая разного типа у разных продавцов. И разные программаторы. У меня 3 варианта программаторов, в итоге подходит любой для программирования любой сим карты, заказанной у разных продавцов. В том числе и ту что поддерживает 5G. С той лишь разницей, что для программирования 5G сим карты требуется отдельное ПО, которым со мной любезно поделились Китайские братья, за что им отдельное спасибо.
Как-то так. По набору технологий уже тянет на небольшого private оператора.
В перспективе еще для полного комплекта хочется поднять 3G (с ним сложнее, у osmocom для реализации требуется фемтосота, которой у меня пока нет. А единственный проект который позволяет поднять NodeB с помощью SDR имеет некоторые ограничения), IoT, а также наладить переходы между технологиями: CSFB, SMS over IMS, 2G-3G-4G-5G хендоверы. Ну и звонки CS-IMS и также смски по SGs интерфейсу. Также есть возможность потестировать прочие фичи мобильных операторов: QCI, Gx, Gy интерфейсы, и прочее. Но это уже продолжение истории.
Самое главное, что я хотел показать – подобных технологии доступны и не так чтобы сильно сложны в реализации. Есть множество opensource проектов для реализации того или иного компонента. Да, для того чтобы их стыковать как вздумается, требуется понимание сути процесса, но понимание приходит со временем. И сейчас, по сути, практически любой желающий может поднять у себя мобильного оператора на ноутбуке для подобных экспериментов.
На этом обзор завершен, всем добра!
Комментарии (4)

hw_store
13.01.2026 11:57Хорошо было бы в начале статьи сформулировать конечную цель или круг задач, для которых производятся все описанные действия.

MaFrance351
13.01.2026 11:57Интересно. Понравилось.
Как раз сейчас с VoWiFi разбираюсь.
но индикатор на SDR очень странно мигал и в эфире соответственно ничего не было
Это означает, что SDR не успевает получать данные и передача прерывается. Соответственно, телефон к такой сети подрубиться не может.
с ним сложнее, у osmocom для реализации требуется фемтосота, которой у меня пока нет.
Там не просто фемтосота, а ещё и конкретной модели и со спецпараметрами. Как правильно получить на ней рут и записать свои настройки, они не рассказывают.
Пробовал заказывать с Китая разного типа у разных продавцов. И разные программаторы. У меня 3 варианта программаторов, в итоге подходит любой для программирования любой сим карты, заказанной у разных продавцов.
Если не секрет, какие модели симок и программаторов использовали?
CRAZZ2009
Отличная статья, спасибо. Не буду углубляться в вопросы регулирования используемых частот операторами связи. Лишь замечу, что наибольший интерес среди озвученного является как раз таки 5G и используемая частота для него. Возможно ли сейчас использовать самостоятельно mmWawe? Возможно ли использовать не занятые частоты для поднятия личных аплинков для передачи информации на некоторой закрытой территории? Слышал, что в последние годы набирает популярность создание таких сетей на закрытых территориях мега заводов типа нефтепереработки...
romanetz_omsk
На закрытой территории хоть стандартный 3,4-3,8 используйте. По распределению частот, 3,7-4,2 - это полоса C-band downlink спутниковая, если рядом тарелок нет, то и не помешаете никому. Но реализация всех фич 5G требует широкополосных SDR (какой смысл в 5G со скоростью 10 мбит/сек на всю базу?), что ценник сразу делает шестизначным в рублях