# 5gc-testbed **Repository Path**: router_gao/5gc-testbed ## Basic Information - **Project Name**: 5gc-testbed - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-04 - **Last Updated**: 2025-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 5GC 测试平台 这是一个基于4台Ubuntu虚拟机的5G核心网(5GC)测试平台,使用Open5GS和UERANSIM软件实现完整的5G网络功能。 ## 架构概览 ``` VM1 (192.168.1.206) - Open5GS 核心网功能 ├── AMF (接入和移动性管理功能) ├── SMF (会话管理功能) ├── UDM (统一数据管理) ├── UDR (统一数据存储) ├── PCF (策略控制功能) └── NRF (网络存储库功能) VM2 (192.168.1.219) - Open5GS UPF (用户面功能) VM3 (192.168.1.221) - UERANSIM gNodeB VM4 (192.168.1.205) - UERANSIM UE ``` ## 网络拓扑 - **VM1**: 192.168.1.206 - 5GC核心网功能 (AMF, SMF, UDM, UDR, PCF, NRF) - **VM2**: 192.168.1.219 - 用户面功能 (UPF) - **VM3**: 192.168.1.221 - 无线接入网 (gNodeB) - **VM4**: 192.168.1.205 - 用户设备 (UE) ## 快速开始 ### 1. 环境准备 ```bash # 确保所有VM可访问 ssh ubuntu@vm1 "echo 'VM1 connected'" ssh ubuntu@vm2 "echo 'VM2 connected'" ssh ubuntu@vm3 "echo 'VM3 connected'" ssh ubuntu@vm4 "echo 'VM4 connected'" ``` ### 2. 启动5GC平台 ```bash # 使用自动化启动脚本 ./scripts/startup-5gc.sh # 或手动启动各组件 # VM1 - 核心网功能 ssh ubuntu@vm1 "sudo systemctl start open5gs-*" # VM2 - UPF ssh ubuntu@vm2 "sudo systemctl start open5gs-upfd" # VM3 - gNodeB ssh ubuntu@vm3 "cd ~/UERANSIM && nohup ./build/nr-gnb -c config/gnb.yaml > gnb.log 2>&1 &" # VM4 - UE ssh ubuntu@vm4 "cd ~/UERANSIM && nohup ./build/nr-ue -c config/ue.yaml > ue.log 2>&1 &" ``` ### 3. 验证连接 ```bash # 运行健康检查 ./scripts/health-check.sh # 检查UE注册状态 ssh ubuntu@vm4 "tail -10 ~/UERANSIM/ue.log | grep 'Registration'" ``` ## 配置说明 ### IP地址配置 所有配置文件中的IP地址都已添加清晰注释,便于理解: - **VM1 (192.168.1.206)**: 5GC核心网功能 - **VM2 (192.168.1.219)**: 用户面功能 - **VM3 (192.168.1.221)**: gNodeB - **VM4 (192.168.1.205)**: UE ### 关键配置修复 1. **端口冲突解决**: AMF使用7778端口,SMF使用7777端口 2. **PFCP关联**: SMF和UPF正确配置连接 3. **切片配置**: 简化为SST=1,移除SD字段 4. **UE认证**: 完整配置所有必需字段 ## 文档 ### 测试平台设置 - [5GC测试平台架构](docs/testbed-setup/5gc-testbed-architecture.md) - 完整的测试平台架构图和组件关系 - [网络配置指南](docs/testbed-setup/network-config.md) - 网络拓扑和连接配置 - [组件配置指南](docs/testbed-setup/component-config.md) - 各组件详细配置说明 - [启动指南](docs/testbed-setup/startup-guide.md) - 启动步骤和验证方法 - [SSH设置指南](docs/testbed-setup/ssh-setup-guide.md) - SSH密钥认证设置 - [UERANSIM安装指南](docs/testbed-setup/ueransim-installation-guide.md) - UERANSIM软件安装 ### 故障排除 - [故障排除指南](docs/troubleshooting/troubleshooting.md) - 常见问题解决方案 - [VM1故障排除](docs/troubleshooting/troubleshooting-vm1.md) - 核心网功能故障排除 - [VM2故障排除](docs/troubleshooting/troubleshooting-vm2.md) - UPF故障排除 - [VM3故障排除](docs/troubleshooting/troubleshooting-vm3.md) - gNodeB故障排除 - [VM4故障排除](docs/troubleshooting/troubleshooting-vm4.md) - UE故障排除 ### 5GC接口分析 - [5GC接口文档](docs/5gc-interfaces/README.md) - 5GC接口详细说明和捕获分析 - [接口数据包捕获](docs/5gc-interfaces/captures/) - 控制面和用户面数据包文件 ### 5GC流程文档 - [5GC流程概述](docs/5gc-procedures/README.md) - 5G核心网流程总览 - [英文版流程文档](docs/5gc-procedures/english-version/) - 英文版5G流程详细说明 - [中文版流程文档](docs/5gc-procedures/chinese-version/) - 中文版5G流程详细说明 ## 脚本工具 - `scripts/startup-5gc.sh` - 自动化启动脚本 - `scripts/shutdown-5gc.sh` - 自动化关闭脚本 - `scripts/health-check.sh` - 健康检查脚本 - `scripts/copy-ueransim-configs.sh` - 配置文件部署脚本 - `tests/run-all-tests.sh` - 端到端测试脚本 ## 配置模板 配置文件位于 `config/` 目录: - `amf-vm1.yaml` - AMF配置 (VM1) - `smf-vm1.yaml` - SMF配置 (VM1) - `upf-vm2.yaml` - UPF配置 (VM2) - `gnb-vm3.yaml` - gNodeB配置 (VM3) - `ue-vm4.yaml` - UE配置 (VM4) ## 当前状态 ✅ **已完成功能**: - 5GC核心网功能正常运行 - gNodeB与AMF成功连接 - UE成功注册并建立PDU会话 - 端到端数据路径完整 - 所有配置文件已更新并添加IP地址注释 - 完整的5GC接口数据包捕获 (N1, N2, N3, N4, SBI, N6) - 控制面和用户面流量分析 ## 限制说明 ### 未实现的5GC接口 由于当前测试平台架构限制,以下5GC接口**无法捕获**: #### ❌ **N12接口 (AMF ↔ AUSF)** - **协议**: HTTP/2 (SBI) - **用途**: 认证和授权 - **缺失原因**: AUSF (认证服务器功能) 未部署 - **影响**: 无法捕获完整的认证流程 #### ❌ **N13接口 (UDM ↔ AUSF)** - **协议**: HTTP/2 (SBI) - **用途**: 认证用订阅者数据检索 - **缺失原因**: AUSF未部署 - **影响**: 无法捕获认证相关的订阅者数据交互 ### 当前测试平台组件 ✅ **已部署组件**: - AMF, SMF, UDM, UDR, PCF, NRF (VM1) - UPF (VM2) - gNodeB (VM3) - UE (VM4) ❌ **缺失组件**: - AUSF (认证服务器功能) - SEAF (安全锚点功能) ### 可捕获的SBI接口 当前测试平台可以捕获以下SBI接口: - **N8** (AMF ↔ UDM) - 订阅数据 - **N10** (SMF ↔ UDM) - 订阅数据 - **N11** (AMF ↔ SMF) - 会话管理 - **N7** (SMF ↔ PCF) - 策略控制 - **N15** (AMF ↔ PCF) - 策略控制 - **N27** (UDM ↔ UDR) - 数据管理 ### 扩展建议 如需捕获N12/N13接口,需要: 1. 在VM1或新VM上部署AUSF 2. 在Open5GS中配置认证功能 3. 更新UE配置以使用AUSF认证 ## 故障排除 ### 常见问题 1. **服务启动失败**: 检查配置文件语法和端口占用 2. **网络连接问题**: 验证IP地址和防火墙设置 3. **UE注册失败**: 确认UE已在Open5GS数据库中注册 4. **PDU会话建立失败**: 检查SMF-UPF PFCP关联 ### 快速诊断 ```bash # 检查所有服务状态 ./scripts/health-check.sh # 检查网络连接 ssh ubuntu@vm1 "ping -c 3 192.168.1.219" ssh ubuntu@vm3 "ping -c 3 192.168.1.206" ssh ubuntu@vm4 "ping -c 3 192.168.1.221" ``` ## 许可证 本项目采用MIT许可证 - 详见 [LICENSE](LICENSE) 文件。 ## 贡献 欢迎提交问题报告和功能请求。请确保在提交代码前运行测试。 ## 联系方式 如有问题,请通过以下方式联系: - 提交GitHub Issue - 发送邮件至项目维护者