oai核心网启动多切片自动生成方法

news2024/10/6 14:34:28

简介

启动一个切片需要:

  1. 核心网侧: 启动核心网yaml文件及相关配置文件(datebase conf healthscripts) 对应业务的sever (如)
  2. 基站侧: 虚拟机 启动ueransim的yaml文件及相关配置 代理程序(ueransim-5gc-proxy.py)
  3. 两端的连接: 一种业务对应一条网线,相同业务的不同切片在同一根网线中跑

网络配置设计方案:

核心网侧

  • 核心网侧:一个切片yaml文件中观察使用到的ip地址有三个网段,以切片1为例,使用到 192.168.10.xxx 192.168.12.xxx 192.168.13.xxx 。所以每个核心网需要分配三个网段。
  • 可以进行如下分配:每个切片分三个网段, 相同业务类型的切片使用连续的网段。
  • 例如: 如下的分配,每种业务可以启动20个切片,并且切片id与对应网段之间有 id*4=网段 的关联
业务类型切片id切片使用ip
视频业务1192.168.4.xx 192.168.6.xx 192.168.7.xx
视频业务2192.168.8.xx 192.168.10.xx 192.168.11.xx
视频业务3192.168.12.xx 192.168.14.xx 192.168.15.xx
视频业务19192.168.76.xx 192.168.78.xx 192.168.79.xx
ftp业务20192.168.80.xx 192.168.82.xx 192.168.83.xx
ftp业务21192.168.84.xx 192.168.86.xx 192.168.87.xx
ftp业务39192.168.156.xx 192.168.158.xx 192.168.159.xx
列控业务40192.168.160.xx 192.168.162.xx 192.168.163.xx
列控业务41192.168.164.xx 192.168.166.xx 192.168.167.xx
列控业务59192.168.236.xx 192.168.238.xx 192.168.239.xx
  • 三个业务类型核心网侧网络的配置目前分别是:
业务类型物理网口ubuntu网口ip
视频业务NIC3ensxx192.168.16.6
FTP业务NIC4ensxx192.168.26.6
列控业务NIC2ensxx192.168.36.6

(!!!为避免ip冲突,后续应该需要更改)
比如:

业务类型物理网口ubuntu网口ip
视频业务NIC3ensxx192.168.241.241
FTP业务NIC4ensxx192.168.242.242
列控业务NIC2ensxx192.168.243.243

基站侧

  • 基站侧每启动一个切片就需要一个虚拟机,每个虚拟机需要配置其使用的网卡,以及对应的ip

  • 对于不同业务类型的虚拟机,开启不同的网口,每个虚拟机有三个网口,分别用来进行 互联网通信 业务端通信 核心网侧通信

  • 对于同类型业务,使用相同的网口配置,但设置不同的ip

    1. 互联网通信ip设置:使用dhcp自动分配
    2. 核心网侧通信ip设置:要与核心网侧对应业务的端口传输数据,需要在同一网段,比如视频业务,需要在192.168.16.xxx网段,为了与切片id进行一一对应,对xxx进行与id一致的分配,如切片1的ip设置为192.168.16.1
    3. 业务端通信ip设置:目前使用的网段是192.168.19.xxx,为了避免冲突需要重新配置网段,并且与切片id一一对应,比如分配到192.168.251.xxx网段
  • 例如:

业务类型切片id对应核心网ip核心网侧通信ip业务侧通信ip
视频业务1192.168.4.xx 192.168.6.xx 192.168.7.xx192.168.241.1192.168.251.1
视频业务2192.168.8.xx 192.168.10.xx 192.168.11.xx192.168.241.2192.168.251.2
视频业务3192.168.12.xx 192.168.14.xx 192.168.15.xx192.168.241.3192.168.251.3
视频业务19192.168.76.xx 192.168.78.xx 192.168.79.xx192.168.241.19192.168.251.19
ftp业务20192.168.80.xx 192.168.82.xx 192.168.83.xx192.168.242.20192.168.251.20
ftp业务21192.168.84.xx 192.168.86.xx 192.168.87.xx192.168.242.21192.168.251.21
ftp业务39192.168.156.xx 192.168.158.xx 192.168.159.xx192.168.242.39192.168.251.39
列控业务40192.168.160.xx 192.168.162.xx 192.168.163.xx192.168.243.40192.168.251.40
列控业务41192.168.164.xx 192.168.166.xx 192.168.167.xx192.168.243.41192.168.251.41
列控业务59192.168.236.xx 192.168.238.xx 192.168.239.xx192.168.243.59192.168.251.59

