Создание базовой сети 5G с Open5GS и UERANSIM

от автора

Добрый день, уважаемые хабровчане!

Сегодня и в последующие дни я сделаю перевод статей о развертывании архитектуры сетей 5G для дальнейшего ее изучения. Цель этой статьи — показать, что самые передовые технологии доступны всем и каждому, и что будущее можно создавать своими руками и не ждать. Я верю, что инженерный состав в нашей стране, это талантливые люди, которые могут нивелировать технологическое отставание, которое мы упустили за прошедшие 30 лет.

Напутствие

В этом посте я расскажу о развертывании базовой сети 5G с помощью Open5GS, которая представляет собой реализацию базовой мобильной сети 5G с открытым исходным кодом. Для тестирования функций базовой сети 5G я использовал UERANSIM, симулятор 5G UE и RAN (gNodeB) с открытым исходным кодом. Все исходные коды/развертывания, связанные с этим постом, доступны на gitlab. Пожалуйста, клонируйте репозиторий. В этом посте я установил Open5GS как службу демона Linux. В следующем посте я расскажу об установке Open5GS с Kubernets и Helm Charts.

Архитектура 5G

Мобильная сеть 5-го поколения (5G) — это новый глобальный стандарт беспроводной связи после сетей 1G, 2G, 3G и 4G. 5G обеспечивает новый тип сети, предназначенный для соединения практически всех и всего, включая машины, объекты и устройства. Беспроводная технология 5G предназначена для обеспечения более высокой пиковой скорости передачи данных в несколько Гбит/с, сверхнизкой задержки, большей надежности, большой пропускной способности сети, повышенной доступности и более единообразного пользовательского интерфейса для большего числа пользователей. Более высокая производительность и повышенная эффективность расширяют возможности пользователей и объединяют новые отрасли.

Партнерский проект 3GPP определяет стандарты для 5G. 3GPP — это общий термин для ряда организаций по стандартизации, разрабатывающих протоколы для мобильной связи. Согласно 3GPP система 5G (5GS) будет состоять из трех основных компонентов

  1. Пользовательское оборудование (UE)

  2. Сеть радиодоступа 5G (5G-RAN)

  3. Базовая сеть 5G (5GC)

UE — это устройства с поддержкой 5G (пользовательское оборудование). 5G-RAN (также известный как gNB) — это тип сетевой инфраструктуры, обычно используемый для мобильных сетей, состоящих из базовых радиостанций с большими антеннами. RAN беспроводным способом подключает пользовательское оборудование к базовой сети. Базовая сеть 5G упрощает различные сетевые функции, такие как управление сеансами, аутентификация, контроль политик, хранение данных и т. д. Доступно несколько реализаций базовой сети 5G с открытым исходным кодом. Free5GC, Open5GS — две самые популярные реализации базовой сети 5G.

Архитектура 5G Core

В отличие от предыдущих сотовых сетей, архитектура базовой сети 5G разработана с использованием виртуализации сетевых функций и программно-определяемой сети. В основном базовая сеть 5G разработана с использованием шаблона проектирования на основе микросервисов. Различные службы данных и требования 5GC (также называемые сетевыми функциями) реализованы в виде микросервисов. Эти микросервисы (сетевые функции) будут развернуты как собственные облачные приложения. Базовая система 5G состоит из следующих сетевых функций (NF). Эти функции разделены на две основные плоскости: плоскость управления и плоскость пользователя:

  1. User plane Function (UPF)

  2. Data network (DN), e.g. operator services, Internet access or 3rd party services

  3. Core Access and Mobility Management Function (AMF)

  4. Authentication Server Function (AUSF)

  5. Session Management Function (SMF)

  6. Network Slice Selection Function (NSSF)

  7. Network Exposure Function (NEF)

  8. NF Repository Function (NRF)

  9. Policy Control function (PCF)

  10. Unified Data Management (UDM)

  11. Application Function (AF)

Взаимодействие этих сервисов (с UE и 5G-RAN) и их соответствующие интерфейсы описаны на следующем рисунке. При развертывании базовой сети 5G мы в основном развертываем все эти сервисы в облаке как собственное облачное приложение.

Open5GS

