简介
启动一个切片需要:
- 核心网侧: 启动核心网yaml文件及相关配置文件(datebase conf healthscripts) 对应业务的sever (如)
- 基站侧: 虚拟机 启动ueransim的yaml文件及相关配置 代理程序(ueransim-5gc-proxy.py)
- 两端的连接: 一种业务对应一条网线,相同业务的不同切片在同一根网线中跑
网络配置设计方案:
核心网侧
- 核心网侧:一个切片yaml文件中观察使用到的ip地址有三个网段,以切片1为例,使用到 192.168.10.xxx 192.168.12.xxx 192.168.13.xxx 。所以每个核心网需要分配三个网段。
- 可以进行如下分配:每个切片分三个网段, 相同业务类型的切片使用连续的网段。
- 例如: 如下的分配,每种业务可以启动20个切片,并且切片id与对应网段之间有 id*4=网段 的关联
业务类型 | 切片id | 切片使用ip |
---|---|---|
视频业务 | 1 | 192.168.4.xx 192.168.6.xx 192.168.7.xx |
视频业务 | 2 | 192.168.8.xx 192.168.10.xx 192.168.11.xx |
视频业务 | 3 | 192.168.12.xx 192.168.14.xx 192.168.15.xx |
… | … | … |
视频业务 | 19 | 192.168.76.xx 192.168.78.xx 192.168.79.xx |
ftp业务 | 20 | 192.168.80.xx 192.168.82.xx 192.168.83.xx |
ftp业务 | 21 | 192.168.84.xx 192.168.86.xx 192.168.87.xx |
… | … | … |
ftp业务 | 39 | 192.168.156.xx 192.168.158.xx 192.168.159.xx |
列控业务 | 40 | 192.168.160.xx 192.168.162.xx 192.168.163.xx |
列控业务 | 41 | 192.168.164.xx 192.168.166.xx 192.168.167.xx |
… | … | … |
列控业务 | 59 | 192.168.236.xx 192.168.238.xx 192.168.239.xx |
- 三个业务类型核心网侧网络的配置目前分别是:
业务类型 | 物理网口 | ubuntu网口 | ip |
---|---|---|---|
视频业务 | NIC3 | ensxx | 192.168.16.6 |
FTP业务 | NIC4 | ensxx | 192.168.26.6 |
列控业务 | NIC2 | ensxx | 192.168.36.6 |
(!!!为避免ip冲突,后续应该需要更改)
比如:
业务类型 | 物理网口 | ubuntu网口 | ip |
---|---|---|---|
视频业务 | NIC3 | ensxx | 192.168.241.241 |
FTP业务 | NIC4 | ensxx | 192.168.242.242 |
列控业务 | NIC2 | ensxx | 192.168.243.243 |
基站侧
-
基站侧每启动一个切片就需要一个虚拟机,每个虚拟机需要配置其使用的网卡,以及对应的ip
-
对于不同业务类型的虚拟机,开启不同的网口,每个虚拟机有三个网口,分别用来进行 互联网通信 业务端通信 核心网侧通信
-
对于同类型业务,使用相同的网口配置,但设置不同的ip
- 互联网通信ip设置:使用dhcp自动分配
- 核心网侧通信ip设置:要与核心网侧对应业务的端口传输数据,需要在同一网段,比如视频业务,需要在192.168.16.xxx网段,为了与切片id进行一一对应,对xxx进行与id一致的分配,如切片1的ip设置为192.168.16.1
- 业务端通信ip设置:目前使用的网段是192.168.19.xxx,为了避免冲突需要重新配置网段,并且与切片id一一对应,比如分配到192.168.251.xxx网段
-
例如:
业务类型 | 切片id | 对应核心网ip | 核心网侧通信ip | 业务侧通信ip |
---|---|---|---|---|
视频业务 | 1 | 192.168.4.xx 192.168.6.xx 192.168.7.xx | 192.168.241.1 | 192.168.251.1 |
视频业务 | 2 | 192.168.8.xx 192.168.10.xx 192.168.11.xx | 192.168.241.2 | 192.168.251.2 |
视频业务 | 3 | 192.168.12.xx 192.168.14.xx 192.168.15.xx | 192.168.241.3 | 192.168.251.3 |
… | … | … | … | … |
视频业务 | 19 | 192.168.76.xx 192.168.78.xx 192.168.79.xx | 192.168.241.19 | 192.168.251.19 |
ftp业务 | 20 | 192.168.80.xx 192.168.82.xx 192.168.83.xx | 192.168.242.20 | 192.168.251.20 |
ftp业务 | 21 | 192.168.84.xx 192.168.86.xx 192.168.87.xx | 192.168.242.21 | 192.168.251.21 |
… | … | … | … | … |
ftp业务 | 39 | 192.168.156.xx 192.168.158.xx 192.168.159.xx | 192.168.242.39 | 192.168.251.39 |
列控业务 | 40 | 192.168.160.xx 192.168.162.xx 192.168.163.xx | 192.168.243.40 | 192.168.251.40 |
列控业务 | 41 | 192.168.164.xx 192.168.166.xx 192.168.167.xx | 192.168.243.41 | 192.168.251.41 |
… | … | … | … | … |
列控业务 | 59 | 192.168.236.xx 192.168.238.xx 192.168.239.xx | 192.168.243.59 | 192.168.251.59 |
业务端
- 业务端:业务端在接入时,需要与基站侧的网段一致,按照上面的配置,需要使用192.168.251.xxx网段,于是可以从192.168.251.101开始分配,也与切片id有对应关系
业务类型 | 切片id | 对应核心网ip | 核心网侧通信ip | 业务侧通信ip | 业务端ip |
---|---|---|---|---|---|
视频业务 | 1 | 192.168.4.xx 192.168.6.xx 192.168.7.xx | 192.168.241.1 | 192.168.251.1 | 192.168.251.101 |
视频业务 | 2 | 192.168.8.xx 192.168.10.xx 192.168.11.xx | 192.168.241.2 | 192.168.251.2 | 192.168.251.102 |
视频业务 | 3 | 192.168.12.xx 192.168.14.xx 192.168.15.xx | 192.168.241.3 | 192.168.251.3 | 192.168.251.103 |
… | … | … | … | … | … |
视频业务 | 19 | 192.168.76.xx 192.168.78.xx 192.168.79.xx | 192.168.241.19 | 192.168.251.19 | 192.168.251.119 |
ftp业务 | 20 | 192.168.80.xx 192.168.82.xx 192.168.83.xx | 192.168.242.20 | 192.168.251.20 | 192.168.251.120 |
ftp业务 | 21 | 192.168.84.xx 192.168.86.xx 192.168.87.xx | 192.168.242.21 | 192.168.251.21 | 192.168.251.121 |
… | … | … | … | … | … |
ftp业务 | 39 | 192.168.156.xx 192.168.158.xx 192.168.159.xx | 192.168.242.39 | 192.168.251.39 | 192.168.251.139 |
列控业务 | 40 | 192.168.160.xx 192.168.162.xx 192.168.163.xx | 192.168.243.40 | 192.168.251.40 | 192.168.251.140 |
列控业务 | 41 | 192.168.164.xx 192.168.166.xx 192.168.167.xx | 192.168.243.41 | 192.168.251.41 | 192.168.251.141 |
… | … | … | … | … | … |
列控业务 | 59 | 192.168.236.xx 192.168.238.xx 192.168.239.xx | 192.168.243.59 | 192.168.251.59 | 192.168.251.159 |
业务端口号
- 在核心网侧,所有业务的sever都运行在一台机器上,需要对业务的端口号进行分配,并且与切片id进行对应
- 后续同一切片中需要启动多个业务时,同一切片会使用到多个端口号
- 可以进行如下分配:
业务类型 | 切片id | 对应核心网ip | 核心网侧通信ip | 业务侧通信ip | 业务端ip | 业务端口号 |
---|---|---|---|---|---|---|
视频业务 | 1 | 192.168.4.xx 192.168.6.xx 192.168.7.xx | 192.168.241.1 | 192.168.251.1 | 192.168.251.101 | 2001 3001 4001… |
视频业务 | 2 | 192.168.8.xx 192.168.10.xx 192.168.11.xx | 192.168.241.2 | 192.168.251.2 | 192.168.251.102 | 2002 3002 4002… |
视频业务 | 3 | 192.168.12.xx 192.168.14.xx 192.168.15.xx | 192.168.241.3 | 192.168.251.3 | 192.168.251.103 | 2003 3003 4003… |
… | … | … | … | … | … | … |
视频业务 | 19 | 192.168.76.xx 192.168.78.xx 192.168.79.xx | 192.168.241.19 | 192.168.251.19 | 192.168.251.119 | 2019 3019 4019… |
ftp业务 | 20 | 192.168.80.xx 192.168.82.xx 192.168.83.xx | 192.168.242.20 | 192.168.251.20 | 192.168.251.120 | 2020 3020 4020… |
ftp业务 | 21 | 192.168.84.xx 192.168.86.xx 192.168.87.xx | 192.168.242.21 | 192.168.251.21 | 192.168.251.121 | 2021 3021 4021… |
… | … | … | … | … | … | … |
ftp业务 | 39 | 192.168.156.xx 192.168.158.xx 192.168.159.xx | 192.168.242.39 | 192.168.251.39 | 192.168.251.139 | 2039 3039 4039… |
列控业务 | 40 | 192.168.160.xx 192.168.162.xx 192.168.163.xx | 192.168.243.40 | 192.168.251.40 | 192.168.251.140 | 2040 3040 4040… |
列控业务 | 41 | 192.168.164.xx 192.168.166.xx 192.168.167.xx | 192.168.243.41 | 192.168.251.41 | 192.168.251.141 | 2041 3004 4041… |
… | … | … | … | … | … | … |
列控业务 | 59 | 192.168.236.xx 192.168.238.xx 192.168.239.xx | 192.168.243.59 | 192.168.251.59 | 192.168.251.159 | 2059 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为中心,设计了如下相关变量:
-
业务类型(slice_type):
-
核心网oai网段(ip_oai):
-
核心网access网段(ip_access):
-
核心网core网段(ip_core):
-
基站的核心网侧通信ip(local_link_ngap_gtp_ip):
-
基站与核心网amf通信的网段(ip_oai):
-
基站与业务侧通信的ip():
-
业务端的ip():
-
业务的端口():
-
核心网网元使用的内存():
-
核心网网元使用的cpu():
-
操作笔记
手动创建新核心网yaml文件与ueransimyaml文件
- 使用vs2022辅助修改,如下以slice40新建slice41
-
复制slice40文件夹,重命名为slice41,并对三个yaml文件进行重命名
-
修改
docker-compose-basic-vpp-nrf-slice41.yml
a.替换所有slice40
为slice41
b.替换所有192.168.160.
为192.168.164.
c.替换所有192.168.162
为192.168.166
d.替换所有192.168.163
为192.168.167
-
修改
ueransim-slice41.yaml
a.修改所有slice40
为slice41
b.修改所有192.168.241.40
为192.168.241.41
c.修改所有192.168.160.132
为192.168.164.132
- 修改
ueransim-slice41-local.yaml
a.修改所有slice40
为slice41
b.修改所有192.168.160.141
为192.168.164.141
c.修改所有192.168.160.132
为192.168.164.132
d.修改所有192.168.160.132
为192.168.164.132