目录

1. 配置

2. 使用

2.1 基础用法-多用户接入

2.2 命令行界面的使用

2.3 数据平面的使用

2.4 TUN接口的使用

2.4.1 通过./nr-binder工具使用TUN接口

3. Ueransim特性

附录


我们参考Ueransim官网提供的资料,该教程使用的是下载源代码或克隆存储库的方式,与使用docker的方式大同小异:

cd ~
git clone https://github.com/aligungr/UERANSIM

其他Linux发行版可能在一般情况下都能工作(ubantu16.04及更高版本)但不幸的是,Windows不支持,因为微软没有实现SCTP协议。您需要一个虚拟机来解决问题。

注意:Windows子系统for Linux (WSL)也不能用作虚拟机。同样,基于guest - to - host NAT的网络配置在Windows上也可能无法工作。然而,VirtualBox与桥接适配器设置应该工作在Windows上很好。

1. 配置

配置详情页见ueransim配置官网,或者详见oai提供的ueransim.yaml文件

进入~/UERANSIM/build文件夹可以看到如下文件:

  • nr-gnb | 5G gNB可执行文件(RAN)
  • nr-ue | 5G终端可执行文件
  • nr-cli |用于5G gNB和UE的CLI工具
  • nr-binder |一个UE的互联网连接的工具。
  • libdevbnd |是nr-binder的动态库

Nr-binder和libdevbnd只有将终端连接到互联网同时绑定到任意应用程序时才需要,通常不使用。

环境配置:

  • 确保设置中的所有节点(UE、gNB和核心网络)都可以通过网络相互连接,并且某些防火墙规则不会阻止节点之间的5G通信。
  • gNB和AMF之间使用SCTP协议,默认端口号为38412。gNB和UPF之间使用GTP协议,指定端口号为2152。gNB和UE之间使用RLS协议,端口号为4997。

2. 使用

2.1 基础用法-多用户接入

nr-ue -c myconfig.yaml -n 10

这样,10个终端将在该流程中启动和运行。IMSI号为每台终端加1(从配置文件中设置的IMSI号开始)。您也可以通过命令行覆盖配置文件中的IMSI参数:

nr-ue -c myconfig.yaml -i imsi-286010000000001

或者

nr-ue -c myconfig.yaml -n 10 -i imsi-286010000000001

2.2 命令行界面的使用

我们为gNB和ue提供nr-cli工具。

注意:UE和gNB的CLI命令不同。例如,在gNB中可以检查AMF连接状态,或者在UE中可以触发注销。本文件解释了更多细节。

使用方式:nr-cli <node-name>

这里需要将<node-name>替换为UE或gNB名称。例如:

nr-cli imsi-001010000000001

您可以通过以下方式查询当前环境中的UE和gnb:

$ nr-cli --dumpimsi-001010000000001
imsi-001010000000002
imsi-001010000000003

执行nr-cli <node-name>命令后,如果给定的节点存在并在环境中运行,则会打开一个交互式shell。现在可以为该节点执行进一步的命令,例如

user@pc:~/UERANSIM/build$ ./nr-cli UERANSIM-gnb-001-01-1
--------------------------------------------------------------------------------------------
$ commands
amf-info | Show some status information about the given AMF
amf-list | List all AMFs associated with the gNB
info     | Show some information about the gNB
status   | Show some status information about the gNB
ue-count | Print the total number of UEs connected the this gNB
ue-list  | List all UEs associated with the gNB
--------------------------------------------------------------------------------------------

您可以进一步调查子命令的用法和帮助信息,例如

$ amf-info --help
$ ue-list --version

如果你想直接执行命令,而不是使用交互式shell,你也可以使用-e/--exec选项。

nr-cli imsi-001010000000001 --exec "status"

需要更多详细信息,请查看 nr-cli --help

2.3 数据平面的使用

UERANSIM提供了一个TUN接口,以便使用UE的互联网连接。对于v2.2.1版本,自动应用所有TUN配置。

为每个PDU会话建立一个TUN接口。成功建立PDU会话后,终端自动执行如下操作:

  1. 完成TUN接口的创建。
  2. 配置路由表、IP规则和IP路由。

注意:路由配置可能与当前设置冲突。如果不需要自动路由配置(第2项),可以使用nr-ue——no-route-config启动UE。但是TUN接口总是在PDU会话建立后创建(第1项)。

