5G核心网SBA架构实战:基于Open5GS搭建3节点测试环境

5G核心网SBA架构实战:基于Open5GS搭建3节点测试环境 5G核心网SBA架构实战基于Open5GS搭建3节点测试环境引言为什么需要动手搭建5G核心网测试环境在5G技术快速发展的今天服务化架构(SBA)已成为5G核心网的标准设计范式。与传统的4G EPC架构不同SBA将网络功能拆分为独立的服务通过HTTP/2协议进行通信实现了更高的灵活性和可扩展性。但对于大多数开发者而言这些概念往往停留在理论层面缺乏直观的实践体验。这正是本文要解决的问题——我们将使用开源的Open5GS项目从零开始搭建一个包含AMF、SMF、UPF三个核心网功能的测试环境。通过这个实践过程您不仅能深入理解5G SBA架构的设计理念还能掌握实际部署中的关键配置技巧。这个环境特别适合用于协议开发人员测试5G核心网接口交互学生和研究学者学习5G网络原理企业团队评估5G核心网技术方案1. 环境准备与基础配置1.1 硬件与系统要求搭建5G核心网测试环境对硬件有一定要求建议配置如下组件最低配置推荐配置CPU4核8核及以上内存8GB16GB存储50GB100GB SSD网络1Gbps网卡10Gbps网卡操作系统方面我们选择Ubuntu 20.04 LTS作为基础平台因其对5G开源软件的兼容性最佳。执行以下命令更新系统sudo apt update sudo apt upgrade -y sudo apt install -y git cmake python3-pip libssl-dev1.2 依赖组件安装Open5GS依赖于多个开源组件需要提前安装# 安装MongoDB用于存储用户数据 sudo apt install -y mongodb wget git sudo systemctl start mongodb # 安装libmicrohttpd sudo apt install -y libmicrohttpd-dev # 安装GTP-U内核模块 sudo apt install -y linux-modules-extra-$(uname -r) sudo modprobe gtp提示如果您的系统无法找到gtp模块可能需要手动编译安装。可以参考Linux内核文档中的GTP-U驱动部分。2. Open5GS核心网组件部署2.1 源码编译与安装首先从GitHub获取Open5GS最新源码git clone https://github.com/open5gs/open5gs cd open5gs git submodule update --init编译安装核心组件meson build --prefixpwd/install ninja -C build sudo ninja -C build install2.2 关键配置文件说明Open5GS的配置文件采用YAML格式主要需要关注以下几个文件install/etc/open5gs/amf.yaml- AMF(接入和移动性管理功能)配置install/etc/open5gs/smf.yaml- SMF(会话管理功能)配置install/etc/open5gs/upf.yaml- UPF(用户面功能)配置以AMF配置为例需要修改的关键参数包括amf: sbi: addr: 192.168.0.100 port: 7777 ngap: addr: 192.168.0.100 guami: - plmn_id: mcc: 001 mnc: 01 amf_id: region: 2 set: 1 pointer: 0 tai: - plmn_id: mcc: 001 mnc: 01 tac: 1 security: integrity_order : [ NIA2 ] ciphering_order : [ NEA0 ] network_name: full: Open5GS2.3 多节点部署架构我们的3节点测试环境架构如下------------- ------------- ------------- | AMF节点 |-----| SMF节点 |-----| UPF节点 | | (192.168.0.100)| | (192.168.0.101)| | (192.168.0.102)| ------------- ------------- -------------每个节点需要单独配置并运行对应的服务# 在AMF节点 ./install/bin/open5gs-amfd -c install/etc/open5gs/amf.yaml # 在SMF节点 ./install/bin/open5gs-smfd -c install/etc/open5gs/smf.yaml # 在UPF节点 ./install/bin/open5gs-upfd -c install/etc/open5gs/upf.yaml3. UERANSIM模拟器配置与测试3.1 UERANSIM安装与配置UERANSIM是目前最活跃的开源5G UE和gNB模拟器我们可以用它来测试我们的核心网git clone https://github.com/aligungr/UERANSIM cd UERANSIM make配置gNB模拟器(config/open5gs-gnb.yaml)gnb: plmnList: - mcc: 001 mnc: 01 nci: 0x000000010 idLength: 32 tac: 1 linkIp: 192.168.0.200 # gNB IP地址 ngapIp: 192.168.0.200 gtpIp: 192.168.0.200 amfConfigs: - address: 192.168.0.100 # AMF IP地址 port: 384123.2 端到端测试流程首先启动所有核心网服务# 按顺序启动 ./install/bin/open5gs-amfd ./install/bin/open5gs-smfd ./install/bin/open5gs-upfd 启动gNB模拟器./build/nr-gnb -c config/open5gs-gnb.yaml启动UE模拟器./build/nr-ue -c config/open5gs-ue.yaml验证注册流程# 查看AMF日志 tail -f /var/log/open5gs/amf.log # 预期输出示例 [AMF] UE[imsi-001010000000001] Registration Request [AMF] Authentication Request sent to UE [AMF] Authentication Response received [AMF] Security Mode Command sent [AMF] Registration Accept sent4. 高级功能与故障排查4.1 网络切片配置示例5G的核心特性之一是网络切片我们可以在SMF配置中添加切片配置slice: - sst: 1 sd: 0x000001 session: - type: IPv4 apn: internet qos: index: 9 arp: priority_level: 8 pre_emption_capability: 1 pre_emption_vulnerability: 1对应的UE配置也需要添加切片信息supi: imsi-001010000000001 mcc: 001 mnc: 01 sst: 1 sd: 0000014.2 常见问题排查指南问题1UE无法注册检查AMF与gNB之间的NGAP连接是否正常验证UE的IMSI是否已在核心网中配置检查防火墙设置确保38412端口开放问题2PDU会话建立失败确认SMF与UPF之间的N4接口工作正常检查UPF的GTP-U接口配置是否正确验证DNS解析是否正常工作问题3数据传输速率低检查UPF的吞吐量配置使用iftop等工具监控GTP-U隧道流量确认没有启用不必要的加密算法影响性能4.3 性能监控与优化Open5GS提供了Prometheus监控接口我们可以配置Grafana仪表板来监控系统状态启用Prometheus导出器# 在每个组件的配置文件中添加 metrics: addr: 0.0.0.0 port: 9090关键监控指标包括AMF注册UE数量、N2消息处理延迟SMF活跃PDU会话数、N4接口延迟UPF吞吐量、数据包处理延迟5. 实际应用场景扩展5.1 与开源RAN集成我们的测试环境可以进一步与开源RAN项目如OAI或srsRAN集成构建完整的5G端到端系统。关键集成点包括配置OAI gNB与Open5GS AMF的NGAP连接调整定时器参数匹配实际RAN设备特性优化QoS参数满足空口传输需求5.2 容器化部署方案对于需要快速部署的场景我们可以使用Docker容器化方案FROM ubuntu:20.04 RUN apt update apt install -y git meson ninja-build RUN git clone https://github.com/open5gs/open5gs WORKDIR /open5gs RUN git submodule update --init RUN meson build --prefix/open5gs/install ninja -C build CMD [/open5gs/install/bin/open5gs-amfd]使用docker-compose编排多容器部署version: 3 services: amf: build: . command: /open5gs/install/bin/open5gs-amfd ports: - 38412:38412 smf: build: . command: /open5gs/install/bin/open5gs-smfd depends_on: - amf upf: build: . command: /open5gs/install/bin/open5gs-upfd depends_on: - smf cap_add: - NET_ADMIN5.3 生产环境部署建议虽然本文搭建的是测试环境但若考虑生产部署还需要注意高可用性部署多个AMF实例并使用负载均衡安全性启用TLS加密所有服务间通信日志管理集成ELK栈进行集中日志分析性能优化根据实际负载调整各组件线程数通过这个Open5GS测试环境开发者可以深入理解5G SBA架构的实际运作机制为后续的5G核心网开发和研究工作打下坚实基础。