业务端

  • 业务端:业务端在接入时,需要与基站侧的网段一致,按照上面的配置,需要使用192.168.251.xxx网段,于是可以从192.168.251.101开始分配,也与切片id有对应关系
业务类型切片id对应核心网ip核心网侧通信ip业务侧通信ip业务端ip
视频业务1192.168.4.xx 192.168.6.xx 192.168.7.xx192.168.241.1192.168.251.1192.168.251.101
视频业务2192.168.8.xx 192.168.10.xx 192.168.11.xx192.168.241.2192.168.251.2192.168.251.102
视频业务3192.168.12.xx 192.168.14.xx 192.168.15.xx192.168.241.3192.168.251.3192.168.251.103
视频业务19192.168.76.xx 192.168.78.xx 192.168.79.xx192.168.241.19192.168.251.19192.168.251.119
ftp业务20192.168.80.xx 192.168.82.xx 192.168.83.xx192.168.242.20192.168.251.20192.168.251.120
ftp业务21192.168.84.xx 192.168.86.xx 192.168.87.xx192.168.242.21192.168.251.21192.168.251.121
ftp业务39192.168.156.xx 192.168.158.xx 192.168.159.xx192.168.242.39192.168.251.39192.168.251.139
列控业务40192.168.160.xx 192.168.162.xx 192.168.163.xx192.168.243.40192.168.251.40192.168.251.140
列控业务41192.168.164.xx 192.168.166.xx 192.168.167.xx192.168.243.41192.168.251.41192.168.251.141
列控业务59192.168.236.xx 192.168.238.xx 192.168.239.xx192.168.243.59192.168.251.59192.168.251.159

业务端口号

  • 在核心网侧,所有业务的sever都运行在一台机器上,需要对业务的端口号进行分配,并且与切片id进行对应
  • 后续同一切片中需要启动多个业务时,同一切片会使用到多个端口号
  • 可以进行如下分配:
业务类型切片id对应核心网ip核心网侧通信ip业务侧通信ip业务端ip业务端口号
视频业务1192.168.4.xx 192.168.6.xx 192.168.7.xx192.168.241.1192.168.251.1192.168.251.1012001 3001 4001…
视频业务2192.168.8.xx 192.168.10.xx 192.168.11.xx192.168.241.2192.168.251.2192.168.251.1022002 3002 4002…
视频业务3192.168.12.xx 192.168.14.xx 192.168.15.xx192.168.241.3192.168.251.3192.168.251.1032003 3003 4003…
视频业务19192.168.76.xx 192.168.78.xx 192.168.79.xx192.168.241.19192.168.251.19192.168.251.1192019 3019 4019…
ftp业务20192.168.80.xx 192.168.82.xx 192.168.83.xx192.168.242.20192.168.251.20192.168.251.1202020 3020 4020…
ftp业务21192.168.84.xx 192.168.86.xx 192.168.87.xx192.168.242.21192.168.251.21192.168.251.1212021 3021 4021…
ftp业务39192.168.156.xx 192.168.158.xx 192.168.159.xx192.168.242.39192.168.251.39192.168.251.1392039 3039 4039…
列控业务40192.168.160.xx 192.168.162.xx 192.168.163.xx192.168.243.40192.168.251.40192.168.251.1402040 3040 4040…
列控业务41192.168.164.xx 192.168.166.xx 192.168.167.xx192.168.243.41192.168.251.41192.168.251.1412041 3004 4041…
列控业务59192.168.236.xx 192.168.238.xx 192.168.239.xx192.168.243.59192.168.251.59192.168.251.1592059 3059 4059…

