5G MEC(多接入边缘计算)的商用落地,本质上要回答一个问题:当一个业务流的目标服务器已经下沉到园区/基站机房边缘时,用户面流量为什么还要绕行几十公里到中心UPF再折返? 这种"绕路"带来的不仅是时延,更是骨干带宽的浪费。
3GPP在Release 15就为5G核心网设计了4种本地分流(Local Breakout)技术:UL CL(上行分类器,Uplink Classifier)、IPv6多归属(Multi-homing,基于Branching Point)、LADN(Local Area Data Network)、专用DNN。其中UL CL是面向MEC场景最主流、最灵活、对终端完全透明的方案,也是当前运营商企业专线、视频直播边缘渲染、工业AR/VR、车联网V2X等场景部署量最大的方案。
本文聚焦UL CL机制本身——它的UPF功能定位、SMF如何通过N4(PFCP)协议下发分流规则、完整的PDU会话建立信令时序、以及抓包识别与故障定位方法。所引用的核心规范为:
UL CL并不是一个独立的网元,而是UPF上的一个功能(Functionality)。根据TS 23.501第5.8.2节,UL CL的作用是:基于SMF下发的流量检测过滤器(Filter),将上行业务流分拣到不同的PDU会话锚点UPF(PSA),同时把来自不同PSA的下行业务流合并后转发给接入网(N3方向)。
关键设计点有三:
UL CL UPF通常是数据面的第一跳UPF(I-UPF,Intermediate UPF),直接与RAN的N3接口相连。它身后挂两个(或多个)PSA:
flowchart LR
UE[UE 终端] -->|N3 GTP-U| ULCL["UL CL UPF<br/>(I-UPF, 上行分类器)"]
ULCL -->|N9 匹配'其他流量'<br/>FAR→PSA1| PSA1["PSA1 中心锚点UPF<br/>公网/中心DN"]
PSA1 -->|N6| INTERNET[Internet/中心业务]
ULCL -->|N9 匹配'边缘流量'<br/>FAR→PSA2| PSA2["PSA2 边缘锚点UPF<br/>本地DN/MEC"]
PSA2 -->|N6 本地| MEC["MEC平台<br/>边缘应用EAS"]
style ULCL fill:#ffe4b5,stroke:#d2691e,stroke-width:2px
style PSA2 fill:#e0ffe0,stroke:#228b22
UL CL UPF的核心任务:上行按过滤器分拣、下行合并。注意:一个PDU会话同时存在多个UL CL UPF时,只有一个UPF作为N3接口的连接点(即与RAN直连),其余通过N9串联。 这是TS 23.501明确约束的。
下面拆解一条"UE发起、SMF判定需要边缘分流、一次建立即插入UL CL + PSA2"的完整PDU会话建立流程。这是最典型的MEC本地分流落地场景。
sequenceDiagram
autonumber
participant UE
participant RAN as gNB(RAN)
participant AMF
participant SMF
participant PCF
participant UDM
participant ULCL as UL CL UPF<br/>(I-UPF)
participant PSA1 as PSA1<br/>(中心锚点)
participant PSA2 as PSA2<br/>(边缘锚点)
participant DN as 边缘DN/MEC
UE->>AMF: NAS: PDU Session Establishment Request<br/>(DNN, S-NSSAI, PDU Session ID, Request Type)
AMF->>SMF: Nsmf_PDUSession_CreateSMContext<br/>(SUPI, DNN, S-NSSAI, UE Location)
SMF->>UDM: Nudm_SDM_Get (SM Subscription, DNAI信息)
SMF->>PCF: Npcf_SMPolicyControl_Create (获取PCC规则)
Note over SMF: UPF选择:基于DNAI+UE位置+策略<br/>选定 PSA1(中心) / UL CL UPF / PSA2(边缘)
SMF->>PSA1: N4 PFCP Session Establishment Request<br/>(PDR/FAR: N9↔N6 公网)
PSA1-->>SMF: N4 PFCP Response (F-TEID_N9_PSA1)
SMF->>PSA2: N4 PFCP Session Establishment Request<br/>(PDR/FAR: N9↔N6 边缘DN)
PSA2-->>SMF: N4 PFCP Response (F-TEID_N9_PSA2)
SMF->>ULCL: N4 PFCP Session Establishment Request<br/>(分流规则:见第四节PDR/FAR详解)
ULCL-->>SMF: N4 PFCP Response (F-TEID_N3_AN, F-TEID_N9_去PSA1/PSA2)
SMF->>AMF: Namf_Communication_N1N2MessageTransfer<br/>(N2: PDU Session Resource Setup + N3 F-TEID;<br/>N1: PDU Session Establishment Accept)
AMF->>RAN: N2 PDU Session Resource Setup Request (N3 TEID=ULCL)
RAN->>UE: RRC Reconfiguration (建立DRB)
UE-->>RAN: RRC Reconfiguration Complete
RAN-->>AMF: N2 PDU Session Resource Setup Response
AMF->>SMF: Nsmf_PDUSession_UpdateSMContext (N3隧道已建)
Note over UE,DN: 数据面打通:UE→RAN→UL CL→(分拣)→PSA1/PSA2→中心DN/边缘MEC
消息1(NAS PDU Session Establishment Request,TS 24.501 8.3.1)关键IE:
| IE | 含义 | 在UL CL场景的作用 |
|---|---|---|
| DNN | 数据网络名称 | SMF据此+UE位置判断是否走边缘分流策略 |
| S-NSSAI | 网络切片标识 | 边缘切片(如URLLC切片)常与UL CL绑定 |
| PDU Session ID | 会话标识 | 会话内唯一,对应N4会话 |
| Request Type | 请求类型 | "initial"新建;"existing"则可能触发SSC迁移 |
消息3(Nudm_SDM_Get)的关键返回:会话管理订阅数据中包含UE允许访问的DNAI列表(Data Network Access Identifier)。DNAI是UL CL的"地理坐标"——它标识一个数据网络接入点,SMF依据UE当前TA对应到哪个DNAI来决定选哪个边缘PSA。
消息6(N4 PFCP Session Establishment Request,TS 29.244) 是整个机制的核心,下节单独详解。
消息12(Namf_Communication_N1N2MessageTransfer)的N2 SM信息中携带的N3接口F-TEID指向UL CL UPF(而非PSA1/PSA2)——这是抓包时识别"是否走了UL CL分流"的关键判据:N3隧道对端的IP/TEID是UL CL UPF的,而PDU会话的IP地址却由PSA1分配。
把UL CL在PDU会话建立阶段就插入,而不是建好后再修改,是Rel-15之后MEC优化的主流做法。好处是:终端拿到会话IP后第一包就能命中边缘,无"先绕中心、再改路"的抖动。但对SMF的UPF选择逻辑要求更高——必须在建链前就知道这个会话需要分流(依据DNAI、URSP、AF影响等),这引出第四节的状态判定。
UL CL的"分拣"魔法,全部由SMF通过N4(PFCP)下发的PDR(包检测规则)+ FAR(转发行为规则)实现。规则在UL CL UPF上的整体结构如下:
flowchart TB
subgraph ULCL["UL CL UPF 内部规则表 (由SMF经N4下发)"]
direction TB
subgraph UL["上行(来自N3/AN) PDR分拣"]
PDR_UL1["PDR_UL1: 匹配边缘业务流<br/>PDI: SrcIface=Access, UE-IP, SDF过滤器<br/>(目的IP前缀=边缘DN/MEC网段)"]
PDR_UL2["PDR_UL2: 匹配'其他'业务流<br/>PDI: SrcIface=Access, UE-IP<br/>(默认/兜底)"]
end
subgraph DL["下行(来自N9) PDR分拣"]
PDR_DL1["PDR_DL1: 来自PSA1的N9流<br/>PDI: SrcIface=Core, TEID=去PSA1"]
PDR_DL2["PDR_DL2: 来自PSA2的N9流<br/>PDI: SrcIface=Core, TEID=去PSA2"]
end
end
PDR_UL1 -->|关联| FAR_UL1["FAR_UL1: ApplyAction=Forward<br/>DstIface=Core, OuterHeader=GTP-U去PSA2<br/>(N9→边缘锚点)"]
PDR_UL2 -->|关联| FAR_UL2["FAR_UL2: ApplyAction=Forward<br/>DstIface=Core, OuterHeader=GTP-U去PSA1<br/>(N9→中心锚点)"]
PDR_DL1 -->|关联| FAR_DL1["FAR_DL1: ApplyAction=Forward<br/>DstIface=Access, OuterHeader=GTP-U去RAN<br/>(N3→UE)"]
PDR_DL2 -->|关联| FAR_DL2["FAR_DL2: ApplyAction=Forward<br/>DstIface=Access, OuterHeader=GPT-U去RAN<br/>(N3→UE, 与DL1合并)"]
style PDR_UL1 fill:#e0ffe0
style FAR_UL1 fill:#e0ffe0
style PDR_UL2 fill:#ffe0e0
style FAR_UL2 fill:#ffe0e0
| 规则类型 | 关键IE | 取值/含义(UL CL场景) |
|---|---|---|
| PDR(TS 29.244 5.2.2) | PDR ID | 会话内唯一标识,SMF分配 |
| Precedence(优先级) | 边缘业务PDR优先级数值必须小于兜底PDR(数值小=优先匹配) | |
| PDI.Source Interface | Access(来自N3) / Core(来自N9) | |
| PDI.F-TEID | 用于匹配N9下行入口TEID | |
| PDI.UE IP Address | 标识本会话终端 | |
| PDI.SDF Filter | 分流判据:目的IP前缀/FQDN/五元组,匹配边缘DN | |
| Associated FAR/QER/URR ID | 关联的转发/QoS/计费规则 | |
| FAR(TS 29.244 5.2.3) | FAR ID | 与PDR关联 |
| Apply Action | Forward / Drop / Buffer / Duplicate;UL CL主要用Forward | |
| Forwarding Parameters.Destination Interface | Access(去N3/RAN) / Core(去N9/N6) | |
| Forwarding Parameters.Outer Header Creation | 决定封装:去N9要带GTP-U+目的TEID;去N3同理 | |
| Forwarding Parameters.Network Instance | 指向特定DN/网络实例(边缘实例) |
UL CL要让"边缘流量"被精确截留,必须保证边缘匹配PDR的Precedence数值 < 兜底PDR的Precedence数值(数值越小优先级越高)。如果配置反了,边缘流量会被兜底规则先匹配、错误地转发到PSA1中心锚点——这是生产环境最常见的配置错误之一。
下行方向,来自PSA1和PSA2的两条N9流,经各自的DL PDR匹配后,都关联"Forward → Access(N3去RAN)"的FAR,从而实现下行合并。UE在DRB上收到的GTP-U内层包IP不变,完全感知不到分流。
UL CL不是无条件插入的。SMF需要在多个触发条件下判断"要不要插入/迁移/删除UL CL",其决策状态机如下:
stateDiagram-v2
[*] --> 无ULCL: 普通PDU会话(单PSA)
无ULCL --> 评估分流: 触发条件到达
state 触发条件 <<choice>>
评估分流 --> 触发条件
触发条件 --> 插入ULCL: 命中(需要边缘分流)
触发条件 --> 无ULCL: 不命中(继续单PSA)
插入ULCL --> 分流中: N4 PFCP Modification成功<br/>(新增PSA2+ULCL UPF)
分流中 --> 迁移PSA: UE移动/DNAI变化(AF via NEF)
迁移PSA --> 分流中: SSC mode3 锚点重选<br/>保持UE IP不变
分流中 --> 删除ULCL: 业务结束/UE离开边缘区域
删除ULCL --> 无ULCL: N4 PFCP Modification<br/>(释放PSA2+ULCL)
Nnef_TrafficInfluence服务向PCF下发业务路由影响(指定DNAI/UPF),PCF经Npcf_SMPolicyControl_UpdateNotify通知SMF,SMF据此插入UL CL。这是MEC使能平台与5GC打通的标准接口。SSC mode 3允许"先建新锚点、再断旧锚点",期间UE保持IP不变。这与UL CL的"插入第二PSA、迁移到边缘"天然契合。SSC mode 1(固定锚点)下UL CL也能用,但锚点不能迁移,移动到边缘区域外时体验会回退到绕中心。SSC mode 2则会断流重建,不适合低时延业务。生产部署中,MEC会话默认选SSC mode 3。
UL CL并非唯一选择,理解差异才能正确选型。
| 维度 | UL CL(上行分类器) | IPv6多归属(BP) | LADN | 专用DNN |
|---|---|---|---|---|
| 标准条款 | TS 23.501 5.8.2 | TS 23.501 5.8.3 | TS 23.501 5.6.5 | TS 23.501 6.3.3 |
| 支持IP类型 | IPv4/IPv6/Ethernet | 仅IPv6 | IPv4/IPv6 | IPv4/IPv6 |
| 终端感知 | 完全透明 | UE需持多个IPv6前缀 | UE需感知LADN DNN | UE需配置专用DNN |
| 单会话多PSA | 是(1会话+2锚点) | 是(IPv6多前缀) | 否(受限区域DNN) | 否(独立会话) |
| 分流粒度 | 五元组/FQDN/前缀(最细) | IPv6前缀(按前缀) | 按DNN整体 | 按DNN整体 |
| IP地址 | 单IP | 多IPv6前缀 | 单IP | 单IP(每会话独立) |
| 典型场景 | 通用MEC本地分流(首选) | IPv6-only园区 | 园区/校园本地网 | 专用企业独立切片 |
结论:UL CL在灵活性、终端透明度、分流粒度上综合最优,是MEC商用部署的默认方案。LADN/专用DNN更"重"(需独立会话/DNN),适合完全隔离的专用网;BP受限于IPv6,落地受限。
在N3(RAN↔UPF)和N9(UPF↔UPF)接口抓包,关键判据:
gtp,观察GTP-U外层目的IP。若N3隧道终点IP与给UE分配IP的网关(PSA1)不在同一UPF,说明中间插了UL CL。pfcp,查看Create PDR/Create FAR IE。若一个PFCP会话内出现多条Destination Interface=Core、且Outer Header Creation指向不同UPF的FAR,即为UL CL分拣规则。Outer Header Creation且GTP-U标志位=1、带TEID,说明转发走N9隧道(到PSA),而非本地N6。| 现象 | 可能根因 | 排错思路 |
|---|---|---|
| 边缘业务仍绕行中心(时延高) | PDR Precedence配置错误,兜底规则优先 | 抓PFCP,核对边缘PDR优先级数值 < 兜底PDR |
| 边缘业务不通(包丢失) | FAR Outer Header Creation的TEID/IP与PSA2不符 | 核对PSA2返回的F-TEID是否正确写入UL CL的FAR |
| 下行包不到UE | DL PDR的Source Interface/TEID匹配失败 | 核对DL PDR的F-TEID与实际N9入向TEID一致 |
| UE移动后掉线 | SSC mode选错(mode2断流)或锚点重选失败 | 确认会话SSC mode=3,检查SMF PSA重选日志 |
| AF下发分流无效 | NEF→PCF→SMF链路断或DNAI映射缺失 | 检查Nnef_TrafficInfluence授权与DNAI配置 |
| ## 八、常见问题 |
Q1:UL CL和Branching Point(BP)到底什么区别?什么时候必须用BP? A:两者都是UPF分流功能,核心区别:UL CL对终端透明、单IP、支持IPv4/IPv6/Ethernet所有类型;BP是IPv6多归属专用,要求UE持多个IPv6前缀(每个PSA分配一个前缀),按前缀分流。只有当业务需要UE同时通过多个IPv6前缀连接多个数据网络(多归属场景)时才必须用BP;纯本地分流首选UL CL。
Q2:UL CL插入后,UE的IP地址由谁分配?迁移锚点时IP会变吗? A:UE的IP由PSA1(中心锚点)分配,UL CL UPF不参与IP分配。只要会话处于SSC mode 3,SMF做PSA重选时保持PSA1的IP不变("先建后断"),UE全程无感知IP变化。SSC mode 2则会断流重建并可能换IP。
Q3:一个PDU会话能插入多个UL CL UPF吗? A:可以,但TS 23.501约束:同时存在多个UL CL UPF时,只有一个UPF作为N3接口(与RAN直连)的连接点,其余UL CL通过N9串联。典型三级分流(园区→地市→省中心)就是这种多级UL CL拓扑。
Q4:AF如何动态影响UL CL的插入?需要走NEF吗?
A:标准路径是 AF → NEF(Nnef_TrafficInfluence) → PCF(Npcf_PolicyAuthorization/SMPolicyControl) → SMF → N4下发UL CL。NEF负责鉴权和DNAI映射翻译。可信AF(如运营商自有MEC平台)可直连PCF,跳过NEF,时延更低。
Q5:抓包看到PFCP会话里FAR的Apply Action=Duplicate,这和UL CL有关吗?
A:Duplicate是UPF复制转发(用于合法监听LI或计费采集),与UL CL的Forward分拣不同。UL CL场景FAR几乎都是Forward(去不同PSA),不会用Duplicate。若看到Duplicate,应排查是否误开了监听或镜像功能。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