Open5GS — это реализация базовой мобильной сети 5G с открытым исходным кодом. Конечной целью этого проекта является реализация базовой сети 5G, определенной в выпуске 3GPP. В настоящее время он поддерживает выпуск 16 3GPP с предоставлением ядра 5G (AMF, SMF+PGW-c, UPF+PGW-u, PCF, UDR, UDM, сетевые функции AUSF, NRF) и сетевые функции Evolved Packet Core (MME, SGW-c, SGW-u, HSS и PCRF).

UERANSIM

UERANSIM — это реализация 5G UE и 5G RAN (gNodeB) с открытым исходным кодом. В общих чертах его можно рассматривать как мобильный телефон 5G и базовую станцию. С точки зрения UE/RAN существует 3 основных интерфейса:

  1. интерфейс управления (между RAN и AMF)

  2. пользовательский интерфейс (между RAN и UPF)

  3. радиоинтерфейс (между UE и RAN)

UERANSIM поддерживает работу с базовыми сетями Open5GS и Free5GC 5G. Мы можем подключить UERANSIM к одной из этих сетей 5G Core и протестировать функциональность.

Развертывание ядра 5G

В этом сценарии я развернул базовую сеть 5G с Open5GS и смоделировал gNB/UE с помощью UERANSIM. Open5GS развернут на одном сервере (IP 172.31.13.16), а UERANSIM развернут на другом сервере (IP 172.31.13.37). Архитектура развертывания описана на следующем рисунке.

Ниже приведены основные шаги, которые необходимо выполнить при развертывании. Если вы настраиваете эту среду в облаке (например, AWS, gGloud), обязательно откройте все порты TCP и SCTP между серверами в локальной сети (связь gNB и AMF происходит через SCTP).

1. Install Open5GS

Open5GS может быть установлен как собственный сервис демона Linux. Также его можно развернуть с помощью Docker, Kubernetes и Helm Charts. Я развернул его как собственное сервисное приложение демона Linux. При его запуске сеть 5G работает как службы демона Linux. Ниже приведен способ установки Open5GS на server1.

# install open5gs as daemon service sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa:open5gs/latest sudo apt update sudo apt install open5gs

2. Setup Open5GS

Я развертываю 5G Core и gNB на отдельных серверах. Поэтому мне нужно настроить адрес привязки NGAP для AMF (IP-адрес работающего ядра 5G) и адрес привязки GTPU для UPF (IP-адрес работающего ядра 5G). Тогда только gNB и UE смогут подключиться к базовой сети 5G. Если вы используете стек gNB и 5G Core на одном сервере, вам не нужно вносить эти изменения. Ниже приведены конфигурации, которые я сделал. После выполнения этих настроек я перезапустил службы AMF и UPF.

