UPF MP2 流程
MP2
MP2 接口共有以下 7 个接口:
IP五元组分流规则 (开发,业务相关)DNS重定向规则 (开发,业务相关)DNS分流规则 (开发,业务相关)基于
UE标识的黑白名单访问控制 (开发,业务相关)UE信息查询 (开发,不相关业务)基于
UE的带宽管理 (开发,业务相关)UE位置查询 (不开发,不相关业务,需要基站侧支持)
注:IP五元组分流规则是,所有业务相关规则的必要前提
UPF
我们清楚UPF业务转发对逻辑是先区分识别业务,后按照不同业务进行转发:
区分识别业务:通过报文精确匹配
PDR做业务识别(UPF 中 upf_pdr_detect 节点)按照不同业务进行转发:通过匹配的
PDR关联的FAR做相应的转发 (UPF 中 upf_process 节点)
UPF对UE上下行流量转发流程是不同的,如下图:

其中关键节点有:
ip4-input (区分识别业务)
upf-pdr-detect (区分识别业务)
upf-process (处理报文按照不同业务进行转发)
ip4-input:节点通过报文目的ip,查找路由表找到报文的下一跳节点;
对于GTPU报文(UE的上行流量),其目的IP一定是UPF,下一跳也就指向本地,进而进入UPF的处理流程;
对于非GPUT报文(UE的下行流量),其目的IP是UE IP,在Session建立时,UPF会在对应NWI的VRF中建立UE IP的路由表,将对应的流量引入UPF处理节点;
对于非UE流量,则按照路由表下一跳正常转发。
upf-pdr-detect:节点通过对报文进行精确匹配PDR;匹配 UE IP,SDF。
upf-process:按照匹配的PDR关联的FAR进行业务处理转发,转发的出端口就是在这个节点设置的。
UPF MP2 开发流程
UPF MP2流程设计:
MP2首先侧重IP 五元组分流,能将边缘流量过滤出来,并依照UPF转发实现逻辑分流到边缘,是MP2的开发前提,因此设计实现如何过滤出UE到边缘的流量,并在处理转发时正确的转发到边缘Interface是主要内容。
过滤出UE到边缘的流量:在UPF创建PFD时,增加设置该FD是分流到边缘MEC;并在pdr_detect时,检查FD是否为分流边缘,并置位报文元数据。
处理转发时正确的转发到边缘Interface:在upf_process时,通过报文元数据判断是否为边缘流量,并正确分流到边缘。
本设计是在UPF原节点进行修改(没有增加MP2节点是因为,后续开发可以继续利用UPF原有功能,不需要重发代码搬移)
配置:在
UPF启动时,增加MEC专用路由,专用端口comment{N6-MEC} ip table add 100 # 增加专用路由表 set interface ip table GigabitEthernet0/f/0 100 # MEC DN interface set interface ip address GigabitEthernet0/f/0 192.168.2.16/24 # 设置对接 MEC DN GW ip route add 0.0.0.0/0 table 100 via 192.168.2.1 GigabitEthernet0/f/0 # 设置到 MEC DN 默认路由 upf mec route ip4 table set 100 # 设置 UPF MEC 专用路由表
代码:
修改
PFCP建立Session流程:在Session建立时,向MEC专用路由增加UE IP指向UPF路由,建立DPO
修改建立
pfd:增加建立pfd指定该条FD是分流到边缘MECupf pfd-list appid 1030 fd {permit in ip from 172.20.231.0/24 to 192.168.2.1/32} mec-traffic upf pre-def urr id 2200000003 trigers 16 upf pre-def rule rule_name rule1 app_id 1030 urr_ids 2200000003 upf dnn name default.mnc092.mcc466.gprs rule_id rule1
uranus> show upf pfd-list ---------------------------------------------------- PFD List Info: app_id counts: 16 ---------------------------------------------------- app id: 1030 mec traffic # 有 mec traffic 说明该条 fd 将分流到边缘 mec precedence: 0 PFD idx: 0 Flow Describe(1):V4: permit in ip from 172.20.231.0/24 to 192.168.2.1 # 该条流量将分流到边缘 mec URL(0): DN(0): Customer:(0)= uranus>
对业务识别的修改,
upf-pdr-detect:对报文匹配到的 SDF,校验是否为分流到边缘MEC,若是将置位报文元数据mec_traffic对处理报文的修改,
upf-process:通过报文元数据mec_traffic是否置位判断是否为到边缘MEC的流量,若是,则将该流量引入MEC专用路由进行转发

注:后续MP2业务开发,通过判断报文元数据是否为边缘流量,进行业务区分,并在此基础上开发相关业务逻辑。