本文档记录用Oracle Virtual BOX 安装Open5GS+UeRANSim模拟UE+RAN+5GS。
UE,RAN,5GS工作在同一台virtual machine上。
Open5GS的参考文档:https://open5gs.org/open5gs/docs/
Open5GS的github: https://github.com/open5gs
UeRANSim 的github:https://github.com/aligungr/UERANSIM
UeRANSim的 Wiki:https://github.com/aligungr/UERANSIM/wiki
其中安装文档链接分别如下,这两份比较简洁:
https://github.com/aligungr/UERANSIM/wiki/Installation
https://open5gs.org/open5gs/docs/guide/01-quickstart/
本文档安装模拟的参考链接:
【youtube】[YouTube] Install Open5Gs and UERANSIM via Virtual Machine
https://www.youtube.com/playlist?list=PLZqpS76PykwIoqMdUt6noAor7eJw83bbp
首先在windows上安装一个ubuntu 虚拟机。如果已经有ubuntu,可以忽略这一节。
VirtualBox Guest Additions 可以进一步改进 VirtualBox。 提供了无缝的虚拟化体验。这些新增功能提供了增强的功能和性能,包括更好的显示分辨率、无缝的鼠标集成以及改进的主机和客户操作系统之间的文件共享。所以添加虚拟机后,也安装了VB Guest Additions。
点击新建
弹出页面选择专家模式,因为第一个virtual machine要模拟5GS,起名称5GinaBox。如下勾选:
选择之前下载的iso文件。类型linux,版本 Ubuntu(64-bit)。
然后把处理器设置为2或者4.其他维持默认配置,没有改动。
点击完成。
这中间有一个小问题,在我的电脑上面的窗口一直超过屏幕,无法看到最下方的完成按钮。
通过修改品目缩放大小,从默认的150%修改为125%,解决。
下载出现了5GinaBox虚拟机,点击启动。
成功引导后,显示了安装 Ubuntu 的各种选项。选择 “尝试 Ubuntu(Try Ubuntu)” 或 “安装 Ubuntu(Install Ubuntu)”。
进入桌面后,等待出现如下界面,选择English,Install Ubuntu
如下界面,点击continue
如下界面,和默认选项不同。此虚拟机只用来模拟核心网,不需要各种第三方软件,选择“minimal installation”
下面窗口,因为时虚拟机,选择“Erase disk and Install Ubuntu”即可。
看到“Wrtie the changes to disks”直接点击continue
然后选择所在时区
接着输入用户名,密码电脑名字:
等待安装完后,在如下界面弹出时,点击restart。重启虚拟机。
重启后welcome界面的设置都skip。
为了操作方便需要安装 guest addtions。我的virtualbox版本时7.08 r156879,就在 http://download.virtualbox.org/virtualbox/7.0.8
目录下找到对应版本下载,
进入系统,打开命令行,进入VBOX guest addtion 目录:
命令行中输入:
sudo ./VBoxLinuxAddtions.run
安装过程中会卡住,或者报错。根据提示安装所需的包。比如下图,根据提示,输入如下命令安装所需package
Sudo apt-get install gcc make perl
重新输入sudo ./VBoxLinuxAddtions.run安装软件。
然后输入如下两个命令,查看其版本和服务状态。
modinfo vboxguest
systemctl status vbox*
配置中设备选择,设置,将“共享黏贴板”“拖放”均设置为双向。
点击左下角show application按钮,搜索display。进入displays设置。
然后根据自己电脑修改分辨率。
参考
Installation steps for Open5GS & UERANSIM for single VM
https://github.com/mohitkr05/5G_stuff/blob/main/clickops/01_Open5GS_UeRANSIM/single_vm.md
virtual box 虚拟机上的Mongodb 依赖 gnupg wget curl,和libssl1.1. 需要手动安装。
操作如下:
sudo apt-get update
sudo apt-get install -y gnupg wget curl
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
sudo apt-get update && sudo apt-get install libssl1.1
sudo rm /etc/apt/sources.list.d/focal-security.list
【此问题可以参考如下链接
https://askubuntu.com/questions/1403619/mongodb-install-fails-on-ubuntu-22-04-depends-on-libssl1-1-but-it-is-not-insta】
安装前需要确认CPU能否支持AVX等。如果不支持必须安装5.0之下的版本。
grep avx /proc/cpuinfo如果返回空,则不支持。
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
Sudo apt update
sudo apt install mongodb-org=4.4.8 mongodb-org-server=4.4.8 mongodb-org-shell=4.4.8 mongodb-org-mongos=4.4.8 mongodb-org-tools=4.4.8
输入如下命令配置mongod。 并查询版本,确认安装成功。
systemctl start mongod
systemctl enable mongod
mongod --version
不同版本的安装命令不同,最新的安装命令参考:
https://github.com/nodesource/distributions#installation-instructions
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y
sudo add-apt-repository ppa:open5gs/latest
sudo apt-get install -y software-properties-common
sudo apt-get -y update && sudo apt install -y open5gs
输入 sudo service open5gs-* status
如下图,sgwu、dbm等服务均正常运行。
安装完open5GS后网络会无法连上。此时安装其他软件时,会有类似‘Temporary failure resolving 'hk.archive.ubuntu.com’的提示。
此时只需要重新开关网络即可。依次点击turn off,turn on。
运行open5GS,举要建立并配置相关的tunnel iface。
需要使用ifconfig之类的命令。所以安装net-tools
sudo apt-get install net-tools
可以看到open5GS建立了一个internal interface: ogstun
这是一个tunnel interface, ip为 10.45.0.1 和inet6 fe80::7058:ea6:8a5b:97a3 , inet6 2001:db8:cafe::1 。
curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash -
安装过程可以看到默认用户名密码的打印。
Default Administrator Account [Username:admin, Password:1423]…
网址打印如下:(前期版本端口是3000,现在是9999. 注意安装时的打印消息。)
Ready on http://localhost:9999
安装后,open5gs-webui服务就起来了。
登陆webui后界面显示如下:
sudo apt install make gcc g++ libsctp-dev lksctp-tools iproute2 git
sudo snap install cmake --classic
cd ~
mkdir ueransim && cd ueransim
git clone https://github.com/aligungr/UERANSIM
cd UERANSIM
make
运行RAN和AMF成功建立NG连接
cd ~
cd UERANSIM
../build/nr-gnb -c open5gs-gnb.yaml
UERANSIM 分为 UE 和 RAN(nr-gnb)模块。
上面的nr-gnb命令建立模拟接入网gnode,通过open5gs-gnb.yaml配置, 经NG口去连接Open5GS的AMF/UPF模块。因为UeRANSim和Open5GS两者是装在一个虚拟机上,所以默认参数不需要修改。
通过日志看通过NGAP/STCP连接建立NG口。
Open5GS的AMF也打印出来gNB的连接和断开。
至此UERANSIM和open5GS都成功安装完毕。并可以互相交互。