OAI核心网搭建全过程【1】

 我用的是在windows上的ubantu虚拟机,版本号为18.04,下面开始核心网的搭建

步骤一

了解整个核心网部署流程docs/DEPLOY_HOME.md · master · oai / cn5g / oai-cn5g-fed · GitLab (eurecom.fr)

Pre-requisites就是搭建核心网的第一步,包括了最基础的docker注册登录,容器的部署,网络的配置等等。

How to get the container images是当你要下载修改容器里面的东西时才需要这一步,我们下载镜像时就需要。

5G Core Deployment就是最关键的一部,它给你提供了多种的方案选择,我选择的是第一个minimalist 部署。

其他的东西就不讲了哈哈

然后查阅完整最小核心网部署资料(OpenAirInterface 5G Core Network Minimalist Deployment using Docker-Compose)docs/DEPLOY_SA5G_MINI_DEPLOYMENT.md · master · oai / cn5g / oai-cn5g-fed · GitLab (eurecom.fr)

 有图上可以看出,一共提供了两种选择,唯一的区别就在于有无NRF(Network Repository Function,网络仓储功能),我会将两者均搭建,读者可以自行选择。

 这些都需要提前准备,版本号大于等于图中版本号即可,其中安装具体不明白的地方可以参考该连接docs/DEPLOY_PRE_REQUESITES.md · master · oai / cn5g / oai-cn5g-fed · GitLab (eurecom.fr)

总结一下:

提前需要准备的东西
Software               Version
docker engine        19.03.6, build 369ce74a3c  //必须下载
docker-compose    1.27.4, build 40524192    //必须下载
Ubuntu                   18.04//虚拟机
tshark                      3.4.4 (Git commit c33f6306cbb2)
wireshark                3.4.4 (Git commit c33f6306cbb2)    //上面两个是仿真软

其中wireshark我们使用的是远程抓包的方式(通过windows中的wireshark抓取虚拟机中的数据包),后面会讲述。

注意:Pre-requisites中的东西都需要在搭建核心网之前准备好,比如登录docker和修改网络那些,下面的步骤二会带着读者进行pre-requisites的配置

步骤二

进行pre-requisites的配置

//命令行建立文件夹
$ sudo su //进入管理员操作模式
root@phoenix-VirtualBox:/home/phoenix# mkdir OAI //新建文件夹
root@phoenix-VirtualBox:/home/phoenix# cd  	//cd [dirName]:选择要切换的目标目录。
root@phoenix-VirtualBox:/home/phoenix/OAI# cd	//显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)

创建好文件夹之后,下载源代码

下载源码
root@phoenix-VirtualBox:/home/phoenix/OAI# git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git
下载基础镜像(这也是pre-requst中的第三步Pull base images)
root@phoenix-VirtualBox:/home/phoenix/OAI/ # docker pull ubuntu:bionic
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker pull mysql:5.7
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker images	//检查是否下载成功
	REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
	ubuntu        bionic    476c64862aa8   2 days ago      63.1MB
	mysql         5.7       daff57b7d2d1   10 days ago     430MB

 下载核心网镜像(注意此时docker需要登录噢)docs/RETRIEVE_OFFICIAL_IMAGES.md · master · oai / cn5g / oai-cn5g-fed · GitLab (eurecom.fr)

部署三网元的版本AMF,SMF和SPGW-U以及DN(NRF可以不用部署)
下载核心网镜像
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker pull oaisoftwarealliance/oai-amf:latest
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker pull oaisoftwarealliance/trf-gen-cn5g:latest
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker pull oaisoftwarealliance/oai-spgwu-tiny:latest
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker pull oaisoftwarealliance/oai-smf:latest
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker images	//检擦是否全部安装完毕
	REPOSITORY                           TAG       IMAGE ID       CREATED         SIZE
	ubuntu                               bionic    476c64862aa8   3 days ago      63.1MB
	mysql                                5.7       daff57b7d2d1   11 days ago     430MB
	oaisoftwarealliance/oai-spgwu-tiny   latest    b1d0c95000bc   8 weeks ago     127MB
	oaisoftwarealliance/oai-smf          latest    639a618a3707   2 months ago    149MB
	oaisoftwarealliance/oai-amf          latest    890b5b8e62ec   2 months ago    153MB
	oaisoftwarealliance/trf-gen-cn5g     latest    e6037618a0d9   5 months ago    278MB
	hello-world                          latest    feb5d9fea6a5   11 months ago   13.3kB
所有镜像下载完毕

修改镜像tag 