后端实现途径

所有的目的都是为了在qt前端界面点击按钮,可以控制切片的自动生成。

核心网侧

  • 在核心网有两部分,一部分是OAI核心网,一部分是业务的sever
  • 有两种核心网生成方式,一种是事先将所有可能启动的核心网文件配置好,一种是根据切片id+核心网模板生成配置文件
  • 目前前者实现较容易:将三种切片的配置文件复制并配置好
  • 后者实现:三个业务模板文件,生成对应业务切片时根据业务模板,复制文件夹(包含启动核心网所需的所有文件),然后根据切片id更改其中一些文件的内容适配切片(核心网yaml文件的:ip、容器名、docker-compose服务名 ; 业务sever的ip与端口号)。

基站侧

  • 在基站侧有如下几个部分: 切片使用的虚拟机, ueransim基站, 业务代理proxy
  • 对于虚拟机,有两种可能,一种是对应每一个切片实现构建好虚拟机,提前开启虚拟机,这样的话虚拟机内部的所有配置,包括 ueransim基站和 业务代理proxy等,都可以提前配置好,这是符合逻辑的。 另一种可能是在核心网侧要启动切片后,基站侧根据对应业务的模板,复制一个新的虚拟机,并且自动配置虚拟机,以及其中的 ueransim基站与业务代理proxy。
  • 关于使用虚拟机而不是docker部署基站的原因:经过大量的尝试,一个机器中使用ueransim容器接入另一个机器上的OAI核心网只有使用host网络模式时可以成功完成用nr-binder进行通信,而这样一个虚拟机中只能部署使用一个ueransim,所以就形成了为了部署使用一个ueransim必须建立一个虚拟机的情况。(!!!如果这个问题能够解决,可以在一个虚拟机中部署使用多个ueransim,系统的性能将大大优化)
  • 目前使用第一种可能,实现难度较低,但对机器性能消耗较大!
  • 实现细节: 提前创建好虚拟机,按照网络配置设置好虚拟机的网口及ip,配置好ueransim文件(ueransim的yaml文件,文件路径命名)与proxy代理文件(代理的ip)

业务侧

  • 业务侧根据要接入的切片设置好ip和端口号就可以

前后端交互

  • 目前前端使用QT实现,使用到mysql数据库进行大部分的数据交互,后端代码大部分使用python编写。
  • 与前端相关联的后端代码代码主要分为: 切片启动代码 (在前端点击按钮,根据数据库内容启动对应的切片),状态监测代码(监测切片的状态实时反馈到数据库,如 cpu资源 存储资源 带宽资源 ) , 切片调试代码(在切片启动后,对切片进行适当的调试,如 业务停止 资源重分配 ueransim重启 切片重启)

以切片id为中心的变量组设计

  • 上面已经以切片id为中心,设计了如下相关变量:
    1. 业务类型(slice_type):

    2. 核心网oai网段(ip_oai):

    3. 核心网access网段(ip_access):

    4. 核心网core网段(ip_core):

    5. 基站的核心网侧通信ip(local_link_ngap_gtp_ip):

    6. 基站与核心网amf通信的网段(ip_oai):

    7. 基站与业务侧通信的ip():

    8. 业务端的ip():

    9. 业务的端口():

    10. 核心网网元使用的内存():

    11. 核心网网元使用的cpu():

操作笔记

手动创建新核心网yaml文件与ueransimyaml文件

  • 使用vs2022辅助修改,如下以slice40新建slice41
  1. 复制slice40文件夹,重命名为slice41,并对三个yaml文件进行重命名
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 修改docker-compose-basic-vpp-nrf-slice41.yml
    a.替换所有slice40slice41
    b.替换所有192.168.160.192.168.164.
    c.替换所有192.168.162192.168.166
    d.替换所有192.168.163192.168.167
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 修改ueransim-slice41.yaml
    a.修改所有slice40slice41
    b.修改所有192.168.241.40192.168.241.41
    c.修改所有192.168.160.132192.168.164.132

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 修改ueransim-slice41-local.yaml
    a.修改所有slice40slice41
    b.修改所有192.168.160.141192.168.164.141
    c.修改所有192.168.160.132192.168.164.132
    d.修改所有192.168.160.132192.168.164.132
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

