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 节点)

UPFUE上下行流量转发流程是不同的,如下图:

MP2_process1.png

其中关键节点有:

  • ip4-input (区分识别业务)

  • upf-pdr-detect (区分识别业务)

  • upf-process (处理报文按照不同业务进行转发)

ip4-input:节点通过报文目的ip,查找路由表找到报文的下一跳节点;

​ 对于GTPU报文(UE的上行流量),其目的IP一定是UPF,下一跳也就指向本地,进而进入UPF的处理流程;

​ 对于非GPUT报文(UE的下行流量),其目的IPUE IP,在Session建立时,UPF会在对应NWIVRF中建立UE IP的路由表,将对应的流量引入UPF处理节点;

​ 对于非UE流量,则按照路由表下一跳正常转发。

upf-pdr-detect:节点通过对报文进行精确匹配PDR;匹配 UE IPSDF

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 MP2_process2.png

    • 修改建立pfd:增加建立pfd指定该条FD是分流到边缘MEC

      upf 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_process3.png

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