修改镜像tag
docker image tag oaisoftwarealliance/oai-amf:latest oai-amf:latest 
docker image tag oaisoftwarealliance/oai-smf:latest oai-smf:latest 
docker image tag oaisoftwarealliance/oai-spgwu-tiny:latest oai-spgwu-tiny:latest 
docker image tag oaisoftwarealliance/trf-gen-cn5g:latest trf-gen-cn5g:latest
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker images	
//检擦是否全部安装完毕
	REPOSITORY                           TAG       IMAGE ID       CREATED         SIZE
	ubuntu                               bionic    476c64862aa8   3 days ago      63.1MB
	mysql                                5.7       daff57b7d2d1   11 days ago     430MB
	oai-spgwu-tiny                       latest    b1d0c95000bc   8 weeks ago     127MB
	oaisoftwarealliance/oai-spgwu-tiny   latest    b1d0c95000bc   8 weeks ago     127MB
	oaisoftwarealliance/oai-smf          latest    639a618a3707   2 months ago    149MB
	oai-smf                              latest    639a618a3707   2 months ago    149MB
	oai-amf                              latest    890b5b8e62ec   2 months ago    153MB
	oaisoftwarealliance/oai-amf          latest    890b5b8e62ec   2 months ago    153MB
	trf-gen-cn5g                         latest    e6037618a0d9   5 months ago    278MB
	oaisoftwarealliance/trf-gen-cn5g     latest    e6037618a0d9   5 months ago    278MB
	hello-world                          latest    feb5d9fea6a5   11 months ago   13.3kB
易知多了四个,但是他们的image id是相同的(因为是相同镜像,只不过不是一样的tag)

修改完成之后,docker即可log out

步骤三

部署轻量级核心网

建立网桥,原文:The docker-compose-host machine needs to be configured with demo-oai bridge before deploying core network components. To capture initial message exchange between smf<-->nrf<-->upf we need create the bridge.

建立网桥
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker network create \>   --driver=bridge \
  --subnet=192.168.70.128/26 \
  -o "com.docker.network.bridge.name"="demo-oai" \
  demo-oai-public-net
报错:
	Command 'ifconfig' not found, but can be installed with:
那我们需要安装:
	apt install net-tools	//需要apt install net-tools

//查看网络端口地址:
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# ifconfig demo-oai	//检查是否建立了demo-oai网桥
	demo-oai: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.70.129  netmask 255.255.255.192  broadcast 192.168.70.191
        ether 02:42:b4:1f:e2:5b  txqueuelen 0  (以太网)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
		易知ip地址为192.168.70.129(demo-oai的ip地址在后面配置UERANSIM时需要使用)********************************************
		
//查看网桥地址:
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# docker network ls
	NETWORK ID     NAME                  DRIVER    SCOPE
	a44a686e67a9   bridge                bridge    local
	b54316542a4d   demo-oai-public-net   bridge    local
	88e9f49b2e00   host                  host      local
	ad926acba8ba   none                  null      local
	//易知网关地址为b54316542a4d
	//因此我们已经完成了网络的部署要求

步骤四

启动核心网(请忽略下图中出现的nrf,因为我在步骤2中也下载了nrf的镜像)

参考docs/DEPLOY_SA5G_MINI_DEPLOYMENT.md · master · oai / cn5g / oai-cn5g-fed · GitLab (eurecom.fr)

 中的7. Deploying OAI 5g Core Network

在docker compose中有一个启动脚本,因此我们先打开docker compose
	
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# ls
	CHANGELOG.md  ci-scripts  CONTRIBUTING.md  docs     openshift  scripts
	charts        component   docker-compose   LICENSE  README.md
	
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed# 

root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed/docker-compose# ls
	core-network.py                          docker-compose-mini-nonrf.yaml
	database                                 docker-compose-mini-nrf.yaml
	docker-compose-basic-nonrf.yaml          docker-compose-my5grantester-vpp.yaml
	docker-compose-basic-nrf-http2.yaml      docker-compose-no-privilege.yaml
	docker-compose-basic-nrf.yaml            docker-compose-slicing-basic-nrf.yaml
	docker-compose-basic-vpp-nonrf.yaml      docker-compose-slicing-ransim.yamlls
	docker-compose-basic-vpp-nrf-http2.yaml  docker-compose-ueransim-vpp.yaml
	docker-compose-basic-vpp-nrf.yaml        healthscripts
	docker-compose-gnbsim-vpp.yaml           nssf_slice_config.yaml
	docker-compose-gnbsim.yaml
	//易知提供了一个core-network.py 的脚本
	
