基于free5gc模拟5G核心网和UERANSIM模拟5G用户设备的模拟5G网络环境的部署搭建方法总结和解析。
简介:下文介绍了基于free5gc模拟5G核心网和UERANSIM模拟5G用户设备的模拟5G网络环境的部署搭建方法,并且通过完成相关配置,
简单实现测试5G用户设备接入核心网的注册流程、去注册流程,模拟了一个用户设备通过模拟核心网进行实际的数据业务的过程。
这样一套模拟5G环境,可以有效缓解研究者所面临的没有实际5G环境可用以及实际环境过于复杂等问题,为5G安全研究提供一个可行的途径。
1. 安装前准备工作
1.1 确认Linux内核版本
使用命令:uname -a 确定虚拟机内核版本
使用以下命令更新虚拟机内核版本
sudo apt install 'linux-image-5.0.0-23-generic'
sudo apt install 'linux-headers-5.0.0-23-generic
在 Linux 系统中,sudo apt install
命令用于从软件仓库中安装软件包。
linux-image
安装新的内核版本,允许系统使用该内核启动并运行。linux-headers
为编译与该内核版本相关的模块提供必要的头文件。
1.2 通过apt安装部分基础支持组件
sudo apt install git-all
sudo apt-get install curl
sudo apt install make
sudo apt -y install gcc
sudo apt -y install g++
sudo apt -y install autoconf
sudo apt -y install libtool
sudo apt -y install pkg-config
sudo apt -y install libmnl-dev
sudo apt -y install libyaml-dev
这些命令安装了一套常见的开发工具和库,用于设置编译环境、版本控制、网络管理以及配置文件解析。它们广泛应用于软件开发和构建过程,特别是在编译从源代码构建的软件时。
1.3 安装go语言环境
通过命令安装go语言环节,安装完成后,配置环境变量。
1.4 安装docker环境
通过官方安装脚本安装docker,
安装完成后,运行命令docker --version
验证
之后需要安装docker-compose,通过以下命令完成:
再之后,我们需要更换docker源,默认源下载速度过慢,会导致之后部署时出现下载超时错误:
之后重启docker服务即可完成docker的部署:
完成后,需要将当前普通用户加入docker用户组,docker用户组在上述安装时自动创建,无需手动创建:
此步目的在于防止后续free5gc容器化部署时,到make base
步骤,出现以下错误:
(
Docker 是一个开源的平台,用于开发、发布和运行应用程序。通过使用 Docker,开发者可以将应用程序及其依赖项打包在一个轻量级、可移植的容器中,并在任何支持 Docker 的环境中运行。Docker 容器提供了一个隔离的环境,确保应用程序在不同的操作系统和硬件环境中保持一致的行为。
)
1.5 安装cmake
!此处装的cmake,需要3.17及以上版本,否则后续UERANSIM环境搭建会出错。
CMake 是一个开源的跨平台构建系统,用于自动化软件的编译、测试和打包。它特别适合管理大型复杂项目,尤其是在涉及多个平台(如 Windows、Linux、macOS)和编译器(如 GCC、Clang、MSVC)时。CMake 通过读取项目的配置文件(通常是 CMakeLists.txt
)生成适合目标平台的构建脚本,如 Makefile 或 Visual Studio 的项目文件。
CMakeLists.txt 的基本结构:
每个使用 CMake 的项目都需要一个 CMakeLists.txt
文件,它定义了如何构建项目。一个简单的 CMakeLists.txt
可能包含以下内容
# 声明使用的 CMake 版本
cmake_minimum_required(VERSION 3.10)
# 项目名称和版本号
project(MyProject VERSION 1.0)
# 指定使用的 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 添加可执行文件
add_executable(MyExecutable main.cpp)
# 链接外部库(例如查找 OpenSSL 并链接)
find_package(OpenSSL REQUIRED)
target_link_libraries(MyExecutable OpenSSL::SSL)
1.6 安装mongodb
注:此组件为free5gc的数据库组件,为free5gc独立部署的必须步骤
MongoDB 是一个面向文档的 NoSQL 数据库系统,它主要用于存储和处理大量的非结构化数据。与传统的关系型数据库系统不同,MongoDB 不使用表格和行的形式来存储数据,而是使用类似 JSON 的 BSON(Binary JSON)格式来存储文档。
MongoDB 在 Free5GC 独立部署中的作用主要体现在数据存储、配置管理、日志记录和性能优化等方面。它的文档存储模型、灵活的查询语言、强大的索引和聚合功能、以及支持高可用性和扩展性的特性,使其成为管理 Free5GC 数据和配置的理想选择。这些功能使得 MongoDB 能够有效地支持 Free5GC 的高性能和高可用性需求。
1.7 安装yarn
注:此组件为free5gc的webui支持组件,为free5gc独立部署的必须步骤
YARN(Yet Another Resource Negotiator)是 Hadoop 生态系统中的一个资源管理和调度框架。它主要用于管理计算集群中的资源分配,以支持分布式数据处理任务。YARN 是 Hadoop 2.x 及更高版本的一部分,它负责管理集群资源,并协调各种应用程序的资源需求。以下是 YARN 的详细解释以及它对 Free5GC 独立部署的作用。
YARN 作为 Hadoop 的资源管理和调度框架,主要负责集群资源的分配、调度和监控。在 Free5GC 的独立部署中,YARN 可以用于有效地管理计算资源,处理大规模数据任务,并提供高可用性和扩展性。这使得 Free5GC 能够在需要大规模数据处理和分析时,利用 YARN 提供的资源管理和调度能力,以优化性能和可靠性。
2. free5gc容器化部署
2.1 构建GTP5G模块
!注意构建GTP5G模块时,需要用普通用户构建,否则后续使用时会出错
注:gtp5g模块是free5gc模拟核心网的内核模块,无论何种部署方案,都必须安装
2.2 容器化部署free5gc模拟核心网
容器化的部署方式:
1. 下载Free5GC Compose项目
2. 修改构建脚本以应对国内网络问题
3. 构建Free5GC Docker镜像
4. 构建Docker容器
5. 运行Free5GC核心网
3.UERANSIM模拟设备安装
UERANSIM 是一个开源项目,旨在模拟用户设备(UE)和无线接入网络(RAN)环境,特别是5G网络中的UE和gNodeB(gNB,5G基站)。这个工具主要用于测试和验证5G核心网(如Free5GC)的功能,而不需要实际的物理设备。通过UERANSIM,开发者可以创建虚拟的UE和gNB来与5G核心网通信,进行端到端的网络测试。
作用:模拟UE(User Equipment)和模拟gNB(gNodeB,5G基站)
组成和架构:UE模拟器和gNB模拟器
工作流程:
网络启动,UE注册和认证,PDU会话简历,数据传输
4. 全套环境配置并运行
1 启动Free5GC环境
2 UERANSIM配置设置:
获取虚拟机网卡地址,获取AMF的IP地址,修改UERANSIM中的gnb
配,注册虚拟UE到Free5GC:
3 启动UERANSIM模拟设备:
启动模拟基站(gNB),启动模拟用户设备(UE),验证连接
通过正确配置Free5GC的网络信息(如AMF IP)和UERANSIM的配置文件,可以成功模拟5G基站和用户设备的行为,进行5G网络功能的验证与测试。这种模拟方式为研究人员和开发人员提供了无需物理硬件的5G网络测试环境。
5. 模拟5g网络基本使用演示
5.1 free5gc模拟核心网基本信息查看
上述环境搭建完成,并且启动free5gc容器后,我们可以通过以下命令查看free5gc单个容器的一些状态信息:
docker inspect <容器名(如amf)>
可以通过命令,查询出所有容器及其对应的ip地址,查询出所有容器及其对应的mac地址,进入到各个容器的交互界面
5.2 free5gc模拟核心网基本网络结构分析
free5gc模拟环境搭建完成后,其会虚拟出一个网桥,以及数个和网元对应的虚拟端口,网元通过这些端口和网桥、gnb连接,可以安装bridge-utils工具,以使用brctl
命令查看相关信息。
在此基础上经过一定分析后,可画出当前free5gc+ueransim模拟5g网络的组网图大致如下:
5.3 UERANSIM模拟gNB建立
通过以下命令即可建立起虚拟的gnb,并且可以在前台看到相关的建立信息。
cd ~/UERANSIM/build
./nr-gnb -c ../config/free5gc-gnb.yaml
5.4 UERANSIM模拟ue建立与注册、去注册
1.通过命令即可建立出虚拟的UE设备,同时该命令还会将UE设备在核心网处注册。
cd ~/UERANSIM/build
sudo ./nr-ue -c ../config/free5gc-ue.yaml
(命令的目的就是到对应文件夹当中执行对应可执行文件自动化建立UE和gnb)
2. 抓包分析UE注册交互:
使用Wireshark抓包工具,在UE注册过程中捕获通过NGAP协议传输的信令包。通过过滤NGAP协议,可以详细分析UE与网络注册时的信令交互,帮助了解5G网络的工作原理和调试流程。
3. 去注册流程
使用./nr-cli imsi-<UE的IMSI>
命令进入UE的命令行界面,并使用deregister
命令执行UE的去注册操作。Wireshark可用来抓取去注册过程中发送的信令包,帮助验证去注册流程的正确性。
5.5 Free5GC实际数据业务模拟
5.6 总结
以上步骤详细介绍了如何通过Free5GC和UERANSIM模拟5G网络的关键流程,包括: