Open5GSUeRANSim2:对安装在同一个VM上的OPEN5GS和UERANSIM进行配置和抓取wireshark报文

参考链接:

Configuring SCTP & NGAP with UERANSIM and Open5GS on a Single VM for the Open5GS & UERANSIM Series
https://www.youtube.com/watch?v=INgEX5L5fkE&list=PLZqpS76PykwIoqMdUt6noAor7eJw83bbp&index=5

Configuring RRC with UERANSIM and Open5GS on a Single VM for the Open5GS & UERANSIM Series
https://www.youtube.com/watch?v=ZM9jOCdElMs&list=PLZqpS76PykwIoqMdUt6noAor7eJw83bbp&index=6

Wireshark Dissector for Radio Link Simulation Protocol from UERANSIM
https://github.com/louisroyer/RLS-wireshark-dissector

OPEN5GS和UERANSIM目前状态:
现在OPEN5GS和UERANSIM安装在同一个virtual machine,并且没有修改默认配置。所以两者目前都使用的都是回环的local ip。

安装并运行wireshark

首先安装wireshark,wireshark的版本要求至少在3.0之上(包含nr-rrc dissector等)。
抓取RAN和AMF建立NGAP连接的报文。

sudo apt-get install wireshark
sudo wireshark &

选择Loopback:lo口抓取log
在这里插入图片描述
当UERANSIM的gnode模块通过…/build/nr-gnb -c open5gs-gnb.yaml连接到open5GS的AMF,可以看到有如下的SCTP和NGAP报文。AMF的ip是127.0.0.5,gnode的ip是127.0.0.1. AMF回复NGSetupResponse,表示NGAP连接成功建立。
在这里插入图片描述

配置SCTP和NGAP的参数

默认参数

OPEN5GS和UeRANSim装在同一个VM上,下面是软件默认配置。使用的网段是127.0.0.0/24,说明默认只有最有一个byte配置模块IP。
本文关注的是AMFD,即AMF的deamon进程/服务;以及GNB和UE。
GNB和UE通过建立在RLS(Radio Link Simulator)之上的RRC交互。 由于UeRANSIm只是GNB的模拟,不是真实的RAN,所以没有RLC,以及之下的MAC和PHYS层。UeRANSIm的RRC建立在自定义的RLS之上。
AFMD和GNB通过建立在SCTP(使用端口28412)的NGAP协议交互。

在Open5GS中,默认IP配置:
AMFD为127.0.0.5,
SMFD为127.0.0.4
UPFD为127.0.0.7
NRFD为127.0.0.10
AUSF为127.0.0.11
UDMD为127.0.0.12
UDRD为127.0.0.20
在这里插入图片描述

查看AMF配置

按照下图,AMF的配置文件是/etc/open5gs/amf.yaml
在这里插入图片描述
AMF的配置文件内容见下图,从NGAP配置可以看到N2口的AMF侧端点IP为127.0.0.5。由于NGAP建立在SCTP(默认端口38412)之上,所以不需要配置port。
SBI server配置为 ip:port =127.0.0.5:7777, 表示AMF和其他核心网模块交互的IP和端口。
图中最下面,AMF的network_name 为Open5GS,amf_name为open5GS_amf0

在这里插入图片描述

修改Gnb配置

修改GNB和UE的参数配置。首先将默认配置拷贝到gnb1.yaml和ue1.yaml中。
在这里插入图片描述
修改gnb1.yaml文件中,linkIP,ngapIP,gtpIP的值。默认都是127.0.0.1.
抓包的时候所有从gnb出去的报文都是127.0.0.1,不方便分析。
参考下图分别修改为127.0.0.101,127.0.0.100,127.0.0.200.
AMF的配置是127.0.0.5,和Open5GS的AMF默认配置相同,所以维持不变,不用修改。
在这里插入图片描述
修改后通过修改后的gnb1.yaml启动GNB,wireshark过滤127.0.0.5 ip。
可以看到GNB通过127.0.0.100成功连接AMF建立NGAP连接。
在这里插入图片描述

添加RLS dissector至wireshark (查看UE和GNB之间RRC交互)

UeRANSim 模拟UE和Gnode,没有空口的L2 L1层。所以RRC之下是自定义的RLS (Radio Link Simulator)层。
需要针对RLS添加RLS dissector,以查看UE和GNB之间的RRC消息。

确认wireshark plugin目录

在这里插入图片描述

拷贝RLS dissector至wireshark plugin目录

sudo git clone https://github.com/louisroyer/RLS-wireshark-dissector.git
在这里插入图片描述
重新进入wireshark可以看到RLS协议已经安装。
在这里插入图片描述

添加UE信息至Open5GS

