版本 | 作者 | 参与者 | 日期 | 备注 | v0.5 | 吴洲洋 | 王鲁晗 | 2020-12-25 | 针对commit 57212f96cdf70eaba940a342d2f872d4b839cb5f | | | | | | | | | | | | | | | |
本教程主要介绍如何在虚拟机上部署OpenXG-UPF,虚拟机配置建议: CPU:8核及以上; 内存:16GB及以上; 网卡:4块,驱动为 e1000; 操作系统:Ubuntu 18.04
2. 虚拟机网络配置 以我机器为例,4个虚拟网卡分别为:ens3、ens9、ens10、ens11; 对不同网卡的功能进行划分,分别包括以下4个分类: gtpu_entry:ens9,IP地址为192.168.10.10,该地址在脚本中配置,vpp将该地址设置到网卡上,用于与基站对接; gtpu_export:ens10,IP地址为192.168.30.10,该地址在脚本中配置,vpp将该地址设置到网卡上,该地用于将去掉GTP头的数据转发给VppHost; VppHost:ens11,ip地址为192.168.30.11,该地址手动配置在网卡上,收到UE的裸IP数据,进行NAT等转发操作。 snatInter:ens3,地址为192.168.122.80,由DHCP分配得到的IP地址,作为与互联网对接的出入口。 PS:由于部分IP地址在程序中写死,建议除snatInter端口以外,其他端口使用以上建议配置的IP地址。
图1 UPF各网卡对应关系 通过git下载代码: cd ./upf/scripts/ 依次执行以下命令编译安装不同组件部分: ./build_upf.sh --pre_install ## 安装程序所依赖的外部程序包库
./build_upf.sh --install_golang ## 安装go语言基本环境; 安装完成之后,一次执行source ~/.bashrc 和go env:
./build_upf.sh --vpp ## 编译安装vpp,UPF数据面功能在该步骤编译完成;
./build_upf.sh --n4 ## 编译安装N4接口,主要PFCP相关。
4. 配置与运行 主要配置文件位于 ./etc/ 目录下: 4.1 配置gtpu_entry和gtpu_export
网卡名字的对应关系见图1,system 和startup模块中,需要填写相应网卡的PCI值,查看pci值,可以使用以下命令: ethtool -i ens9 ethtool -i ens10 system和startup模块中对应的值修改为bus-info值的后两位。
4.2 配置基站侧IP地址:gnb_gtpu_ip为gNB的数据面IP地址。 后续将删除该选项,改为程序自动配置。 4.3 配置UE的地址池:ueip为UE的地址段、ueIPPrefix为子网掩码位数。 后续该字段修改为 uePool: 192.169.0.0/24 样式。 4.4 依次配置各网卡名称及IP地址:特别说明,下图中vppHostIP,实际上是gtpu_export的IP,后续将对各端口名字进行统一修改。
4.5 修改系统配置脚本路径:config_system所对应的目录,修改为自己的目录。 后续该目录将修改为自动配置模式。 4.6 配置N4接口各参数:
5. 运行UPF
执行./run_upf.sh --start,运行成果后出现以下结果,程序进入后台运行。 后续将改为 ./run_upf.sh -o upf.conf的方式加载配置文件。
执行./run_upf.sh --close ,可停止UPF运行。
|