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

+7 (953) 284-42-23

Простой текст

ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ

«ЭРИКССОНСОФТ»

Документация по установке программного продукта

«Программа модуля пакетного ядра сети vEPC»

Правообладатель программы:

ООО «ЭрикссонСофт», ИНН 9718246399

Брянская обл., 2026

Оглавление

Настоящий документ содержит руководство по установке виртуального сетевого элемента vEPC, объединяющего функции MME (Mobility Management Entity) и SGSN (Serving GPRS Support Node). Программное обеспечение реализует базовые функции опорной сети пакетной передачи данных в едином процессе и предназначено для развертывания в тестовых и лабораторных средах.

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

  • Функции MME и SGSN в многопоточной архитектуре
  • Поддержка протоколов GTP-C (UDP) и S1AP (SCTP)
  • Управление через консольный интерфейс
  • Конфигурирование через текстовые файлы
  • Ведение цветного лога в консоли и файла журнала

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

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

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

  • Процессор: 4 ядра x86-64
  • Оперативная память: 8 ГБ
  • Дисковое пространство: 1 ГБ

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

  • Процессор: 8-16 ядер Intel Xeon (или аналогичный серверный процессор)
  • Оперативная память: 48-64 ГБ
  • Дисковое пространство: 10 ГБ (для хранения логов и дампов состояния)
  • Сетевой интерфейс: 1 Гбит/с и более

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

Программное обеспечение может быть установлено на следующие операционные системы:

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

  • Ubuntu Server 20.04 LTS / 22.04 LTS
  • Debian 11 / 12
  • Red Hat Enterprise Linux 8 / 9
  • CentOS Stream 8 / 9
  • AlmaLinux 8 / 9
  • Rocky Linux 8 / 9
  • FreeBSD 13.x и новее

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

  • Ubuntu Desktop 20.04 / 22.04
  • Fedora 38 и новее
  • Другие дистрибутивы Linux с ядром версии 5.0 и выше

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

  • Компилятор с поддержкой C++17 (GCC 9.4+, Clang 12+)
  • Система сборки CMake 3.10 или новее
  • Утилита make
  • Git (для получения исходного кода)

Для работы протокола SCTP:

  • Библиотека libsctp-dev (или эквивалент для целевой ОС)
  • Поддержка SCTP на уровне ядра (модуль sctp)

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

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

text

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

Параметры SCTP:

text

net.sctp.sctp_mem = 100000000 100000000 100000000

net.sctp.sctp_rmem = 4096 87380 134217728

net.sctp.sctp_wmem = 4096 65536 134217728

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

Скомпилированная версия программного обеспечения доступна для операционной системы Ubuntu 20.04 LTS (x86-64). Исполняемый файл может быть предоставлен отдельно. После получения файла необходимо установить права на его выполнение:

bash

chmod +x vepc

Для проверки целостности полученного файла рекомендуется сверить контрольную сумму. Значение контрольной суммы SHA256 предоставляется вместе с дистрибутивом.

bash

sha256sum vepc

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

bash

sudo cp vepc /usr/local/bin/

После установки проверьте доступность программы:

bash

which vepc

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

bash

sudo apt update

sudo apt install -y git cmake build-essential libsctp-dev

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

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

bash

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

cd vEPC

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

bash

mkdir build

cd build

cmake ..

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

bash

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local

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

bash

make -j$(nproc)

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

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

bash

./vepc

Программа должна запуститься и вывести приглашение консоли управления. Для остановки введите команду stop.

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

bash

sudo make install

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

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

bash

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

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

bash

source ~/.bashrc

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

bash

vepc --help

Примечание: программа не поддерживает аргументы командной строки, поэтому при отсутствии встроенной справки команда --help может не дать ожидаемого результата. Для проверки достаточно выполнить vepc и убедиться, что программа запускается.

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

dockerfile

FROM ubuntu:20.04

RUN apt-get update && apt-get install -y \

    libsctp1 \

    && rm -rf /var/lib/apt/lists/*

COPY build/vepc /usr/local/bin/vepc

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

EXPOSE 2123/udp 36412/sctp

WORKDIR /var/vepc

VOLUME ["/var/vepc/logs"]

CMD ["vepc"]

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

bash

docker build -t vepc:latest .

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

bash

docker run -it --rm \

  -p 2123:2123/udp \

  -p 36412:36412/sctp \

  -v $(pwd)/logs:/var/vepc/logs \

  vepc:latest

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

  • -it — интерактивный режим с псевдо-TTY
  • --rm — удаление контейнера после остановки
  • -p — проброс портов на хост-машину
  • -v — монтирование директории для хранения логов

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

Для запуска контейнера в фоновом режиме используйте флаг -d:

bash

docker run -d --name vepc \

  -p 2123:2123/udp \

  -p 36412:36412/sctp \

  vepc:latest

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

bash

docker attach vepc

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

text

# MME Configuration

mcc=250

mnc=20

mme-ip=127.0.0.1

s1ap-port=36412

А.2 Файл vsgsn.conf

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

text

# SGSN Configuration

mcc=250

mnc=20

sgsn-ip=127.0.0.1

gtp-c-port=2123

По умолчанию программа ожидает файлы конфигурации в родительской директории относительно исполняемого файла:

  • ../vmme.conf
  • ../vsgsn.conf

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

Функция loadConfig класса VNodeController отвечает за чтение файлов конфигурации:

bool VNodeController::loadConfig(const std::string& filename) {

    std::ifstream file(filename);

    if (!file.is_open()) {

        log("MAIN", "Ошибка открытия конфига: " + filename);

        return false;

    }

    std::string line;

    while (std::getline(file, line)) {

        if (line.empty() || line[0] == '#') continue;

        size_t eqPos = line.find('=');

        if (eqPos == std::string::npos) continue;

        std::string key = line.substr(0, eqPos);

        std::string value = line.substr(eqPos + 1);

        key.erase(0, key.find_first_not_of(" \t"));

        key.erase(key.find_last_not_of(" \t") + 1);

        value.erase(0, value.find_first_not_of(" \t"));

        value.erase(value.find_last_not_of(" \t") + 1);

        config[key] = value;

    }

    log("MAIN", "Конфиг загружен: " + filename);

    return true;

}

Отдел продаж

+7 (953) 284-42-23

sales@ericssonsoftware.ru

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

Информация

Адрес

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

Информация

Отдел продаж

+7 (953) 284-42-23

sales@ericssonsoftware.ru

Адрес

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