# amf config file locates in /etc/open5gs/amf.yaml # ngap addr configured to 5g core server ip amf:     sbi:       - addr: 127.0.0.5         port: 7777     ngap:       - addr: 172.31.10.16       ---  # restart amf services sudo systemctl restart open5gs-amfd  ---  # amf logs can be found in /var/log/open5gs/amf.log sudo tail -f /var/log/open5gs/amf.log  11/07 04:17:26.737: [amf] INFO: [Removed] Number of AMF-UEs is now 0 (../src/amf/context.c:1268) 11/07 04:17:26.738: [sctp] INFO: AMF terminate...done (../src/amf/app.c:42) Open5GS daemon v2.3.6 11/07 04:17:26.762: [app] INFO: Configuration: '/etc/open5gs/amf.yaml' (../lib/app/ogs-init.c:129) 11/07 04:17:26.762: [app] INFO: File Logging: '/var/log/open5gs/amf.log' (../lib/app/ogs-init.c:132) 11/07 04:17:26.764: [sbi] INFO: nghttp2_server() [127.0.0.5]:7777 (../lib/sbi/nghttp2-server.c:144) 11/07 04:17:26.764: [amf] INFO: ngap_server() [172.31.10.16]:38412 (../src/amf/ngap-sctp.c:53) 11/07 04:17:26.764: [sctp] INFO: AMF initialize...done (../src/amf/app.c:33) 11/07 04:17:26.766: [amf] INFO: [9d83b430-3f81-41ec-9db3-4f03c19e0a68] NF registred [Heartbeat:10s] (../src/amf/nf-sm.c:198)
# upf config file locates in /etc/open5gs/upf.yaml # gtpu addr configured to 5g core server ip upf:     pfcp:       - addr: 127.0.0.7     gtpu:       - addr: 172.31.10.16     subnet:       - addr: 10.45.0.1/16       - addr: 2001:230:cafe::1/48        ---  # restart upf services sudo systemctl restart open5gs-upfd  ---  # upf logs can be found in /var/log/open5gs/upf.log sudo tail -f /var/log/open5gs/upf.log  11/07 04:18:19.224: [app] INFO: SIGTERM received (../src/main.c:53) 11/07 04:18:19.224: [app] INFO: Open5GS daemon terminating... (../src/main.c:212) 11/07 04:18:19.225: [upf] INFO: PFCP de-associated (../src/upf/pfcp-sm.c:178) 11/07 04:18:19.225: [upf] INFO: [Removed] Number of UPF-sessions is now 0 (../src/upf/context.c:190) 11/07 04:18:19.226: [app] INFO: UPF terminate...done (../src/upf/app.c:39) Open5GS daemon v2.3.6 11/07 04:18:19.243: [app] INFO: Configuration: '/etc/open5gs/upf.yaml' (../lib/app/ogs-init.c:129) 11/07 04:18:19.243: [app] INFO: File Logging: '/var/log/open5gs/upf.log' (../lib/app/ogs-init.c:132) 11/07 04:18:19.256: [pfcp] INFO: pfcp_server() [127.0.0.7]:8805 (../lib/pfcp/path.c:30) 11/07 04:18:19.256: [gtp] INFO: gtp_server() [172.31.10.16]:2152 (../lib/gtp/path.c:30) 11/07 04:18:19.257: [app] INFO: UPF initialize...done (../src/upf/app.c:31) 11/07 04:18:22.553: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.4]:8805 (../lib/pfcp/path.c:59) 11/07 04:18:22.553: [upf] WARNING: cannot handle PFCP message type[1] (../src/upf/pfcp-sm.c:139) 11/07 04:18:25.054: [pfcp] WARNING: [5341] REMOTE Request Duplicated. Discard! for step 1 type 1 peer [127.0.0.4]:8805 (../lib/pfcp/xact.c:403) 11/07 04:18:27.557: [pfcp] WARNING: [5341] REMOTE Request Duplicated. Discard! for step 1 type 1 peer [127.0.0.4]:8805 (../lib/pfcp/xact.c:403) 11/07 04:18:30.060: [upf] INFO: PFCP associated (../src/upf/pfcp-sm.c:173)

3. NAT Port Forwarding

Чтобы создать мост между 5G Core UPF и WAN (Интернет), мне нужно включить переадресацию IP и добавить правило NAT в таблицы IP. Ниже приведены перенаправления портов NAT, которые я сделал. Без этого порта переадресация подключения от 5G Core к Интернету не работала бы.

# nat port forwarding  sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE sudo systemctl stop ufw sudo iptables -I FORWARD 1 -j ACCEPT  # if above setup not works try to manually create tun interface and do nat forwarding sudo ip tuntap add name ogstun mode tun sudo ip addr add 10.45.0.1/16 dev ogstun sudo ip addr add 2001:230:cafe::1/48 dev ogstun sudo ip link set ogstun up

4. Register UE Device

Далее мне нужно зарегистрировать устройство UE на 5G Core. Open5GS предоставляет приложение WebUI. Я могу зарегистрировать устройство UE через подключение к WebUI. Ниже приведен способ как сделать это.

# install nodejs sudo apt update sudo apt install curl curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt install nodejs  # clone webui git clone https://github.com/open5gs/open5gs.git  # run webui with npm cd webui npm run dev --host 0.0.0.0  # the web interface will start on http://localhost:3000  # webui login credentials username - admin password - 1423  # add new subscriber # the default device information can be found in open5gs config on UERANSIM IMSI: 901700000000001 Subscriber Key: 465B5CE8B199B49FAA5F0A2EE238A6BC USIM Type: OPc Operator Key: E8ED289DEBA952E4283B54E88E6183CA

WebUI запускается на порту 3000 на server1. Подключитесь к WebUI и войдите в систему с учетными данными admin/1423. Затем добавьте нового абонента с IMSI: 901700000000001 и другой информацией по умолчанию.

5. Install UERANSIM

