5G仿真环境搭建避坑指南

admin 2023年10月14日02:02:13评论50 views字数 5201阅读17分20秒阅读模式
PART
01

前言



    5G、5G+是当前安全研究的热点。在研究过程中,不可避免的需要搭建5G仿真环境。笔者也不例外,但是最近在搭建5G环境时,却发现很多网上的所谓搭建教程都存在问题。这些搭建教程,给实际工作造成很多困扰。笔者本着负责任的态度,记录一下自己的遇坑过程,以及解决方法,在此分享给诸位。

    常见的5G开源环境有free5gc、open5gc。



PART
02

free5gc搭建过程



推荐搭建可参考

https://github.com/free5gc/free5gc

free5GC安装、运行、测试及注意事项-CSDN博客

Free5gc+UERANSIM模拟5G网络环境搭建及基本使用 - FreeBuf网络安全行业门户


    问题1:free5gc的搭建环境有一个硬性条件,要求Linux内核版本为5.0.0-23-generic或5.4.0及之后的版本。但是很多、包括官网在内都推荐采用ubuntu 22.04。

    避坑ubuntu 22.04的内核有些是5.15.0-150-generic,有些是5.4.0-150-generic,导致在编译的过程中,总会报各种错误。然后很自然的想到降低内核版本,但是降低内核的过程很麻烦,稍不留意可能就是虚拟机死机。

    解决方法采用Ubuntu 18.04 ,笔者下载的内核版本是3.2.x,虽然内核不符合,但是内核版本升级比内核降低容易的多,只需要补充一下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


    问题2:部署过程中,会发现大量的依赖包需要从github上面下载,也可能会报错:Failed to connect to github.com port 443: Connection refused。

    解决方法:

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


    问题3:如果是free-compose安装,则可能出现如下错误。

5G仿真环境搭建避坑指南

    避坑:chf:v3.3.0 这里有误,但是命令是没有问题的。

    解决方法:修改文件,将v 3.3.0 修改为 latest。笔者已经在github官网上面提交了修改方案,不知道后面的人能否直接用。

5G仿真环境搭建避坑指南


    问题4:在git clone https://hub.fastgit.org/aligungr/UERANSIM时,可能出现如下错误:

fatal: unable to access 'https://hub.fastgit.org/aligungr/UERANSIM/': gnutls_handshake() failed: Error in the pull function

5G仿真环境搭建避坑指南

    避坑:这里应该是缺少gnutls-bin,有些教程让修改openssh来代替,但是系统之间存在差异性,能否成功靠运气。

    解决方案:配置过程网上有很多,总结之后,大致可有如下解决方案:

apt-get install gnutls-bingit config --global http.sslVerify falsegit config --global http.postBuffer 1048576000


    问题5:在编译UERANSIM过程中,虽然注意到cmake的版本,实现了100%编译完成,但是依旧可能出现各种编译错误,导致最后无法运行。

5G仿真环境搭建避坑指南

5G仿真环境搭建避坑指南

    避坑:这是由于git clone https://hub.fastgit.org/aligungr/UERANSIM过程中,默认下载最新版本,最新版本可能并不成熟。

    解决方案:git check切换仓库,具体命令如下:

 cd ~  git clone https://github.com/aligungr/UERANSIM  cd UERANSIM  git checkout -b 3a96298

5G仿真环境搭建避坑指南


    问题6:很多教程里面,都是git clone -b v0.2.0 https://github.com/PrincOwO/gtp5g.git,但是在执行过程中,老是报错。

避坑:可能是作者改了名字,也可能是大家相互抄,抄错了,导致就都错了。

    解决方案:正确命令如下

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

    此外,在编译过程中,也可能报错,此时建议git check,相关过程如下:

5G仿真环境搭建避坑指南

5G仿真环境搭建避坑指南

5G仿真环境搭建避坑指南

5G仿真环境搭建避坑指南



PART
03

Open5gs搭建过程



Open5gs搭建过程可参考:

https://open5gs.org/open5gs/docs/guide/

这里有快速入门和源代码编译。


问题1:搭建Open5gs的前提,需要具备mongdb环境,但是在执行sudo apt install -y mongodb-org,可能会报出unment dependencied的错误。

解决方案:这是由于环境不纯洁,导致之前的一些模块与新模块产生冲突。执行如下命令:

sudo apt-get autoremove mongodb-org-mongos mongodb-org-tools mongodb-org mongodb-org-database

