free5GC+UERANSIM

使用arp、ifconfig、docker inspect及网桥brctl 相关命令,收集容器IP及Mac地址相关信息,可以梳理出UERANSIM+free5GC模拟环境组网,如下图所示:

如上图所示:环境基于ubuntu 18.04 VMware虚机部署,5GC网元分别部署在虚机的docker容器中。5GC各模拟网元模拟RAN 通过虚拟网桥进行数据交换。物理机上的VMware 虚拟网卡作为DN(互联网节点)通过虚拟网桥与容器中的UPF对接。

(需注意:确定Linux内核版本,必须要5.0.0-23-generic 或者 5.4.0之后的版本)

内核问题需要补充:确定Linux内核版本,必须要5.0.0-23-generic 或者 5.4.0之后的版本

ubuntu 22.04的内核有些是5.15.0-150-generic,有些是5.4.0-150-generic,导致在编译的过程中,总会报各种错误;而linux中关于内核降级非常复杂,因此建议一开始确定内核版本,或者直接采用ubuntu 18.04,其内核版本为3.x.x,虽然版本也不正确,但是linux中内核升级相对方便,只需要补充一下source.list,然后直接在线下载即可,不需要修改grub文件。原因很简单,Linux自动采用高版本的内核。如果不放心,建议修改grub文件,然后在开机过程中进入高级模式,方便调试。

sudo apt install 'linux-image-5.0.0-23-generic'
sudo apt install 'linux-headers-5.0.0-23-generic'

而当数据依赖包在从github进行下载时,可能会出现连接失败或者连接超时等问题,则可采用以下方案进行解决:


git config --global --unset http.proxy 
git config --global url."https://ghproxy.com/https://github.com".insteadOf "https://github.com"

该语句在执行中会报错git clone -b v0.2.0 https://github.com/PrincOwO/gtp5g.git,但是在执行过程中会出现问题。

解决方法:

git clone -b v0.2.0 https://github.com/PrinzOwO/gtp5g.git

5G核心网架构:

5G网络由众多网元构成,每个网元都有特定的功能,UE为用户设备,(R)AN为(无线)接入网络,DN为数据网络,红框内为核心网中的网元集合。

5G核心网采用基于服务的系统架构,在部署上采用虚拟机和容器的方式,采用软件定义网络(SDN)和网络功能虚拟化(NFV)的技术,将控制与转发分离,技术成本大幅降低,使网络更加开放,且具有编程能力。

5G核心网中拥有众多的网元,如AMF、UDM、NRF等,共同承担起核心网的功能,其中与用户注册管理关系最密切的网元是AMF网元,从图中也可看出,AMF网元与基站通过N2口进行通信。

用户注册管理:

用户注册管理是用于用户和网络之间进行注册和注销,在网络建立上下文的过程,用户想要获取网络提供的业务必须先向网络进行注册。

用户注册管理有四个场景:

1 用户初次注册网络

2 用户周期性注册网络

3 用户位置变更引起的网络重新注册 

4 紧急业务引发的网络注册

5G终端初始注册接入核心网及会话建立流程:

5G终端初始注册接入核心网并建立会话的流程主要有以下几个步骤:

1 UE开机,连接到5G基站,发送5G网络注册请求,基站在该过程中透明,只会转发用户的注册请求到5G核心网。

2 在收到用户的注册请求时,因为是初始注册,核心网没有用户的上下文信息,所以就会向用户发送身份验证请求。

3 用户在验证了验证请求的真实性后,会向核心网发送身份验证信息,再次发送注册请求到核心网。

4 核心网收到用户的身份验证信息后,对用户的信息进行验证鉴权,如果通过,就返回注册接收消息,并且发送用户上下文初始化请求,根据用户的回应设置用户的上下文。

5 设置完成后,用户会发送PDU会话建立请求。

6 核心网接受了PDU建立请求后,设置相应的PDU资源。

7 用户可以与核心网进行通信,开始发送和接收数据,进行业务访问。

5G AKA协议核心原理:

参考TS33.501、TS33.102 5G AKA认证协议核心是基于鉴权向量AV的产生与传输、MAC的验证、RES的认证,其核心简要概括如下:

核心网 AV的产生

F1-F5算法通常采用Milenage算法。

