Функциональные характеристики
ПО "CPaaS"
версия 28.06.2026
1 Термины и определения
2 Введение
Настоящий документ содержит описание функциональных характеристик программного обеспечения и информацию, необходимую для установки и эксплуатации программного обеспечения «CPaaS» производства компании ООО «Интерконнект». Структура и способ изложения материала предполагают наличие у читателя рабочих знаний UNIX-подобных операционных систем, а также основ построения сетей связи общего пользования. Документ предназначен для сотрудников Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации (Минцифры России), составлен в соответствии с методическими рекомендациями по подготовке заявок на включение ПО в Единый реестр российского программного обеспечения.
3 Назначение комплекса
Программное обеспечение XNN применяется на сетях мобильной связи стандартов GSM, UMTS, LTE, имеющих множество географически распределенных узлов связи. ПО предназначено для анализа сигнального трафика и нотификации внешних систем о событиях в сети оператора, происходящих с aбонентом. Основной функционал:
  • единая точка интеграции, контроля и консолидации данных;
  • пассивный захват SS7 CAP/MAP пакетов сети; анализ входящих SMS;
  • выявление событий сети, на которые существуют подписки;
  • оповещение подписчиков о событиях в сети.

Платформы взаимодействуют с XNN по двум основным интерфейсам:
  • HTTP — для управления подписками;
  • AMQP — для получения событий сети (и технических событий);
4 Состав ПО комплекса
Аппаратные требования ПО «CPaaS» складываются из требований к узлам кластера Kubernetes, на котором развертывается основная часть компонентов ПО, и требований к отдельному хосту для компонентов sfas_aas, Kamailio и RtpEngine, разворачиваемых вне кластера Kubernetes.
4.1 Требования к кластеру Kubernetes
Минимальная отказоустойчивая конфигурация кластера Kubernetes включает 3 ноды со следующими характеристиками каждая:
5 Функции программных компонентов
5.1 db-xdray_cfg
База данных для хранения подписок и платформ XNN под управлением PostgreSQL. Создание и изменение данных происходит через xnn_api. Модули xnn_central, xnn_track и xnn_track_smpp получают скофигурированные подписки через механизм логической репликации Pglogical.
5.2 RabbitMQ
  • реализует систему очередей решения XNN;
  • в каждом регионе создается внутренняя очередь xnn_track;
  • в центральном регионе создается внутренняя очередь xnn_central;
  • сообщения из очередей xnn_track переносятся в центральную очередь xnn_central с помощью
  • плагина RabbitMQ Shovel;для каждой платформы создается очередь с названием xnnPLATFORMNAME.
Примечание:
Доступ к очереди RabbitMQ для платформы должен быть настроен вручную, с помощью rabbitmqctl
add_user/set_permissions
5.3 xnn_track
Модуль xnn_track разработан на языке программирования Erlang/OTP. Запускается в виде отдельного
узла Erlang VM (BEAM). Выполняет следующие функции:
  • пассивный захват SS7 CAP/MAP пакетов сети (интерфейсы для захвата сигнального трафика настраиваются в файле xnn_track.config, в секции datasource);
  • установка SMPP соединение с SMSProof и получение информационных SMS;
  • настройка получения или не получения сигнального трафика или SMS по SMPP;
  • выявление событий сети, на которые существуют подписки;
  • найденные события записываются в локальную очередь RabbitMQ;
  • cообщения переносятся в центральную очередь xnn_central с помощью RabbitMQ Shovel.
5.4 xnn_central
Модуль xnn_central разработан на языке программирования Erlang/OTP. Запускается в виде отдельного узла Erlang VM (BEAM). Выполняет следующие функции:
  • получает выявленные события сети от xnn_track через очередь RabbitMQ;
  • дедупликацию событий;
  • контролирует срок действия подписок, количество нотификаций и т.д.;
  • публикует в очередь платформы выявленные события;
  • публикует в очередь платформы технические события.
5.5 xnn_api
Модуль xnn_api разработан на языке программирования Erlang/OTP. Запускается в виде отдельного узла Erlang VM (BEAM). Выполняет следующие функции:
  • предоставляет HTTP API для управления подписками. Подписки сохраняются в db-xdray_cfg;
  • при создании новой платформы модуль автоматически создает RabbitMQ очередь с названием
  • xnnPLATFORMNAME.