首先将默认配置拷贝到ue1.yaml中. 下图是UE的配置文件。根据此文件的参数,将UE信息添加到Open5GS的webUI中。
根据ue1.yaml中的SUPI来填写IMSI。
SUPI是分配给每个用户并在3GPP规范TS 23.501中定义的5G全局唯一订阅永久标识符(SUPI)。SUPI值在5G Core中的USIM和UDM / UDR功能中提供。

在这里插入图片描述
打开open 5GS web UI. 点击’ADD A SUBSCRIBER’.
在这里插入图片描述
在create Subscriber窗口里只需要按照ue1的IMSI添加进去即可。其他都和ue1.yaml的配置相同,维持不变即可。
在这里插入图片描述
添加成功后,如下图:
在这里插入图片描述

修改UE配置

由于GNB的linkip在之前修改为127.0.0.101. 所以ue1.yaml的gnbSearchList修改为127.0.0.101
在这里插入图片描述

SUPI对应标准

见3GPP TS23.501 的5.9.2节。和 3GPP TS23.003 的2.2节。SUPI的其中一种类型就是IMSI,在UeRANSIm和Open5GS中配置的就是IMSI。
在这里插入图片描述
在这里插入图片描述

第一次UE连接GNB的日志

分别使用下图中命令先后拉起GNB和UE。
虽然log显示PDU session成功建立。
但是UE的log有如下报错:
[error] TUN interface could not be setup. Permission denied. Please run the UE with ‘sudo’
在这里插入图片描述

第二次以root权限连接UE和GNB

在这里插入图片描述
UeRANSim的tunnel interface
通过ip addr命令,可以看到成功建立了Tunnel Interface uesimtum0,ip为10.45.0.4.
在这里插入图片描述
从wireshark抓包,过滤nr-rrc,NGAP报文。下面两张图分别是在RRC和NGAP上传送的NAS Registration request消息。
RRC是127.0.0.1和127…0.0.101之间的ip连接,NGAP是127.0.0.100和127.0.0.5之间的ip连接。
在这里插入图片描述
在这里插入图片描述

UU空口的控制面协议栈

通过wireshark报文可以看到UeRANSim UU口的协议栈和真正UU口协议栈的差异。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/221695.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python | Flask测试:发送post请求的接口测试

HTTP/1.1 协议规定的 HTTP 请求方法有OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 几种。POST通常用来向服务端提交数据,主要用于提交表单、上传文件。 HTTP 协议是以ASCII码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为…

微信小程序管理奖品(抽奖)

话不多说直接上代码 功能&#xff1a; 使用微信小程序vant-weapp 组件库中的upload组件以及两个input框 最后拿到的值是一个数组对象的形式 主要代码如下&#xff1a; wxml <view wx:for"{{prizes}}" wx:key"index" class"inputs"><i…

IDEA 黑色主题很难看到鼠标

“控制面板”—搜索“鼠标”关键字—选择“更改鼠标设置” 参考&#xff1a; IDEA 黑色主题很难看到鼠标

【实战】如何在Docker Image中轻松运行MySQL

定义 使用Docker运行MySQL有许多优势。它允许数据库程序和数据分离&#xff0c;增强了数据的安全性和可靠性。Docker Image的轻便性简化了MySQL的部署和迁移&#xff0c;而Docker的资源隔离功能确保了应用程序之间无冲突。结合中间件和容器化系统&#xff0c;Docker为MySQL提供…

Android Canvas状态save与restore,Kotlin

Android Canvas状态save与restore&#xff0c;Kotlin private fun f1() {val bitmap BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val canvas Canvas(bitmap)val paint Paint(Paint.ANTI_ALIAS_FLAG)paint.color Color.RED…

常用的电源芯片有哪些?怎么分类

科技的发展也带动了电源的发展&#xff0c;因此需要更多的电源管理芯片。说到电源管理芯片&#xff0c;作为工程师最熟悉的芯片之一。所谓电源管理芯片&#xff0c;就是负责电子设备系统中电能的转换、分配、检测等电能管理的芯片。主要负责识别CPU电源范围&#xff0c;产生相应…

盘古大模型AI生态加速营圆满结营,携手创业者繁荣AI创新生态

“ 共创、共享、共赢 ” 12月15日&#xff0c;华为云加速器——盘古大模型AI生态加速营&#xff08;以下简称“加速营”&#xff09;圆满结营&#xff0c;并举办了面向创投圈层的结营开放日活动。在场的500多位华为云加速器校友、创业者、投资人和媒体朋友&#xff0c;共同…

【RTOS学习】源码分析(信号量和互斥量 事件组 任务通知)

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《RTOS学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f353;信号量和互斥量&#x1f345;创建&#x1f345;Take&#x1f345;Give &#x…

