惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
I
InfoQ
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
有赞技术团队
有赞技术团队
G
Google Developers Blog
L
LangChain Blog
博客园_首页
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
月光博客
月光博客
IT之家
IT之家
量子位
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Как мы собрали сеть мобильного оператора у себя в лаборат...
VAS_Experts_ · 2026-04-22 · via Все публикации подряд на Хабре

Как мы собрали сеть мобильного оператора у себя в лаборатории и зачем нам это понадобилось

Уровень сложностиСредний

Время на прочтение5 мин

Охват и читатели276

Кейс

Привет!

Эта статья о том, как собрать мобильного оператора «на столе» для тестов функциональности и взаимодействия компонентов ядра сети.

Меня зовут Алексей Червяков, я тимлид команды разработки мобильных продуктов в компании VAS Experts, и мы разрабатываем компоненты ядра сети, которые осуществляют контроль трафика, его подсчет, применяют правила тарификации для абонентов. Корректная работа этих элементов – залог прибыли и отсутствия убытков из-за неоплаченных услуг и трафика.

Приятного чтения!

Зачем нам понадобился собственный стенд

Работу всех элементов сети необходимо проверять в «боевых» условиях – с настоящим трафиком и в связке с настоящим биллингом. Но как это сделать и оценить функционирование модулей ядра EPC, пока мы не проверили свою работу в сети мобильного оператора? А после завершения тестов, стенд заказчика зачастую занят под другие задачи или может быть отключен в любой момент за ненадобностью.

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

Архитектура ядра сети: что мы строили

Чтобы было понятно, что мы собирали, пара слов об архитектуре. Ядро сети – это несколько служб, каждая из которых отвечает за свой участок работы. MME принимает телефон в сеть и управляет его подключением. HSS – это база данных абонентов, где хранятся SIM-ключи и профили услуг. SGW пробрасывает пользовательский трафик между радиосетью и PGW, а PGW – это точка выхода абонента в интернет: именно здесь назначается IP-адрес, применяются правила тарификации и считается трафик.

Ключевой принцип, который мы применили – CUPS (Control and User Plane Separation). Это разделение «мозгов» и «трубы»: управляющая часть (SMF) решает, какой абонент какую услугу получает, а пользовательская часть (UPF или DPI) физически пропускает через себя гигабайты трафика. Такое разделение позволяет масштабировать data plane независимо от control plane и, что важно для нас, подключать наш DPI-модуль в качестве UPF – он не просто пропускает трафик, а классифицирует его по протоколам, считает объёмы по категориям и применяет правила оператора в реальном времени.

Схема реализации согласно концепции CUPS

Схема реализации согласно концепции CUPS

Решение казалось понятным и вполне реализуемым, а главное – имело перспективу стать реальной лабораторией для всех последующих доработок и релизов.

Мы связались с нашими партнерами из Медиа-Тел и предложили организовать совместную пилотную зону. Коллеги согласились и предоставили для тестов свои PCRF и OCS (компоненты биллинга и тарификации).

Интеграция с биллингом: где прячутся детали

Интеграция с компонентами Медиа-Тел потребовала отладки на стыке двух миров. Их PCRF отвечает за политики – решает, какой абоненту дать тариф, сколько трафика разрешить и на какой скорости. OCS (Online Charging System) – за онлайн-списание средств: когда абонент качает видео, OCS в реальном времени вычитает мегабайты из баланса. Наш PCEF, стоящий между ними и DPI, должен «разговаривать» на одном языке с обоими – по протоколу Diameter на интерфейсах Gx (политики) и Gy (тарификация). На практике это означало согласование десятков параметров: формат идентификаторов абонентов, кодировку PLMN (MCC/MNC), таймауты сессий и формат квотных правил. Каждое расхождение – а их было немало – приводило к отклонению запросов с загадочными кодами ошибок, которые приходилось расшифровывать по спецификациям 3GPP.

Выделили виртуальные машины, установили на них наши модули (PCEF, PGW, ePDG), поставили мощный DPI VAS Experts, добавили PCRF и OCS Медиа-Тел и получилась сеть мобильного оператора.

Упрощенная схема стенда

Упрощенная схема стенда

