ЭрикссонСофт

+7 (953) 284-42-23

Настоящий документ содержит руководство по установке программного продукта vPCRF (Virtual Policy and Charging Rules Function), предоставленного для экспертной оценки. Продукт реализует функции политики и правил тарификации с поддержкой Diameter-интерфейсов (Gx, Rx, Sy, Sd, Sp) и интеграцией с внешними системами.

Основные функциональные возможности:

Обработка Diameter-сообщений через обработчики Gx, Rx, Sd, Sp, Sy

Интеграция с биллингом, HSS, OCS, внешними API с проверкой HTTP-статуса и обработкой отказов

Управление сессиями: таймауты, лимиты, персистентное хранение в базе данных (SQLite/PostgreSQL)

Валидация входных данных (IMSI, MSISDN, APN)

Логирование с уровнем и UTC-меткой времени

Встроенный HTTP-сервер для observability: /metrics, /health, /ready, /zabbix

Отправка событий в SIEM по UDP/syslog

Аудит с записью в таблицу audit_log

Graceful shutdown по SIGINT/SIGTERM

Программное обеспечение распространяется в исходных кодах. Актуальная версия исходного кода хранится в системе контроля версий Git.

Программное обеспечение является кроссплатформенным и может быть установлено на различные операционные системы семейства UNIX, а также на Windows. Рекомендуется использование серверных операционных систем, оптимизированных для работы с сетевыми приложениями.

Минимальные требования (для тестовых и ознакомительных целей):

Процессор: 4 ядра x86-64

Оперативная память: 8 ГБ

Дисковое пространство: 1 ГБ

Рекомендуемые требования (для лабораторных сред):

Процессор: 8-16 ядер Intel Xeon (или аналогичный серверный процессор)

Оперативная память: 48-64 ГБ

Дисковое пространство: 10 ГБ (для хранения логов и дампов состояния)

Сетевой интерфейс: 10 Гбит/с и более

Серверные ОС:

Ubuntu Server 20.04 LTS / 22.04 LTS и более поздние

Debian 11 / 12

Astra Linux

Rocky Linux 8 / 9

FreeBSD 13.x и новее

Десктопные ОС (для разработки и тестирования):

Ubuntu Desktop 20.04 / 22.04 и более поздние

Windows 10/11 (сборка через Visual Studio 2022 или MinGW)

Для сборки из исходного кода необходимы:

Компилятор с поддержкой C++17 (GCC 9.4+, Clang 12+, MSVC 19.30+)

Система сборки CMake 3.16 или новее

Утилита make

Git (для получения исходного кода)

Библиотеки: SQLite3, libcurl (для HTTP-клиента)

Для PostgreSQL: libpq

Для freeDiameter (опционально): freeDiameter SDK

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

Параметры сетевого стека:

net.core.rmem_max = 134217728

net.core.wmem_max = 134217728

net.ipv4.tcp_rmem = 4096 87380 134217728

net.ipv4.tcp_wmem = 4096 65536 134217728

net.core.netdev_max_backlog = 5000

Перед началом сборки необходимо установить требуемые пакеты (Linux):

sudo apt update

sudo apt install -y git cmake build-essential libsqlite3-dev libcurl4-openssl-dev

При использовании PostgreSQL дополнительно установите:

sudo apt install -y libpq-dev

Для Windows используется Visual Studio 2022 с компонентами разработки на C++ или MinGW.

Исходный код доступен в системе контроля версий Git. Адрес репозитория необходимо уточнить у ответственного за распространение программного обеспечения.

После получения адреса репозитория выполните клонирование:

git clone <адрес_репозитория>

cd vpcrf

Создайте отдельную директорию для сборки и выполните конфигурацию проекта:

mkdir build

cd build

cmake ..

При необходимости можно изменить стандартные параметры сборки. Например, для установки префикса инсталляции:

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local

Для Windows:

cmake -S . -B build

Выполните компиляцию проекта, используя все доступные ядра процессора:

