luhan 发表于 2020-12-24 13:42:40

OpenXG-UPF安装部署教程


版本作者参与者日期备注
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各网卡对应关系3. 编译安装如果您还没有加入到OpenXG-Core 的项目中,请参考这里如何贡献及获取代码通过git下载代码:git clone http://gitlab.openxg.org.cn/openxg/upf.gitcd ./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 ens9ethtool -i ens10system和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运行。




taojian_840831 发表于 2020-12-29 09:41:38

请问一下,(图1 UPF各网卡对应关系)这张图中的iptables是自己维护的还是内核中的?

luhan 发表于 2020-12-31 16:40:33

taojian_840831 发表于 2020-12-29 09:41
请问一下,(图1 UPF各网卡对应关系)这张图中的iptables是自己维护的还是内核中的? ...

iptables只做了nat,是内核自己处理了。
页: [1]
查看完整版本: OpenXG-UPF安装部署教程