使用python代码自动创建核心网yaml文件与ueransimyaml文件

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

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

相关文章

拿捏指针(一)---对指针的基本认识(初级)

文章目录 指针是什么?指针的定义指针的大小 指针类型指针有哪些类型?指针不同类型有什么意义? 野指针野指针的成因如何避免野指针? 指针运算指针 - 整数指针 - 指针指针的关系运算 二级指针 指针是什么? 指针的定义 …

DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现,“双碳”行动特别是碳中和已经在世界范围形成广泛影响。国家领导人在多次重要会议上讲到,要把“双碳”纳入经济社会发展和生态文明建设整体布局。同时,提到要把减污降碳协同增效作为促…

MySQL----索引

文章目录 一、索引的概念二、索引的作用索引的副作用创建索引的依据 三、索引的分类和创建3.1普通索引创建直接索引修改表方式创建创建表的时指定索引(不推荐使用) 3.2唯一索引直接创建唯一索引修改表方式创建创建表时指定 3.3主键索引创建表的时指定修改…

2024年天津农学院专升本拟招生专业限制报考范围

天津农学院2024年升本拟招生专业及报考范围 物流管理 科 类:文史、理工 专业报考范围:不限 人力资源管理 科 类:文史、理工 专业报考范围:不限 水产养殖学 科 类: 理工 专业报考范围如…

微服务springcloud 06.feign框架,配合ribbon 负载均衡和重试,配合hystrix 降级,监控和熔断测试

feign是ribbon hystrix 的整合 01.新建 sp09-feign 项目 第一步&#xff1a; 第二步&#xff1a;选择依赖&#xff1a; pom.xml 需要添加 sp01-commons 依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://…

游泳可以戴的耳机有哪些?四款专业的游泳耳机推荐

现在人们都开始热衷于运动健身&#xff0c;运动时大多会听音乐&#xff0c;市面上的运动耳机层出不穷&#xff0c;多数都是蓝牙耳机&#xff0c;但是有一些运动不太适合。 例如游泳&#xff0c;其他运动都可以将手机放在附近&#xff0c;但是游泳就不行了。所以游泳时可以听歌的…

【云服务】阿里云服务器镜像备份到本地

​ 首先&#xff0c;让我们了解一下阿里云平台上自定义镜像的功能。通过自定义镜像&#xff0c;用户可以将云服务器的当前状态保存为镜像&#xff0c;以便在需要时快速恢复到该状态。此外&#xff0c;自定义镜像还可以作为模板创建新的云服务器&#xff0c;方便用户快速部署相同…

1742_C语言中的指针与数组

全部学习汇总&#xff1a; GreyZhang/c_basic: little bits of c. (github.com) 之所以常常把数组与指针联系到一块儿是因为数组的名字在很多时候等同于指向数组首元素的指针。在写程序的时候&#xff0c;这常常会给我们带来很多方便。尤其是需要把数组作为一个函数的处理对象时…

Java并发(十一)----线程五种状态与六种状态

1、五种状态 这是从 操作系统 层面来描述的 【初始状态】仅是在语言层面创建了线程对象&#xff0c;还未与操作系统线程关联 【可运行状态】&#xff08;就绪状态&#xff09;指该线程已经被创建&#xff08;与操作系统线程关联&#xff09;&#xff0c;可以由 CPU 调度执行 …

Android Studio实现贪吃蛇小游戏

项目目录 一、项目概述二、开发环境三、详细设计四、运行演示五、项目总结 一、项目概述 贪吃蛇是一款经典的街机游戏&#xff0c;不仅在电子游戏史上占有一席之地&#xff0c;也在很多人的童年回忆中留下了深刻的印象。在游戏中&#xff0c;玩家需要操纵一条蛇通过吃食物来增…

leetcode222. 完全二叉树的节点个数(java)

