当前位置: 首页 > article >正文

基于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网络的关键流程,包括:


http://www.kler.cn/news/293200.html

相关文章:

  • linux基础IO——用户缓冲区——概念深度探索、IO模拟实现
  • Faker在pytest中的应用
  • [数据集][目标检测]翻越栏杆行为检测数据集VOC+YOLO格式512张1类别
  • 鹏哥C语言自定义笔记重点(44-)
  • sqlite数据插入效率
  • Ubuntu安装android studio(压缩包版)
  • 想入门网络安全却不知道怎么入手,看这一篇就够了!
  • 如何在Mac中修改pip的镜像源
  • Pyspark中的ROW对象使用
  • 基础学习之——Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
  • #驱动开发
  • 什么是RPC
  • 使用SVD(奇异值分解)进行降维的奇妙之旅
  • STM32外设SPI(串行通信),W25Q64(8Mb)
  • 软件测试面试(平安保险)
  • 容器化技术在非结构化数据中台的部署研究
  • 父类是给java项目SpringCloud微服务 中SpringBoot解决继承父类后 maven标红
  • java下一页怎么实现的
  • 消息中间件都有哪些
  • MongoDB-副本集-Replica Sets
  • 设计模式 | 原型模式
  • 数学建模强化宝典(14)Fisher 最优分割法
  • 电脑硬盘数据丢失了怎么恢复?简单实用的硬盘数据找回的方法
  • JS生成二维码QRCode代码
  • EI会议推荐-第二届大数据与数据挖掘国际会议(BDDM 2024)
  • 地平线SuperDrive首秀:千人研发投入,出场即「比肩第一梯队」
  • C++ STL-List容器概念及应用方法详解
  • 如何优化Oracle数据库的SQL性能?
  • MySQL5.7.36之高可用架构部署-MHA-VIP漂移
  • 【无标题】一起学习LeetCode热题100道(67/100)