注意:在同一台计算机上使用UE和核心网通常会出现问题。UERANSIM和核心网请使用两台不同的机器。(您可以使用虚拟机或非虚拟机。)

2.4 TUN接口的使用

如果您想手动使用该接口,只需将TCP/IP套接字绑定到uesimtunX接口即可。

ping -I uesimtun0 google.com

或者

sudo curl --interface uesimtun0 google.com

但是,我们也提供了我们的实验性的./nr-binder工具,以方便地利用UE的连接。

2.4.1 通过./nr-binder工具使用TUN接口

您可以使用./nr-binder工具将uesimtunX接口绑定到几乎任何应用程序。

注意:使用。/nr-binder必须启用自动路由配置。例如,如果你想使用nr-binder功能,不要使用no-routing-config启动UE。

注意:./nr-binder是实验性的,可能不适用于某些应用程序。

使用方式:./nr-binder {PDU-SESSION-IP-ADDRESS} {COMMAND} {ARGS}

例如

./nr-binder 10.45.0.2 curl google.com

这样,curl命令将使用UE的IP地址10.45.0.2与google连接。(这里10.45.0.2是您要使用的PDU会话的IP地址。您可能需要将其替换为您自己的PDU会话地址。)

你也可以使用网络浏览器,比如Firefox。例如:

./nr-binder 10.45.0.2 firefox

运行此命令后,所有在Firefox中发生的网络流量,都将使用UE的internet连接。

注意:在运行上述命令之前,请关闭所有Firefox进程。

3. Ueransim特性

概述

UERANSIM实现了以下技术:

  1. 5G独立终端(3GPP接入)
  2. 5G独立RAN (CU gNB)

从基本意义上讲,UE可以被认为是移动电话,gNodeB可以被认为是基站。

接口

UE/RAN视角有3个主界面:

  • 控制接口(RAN和AMF之间)
  • 用户界面(介于RAN和UPF之间)
  • 无线接口(UE和RAN之间)

控制平面

控制平面有2个接口:

  1. NAS控制UE
  2. NGAP控制RAN。

NAS的特性

NAS层实现如下特性:

  • 主认证和密钥协议
  • 安全模式控制
  • 识别
  • 通用终端配置更新
  • 初始和定期注册
  • 终端和网络发起注销
  • UE主动建立PDU会话
  • 终端和网络发起PDU会话释放
  • 服务请求

以下特性尚未实现:

  • e-Call不活动,通知
  • PDU会话授权、修改

