Данный пример конфигурации показывает возможность развертывания 5G сети на основе eUPF и проекта Free5GC для демонстрации функции ULCL с помощью следующих компонентов:
- Docker-compose
- UERANSIM в качестве радиочасти
- Free5GS ядро сети
- eUPF в качестве модуля UPF
Исходный пример развертывания проекта free5gc(https://github.com/free5gc/free5gc-compose) был модифицирован таким образом, чтобы заменить штатный модуль UPF на модуль eUPF.
Также в конфигурацию добавлены:
- модуль NAT (поскольку eUPF не поддерживает функции NAT)
- модули prometheus и grafana для отображения статистики работы eUPF
Основные внесенные изменения находятся в файле docker-compose.ulcl.yml
, который используется в дополнение к общим настройкам docker-compose.yml
В данной конфигурации будут развернуты 3 eUPFs:
- I-UPF
- PSA-UPF
- PSA-UPF 2
Маршрутизация трафика выполняется следующим образом:
- UE--gNodeB--I-UPF--PSA-UPF--Internet (по-умолчанию)
- UE--gNodeB--I-UPF--PSA-UPF-2--Internet--8.8.8.8/32 (для UE c IMSI 208930000000001 и сервера 8.8.8.8)
- установите утилиты docker, docker-compose
См. инструкцию по ссылке https://docs.docker.com/engine/install/
- Скопируйте репозиторий
edgecomllc/free5gc-compose
git clone --branch ulcl-n9upf-experimetns https://github.com/edgecomllc/free5gc-compose
- перейдите в папку free5gc-compose
cd free5gc-compose
-
выполните запуск модулей ядра free5gc и эмуляторов gNB
docker-compose -f docker-compose.yaml -f docker-compose.ulcl.yml up -d
-
добавьте абонента в сеть free5gc через WebUI
откройте в браузере http://127.0.0.1:5000 (используйте "admin"/"free5gc" для авторизации), перейдите в меню "subscribers", нажмите "new subscriber" и кнопку "submit"
остановите проброс портов
Ctrl + C
-
запустите оболочку shell в контейнере UERANSIM
docker-compose -f docker-compose.yaml -f docker-compose.ulcl.yml exec ueransim bash
-
запустите эмулятор UE в оболочке shell контейнера UERANSIM
./nr-ue -c config/uecfg.yaml
-
запустите ещё одну оболочку shell в контейнере UERANSIM
docker-compose exec ueransim bash
-
проверьте доступность сети с помошью команды ping в новой оболочке
ping -I uesimtun0 1.1.1.1
-
проверьте доступность сети с помошью команды ping для выделенного маршрута в новой оболочке
ping -I uesimtun0 8.8.8.8
-
выполните команду
make clean