计算消息认证码(MAC):MAC = F1K(SQN || RAND || AMF);

计算期望的认证应答(XRES):XRES = F2K (RAND);

网络认证令牌(AUTN):AUTN = (SQN⊕AK )|| AMF || MAC;

AV:AV=RAND||XRES||CK||IK||AUTN;

核心网发起认证时将AV传递到 UE。

UE 对于核心网AV的认证:

验证SQN是否在正确范围内

消息序列号(SQN):(SQN⊕AK )⊕AK

预期的计算消息认证码(XMAC):F1K(SQN || RAND || AMF);

UE认证的核心网即MAC与XMAC之间的比对。

核心网对于UE RES的认证:

核心网在生成AV的同时会记录XRES,UE认证MAC的同时会将RES返回核心网进行认证。

核心网认证UE核心即 RES与XRES之间的比对。

认证模型中K是如何来的?

5G 各网元密钥采用层次化的派生体系

每一个层级的密钥都有对应的KDF密钥导出函数进行推导,如K->Kausf 的推导,Kausf->Kseaf 的推导,具体参见《TS 33.501 5G 系统安全架构和过程》的 Figure 6.2.2-1:网络节点的5G密钥分发和密钥导出方案 。

至于UE 与核心网双向认证的模型中的K,应该就是本密钥层次模型中的顶层PermanentKey。

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

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

相关文章

【Python】Unindent does not match any outer indentation level

这个问题一般是代码缩进问题导致的,规范代码缩进格式即可,如图: 这个问题是因为报异常的那行代码下的方法缩进问题导致,def calendar_f(): 方法名前面多了一个空格。 删除空格即可解决此问题。

【python】python爱心代码【附源码】

一、实现效果: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 二、完整代码: import math import random import threading import time from math import sin, cos, pi, log from tkinter import * import re# 烟花相关设置 Fireworks [] m…

Fink CDC数据同步(五)Kafka数据同步Hive

