Быстрый переход
Настоящий документ содержит руководство по установке программного продукта RBS (Radio Base Station), реализующего многостандартную базовую станцию с поддержкой протокольных стеков GSM (2G), UMTS (3G), LTE (4G) и 5G NR в одном исполняемом файле. Программа предназначена для развертывания в тестовых и лабораторных средах.
Основные функциональные возможности:
Одновременная работа стеков GSM/UMTS/LTE/NR
Поддержка протоколов GTP-C (UDP), S1AP (SCTP), NG-AP, Xn-AP, F1AP
Управление через REST API (порт 8181) и консольный интерфейс
Конфигурирование через текстовый файл rbs.conf
Ведение цветного лога в консоли и файла журнала
Программное обеспечение распространяется в исходных кодах под открытой лицензией. Актуальная версия исходного кода хранится в системе контроля версий 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)
Другие дистрибутивы Linux с ядром версии 5.0 и выше
Для сборки из исходного кода необходимы:
Компилятор с поддержкой C++17 (GCC 9.4+, Clang 12+, MSVC 19.30+)
Система сборки CMake 3.16 или новее
Утилита make
Git (для получения исходного кода)
Для работы протокола SCTP:
Библиотека libsctp-dev (Linux) или usrsctp (Windows, подключается автоматически через CMake FetchContent)
Поддержка SCTP на уровне ядра (модуль sctp) для Linux
Для обеспечения стабильной работы при высоких нагрузках рекомендуется выполнить настройку параметров ядра:
Параметры сетевого стека:
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:
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) и Windows 10/11. Исполняемый файл может быть предоставлен отдельно. После получения файла необходимо установить права на его выполнение (Linux):
chmod +x rbs_node
Для проверки целостности полученного файла рекомендуется сверить контрольную сумму. Значение контрольной суммы SHA256 предоставляется вместе с дистрибутивом.
sha256sum rbs_node
Для установки программы в системную директорию (Linux) выполните:
sudo cp rbs_node /usr/local/bin/
После установки проверьте доступность программы:
which rbs_node
Для Windows установка заключается в размещении исполняемого файла в рабочей директории.
Перед началом сборки необходимо установить требуемые пакеты (Linux):
sudo apt update
sudo apt install -y git cmake build-essential libsctp-dev
Для Windows используется Visual Studio 2022 с компонентами разработки на C++.
Исходный код доступен в системе контроля версий Git. Адрес репозитория необходимо уточнить у администратора или ответственного за распространение программного обеспечения.
После получения адреса репозитория выполните клонирование:
git clone <адрес_репозитория>
cd RBS
Создайте отдельную директорию для сборки и выполните конфигурацию проекта:
mkdir build
cd build
cmake ..
При необходимости можно изменить стандартные параметры сборки. Для этого передайте соответствующие аргументы команде cmake. Например, для установки префикса инсталляции:
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
Для Windows:
cmake -S . -B build
Выполните компиляцию проекта. Рекомендуется использовать все доступные ядра процессора для ускорения процесса:
make -j$(nproc)
В результате успешной компиляции в директории build будет создан исполняемый файл rbs_node.
Для Windows:
cmake --build build --config Release
Исполняемый файл: build\Release\rbs_node.exe
Для проверки корректности сборки можно запустить полученный исполняемый файл:
./rbs_node
Программа должна запуститься и вывести баннер с информацией о доступных RAT. Для остановки нажмите Ctrl+C.
Для установки скомпилированной программы в системную директорию выполните из директории build:
sudo make install
По умолчанию программа будет установлена в /usr/local/bin/rbs_node. Если при конфигурации был указан другой префикс, программа будет установлена в соответствующую директорию.
Если при установке был выбран нестандартный каталог, необходимо добавить его в переменную окружения PATH. Для этого отредактируйте файл ~/.bashrc или ~/.profile, добавив строку:
export PATH=$PATH:/путь/к/каталогу/с/программой
После редактирования примените изменения:
source ~/.bashrc
Убедитесь, что программа доступна для запуска из любой директории:
rbs_node --help
Программа поддерживает аргументы командной строки: путь к конфигурационному файлу и опционально RAT (gsm, umts, lte, nr). При отсутствии аргументов запускаются все четыре стека одновременно.
Для запуска программы в контейнерной среде необходимо создать Docker-образ. В директории с исходным кодом создайте файл Dockerfile со следующим содержимым:
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y
libsctp1
&& rm -rf /var/lib/apt/lists/*
COPY build/rbs_node /usr/local/bin/rbs_node
RUN chmod +x /usr/local/bin/rbs_node
EXPOSE 2123/udp 36412/sctp 8181/tcp
WORKDIR /var/rbs
VOLUME ["/var/rbs/logs"]
CMD ["rbs_node", "rbs.conf"]
Сборка Docker-образа может быть выполнена двумя способами.
Ручная сборка:
Выполните сборку образа, указав тег:
docker build -t rbs:latest .
Автоматизированная сборка через Ansible playbook:
В репозитории Git в папке ansible находятся файлы rbs_deploy.yaml и inventory.yaml. Для сборки образа выполните:
ansible-playbook -i inventory.yaml rbs_deploy.yaml --tags build
Для запуска контейнера выполните:
docker run -it --rm
-p 2123:2123/udp
-p 36412:36412/sctp
-p 8181:8181/tcp
-v $(pwd)/logs:/var/rbs/logs
-v $(pwd)/rbs.conf:/var/rbs/rbs.conf
rbs:latest
Параметры запуска:
-it — интерактивный режим с псевдо-TTY
--rm — удаление контейнера после остановки
-p — проброс портов на хост-машину
-v — монтирование директории для хранения логов и файла конфигурации
После запуска контейнера консоль управления будет доступна непосредственно в терминале. Для остановки программы нажмите Ctrl+C, после чего контейнер завершит работу.
Для запуска контейнера в фоновом режиме используйте флаг -d:
docker run -d --name rbs
-p 2123:2123/udp
-p 36412:36412/sctp
-p 8181:8181/tcp
rbs:latest
В фоновом режиме консоль управления недоступна. Для подключения к запущенному контейнеру используйте:
docker attach rbs
Информация
Адрес
242504
Брянская область
Карачевский район, Вишневка
Молодёжная улица, 33
Быстрый переход
Информация
Отдел продаж
+7 (953) 284-42-23
sales@ericssonsoftware.ru
Адрес
242504
Брянская область,
Карачевский район,
Вишневка, Молодёжная улица, 33