梦应逍遥 发表于 2024-9-11 04:39:55

基于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 容器提供了一个隔离的情况,确保应用程序在不同的操纵系统和硬件情况中保持一致的行为。
)https://i-blog.csdnimg.cn/direct/654cbd3168db48d29d9d4194d759e39b.pnghttps://i-blog.csdnimg.cn/direct/ef3f35b71f2d41cc82ed0c0839b19a7a.pnghttps://i-blog.csdnimg.cn/direct/a94154f4071b47eaa1b373563a0e71e1.png
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)
https://i-blog.csdnimg.cn/direct/4d2b2a6091584da193eacb5361580b77.png
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模仿核心网的内核模块,无论何种摆设方案,都必须安装
https://i-blog.csdnimg.cn/direct/6f87632a83b144469dd22b0f44233954.png
2.2 容器化摆设free5gc模仿核心网

https://i-blog.csdnimg.cn/direct/7051067bfb5f4fb8aff3abc8b60da099.png
容器化的摆设方式:
1. 下载Free5GC Compose项目
2. 修改构建脚本以应对国内网络题目
3. 构建Free5GC Docker镜像
https://i-blog.csdnimg.cn/direct/a6773f0353a64b0e86da7ef13b5745f4.png
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会话简历,数据传输
https://i-blog.csdnimg.cn/direct/5fb752fb2e574f36bfc7f213c449aaf0.png
https://i-blog.csdnimg.cn/direct/9706d2385bf4473abaa4d8ac673fda60.png
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网络的组网图大致如下:
https://i-blog.csdnimg.cn/direct/cd59cea5ef664872be91062bc40a72d5.png
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实际数据业务模仿

https://i-blog.csdnimg.cn/direct/082cb86f86ac471c9ee5a78c14c45670.png
5.6 总结

以上步骤详细介绍了如何通过Free5GC和UERANSIM模仿5G网络的关键流程,包括:
https://i-blog.csdnimg.cn/direct/69f4b78cef3d446aa10ca3062203684a.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 基于free5gc模仿5G核心网和UERANSIM模仿5G用户装备的模仿5G网络情况的摆设