开源无线网络-OpenXG

标题: OpenXG-UPF安装部署教程 [打印本页]

作者: luhan    时间: 2020-12-24 13:42
标题: 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地址。
[attach]27[/attach]

图1 UPF各网卡对应关系
3. 编译安装
如果您还没有加入到OpenXG-Core 的项目中,请参考这里如何贡献及获取代码
通过git下载代码:
git clone http://gitlab.openxg.org.cn/openxg/upf.git
cd ./upf/scripts/
依次执行以下命令编译安装不同组件部分:
./build_upf.sh --pre_install  ## 安装程序所依赖的外部程序包库
[attach]28[/attach]
./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[attach]29[/attach]
网卡名字的对应关系见图1,system 和startup模块中,需要填写相应网卡的PCI值,查看pci值,可以使用以下命令:
ethtool -i ens9
ethtool -i ens10
system和startup模块中对应的值修改为bus-info值的后两位。
[attach]30[/attach]
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,后续将对各端口名字进行统一修改。
[attach]31[/attach]
4.5 修改系统配置脚本路径:
config_system所对应的目录,修改为自己的目录。
后续该目录将修改为自动配置模式。
4.6 配置N4接口各参数:
[attach]32[/attach]

5. 运行UPF
执行./run_upf.sh --start,运行成果后出现以下结果,程序进入后台运行。
后续将改为 ./run_upf.sh -o upf.conf的方式加载配置文件。
[attach]33[/attach]
执行./run_upf.sh --close ,可停止UPF运行。






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

iptables只做了nat,是内核自己处理了。




欢迎光临 开源无线网络-OpenXG (http://bbs.openxg.org.cn/) Powered by Discuz! X3.2