5G仿真环境搭建避坑指南


    问题2采用源代码安装,在运行./build/tests/attach/attach时,会出现core dump。

    解决方案:这种可能比较麻烦,建议修改虚拟机的配置,增加运行内存,直接上8G。



    问题3:采用源代码安装,在运行./build/tests/attach/attach和sudo meson test -v时,很容易报出各种error,比如端口占用等。

    解决方案:在编译open5gs源代码的过程中,默认开启了对应的网元,然后在mongodb中增加了订阅的信息,所以在运行test程序的时候,存在冲突,导致不成功。(这是笔者的血泪史,弄了半天,才ALL pass)

    相关命令:

ps -ef |grep open5gs然后运行 sudo pkill -9 open-*   一个一个关闭Mongo>> use open5gs>> db.subscribe.find()>> db.subscribe.drop()>> exit

成功运行过程,附后面,表达一下成功的喜悦

yx@RAN:~/open5gs/open5gs-2.2.9$ cd build/ yx@RAN:~/open5gs/open5gs-2.2.9/build$ sudo meson test -v

ninja: Entering directory `/home/yx/open5gs/open5gs-2.2.9/build'

ninja: no work to do.

list-test           : SUCCESS

pool-test           : SUCCESS

strings-test        : SUCCESS

time-test           : SUCCESS

conv-test           : SUCCESS

log-test            : SUCCESS

pkbuf-test          : SUCCESS

memory-test         : SUCCESS

rbtree-test         : SUCCESS

timer-test          : SUCCESS

thread-test         : SUCCESS

socket-test         : SUCCESS

queue-test          : SUCCESS

poll-test           : SUCCESS

tlv-test            : SUCCESS

fsm-test            : SUCCESS

hash-test           : SUCCESS

uuid-test           : SUCCESS

All tests passed.

1/12 open5gs:unit / core                     OK       6.62 s

aes-test            : SUCCESS

sha-test            : SUCCESS

base64-test         : SUCCESS

All tests passed.

2/12 open5gs:unit / crypt                    OK       0.07 s

sctp-test           : SUCCESS

All tests passed.

3/12 open5gs:app / sctp                      OK       0.04 s

s1ap-message-test   : SUCCESS

nas-message-test    : SUCCESS

gtp-message-test    : SUCCESS

ngap-message-test   : SUCCESS

sbi-message-test    : SUCCESS

security-test       : SUCCESS

crash-test          : SUCCESS

All tests passed.

4/12 open5gs:unit / unit                     OK       0.04 s

guti-test           : SUCCESS

auth-test           : SUCCESS

idle-test           : SUCCESS

dereg-test          : SUCCESS

paging-test         : SUCCESS

identity-test       : SUCCESS

gmm-status-test     : SUCCESS

ue-context-test     : SUCCESS

reset-test          : SUCCESS

All tests passed.

5/12 open5gs:5gc / registration              OK      18.75 s

qos-flow-test       : SUCCESS

session-test        : SUCCESS

All tests passed.

6/12 open5gs:5gc / vonr                      OK       4.39 s

nssai-test          : SUCCESS

All tests passed.

7/12 open5gs:5gc / slice                     OK       1.90 s

s1setup-test        : SUCCESS

guti-test           : SUCCESS

auth-test           : SUCCESS

idle-test           : SUCCESS

emm-status-test     : SUCCESS

ue-context-test     : SUCCESS

reset-test          : SUCCESS

All tests passed.

8/12 open5gs:epc / attach                    OK      10.39 s

bearer-test         : SUCCESS

session-test        : SUCCESS

rx-test             : SUCCESS

video-test          : SUCCESS

cx-test             : SUCCESS

All tests passed.

9/12 open5gs:epc / volte                     OK      12.74 s

mo-idle-test        : SUCCESS

mt-idle-test        : SUCCESS

mo-active-test      : SUCCESS

mt-active-test      : SUCCESS

mo-sms-test         : SUCCESS

mt-sms-test         : SUCCESS

crash-test          : SUCCESS

All tests passed.

10/12 open5gs:epc / csfb                      OK       7.20 s

epc-test            : SUCCESS

All tests passed.

11/12 open5gs:app / 310014                    OK       5.97 s

epc-x2-test         : SUCCESS

epc-s1-test         : SUCCESS

5gc-xn-test         : SUCCESS

5gc-n2-test         : SUCCESS

All tests passed.

12/12 open5gs:app / handover                  OK      12.01 s

OK:        12

FAIL:       0

SKIP:       0

TIMEOUT:    0



5G仿真环境搭建避坑指南

原文始发于微信公众号(星耀安全实验室):5G仿真环境搭建避坑指南

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月14日02:02:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   5G仿真环境搭建避坑指南http://cn-sec.com/archives/2110978.html

发表评论

匿名网友 填写信息