听GPT 讲Rust源代码--src/tools(16)

File: rust/src/tools/rust-analyzer/crates/ide-completion/src/completions/use_.rs rust-analyzer是一个基于Rust语言的IntelliSense引擎&#xff0c;用于提供IDE自动补全、代码导航和其他代码编辑功能。在rust-analyzer的源代码中&#xff0c;rust/src/tools/rust-analyzer…

算法基础之约数之和

约数之和 核心思想&#xff1a; #include<iostream>#include<algorithm>#include<vector>#include<unordered_map>using namespace std;typedef long long LL;const int N 110 , mod 1e97;int main(){int n;cin>>n;unordered_map<int,int&…

本地文件内容搜索神器AnyTXT Searcher如何搭建与远程访问

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况&#xff0c;异地办公或者不在公司&#xff0c;想找…

node.js mongoose schemaTypes

目录 官方文档 简介 SchemaType 示例 配置SchemaType规则 通用规则 特定schemaType规则 String Number Date Map monggose会根据shcemaType将文档值转换成指定的类型 官方文档 Mongoose v8.0.3: SchemaTypes 简介 SchemaTypes是在使用Mongoose时&#xff0c;用于…

IDEA中如何创建各种类型的java工程

如果你的工程下面的module没有互相依赖&#xff0c;就相当于是一个小的项目&#xff0c;idea版本不同&#xff0c;细节可能不同 1、普通的Java 工程 在工程上&#xff0c;右键- New - Module&#xff0c;如下&#xff1a; 指明Java工程的名称及使用的JDK版本&#xff1a; 创建…

简单几步完成SVN的安装

介绍以及特点 SVN&#xff1a;Subversion&#xff0c;即版本控制系统。 1.代码版本管理工具 2.查看所有的修改记录 3.恢复到任何历史版本和已经删除的文件 4.使用简单上手快&#xff0c;企业安全必备 下载安装 SVN的安装分为两部分&#xff0c;第一部分是服务端安装&…

开启创意之旅:免费、开源的噪波贴图(noise texture)生成网站——noisecreater.com详细介绍

在当今数字创意领域&#xff0c;噪波贴图&#xff08;Noise Texture&#xff09;是游戏渲染、游戏开发、美术设计以及影视制作等行业不可或缺的艺术素材之一。为了满足广大创作者的需求&#xff0c;noisecreater.com应运而生&#xff0c;成为一款免费、开源的噪波贴图生成工具。…

手机怎么设置每年公历或农历生日提醒?生日提醒设置小妙招

生日是一个人在一年中比较特殊的日子之一&#xff0c;人们通常希望能够在这一天得到亲朋好友的祝福和庆祝。然而&#xff0c;随着人们生活节奏的加快&#xff0c;很多人表示自己很容易忘记他人的生日&#xff0c;导致不能够及时送出祝福和礼物。如果经常忘记亲朋好友的生日&…

神经网络学习小记录76——Tensorflow2设置随机种子Seed来保证训练结果唯一

神经网络学习小记录76——Tensorflow2设置随机种子Seed来保证训练结果唯一 学习前言为什么每次训练结果不同什么是随机种子训练中设置随机种子 学习前言 好多同学每次训练结果不同&#xff0c;最大的指标可能会差到3-4%这样&#xff0c;这是因为随机种子没有设定导致的&#x…

SpringBoot访问外部接口的常见方式

文章目录 SpringBoot访问外部接口模拟服务接口RestTemplatepom.xmlRestTemplateConfigClientTestRestTemplateController.java结果 WebClientpom.xmlClientTestWebClientController.java结果 HttpClientpom.xmlClientTestHttpClientController.java结果 OkHttppom.xmlClientTes…

c jpeg 理论霍夫曼 DC AC表,c程序实现正向逆向转换

此4张表是理论表&#xff0c;不是针对某张图片的特定表。如编码程序不统计生成某图片的专用霍夫曼表&#xff0c;应该也可用理论表代用编码。 1.亮度DC表 左边第一列是二进制位数&#xff0c;就是对此位数编码 中间一列是生成比特流的位数&#xff0c;右边是生成的比特流。 …

大数据时代,如何基于机密虚拟化技术构建数据安全的“基石”

云布道师 2023 年 10 月 31 日-11 月 2 日&#xff0c;2023 云栖大会在中国杭州云栖小镇举行&#xff0c;阿里云弹性计算产品专家唐湘华、阿里云高级安全专家刘煜堃、蚂蚁集团高级技术专家肖俊贤三位嘉宾在【云服务器 & 计算服务】专场中共同带来题为《大数据时代&#xf…