Отдельно стоит сказать про ePDG – компонент, который делает возможным VoWiFi, то есть звонки через обычный домашний или офисный Wi-Fi. Когда телефон подключен к Wi-Fi, он устанавливает защищенный IPSec-туннель через интернет к нашему ePDG, а тот уже соединяет абонента с ядром сети – так, будто телефон подключен к обычной соте. Для абонента разницы нет: те же звонки, тот же номер, та же тарификация. А для нас это еще один канал, который нужно корректно обрабатывать – трафик из Wi-Fi-туннеля тоже проходит через DPI и PCEF, тарифицируется по тем же правилам.

Теперь необходимо было настроить базовую станцию или ее эмулятор.

Базовые станции: программный эмулятор и промышленное железо

На стенде у нас работают две базовые станции – каждая со своими сильными сторонами. 

Первая – программный эмулятор srsRAN на обычном сервере с SDR-радиомодулем (Software Defined Radio). Это open-source решение, которое превращает компьютер в полноценный eNodeB: мы настраиваем Band 20 (800 МГц), ширину канала 20 МГц, мощность сигнала – и получаем LTE-соту в радиусе нескольких метров. Главное преимущество srsRAN – гибкость: можно менять любые радиопараметры, экспериментировать с конфигурацией и логировать каждый бит на радиоинтерфейсе. Но есть нюанс – srsRAN не поддерживает создание выделенных каналов (dedicated bearers), которые нужны для VoLTE-звонков. Чтобы обойти это ограничение, мы научили IMS-сервер (Kamailio) работать хитрее: он отправляет запрос на выделенный канал, но если радиосеть его не создаёт – звонок всё равно проходит по основному каналу, пусть и без гарантированного качества. Для тестов тарификации и передачи данных этого достаточно.

Вторая станция – Baicells, полноценная промышленная small cell. Она компактная, но это настоящее «железо» оператора связи: поддерживает создание выделенных каналов для голоса, работает стабильно и предсказуемо. Из ограничений – поддерживается меньше частотных диапазонов, совместимость не со всеми моделями телефонов, и настройки гораздо менее гибкие, чем у программного эмулятора. Зато с ней мы тестируем VoLTE-звонки «по-настоящему» – с выделенным каналом QCI=1, как это происходит в реальной сети оператора.

Когда мы выбирали название для «карманного» оператора, сомнений не было – единогласно выбрали “VAS Expert Mobile Network”.

Индикация на тестовом смартфоне

Индикация на тестовом смартфоне

Что и как мы тестируем

Стенд наконец-то заработал и началось самое интересное – тесты сценариев тарификации мобильных операторов: получение квот, настройка безлимитов, определение роуминга и многое другое.

Что мы тестируем? Только то, что обычно ломается при интеграции у оператора – а ломается обычно всё. Первый класс тестов – квотирование: абоненту выделяется, скажем, 100 МБ, и мы проверяем, что DPI корректно считает трафик, PCEF вовремя запрашивает следующую порцию квоты у OCS, а при исчерпании лимита – блокирует доступ, но оставляет «белый список» (DNS, портал оператора). Второй – сценарии безлимитных тарифов и приоритизации: когда определенные приложения (мессенджеры, навигаторы) не расходуют основной пакет. DPI определяет тип трафика, PCEF решает, списывать с баланса или нет. Третий – роуминг: телефон подключается с «чужим» MCC/MNC, и вся цепочка – от HSS до OCS – должна корректно обработать визитера. Мы эмулируем такой сценарий, просто загружая на SIM-карту другой PLMN.

Cхема Call Flow, подключение и отключение

Cхема Call Flow, подключение и отключение

Отдельная категория – голосовые и видео-сценарии. Полный цикл VoLTE: от SIP-регистрации через IMS до установления медиаканала и передачи голоса – между двумя телефонами, обслуживаемыми нашей сетью. А благодаря ePDG мы проверяем и более сложный сценарий: один абонент звонит через LTE, другой – через Wi-Fi. Оба зарегистрированы в одной IMS-сети, звонок проходит, медиапоток идёт. Затем один из абонентов переключается с Wi-Fi на LTE – и звонок не прерывается: сеть выполняет handover, передавая сессию между стандартами доступа. Тот же IP-адрес, тот же PGW, тот же медиапоток – абонент даже не замечает переключения. Для видеоконференций это особенно критично: потеря соединения на полсекунды – и участники теряют контекст разговора. Наш стенд позволяет отлаживать именно такие пограничные сценарии, которые невозможно воспроизвести на бумаге.

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

На запущенном стенде мы проверили работу с биллингом Медиа-Тел, а также теперь готовы не только тестировать новые функциональности, но и проводить демонстрации для новых клиентов.