完全二叉树的节点个数 leetcode222. 完全二叉树的节点个数题目描述 递归广度优先遍历二叉树专题 leetcode222. 完全二叉树的节点个数 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/count-complete-tree-nodes 题目描述…

Linux下的打包和压缩/解压解包

文章目录 一、打包和压缩二、Linux下进行打包和压缩1.zip指令&#xff0c;unzip指令2.tar指令 一、打包和压缩 打包呢就是把所有东西装在一起&#xff0c;然后压缩就是将这一包东西给它合理摆放&#xff0c;腾出更多的空间&#xff0c;以便放更多的东西。 压缩可以将如果东西是…

【github加载不出来】github 加载不出来、获取GitHub官方CDN地址、修改系统Hosts文件 刷新缓存

目录 github 加载不出来获取GitHub官方CDN地址修改系统Hosts文件刷新缓存 github 加载不出来 获取GitHub官方CDN地址 https://www.ipaddress.com/打开后如图&#xff0c;右上角搜索查 查找这三个DNS链接的解析地址 http://github.com http://assets-cdn.github.com http://git…

java springboot整合Druid数据源配置

整合的最后一块 我们整合一个数据源 Druid 我们还是打开idea 创建一个项目 路径和版本调一下 路径选一个好的目录就可以了 至于版本 最好是 java 8 JDK 1.8 然后 Next 下一步 这里 spring boot 的版本记得选一下 不要搞太高 2.几即可 Druid 在这里 显然也是找不到的 所以 我…

安卓端Google隐私沙盒归因报告聚焦

自2022年2月Google首次提出将推出隐私沙盒至今已一年有余。现在&#xff0c;安卓端的隐私沙盒Beta测试已针对特定Android13设备正式开始。作为早期测试者&#xff0c;Adjust很高兴与 Google一同迈出增强用户隐私的第一步&#xff0c;并在接下来的旅程中继续携手同行。为帮助移动…

framework编译应用代码

代码编译 APP或Service代码单编调试 1、在aosp文件目录下在将环境变量加载到内存中&#xff0c;在终端中输入下面命令 source build/envsetup.sh 2、选择平台编译选项 lunch 3、输入后会出现一个选择列表&#xff0c;然后输入你想要的项目的序号即可。如下所示我这里选择的7…

【OpenMMLab AI实战营二期笔记】第十天 底层视觉与MMEditing

1.图像超分辨率 1.1 什么是图像超分辨率&#xff1f; 根据从低分辨率图像重构高分辨率图像 1.2 目标&#xff1a; 提高图像的分辨率高分图像符合低分图像的内容恢复图像的细节、产生真实的内容 1.3 应用&#xff1a; 经典游戏高清重制动画高清重制照片修复节约传输高清图…

当你拥有什么样的高性能计算技术水平,你才能成为一名高性能计算工程师? ...

在当今科技快速发展的时代&#xff0c;高性能计算工程师成为了推动科学研究、工程仿真和大数据处理的关键人才。尤其是我国大力发展科研基建&#xff0c;打造科研技术底座&#xff0c;这就更加需要高性能计算工程师通过自身的技术来加速科研建设和研发的进度和速度。 我们调研了…

Spark大数据处理学习笔记(3.8.1) Spark RDD典型案例-利用RDD计算总分与平均分

该文章主要为完成实训任务&#xff0c;详细实现过程及结果见【http://t.csdn.cn/Twpwe】 文章目录 1. 任务目标2. 实现思路3. 准备工作3.1 启动HDFS服务3.2 启动Spark服务3.3 在本地创建成绩文件3.4 将成绩文件上传到HDFS 4. 完成任务4.1 在Spark Shell里完成任务4.1.1 读取成绩…

虚拟机使用

文章目录 VMWare安装Warning 系统安装MacOS解锁工具Unlocker Warning VMWare配置系统启动安装VMware tools联网 VMWare安装 Warning 安装完VMWare后要在BIOS中开启intel VT&#xff08;虚拟化&#xff09;&#xff0c;否则安装过程中会出错&#xff0c;提示“Intel VT-x处于禁…