对于NAS安全:

  • 实现了所有的完整性和加密算法。(ia1, ia2, ia3, ea1, ea2, ea3)
  • 所有主身份验证和密钥协商过程都被实现。(5g aka, eap aka ')

识别:

  • 目前还没有实现NAI和加密SUCI。所有其他身份类型都可以使用(IMSI, IMEI, IMEISV)

注册:

  • 实现了初始注册、移动更新注册、定期注册。
  • 暂未实施紧急登记。

NGAP特性:

NGAP层实现了以下特性:

  • PDU会话资源设置
  • PDU会话资源释放
  • 初始上下文设置
  • UE上下文发布(NG-RAN节点启动和AMF节点启动)
  • 终端环境修改
  • UE初始消息
  • 分页
  • 下行NAS传输
  • 上行NAS传输
  • NAS未交付指示
  • 重新路由NAS请求
  • NG设置
  • 错误提示

用户平面:

我们的RAN实现了用户平面的GTP协议。目前只支持IPv4。

无线接口:

UERANSIM不实现RRC层以下的5G无线电协议。5G无线电部分是通过端口4997的UDP协议模拟的。因此,PHY、MAC、RLC、PDCP在UERANSIM中没有实现。然而,主要的RRC程序在UERANSIM中可用。

附录

如果您无法连接到互联网,请确保满足以下条件:

  • UERANSIM和核心网配置成功。
  • PDU会话建立成功。
  • 给nr-binder的IP地址与相关IP PDU Session的IP地址完全相同。

注意:UERANSIM中的路由配置是实验性的,它不是该软件的主要功能。UERANSIM只保证创建TUN接口,但IP路由配置不保证服务于任何目的。如本文档所述,您应该将应用程序直接绑定到TUN接口,以便利用UE的internet连接。

UERANSIM 配置和使用相关推荐

  1. OAI网络切片三切片配置

    文章目录 1. 机器网络配置 2.核心网配置 3.ueransim配置 4.核心网与主机B路由构建 启动 关闭 问题解决 问题1 问题2 先看 基于之前已经创建的三个核心网,我们现在需要将服务器A与主 ...

  2. free5GC — 部署端到端 5G 实验网络

    目录 文章目录 目录 free5GC UE/RAN 模拟器 部署 free5GC 核心网 部署环境 free5GC AIO VM 前期准备 执行部署 部署控制面网元 部署用户面网元 启动网元 测试验证 ...

  3. 飞腾-麒麟-ARM-5GC-UERANSIM

    飞腾麒麟系统部署free5GC目录 组网图 Q&A 编译时访问go代理超时 mongodb启动失败 安装gtp5g失败 编译upf报错 运行free5GC测试脚本gtp5g报错 运行网元提示配 ...

  4. UERANSIM的使用

    GitHub - aligungr/UERANSIM: Open source 5G UE and RAN (gNodeB) implementation. 上面是UERANSIM的源代码网址.UER ...

  5. 【OpenAirInterface】分立部署核心网与容器化ueransim仿真基站

    分立部署OAI核心网与容器版ueransim 1.任务说明 2.部署前提 3.部署过程 3.1网络配置 3.2核心网启动 (此为错误发现过程) 3.3启动容器化ueransim(此为错误发现与解决过程 ...

  6. 分立部署Ueransim和5GCN_v1.5.0原理及实现

    目录 1. 宿主机及虚拟机的互通 1.1 互通 1.2 虚拟机静态ip配置 2. 5GC部署 2.1 PC1启动核心网 2.2 核心网docker-compose文件的网络配置 public_net ...

  7. nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

    nginx配置http.https访问 要设置https访问需要从对应的云厂商申请证书,并下载Nginx证书到服务器. 我这里从阿里云申请了免费的域名证书,然后将证书放置在服务器的/etc/ssl/. ...

  8. 在kotlin companion object中读取spring boot配置文件,静态类使用@Value注解配置

    在kotlin companion object中读取配置文件 静态类使用@Value注解配置 class Config {@Value("\${name}")fun setNam ...

  9. 大数据学习01——配置虚拟机节点相关网络

    1.配置mac地址和ip (1)更改适配器设置 找到这个后开始设置windows中的网络连接 (2)接着对三台虚拟机的mac地址和ip进行设置 1.mac地址设置 进入linux节点中的这个位置进行设 ...

最新文章

  1. php设置at定时,laravel定时任务
  2. data augmentation 数据增强方法总结
  3. oracle database 12cr2 使用 dbms_stat 采集统计信息
  4. C# 操作并口类,并口通信
  5. MongoDB初探系列之二:认识MongoDB提供的一些经常使用工具
  6. 读《大道至简》第四章有感
  7. python做var模型_【Python金融量化】VaR系列(五):Copula模型估计组合VaR
  8. bug-AttributeError: ‘NoneType‘ object has no attribute ‘append‘
  9. 关于MARATHON和容器的端口映射
  10. SQL Prompt快捷键
  11. Pointnet网络结构与代码解读
  12. Python学习笔记(六) python-nmap下载及搭建
  13. 系统崩溃,TCP协议栈
  14. mysql mtq_mysql重点词汇 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
  15. 2021.3.14学习随笔
  16. 朱丹老师课程学习笔记:8、职场晋升-没人带怎么办?这样搜资料的小白也能变大神
  17. 00:编程入门--了解计算机
  18. c语言windows.h头文件详解
  19. java 发送邮件 ip被网易拉黑,发信IP或者发件人地址被网易加入了黑名单,原因如下及解决方法!...
  20. 各大公司数据结构与算法面试题解答(一)

热门文章

  1. 人工智能、深度学习、机器学习常见面试题41~55
  2. 人体解析(Human Parse)开源数据集整理
  3. 数据分析——用户流失分析
  4. src中的 “/”、“./”与“../”
  5. Java Web基础概述
  6. Tuscany插件的安装
  7. html中怎么制作太阳月亮交替,CSS3 简单的地球/太阳/月亮动画
  8. C++统计文件夹中文件个数
  9. android图片特效处理之锐化效果
  10. 刺刀还在,理想已经滑落——“中国黑客”10年嬗变