6 Системные требования
В зависимости от области применения, в состав комплекса могут входить следующие аппаратные
компоненты:
Заявленная аппаратная мощность актуальна из расчета единовременного трекинга до 150 000
подписок на нотификации об отслеживаемых событиях.
7 Установка программных компонентов
Установка XNN производится с помощью системы управления конфигурациями Ansible.
Конфигурирование XNN не является отдельным процессом в связи с тем, что установка с помощью
Ansible предполагает автоматическое создание конфигурации в ходе установки.
7.1 Подготовка среды для развёртывания
Предполагается, что установка XNN производится с хоста под управлением ОС Linux, имеющего IP-
связность с целевыми хостами. Также предполагается, что целевые хосты имеют доступ к yum-
репозитариям Linux и EPEL, либо к их зеркалу в закрытом сетевом контуре.
Необходимые шаги перед установкой:
1. Программный комплекс состоит из двух хостов: xnn-track-2 и xnn-central-2. На xnn-track-2
разворачиваются следующие программные модули: xnn_track, xnn_track_snmp На xnn-central-2
разворачиваются следующие программные модули: xnn_central, xnn_api, db_xnn Захват
сигнального трафика осуществляется на хосте xnn-track-2 на интерфейсе, указанном при
установке, в файле xnn_track.config.
1.1. Установка XNN должна производится с хоста под управлением ОС семейства Linux,
имеющего ip-связность
с целевыми хостами. Целевые хосты должны иметь доступ к yum-репозиториям Linux и EPEL yum-репозитрию,
содержащему необходимые версии требуемых пакетов и их зависимостей (postgresql, pg-temporal-tables,
pfring, erlang, rabbitmq).
1.2. Необходимо разместить на целевых узлах, либо на узле, с которым у них есть связность,
установочные файлы приложений XNN:
  • xnn_api.v0.0.16.debian-11.erl23.tar.gz
  • xnn_central..debian-11.erl23.tar.gz
  • xnn_track..debian-11.erl23.tar.gz
2. На хосте, с которого производится установка, добавить в файл /etc/hosts хостнеймы целевых
хостов, например:
192.168.0.1 *xnn-track-2*
192.168.0.2 *xnn-central-2*
Подготовка к установке окончена.
7.2 Установка
Для установки продукта должны быть выделены вычислительные мощности согласно разделу
Аппаратные требования.
Примечание:
<имя пользователя> — учетная запись пользователя на целевых хостах, имеющая доступ к повышению
привилегий с помощью команды sudo.
.vault.pass — файл с GPG-ключом, с помощью которого зашифрованы чувствительные данные с помощью
механизма Ansible Vault
Для установки необходимо использовать предоставляемый набор ansible-скриптов.
  1. Произвести корректировку переменных и шаблонов ansible в соответствии с окружением.
  2. Произвести установку с использованием команды:
ansible-playbook --vault-password-file=.vault.pass -u <имя пользователя> -v -i
hosts site.yml
Примечание:
ПО «XNN» не является коробочным решением, установка, как правило, осуществляется по заранее
оговоренной и согласованной процедуре с задействованием имеющейся инфраструктуры заказчика. Также в зависимости от требований конкретного заказчика набор функционала ПО “XNN” может сильно варьироваться. Описанный в данном документе функционал необходимо рассматривать как условно-базовый. Инсталляция и настройка ПО осуществляется квалифицированными сотрудниками ООО “Интерконнект” при содействии технических специалистов закзачика. Настройка и конфигурирование, сопровождение эксплуатации решения также осуществляется сотрудниками Службы Поддержки ООО “Интерконнект”.
8 Настройка программных компонентов
После установки XNN конфигурационные файлы находятся в следующих директориях:
  • xnn_track — /home/xdray/etc/xnn_track.config;
  • xnn_central — /home/xdray/etc/xnn_central.config;
  • xnn_api — /home/xdray/etc/xnn_central.config.
8.1 Запуск
Для успешного запуска XNN компоненты приложения и сторонние сервисы должны быть запущены в
следующем порядке:
1. На хосте xnn-track-2 загрузить модуль ядра pf_ring, реализующий кольцевой буфер для
оптимизации захвата сетевых пакетов, командой systemctl start pf_ring.service
2. На хостах xnn-track-2 и xnn-central-2 запустить сервис RabbitMQ командой systemctl start
rabbitmq-server.service
3. На хосте xnn-central-2 запустить RDBMS PostgreSQL командой systemctl start db-xnn.service
4. На хосте xnn-track-2 запустить сервисы:
4.1. Для сервиса xnn_track используйте команду systemctl start xnn_track.service
4.2. Для сервиса xnn_track_smpp используйте команду systemctl start xnn_track_smpp.service
5. На хосте xnn-central-2 запустить сервис xnn_central командой systemctl start
xnn_central.service
6. На хосте xnn-central-2 запустить сервис xnn_api командой systemctl start xnn_api.service
Примечание:
Ручной запуск сервисов может потребоваться только в случае нештатной работы сервиса. По умолчанию
после установки всех компонентов XNN необходимые сервисы запускаются автоматически при загрузке
операционной системы.
Подготовка к установке окончена.