Затем я установил UERANSIM на server2. Установка выполняется с помощью файла, доступного в репозитории URANSIM. Ниже приведен способ установки UERANSIM.

# install cmake # UERANSIM does not work with the apt version of cmake, that's why we need to install snap and the snap version of cmake: sudo apt update  sudo apt upgrade  sudo apt install make g++ libsctp-dev lksctp-tools  iproute2 sudo snap install cmake --classic  # install ueransim git clone https://github.com/aligungr/UERANSIM cd UERANSIM make

6. Setup gNB

UERANSIM состоит из двух частей gNB и UE. Файлы конфигурации gNB, относящиеся к Open5GS, находятся в URANSIM/config/open5gs-gnb.yaml. Мне нужно настроить linkIp, ngapIp, gtpIp и amfConfigs: адрес в файле конфигурации. linkIp, ngapIp, gtpIp настроены с IP-адресом server2 (IP-адрес работающего сервера UERANSIM). amfConfigs: адрес — это IP-адрес server1 (IP-адрес работающего сервера Open5GC). gNB можно запустить с помощью сценария UERANSIM/build/nr-gnb, используя файл конфигурации UERANSIM/config/open5gs-gnb.yaml.

# configure with server1 IP linkIp: 172.31.13.37  # gNB's local IP address for Radio Link Simulation (Usually same with local IP) ngapIp: 172.31.13.37  # gNB's local IP address for N2 Interface (Usually same with local IP) gtpIp: 172.31.13.37   # gNB's local IP address for N3 Interface (Usually same with local IP)  # list of AMF address information # configure with server2 IP amfConfigs:   - address: 172.31.10.16     port: 38412      ---  # start gnb with open5gc-gnb.yaml config file ./build/nr-gnb -c config/open5gs-gnb.yaml  # output UERANSIM v3.2.4 [2021-11-07 04:39:11.240] [sctp] [info] Trying to establish SCTP connection... (172.31.10.16:38412) [2021-11-07 04:39:11.243] [sctp] [info] SCTP connection established (172.31.10.16:38412) [2021-11-07 04:39:11.244] [sctp] [debug] SCTP association setup ascId[4] [2021-11-07 04:39:11.244] [ngap] [debug] Sending NG Setup Request [2021-11-07 04:39:11.245] [ngap] [debug] NG Setup Response received [2021-11-07 04:39:11.245] [ngap] [info] NG Setup procedure is successful

7. Setup UE

Файлы конфигурации UERANSIM UE, относящиеся к Open5GS, находятся в UERANSIM/config/open5gs-ue.yaml. Мне нужно настроить gnbSearchList с IP-адресом server2 (IP-адрес работающего сервера UERANSIM). UE можно запустить с помощью сценария UERANSIM/build/nr-ue, используя файл конфигурации UERANSIM/config/open5gs-ue.yaml. Еще одна вещь, на которую следует обратить внимание, это то, что open5gs-ue.yaml определяет конфигурации устройств UE. Мы использовали эти конфигурации при регистрации подписчика в ядре Open5GC 5G через WebUI.