6、Kafka同步到Hive 6.1 建映射表 通过flink sql client 建Kafka topic的映射表 CREATE TABLE kafka_user_topic(id int,name string,birth string,gender string ) WITH (connector kafka,topic flink-cdc-user,properties.bootstrap.servers 192.168.0.4:6668…

天拓四方:边缘计算网关功能、特点与应用举例

传统的数据处理方式面临网络延迟、带宽限制和安全风险等问题。为了解决这些问题,边缘计算技术应运而生,而边缘计算网关作为其核心组件,正发挥着越来越重要的作用。边缘计算网关位于数据源和云数据中心之间。它具备数据采集、协议转换、数据处…

视觉SLAM十四讲学习笔记(一)初识SLAM

目录 前言 一、传感器 1 传感器分类 2 相机 二、经典视觉 SLAM 框架 1 视觉里程计 2 后端优化 3 回环检测 4 建图 5 SLAM系统 三、SLAM 问题的数学表述 四、Ubuntu20.04配置SLAM十四讲 前言 SLAM: Simultaneous Localization and Mapping 同时定位与地图构建&#…

交友系统---让陌生人变成熟悉人的过程。APP小程序H5三端源码交付,支持二开。

随着社交网络的发展和普及,人们之间的社交模式正在发生着深刻的变革。传统的线下交友方式已经逐渐被线上交友取而代之。而同城交友正是这一趋势的产物,它利用移动互联网的便利性,将同城内的人们连接在一起,打破了时空的限制&#…

机器视觉系统设计:视觉系统中的成像基准

开发视觉系统的一个重要活动是验证其部署是否符合工程规范。一个成功的视觉应用程序的两个特点是它无需工程师干涉情况下正常工作了多长时间,以及它的维护和复制部署是多么简易。实现所有如上所述目标的一个关键步骤是确定视觉系统的基准。 在这里使用的上下文中&a…

移动云ONAIR媒体云全解读!媒体内容数字化融合一站式解决方案

当下,传统媒体面临着诸多挑战,如何利用信息技术提升内容的质量、形式和分发效率,成为媒体行业的迫切需求。移动云作为数字中国建设的“主力军”, 立足于新兴媒体与云计算市场的变化与需求,推出了ONAIR 媒体云解决方案&…

vue2学习笔记(2/2)

vue2学习笔记(1/2) vue2学习笔记(2/2) 文章目录 1. 初始化脚手架2. 分析脚手架&render函数文件结构图示及说明main.jsindex.htmlApp.vueSchool.vueStudent.vue 关于不同版本的Vue修改默认配置vue.config.js配置文件 3. ref属…

08. 【Linux教程】CentOS 目录介绍

CentOS 目录介绍 前面小节介绍了如何安装并登录连接 CentOS 系统,本小节围绕 CentOS 系统的目录,介绍其各个目录的作用,方便读者以后在工作中很好地将项目和软件归类存储,熟悉 CentOS 系统各个目录的功能介绍,有助于加…

035 Arrays类

示例 int[] nums new int[10]; // fill Arrays.fill(nums, 666); System.out.println(Arrays.toString(nums)); // sort nums new int[]{1, 3, 5, 7, 9, 2, 4, 6, 8}; Arrays.sort(nums); System.out.println(Arrays.toString(nums)); // equals int[] nums2 new int[]{1,…

【数据分享】1929-2023年全球站点的逐日平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,说到常用的降水数据,最详细的降水数据是具体到气象监测站点的降水数据! 有关气象指标的监测站点数据,之前我们分享过1929-2023年全…

【Spring】代理模式

文章目录 代理模式对代理模式的理解静态代理动态代理JDK动态代理原理源码优化 CGLIB动态代理使用原理 JDK与CGLIB的对比 面试题JDK动态代理和CGLIB有什么区别?既然有没有接口都可以用CGLIB,为什么Spring还要使用JDK动态代理? 代理模式 对代理…

4. 树(二叉树、二叉查找树/二叉排序树/二叉搜索树、平衡二叉树、平衡二叉B树/红黑树)

树 1. 二叉树1.1 概述1.2 特点1.3 二叉树遍历方式1.3.1 前序遍历(先序遍历)1.3.2 中序遍历1.3.3 后序遍历1.3.4 层序遍历 2. 二叉查找树(二叉排序树、二叉搜索树)2.1 概述2.2 特点 3. 平衡二叉树3.1 概述3.2 特点3.3 旋转3.3.1 左旋3.3.2 右旋 3.4 平衡二…

云原生数据库 GaiaDB 的核心技术演进和解析

导读 在越来越强调云原生的环境下,存算分离作为一种新的架构理念,已经是大势所趋。新的技术架构带来新的问题和挑战,百度智能云的云原生数据库 GaiaDB 采用 Quorum 分布式协议、高性能网络、高可靠分布式存储引擎等技术实现更高的性能和可用性…

ElementUI Form:Select 选择器

ElementUI安装与使用指南 Select 选择器 点击下载learnelementuispringboot项目源码 效果图 el-select.vue&#xff08;Select选择器&#xff09;页面效果图 项目里el-select.vue代码 <script> export default {name: el_select,data() {return {options: [{value…

PHP之数据类型的基本介绍

让我为大家介绍一下PHP中的数据类型吧&#xff01; 数据类型有&#xff1a;字符串、整数、浮点数、布尔、数组、对象、NULL、资源类型 我们可以使用gettype去获取数据类型 var_jump()会返回变量的数据类型与值&#xff0c;一般用于开发调试时使用 字符串 字符串是字符序列…

备战蓝桥杯---搜索(优化1)

显然&#xff0c;我们可以用BFS解决&#xff0c;具体实现与八数码类似&#xff1a; 下面是代码&#xff1a; #include<bits/stdc.h> using namespace std; #define N 3000000 string a,b; int hh,dis[N],cnt; struct node{string u,v; }bian[7]; map<string,int>…

Python爬虫requests库详解

使用 requests 上一节中&#xff0c;我们了解了 urllib 的基本用法&#xff0c;但是其中确实有不方便的地方&#xff0c;比如处理网页验证和 Cookies 时&#xff0c;需要写 Opener 和 Handler 来处理。为了更加方便地实现这些操作&#xff0c;就有了更为强大的库 requests&…

docker 网络模型

一、docker的网络模型分为四种 【1】Host(与宿主机共享一个网络)&#xff0c;宿主机的localhost 及 容器内的localhost 【2】Bridge(与宿主机共享一个局域网&#xff0c;有自己的网络&#xff1b;docker运行默认Bridge)&#xff1b;容器内localhost不是宿主机localhost 【3】…