make -j$(nproc)

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

Для Windows:

cmake --build build --config Release

Исполняемый файл: build\Release\vpcrf.exe

Для проверки корректности сборки запустите полученный исполняемый файл:

./vpcrf

Программа должна запуститься и вывести информационный баннер. Для остановки нажмите Ctrl+C.

Для установки скомпилированной программы в системную директорию выполните из директории build:

sudo make install

По умолчанию программа будет установлена в /usr/local/bin/vpcrf. Если при конфигурации был указан другой префикс, программа будет установлена в соответствующую директорию.

Если при установке был выбран нестандартный каталог, добавьте его в переменную окружения PATH. Для этого отредактируйте файл ~/.bashrc или ~/.profile, добавив строку:

export PATH=$PATH:/путь/к/каталогу/с/программой

После редактирования примените изменения:

source ~/.bashrc

Убедитесь, что программа доступна для запуска из любой директории:

vpcrf --help

Программа поддерживает аргументы командной строки. При отсутствии аргументов использует конфигурационный файл config.json в рабочей директории.

Для запуска программы в контейнерной среде создайте Dockerfile. В директории с исходным кодом создайте файл Dockerfile со следующим содержимым:

FROM ubuntu:20.04

RUN apt-get update && apt-get install -y libsqlite3-dev libcurl4-openssl-dev && rm -rf /var/lib/apt/lists/*

COPY build/vpcrf /usr/local/bin/vpcrf

RUN chmod +x /usr/local/bin/vpcrf

EXPOSE 9100/tcp

WORKDIR /var/vpcrf

VOLUME ["/var/vpcrf/logs"]

CMD ["vpcrf"]

Выполните сборку образа, указав тег:

docker build -t vpcrf:latest .

Для запуска контейнера выполните:

docker run -it --rm -p 9100:9100/tcp -v (pwd)/logs:/var/vpcrf/logs−v(pwd)/logs:/var/vpcrf/logsv(pwd)/config.json:/var/vpcrf/config.json vpcrf:latest

Параметры запуска:

-it — интерактивный режим с псевдо-TTY

--rm — удаление контейнера после остановки

-p — проброс портов на хост-машину

-v — монтирование директории для хранения логов и файла конфигурации

Для остановки программы нажмите Ctrl+C, после чего контейнер завершит работу. Для запуска контейнера в фоновом режиме используйте флаг -d:

docker run -d --name vpcrf -p 9100:9100/tcp vpcrf:latest

В фоновом режиме консоль управления недоступна. Для подключения к запущенному контейнеру используйте:

docker attach vpcrf

Файл конфигурации config.json содержит следующие параметры:

db_type — тип базы данных (sqlite или postgresql)

db_conn — строка подключения к базе данных

origin_host — хост-идентификатор для Diameter

origin_realm — realm для Diameter

destination_host — целевой хост

destination_realm — целевой realm

hss_address — адрес HSS

ocs_address — адрес OCS

billing_url — URL биллинговой системы

billing_token — токен для биллинга

session_timeout — таймаут сессии в секундах

max_sessions — максимальное количество сессий

http_bind_address — адрес для HTTP-сервера метрик

http_port — порт для HTTP-сервера метрик

admin_api_token — токен для административного API

По умолчанию программа ожидает файл конфигурации config.json в рабочей директории, из которой запущен исполняемый файл. При необходимости путь к файлу конфигурации может быть указан как первый аргумент командной строки:

vpcrf /путь/к/config.json

Отдел продаж

+7 (953) 284-42-23

+7 (953) 284-47-36

sales@ericssonsoftware.ru

Мы в соц.сетях

Информация

Адрес

242504
Брянская область
Карачевский район, Вишневка
Молодёжная улица, 33

Информация

Отдел продаж

+7 (953) 284-42-23

sales@ericssonsoftware.ru

Адрес

242504
Брянская область,
Карачевский район,
Вишневка, Молодёжная улица, 33