# ue device config # IMSI number of the UE. IMSI = [MCC|MNC|MSISDN] (In total 15 digits) supi: 'imsi-901700000000001' # Mobile Country Code value of HPLMN mcc: '901' # Mobile Network Code value of HPLMN (2 or 3 digits) mnc: '70'  # Permanent subscription key key: '465B5CE8B199B49FAA5F0A2EE238A6BC' # Operator code (OP or OPC) of the UE op: 'E8ED289DEBA952E4283B54E88E6183CA' # This value specifies the OP type and it can be either 'OP' or 'OPC' opType: 'OPC' # Authentication Management Field (AMF) value amf: '8000' # IMEI number of the device. It is used if no SUPI is provided imei: '356938035643803' # IMEISV number of the device. It is used if no SUPI and IMEI is provided imeiSv: '4370816125816151' # IMEISV number of the device. It is used if no SUPI and IMEI is provided imeiSv: '4370816125816151'  ---  # List of gNB IP addresses for Radio Link Simulation # configure with server2 IP gnbSearchList:   - 172.31.13.37    ---  # start gnb with open5gc-ue.yaml config file sudo ./build/nr-ue -c config/open5gs-ue.yaml  # output UERANSIM v3.2.4 [2021-11-07 04:50:08.323] [nas] [info] UE switches to state [MM-DEREGISTERED/PLMN-SEARCH] [2021-11-07 04:50:08.323] [rrc] [debug] New signal detected for cell[1], total [1] cells in coverage [2021-11-07 04:50:08.323] [nas] [info] Selected plmn[901/70] [2021-11-07 04:50:08.323] [rrc] [info] Selected cell plmn[901/70] tac[1] category[SUITABLE] [2021-11-07 04:50:08.323] [nas] [info] UE switches to state [MM-DEREGISTERED/PS] [2021-11-07 04:50:08.323] [nas] [info] UE switches to state [MM-DEREGISTERED/NORMAL-SERVICE] [2021-11-07 04:50:08.323] [nas] [debug] Initial registration required due to [MM-DEREG-NORMAL-SERVICE] [2021-11-07 04:50:08.324] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig] [2021-11-07 04:50:08.324] [nas] [debug] Sending Initial Registration [2021-11-07 04:50:08.324] [nas] [info] UE switches to state [MM-REGISTER-INITIATED] [2021-11-07 04:50:08.324] [rrc] [debug] Sending RRC Setup Request [2021-11-07 04:50:08.325] [rrc] [info] RRC connection established [2021-11-07 04:50:08.325] [rrc] [info] UE switches to state [RRC-CONNECTED] [2021-11-07 04:50:08.325] [nas] [info] UE switches to state [CM-CONNECTED] [2021-11-07 04:50:08.330] [nas] [debug] Authentication Request received [2021-11-07 04:50:08.333] [nas] [debug] Security Mode Command received [2021-11-07 04:50:08.333] [nas] [debug] Selected integrity[2] ciphering[0] [2021-11-07 04:50:08.339] [nas] [debug] Registration accept received [2021-11-07 04:50:08.339] [nas] [info] UE switches to state [MM-REGISTERED/NORMAL-SERVICE] [2021-11-07 04:50:08.339] [nas] [debug] Sending Registration Complete [2021-11-07 04:50:08.339] [nas] [info] Initial Registration is successful [2021-11-07 04:50:08.339] [nas] [debug] Sending PDU Session Establishment Request [2021-11-07 04:50:08.339] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig] [2021-11-07 04:50:08.542] [nas] [debug] Configuration Update Command received [2021-11-07 04:50:08.551] [nas] [debug] PDU Session Establishment Accept received [2021-11-07 04:50:08.551] [nas] [info] PDU Session establishment is successful PSI[1] [2021-11-07 04:50:08.560] [app] [info] Connection setup for PDU session[1] is successful, TUN interface[uesimtun0, 10.45.0.5] is up.

8. Test 5G Network

