Open5GS实战:如何用开源协议栈快速搭建5G核心网测试环境

Open5GS实战:如何用开源协议栈快速搭建5G核心网测试环境

最近在折腾5G相关的开发,发现很多朋友对搭建一个本地的5G核心网测试环境感到头疼。市面上的商业方案要么太贵,要么太封闭,对于想自己动手研究协议、开发应用或者测试设备的人来说,门槛实在不低。其实,开源社区早就有了成熟的解决方案,比如Open5GS——一个用C语言实现的、支持4G LTE和5G SA/NSA的开源核心网项目。它最大的优势就是轻量、透明、可定制,特别适合在单台Ubuntu服务器上快速部署,让你能在自己的实验室里跑起一套完整的5G核心网。

我自己在几台不同的机器上部署过Open5GS,从老旧的笔记本到云服务器都试过。整个过程踩过不少坑,也积累了一些能让部署更顺畅的经验。这篇文章就想把这些实战经验系统地分享出来,目标很明确:帮你用最短的时间,最少的折腾,搭建一个能实际跑起来的5G核心网测试环境。我们会从最基础的环境准备讲起,一步步完成核心网组件、数据库、管理界面的安装与配置,最后还会聊聊怎么用这个环境进行一些基本的测试和验证。无论你是做协议开发的工程师,还是想学习5G架构的学生,或者只是对移动网络背后技术感到好奇的极客,这套环境都能给你提供一个绝佳的动手平台。

1. 环境准备与系统规划

在开始安装任何软件之前,花点时间规划一下你的系统环境是值得的。一个清晰、干净的起点能避免后续很多莫名其妙的问题。Open5GS官方推荐在Ubuntu 22.04 LTS上部署,这个版本的长期支持能保证系统的稳定性和软件包的兼容性。当然,其他较新的Linux发行版理论上也能运行,但Ubuntu的社区支持和软件仓库最为完善,遇到问题也最容易找到解决方案。

我建议使用一台独立的物理机或者虚拟机来部署,尽量避免在已经运行了复杂服务的机器上操作。如果使用虚拟机,确保分配足够的资源:至少4核CPU、8GB内存和50GB磁盘空间。内存是关键,因为Open5GS的多个组件和MongoDB数据库会同时运行。网络配置方面,你需要一个固定的IP地址(无论是内网还是公网),因为后续基站的配置需要指向这个地址。如果你的机器有多个网卡,提前确定好要用哪个接口,记下它的名称(比如eth0ens33)。

提示:如果你在云服务器上部署,注意安全组或防火墙规则需要放行后续会用到的多个端口,包括S1AP接口的默认端口36412、WebUI的9999端口,以及MongoDB的27017端口(如果允许外部访问的话)。

开始之前,先更新系统并安装一些基础工具:

sudo apt update
sudo apt upgrade -y
sudo apt install -y curl wget gnupg software-properties-common net-tools

这些工具在后续的安装和调试中都会用到。接下来,我们分步安装Open5GS所依赖的各个组件。

2. 核心组件安装与配置

Open5GS的架构遵循3GPP标准,将核心网功能分解为多个独立的网络功能(NF)。在安装时,这些功能会以多个系统服务的形式运行。整个安装过程可以概括为三个主要步骤:安装数据库、安装核心网软件包、安装Web管理界面。我们按顺序来。

2.1 安装与配置MongoDB

Open5GS使用MongoDB作为其订阅者数据、会话信息和配置的存储后端。虽然理论上可以换成其他数据库,但MongoDB的文档模型非常适合存储半结构化的网络数据,而且Open5GS的代码和配置都是围绕它设计的。

为什么是MongoDB? 在移动核心网中,用户数据(如IMSI、密钥、签约信息)和会话状态需要被多个网络功能(如HSS、UDM)快速访问和更新。MongoDB的灵活性和水平扩展能力使其成为处理这类动态数据的合适选择。Open5GS的HSS(归属用户服务器)和UDM(统一数据管理)组件都直接与MongoDB交互。

安装MongoDB 6.0社区版(这是当前Open5GS兼容的稳定版本):

# 导入MongoDB的GPG公钥
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor

# 添加MongoDB的APT仓库
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

# 更新软件包列表并安装
sudo apt update
sudo apt install -y mongodb-org

安装完成后,启动MongoDB服务并设置为开机自启:

sudo systemctl start mongod
sudo systemctl enable mongod

检查服务状态,确保它正在运行:

sudo systemctl status mongod

你应该能看到类似active (running)的状态信息。默认情况下,MongoDB只监听本地回环地址(127.0.0.1),这对于Open5GS在同一台机器上访问是安全的。如果你计划将数据库部署在单独的服务器上,需要修改/etc/mongod.conf中的bindIp设置,并配置相应的认证和防火墙规则。

2.2 安装Open5GS核心软件包

Open5GS项目维护了自己的PPA(个人软件包存档),这使得在Ubuntu上安装变得非常简单。这个PPA包含了预编译的二进制包和自动生成的systemd服务文件。

添加Open5GS的PPA并安装:

sudo add-apt-repository ppa:open5gs/latest -y
sudo apt update
sudo apt install open5gs -y

这个命令会安装Open5GS的所有组件,包括:

  • AMF (Access and Mobility Management F
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值