由于我们不需要NRF因此运行如下命令
root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed/docker-compose# python3 ./core-network.py --type start-mini --scenario 1
	[2022-09-06 20:07:59,726] root:DEBUG:  Starting 5gcn components... Please wait....
	[2022-09-06 20:07:59,726] root:DEBUG: docker-compose -f docker-compose-mini-nrf.yaml up -d
	[+] Running 6/6
	⠿ Container oai-nrf     Started 10.9ss
	⠿ Container mysql       Running 0.0s
	⠿ Container oai-amf     Started 11.2ss
	⠿ Container oai-smf     Started 11.8ss
	⠿ Container oai-spgwu   Started 12.2ss
	⠿ Container oai-ext-dn  Started 12.6sss
	
	[2022-09-06 20:08:12,695] root:DEBUG:  OAI 5G Core network started, checking the health status of the containers... takes few secs....
	[2022-09-06 20:08:12,695] root:DEBUG: docker-compose -f docker-compose-mini-nrf.yaml ps -a
	[2022-09-06 20:08:24,893] root:DEBUG:  All components are healthy, please see below for more details....
	NAME                COMMAND                  SERVICE             STATUS              PORTS
	mysql               "docker-entrypoint.s…"   mysql               running (healthy)   3306/tcp, 33060/tcp
	oai-amf             "/bin/bash /openair-…"   oai-amf             running (healthy)   80/tcp, 9090/tcp, 38412/sctp
	oai-ext-dn          "/bin/bash -c ' ip r…"   oai-ext-dn          running             
	oai-nrf             "/bin/bash /openair-…"   oai-nrf             running (healthy)   80/tcp, 9090/tcp
	oai-smf             "/bin/bash /openair-…"   oai-smf             running (healthy)   80/tcp, 8080/tcp, 8805/udp
	oai-spgwu           "/bin/bash /openair-…"   oai-spgwu           running (healthy)   2152/udp, 8805/udp
	[2022-09-06 20:08:24,894] root:DEBUG:  Checking if the containers are configured....
	[2022-09-06 20:08:24,894] root:DEBUG:  Checking if AMF, SMF and UPF regtered with nrf core network....
	[2022-09-06 20:08:24,894] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="AMF" | grep -o "192.168.70.132"
	192.168.70.132
	[2022-09-06 20:08:24,926] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="SMF" | grep -o "192.168.70.133"
	192.168.70.133
	[2022-09-06 20:08:24,933] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UPF" | grep -o "192.168.70.134"
	192.168.70.134
	[2022-09-06 20:08:24,940] root:DEBUG:  AMF, SMF and UPF are registered to NRF....
	[2022-09-06 20:08:24,940] root:DEBUG:  Checking if SMF is able to connect with UPF....
	[2022-09-06 20:08:25,089] root:DEBUG:  UPF receiving heathbeats from SMF....
	[2022-09-06 20:08:25,089] root:DEBUG:  OAI 5G Core network is configured and healthy....

root@phoenix-VirtualBox:/home/phoenix/OAI/oai-cn5g-fed/docker-compose# docker ps
//如上命令可以知道现在docker的状态,一共有如下6个容器在工作
	CONTAINER ID   IMAGE                   COMMAND                  CREATED              STATUS                        PORTS                          NAMES
	c2b117b38ea8   trf-gen-cn5g:latest     "/bin/bash -c ' ip r…"   About a minute ago   Up About a minute                                            oai-ext-dn
	5b24c377081d   oai-spgwu-tiny:v1.4.0   "/bin/bash /openair-…"   About a minute ago   Up About a minute (healthy)   2152/udp, 8805/udp             oai-spgwu
	3a926bd3cdad   oai-smf:v1.4.0          "/bin/bash /openair-…"   About a minute ago   Up About a minute (healthy)   80/tcp, 8080/tcp, 8805/udp     oai-smf
	1c1c499e1fb6   oai-amf:v1.4.0          "/bin/bash /openair-…"   About a minute ago   Up About a minute (healthy)   80/tcp, 9090/tcp, 38412/sctp   oai-amf
	95ecc6e96483   oai-nrf:v1.4.0          "/bin/bash /openair-…"   About a minute ago   Up About a minute (healthy)   80/tcp, 9090/tcp               oai-nrf
	feb18e23f53c   mysql:5.7               "docker-entrypoint.s…"   45 minutes ago       Up 45 minutes (healthy)       3306/tcp, 33060/tcp

芜湖~核心网成功启动。接下来就是虚拟基站和UE的部署配置。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值