При запуске UERANSIM UE он создает сеанс PDU и сетевой интерфейс TUN uesimtun0. Вы можете найти IP-адрес сеанса PDU и адрес TUN в журналах UE (интерфейс TUN [uesimtun0, 10.45.0.3]). Мы можем использовать интернет-соединение UE из другого приложения через этот интерфейс TUN. Например, если мы используем простую команду curl с интерфейсом uesimtun0 (например, curl —interface uesimtun0 «https://httpbin.org/get«), она направит пакет в Интернет через базовую сеть Open5GC 5G, как показано на следующей диаграмме.

Кроме того, UERANSIM предоставляет инструмент UERANSIM/build/nr-binder для привязки внешних приложений к интерфейсу TUN. Мы можем привязать интерфейс uesimtun0 практически к любому приложению, используя UERANSIM/build/nr-binder. Ниже приведен способ использования UERANSIM/build/nr-binder с различными приложениями. Я тестировал его с приложениями ping, curl, docker, python.

# ping command bind direcly to uesimtun0 ping -I uesimtun0 google.com  # curl command bind direcly to uesimtun0  curl \   --interface uesimtun0 \   -X GET "https://httpbin.org/get"    ---   # bind curl command via nr-binder # nr-binder use pdu session ip ./nr-binder 10.45.0.3 curl -X GET "https://httpbin.org/get"  ---   # run docker container via nr-binder ./nr-binder 10.45.0.3 docker run -d -p 9091:80 kennethreitz/httpbin  ---  # bind python application via nr-binder # request.pyt is simple python program which send http GET request ./nr-binder 10.45.0.3 python3 request.py  ---  # bind shell scrip via nr-binder # httpbin.sh is simple shell script which runs httpbin as docker container ./nr-binder 10.45.0.3 ./httpbin.sh

9. Image Streaming via 5G Core

В приведенной выше настройке интерфейс UERANSIM UE TUN (uesimtun0) может быть доступен только через работающую машину UERANSIM. Это означает, что мы можем подключиться к базовой сети 5G только с работающей машины UERANSIM. В моем сценарии я хотел передавать изображения на TCP-сервер (который находится в общедоступном Интернете) от внешнего клиента (который находится за пределами сервера URANSIM) через базовую сеть 5G. Примером сценария может быть потоковая передача изображений с устройства виртуальной реальности на сервер потоковой передачи через базовую сеть 5G. Чтобы добиться этой настройки, я применил обходной путь, используя прокси-сервер TCP. Ниже приведена архитектура установки.

Служба UERANSIM работает на сервере с публичным IP 3.237.100.204. Служба потоковой передачи изображений работает на сервере с общедоступным IP-адресом 100.27.44.103. Я запустил прокси-сервер TCP на порту 7654 внутри сервера 3.237.100.204. Служба потоковой передачи изображений работает на порту 7654 на сервере 100.27.44.103. Прокси-сервер TCP перенаправляет входящие пакеты с 3.237.100.204:7654 на 100.27.44.103:7654. Я использовал следующую команду docker для запуска прокси-сервера TCP.

# tcp proxy server forward the incoming traffic of port 7654 to 100.27.44.103:7654 docker run -d -it --rm -p 7654:7654 hpello/tcp-proxy 100.27.44.103 7654

Эта команда докера добавляется в сценарий оболочки с именем tcp-proxy.sh и запускается с помощью nr-binder. Затем весь трафик прокси-сервиса TCP проходит через базовую сеть 5G.

# run tcp proxy server with nr-biner # all traffic of tcp proxy server will goes through the 5g core sudo ./nr-binder 10.45.0.13 ./tcp-proxy.sh

Ниже приведен простой сервер потоковой передачи изображений, написанный на Python. Он прослушивает порт 7654 и входящие изображения, сохраненные в вызываемом каталоге. Я запустил потоковый сервер с помощью команды python3 stream-server.py.

import socket import time  s = socket.socket() host = socket.gethostname() port = 7654 s.bind((host, port)) s.listen(5) while True:     c, addr = s.accept()     print('Got connection from', addr)      # create image file     n = 'out/' + str(int(time.time())) + '.png'     f = open(n,'wb')      # recive image     l = c.recv(1024)     while (l):         f.write(l)         l = c.recv(1024)     f.close()     print('Done Receiving')     c.close()

Ниже приведено клиентское приложение потоковой передачи изображений, написанное с помощью Python. Он считывает образ с диска и отправляет потоки на прокси-сервер TCP, который работает на сервере 3.237.100.204:7654. Затем прокси-сервер перенаправляет потоки изображений на сервер потоковой передачи изображений 100.27.44.103:7654 через базовую сеть 5G. Я запустил клиент потоковой передачи с помощью команды python3 stream-client.py.

import socket  # client socker s = socket.socket() host = '3.237.100.204' port = 7654 s.connect((host, port))  print('Connected to server')  # send image f = open('hak.png','rb') l = f.read(1024) while (l):     s.send(l)     l = f.read(1024) print('Sent image')  # image sent close connection f.close() s.close

Reference

  1. https://www.rajarshipathak.com/2020/01/beginners-guide-for-5g-core-network-architecture.html

  2. https://www.grandmetric.com/2017/06/05/5g-core-network-a-short-overview/

  3. https://open5gs.org/open5gs/docs/guide/01-quickstart/

  4. https://www.free5gc.org/installations/stage-3-sim-install/

  5. https://nickvsnetworking.com/my-first-5g-core-open5gs-and-ueransim/

  6. https://www.viavisolutions.com/en-us/5g-architecture

  7. https://frontjang.info/entry/Open5GC-UERANSIM-%EC%9C%BC%EB%A1%9C-5G-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-1-%EA%B5%AC%EC%84%B1-%EB%B0%8F-%EC%84%A4%EC%B9%98


ссылка на оригинал статьи https://habr.com/ru/post/708738/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *