Быстрый переход
Настоящий документ содержит руководство по установке программного продукта 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/logs−v(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
Информация
Адрес
242504
Брянская область
Карачевский район, Вишневка
Молодёжная улица, 33
Быстрый переход
Информация
Отдел продаж
+7 (953) 284-42-23
sales@ericssonsoftware.ru
Адрес
242504
Брянская область,
Карачевский район,
Вишневка, Молодёжная улица, 33