首页 › slicing-mec › EASDF边缘应用发现机制拆解

5G EASDF 边缘应用服务器发现与 DNS 信令机制全链拆解

一、为什么需要一个专门的"EASDF"

在 5G MEC(多接入边缘计算)部署中,一个核心难题长期悬而未决:UE 如何知道离自己最近的那台边缘应用服务器(EAS,Edge Application Server)的 IP 地址?

在传统 DNS 体系里,UE 把应用 FQDN(如 app.example.com)发给运营商默认 DNS 服务器,服务器返回一个 IP。但这个 IP 往往是部署在远端数据中心的服务器地址——因为 DNS 服务器根本看不到 UE 在 5G 网络里的精确位置(UE IP 是 SMF 分配的 NAT 地址,对 DNS 毫无地理意义),于是流量被"吸"到远端,MEC 的低时延优势荡然无存。

Release 16 之前,5GC 用 UL CL(Uplink Classifier)+ 本地 PSA 做会话分流(Session Breakout),但分流检测依赖 UPF 上的五元组/PFD 规则,前提是 SMF 已经知道"该把哪个目的 IP 的流量本地卸载"。这就形成了鸡生蛋问题:要本地分流就必须先知道 EAS IP,而要知道 EAS IP 又得先能做地理相关的 DNS 解析。

Release 17 在 TS 23.548《5G System Enhancements for Edge Computing》 中引入了一个全新的网络功能——EASDF(Edge Application Server Discovery Function),把"DNS 解析"这件事从 DN(数据网络)搬进 5GC,让 SMF 在解析过程中获得 UE 位置/DNAI 的上下文,从而动态决定分流锚点。本文聚焦 TS 23.548 Section 6.2.3.2.2 定义的 EAS Discovery Procedure with EASDF,逐条拆解这条贯穿 UE–SMF–EASDF–DNS Server 的完整信令链。

二、EASDF 在网络架构中的定位

EASDF 不是 DNS 服务器,而是一个由 SMF 控制的 DNS 代理/解析编排器。它对外表现为 UE 的 DNS 服务器(PDU 会话建立时 SMF 把 EASDF 的 IP 作为 DNS Server 地址下发给 UE),对内则通过 Nneasdf 服务接口接受 SMF 下发的"DNS 消息处理规则(DNS message handling rule)",按规则对 DNS Query/Response 做匹配、转发、改写、上报和缓冲。

TS 23.548 定义了两种边缘连通模型(clause 6.2.2 / 6.2.3):

下图展示 EASDF 与 SMF、UPF、DN 的关系:

graph TD
    UE[UE / EDC功能]
    UPF_R[UL CL/BP + PSA UPF<br/>R-PSA 远端锚点]
    UPF_L[L-PSA 本地锚点<br/>连接 L-DN]
    SMF[SMF<br/>编排 EASDF 规则]
    EASDF[EASDF<br/>DNS 代理 + 规则引擎]
    CDNS[C-DNS / 中央 DNS Server]
    LDNS[Local DNS Server<br/>L-DN 内]
    RDN[远端 DN 应用]
    LDN[本地 DN / EAS<br/>边缘应用服务器]

    UE -->|DNS Query / 业务流量| UPF_R
    UPF_R -->|默认上行业务| RDN
    UPF_R -->|命中EAS IP: UL CL本地分流| UPF_L
    UPF_L --> LDN
    UPF_R -.->|DNS Query 转发| EASDF
    EASDF -->|Option A: 加 ECS| CDNS
    EASDF -->|Option B: 去ECS 转发| LDNS
    SMF -->|Nneasdf_DNSContext_*| EASDF
    SMF -->|N4 规则| UPF_R
    SMF -->|N4 规则| UPF_L

关键点:UE 的 DNS 流量必须先经过 UPF 再到 EASDF。这是 TS 23.548 NOTE 13 强调的安全约束——EASDF 的 DNS Query 接收地址只允许 UE IP 经由 UPF 访问,目的是阻止外部对 SMF/EASDF 的 DoS 攻击。

三、四个必须先吃透的核心概念

1. DNAI(Data Network Access Identifier)

DNAI 是 5GC 标识"到某个数据网络/边缘站点的接入点"的逻辑标识(TS 23.501 clause 5.6.8 / 5.8.2)。它不代表具体 IP,而是代表"靠近某个 UPF N6 出口的那一片边缘区域"。SMF 选择 DNAI = 选择把流量卸到哪个边缘站点的 UPF。

2. EAS Deployment Information(EAS 部署信息)

由 AF 经 NEF 提供给 UDR(TS 23.548 clause 6.2.3.4),描述"哪些 FQDN / IP 范围对应哪些 DNAI"。SMF 在创建 DNS 处理规则时用它来决定 FQDN↔DNAI 映射、以及哪些 FQDN 命中时该上报。它是会话无关的,可应用于某个 DNN/S-NSSAI/内部组标识下的所有 PDU 会话。

3. EDNS Client Subnet(ECS)option —— RFC 7871

ECS 是 DNS 协议的扩展,让递归 DNS 服务器能基于"客户端子网"返回地理就近的结果。EASDF 在 Option A 中把 UE 的 ECS 替换成 L-PSA 的 N6 IP 段(NOTE 8/9),既让 DNS 服务器能算出正确的就近 EAS IP,又保护了 UE 真实 IP 的隐私(对外暴露的是边缘 UPF 的地址而非 UE 内部地址)。

4. EDC(Edge DNS Client)功能 —— TS 23.548 clause 6.2.4

UE 侧的一个 3GPP 功能,确保 DNS 请求被送到 SMF 指定的 EASDF/DNS Resolver。SMF 在 PDU 会话建立时可指示 EDC 的使用是"允许"还是"必需",防止 UE 绕过 5GC 提供的 DNS(clause C.6 还定义了对"UE 未使用 5GC DNS"的检测)。

四、完整信令时序图(19 步全链)

下图严格对应 TS 23.548 clause 6.2.3.2.2 Figure 6.2.3.2.2-1 的 19 个步骤,分为三个阶段:建链(步骤 1–6)→ DNS Query 处理与上报(步骤 7–13)→ DNS Response 上报与边缘分流插入(步骤 14–19)。

sequenceDiagram
    autonumber
    participant UE as UE(EDC)
    participant SMF as SMF
    participant EASDF as EASDF
    participant DNS as C-DNS/Local DNS

    Note over UE,SMF: 阶段一:PDU会话建立 & EASDF DNS上下文创建
    UE->>SMF: 1. PDU Session Establishment Request
    SMF->>SMF: 2. 选EASDF(UE位置/DNN/S-NSSAI)<br/>查UE是否有EASDF发现授权
    SMF->>EASDF: 3. Nneasdf_DNSContext_Create<br/>(UE IP, DNN, Notify端点, DNS消息处理规则)
    EASDF->>SMF: 4. Create Response(EASDF DNS安全信息)
    SMF->>UE: 5. PDU Session Estab Accept<br/>含EASDF IP作为DNS Server(或DHCP下发)
    SMF->>EASDF: 6. Nneasdf_DNSContext_Update(规则)<br/>(移动/PCC触发)
    EASDF-->>SMF: Update Response

    Note over UE,EASDF: 阶段二:DNS Query 匹配与上报
    UE->>EASDF: 7. DNS Query(FQDN)
    EASDF->>SMF: 8. Nneasdf_DNSContext_Notify<br/>(FQDN, DNS消息标识) [命中上报规则]
    SMF-->>EASDF: 9. Notify Response
    SMF->>EASDF: 10. Update(ECS信息/Local DNS IP, 携DNS消息标识)<br/>Option A 或 Option B
    EASDF-->>SMF: 11. Update Response
    EASDF->>DNS: 12. 转发DNS Query<br/>Opt A:加/换ECS→C-DNS; Opt B:去ECS→Local DNS

    Note over SMF,DNS: 阶段三:响应处理、DNAI选择、UL CL插入
    DNS-->>EASDF: 13. DNS Response(EAS IP)
    EASDF->>SMF: 14. Notify(EAS IP/FQDN/ECS, 缓冲) [命中上报条件]
    SMF-->>EASDF: 15. Notify Response
    SMF->>SMF: 16. 基于EAS信息选DNAI<br/>插入 UL CL/BP + L-PSA(N4)
    SMF->>EASDF: 17. Update(控制动作:下发缓冲的DNS Response)
    EASDF-->>SMF: 18. Update Response
    EASDF->>UE: 19. DNS Response(EAS IP)<br/>之后UE业务流量经UL CL本地分流到EAS

逐步 IE 解析

步骤 关键 IE / 参数 来源与作用
1 DNN, S-NSSAI, PDU Session ID, Request Type TS 23.502 4.3.2.2.1 step1;触发整个会话
2 UE 订阅中的 EASDF 发现授权指示(可选) TS 23.548 clause 6.3 选 EASDF;未授权则终止后续步骤
3 Nneasdf_DNSContext_Create:UE IP、DNN、Notification endpoint、DNS 消息处理规则 TS 29.556;EASDF 创建 DNS Context 并存 UE IP 与 Notify 端点
4 EASDF DNS 安全信息 用于后续 DNS 传输安全(如 DNS over TLS/HTTPS)
5 PCO/DHCP 中携带 EASDF IP 作为 DNS Server UE 据此把该 PDU 会话所有 DNS 请求发给 EASDF
8 / 14 Nneasdf_DNSContext_Notify:FQDN、EAS IP(如有)、ECS、DNS 消息标识(DNS message Identifier) EASDF 生成,唯一标识一条 DNS 消息,供 SMF 把后续 Update 规则精确关联到该消息
10 / 17 Nneasdf_DNSContext_Update:携带 DNS 消息标识的处理规则 + 控制动作 SMF 把"针对这条 DNS 消息"的 ECS 信息或"下发缓冲响应"指令回送给 EASDF

五、DNS 消息处理规则(DNS message handling rule)结构

这是整个机制最核心的数据结构,也是 SMF 与 EASDF 之间的"控制契约"。规则由 SMF 下发、EASDF 执行,包含检测条件与关联动作两部分。

graph LR
    RULE["DNS 消息处理规则<br/>Handling Rule Identity + Precedence"]
    RULE --> DET["检测: Baseline检测模板ID<br/>或 DNS消息检测模板"]
    RULE --> ACT["动作: 至少一个"]
    DET --> D1["DNS消息类型<br/>Query / Response"]
    DET --> D2["源IP(UE IP)"]
    DET --> D3["FQDN范围数组<br/>(Query时)"]
    DET --> D4["FQDN范围 / EAS IP范围<br/>(Response时)"]
    ACT --> A1["Reporting 上报动作<br/>可选 reporting-once"]
    ACT --> A2["Forwarding 转发动作<br/>A: 加/换ECS→C-DNS<br/>B: →Local DNS Server<br/>C: 直接响应"]
    ACT --> A3["Control 控制动作<br/>构造响应/缓冲/下发/丢弃/构造Query"]

三类动作的工程含义:

SMF 创建规则时综合使用的信息(clause 6.2.3.2.2 NOTE):本地配置(DNN/S-NSSAI/Internal Group)、AF 提供的 EAS Deployment Information、UE 位置推导的候选 L-PSA、当前 PDU 会话的 L-PSA/ULCL、N6 时延测量结果(clause 5.8.2.23 of TS 23.501)、UDM 订阅里的 Internal Group Identifier、以及从 UDR/PCF 缓存或取回的 common EAS/common DNAI。

Forwarding Action 三选项对比

选项 转发目标 ECS 处理 适用场景 局限
Option A C-DNS(中央/默认 DNS 服务器) 添加或替换为 L-PSA 的 N6 IP 段(RFC 7871) DNS 服务器支持 ECS、需要基于客户端子网就近解析 DNS 服务器必须理解并信任 ECS
Option B Local DNS Server(L-DN 内) 移除 UE 的 ECS 边缘站点有自己的 Local DNS,能独立解析 EASDF 必须能直达 Local DNS;PSA 转发场景不支持(NOTE 10)
Option C 不转发,直接响应 — SMF 已知 EAS IP(如 common EAS),无需外部解析 SMF 必须在规则中直接给出 EAS IP

六、DNS Context 生命周期与状态转换

每条 PDU 会话对应一个 EASDF 上的 DNS Context(由 EASDF Context ID 标识)。规则可随时 Update,但整体生命周期严格跟随会话。

stateDiagram-v2
    [*] --> Created: DNSContext_Create<br/>(PDU会话建立)
    Created --> Provisioned: SMF下发初始处理规则
    Provisioned --> Provisioned: Update<br/>(移动/PCC/上报触发)
    Provisioned --> Reporting: UE DNS Query命中上报规则
    Reporting --> Resolving: SMF回送ECS/Local DNS规则<br/>(Opt A/B)
    Resolving --> Buffered: DNS Response到达EASDF<br/>命中上报条件→缓冲
    Buffered --> Released2UE: SMF回送Control动作<br/>下发缓冲响应
    Released2UE --> Provisioned: UE已获EAS IP<br/>UL CL分流激活
    Provisioned --> Deleted: DNSContext_Delete<br/>(PDU会话释放)
    Deleted --> [*]

几个关键状态过渡的工程含义:

  1. Created → Provisioned:步骤 3–6,规则必须在 UE 第一条 DNS Query 到达 EASDF 之前就绪(clause 明确"EASDF shall be provisioned before DNS Query is received")。
  2. Buffered → Released2UE:DNS Response 到达 EASDF 后不立即回 UE,而是缓冲并 Notify SMF,等 SMF 完成 UL CL/BP + L-PSA 插入(步骤 16)并回送"下发缓冲响应"的控制动作(步骤 17)后才发出。这个"缓冲-插入-下发"的同步,是保证 UE 拿到 EAS IP 之时本地分流路径已经就绪的关键设计——否则 UE 拿到 IP 后立即发起业务,流量还来不及本地卸载就跑到远端去了。

七、设计意图深度剖析

1. 为什么用 DNS 消息标识(DNS message Identifier)做关联?

EASDF 是无状态地处理海量并发 DNS 消息的。当 SMF 在步骤 10/17 回送 Update 规则时,必须精确告诉 EASDF"这条规则只作用于你刚刚上报的那条 DNS 消息"。EASDF 生成 DNS 消息标识并在 Notify 里携带,SMF 把它塞进 Update 的规则里,EASDF 据此做精确匹配(NOTE 5)。若 EASDF 没生成该标识,SMF 退而用"消息类型 + 目标 FQDN"组合来标识(步骤 10/17)。这是一种典型的异步消息关联机制。

2. reporting-once:保护 SMF 的过载防线

一旦某个 FQDN 命中、SMF 完成对应 DNAI 的 UL CL 插入,后续同一 EAS IP 范围的 DNS Response 再上报就是冗余的。SMF 下发带 reporting-once 的规则(NOTE 6),让 EASDF 对同一检测模板只上报一次;当 UE 移出该 DNAI、SMF 拆除 UL CL 后再"复位 reporting-once",重新允许上报以便插入新的本地锚点。此外 clause NOTE 11 明确可叠加 TS 29.500 clause 6.4 的 SBI 过载控制机制,从协议层兜底防止 EASDF 报文洪泛打垮 SMF。

3. ECS 替换:隐私与就近解析的平衡

UE 内部 IP 对外部 DNS 毫无地理意义且暴露隐私。EASDF 用 L-PSA 的 N6 IP 段替换 UE ECS(NOTE 8/9),DNS 服务器据此算出靠近该边缘站点的 EAS IP,同时 UE 真实 IP 不外泄。这是 5G 把 DNS"搬进"核心网才能实现的精细化控制。

4. EASDF 与 DN 之间经 UPF 透传

若 SMF 按本地配置决定 EASDF↔DNS Server 的交互必须经过某个 UPF(NOTE 14),SMF 会给该 UPF 下 N4 规则,用 IP-in-IP 隧道透明转发 DNS 信令。这条 N4 会话与具体 PDU 会话无关,服务于多 UE 共享的 DNS 转发——这是 SMF 编排能力的延伸。

八、实战连接:抓包识别与故障排错

1. 抓包如何识别 EASDF 流程

在 5GC 内部抓包(Wireshark/tshark),可按接口分层识别:

2. 常见故障点

现象 可能原因 排查方向
UE 拿到 EAS IP 但业务走远端 UL CL 未及时插入 / TDR 未命中 EAS IP 段 查 SMF 是否收到 step14 Notify、N4 是否下发分流 FAR;比对 PDR 的 IP 范围与 EAS Deployment Information
DNS Query 到 EASDF 后无 Response 规则配成"转发"但 Option B 的 Local DNS 不可达(NOTE 10) 确认 EASDF 到 Local DNS 连通性;改用 Option A 经 C-DNS
SMF 被 DNS 上报打爆 未设 reporting-once 或检测模板过宽 缩小 FQDN/EAS IP 范围、启用 reporting-once、叠加 TS 29.500 过载控制
解析出的 EAS 不是最近 EASDF 用了 UE 的 ECS 而非 L-PSA IP 检查 step10/17 规则是否正确下发 L-PSA N6 IP 段作 ECS
UE 跳过 EASDF 自行解析 EDC 未启用 / UE 用硬编码 DNS clause C.6 的检测机制;URSP/PCO 强制 DNS Server
## 九、与既有方案的对比
维度 传统 DNS(无 EASDF) EASDF(Rel-17) UL CL + 本地 PSA(纯五元组分流)
UE 位置感知 无 通过 DNAI/候选 L-PSA 感知 间接(靠 IP 范围)
解析就近性 差(远端 DNS 不知 UE 位置) 好(ECS 注入 L-PSA IP) 不参与解析
触发分流时机 无法 DNS 解析时即触发 SMF 插 UL CL 依赖预配置/PCC 规则
隐私保护 无 ECS 替换保护 UE IP N/A
信令开销 小 多轮 Nneasdf 交互 小
适用 Release R15+ R17+ R15+

EASDF 的本质,是把"DNS 解析"从一个纯 DN 内的动作,改造成一个 SMF 可观测、可干预、可触发会话重配的信令事件。

常见问题

Q1: EASDF 和普通 DNS 服务器到底什么区别? A: 普通 DNS 只做 FQDN→IP 的递归解析,对 5G 内部毫无感知;EASDF 是 5GC 内的 DNS 代理,由 SMF 通过 Nneasdf 下发处理规则,能在解析过程中基于 UE 位置/DNAI 改写 ECS、决定转发目标(C-DNS/Local DNS/直接响应)、把解析结果上报 SMF 以触发 UL CL 分流。它不替代 DNS 服务器,而是编排 DNS 解析。

Q2: Option A 和 Option B 怎么选? A: 看 DNS 基础设施。若中央 DNS 支持 RFC 7871 ECS,选 Option A——EASDF 注入 L-PSA 的 N6 IP 段,让 C-DNS 算出就近 EAS,且保护 UE IP 隐私。若边缘站点有独立 Local DNS 且 EASDF 能直达,选 Option B——去掉 UE ECS 直接问 Local DNS。Option B 不支持 PSA 转发 DNS 的场景(NOTE 10)。

Q3: 为什么 DNS Response 要先缓冲在 EASDF,等 SMF 回信才发给 UE? A: 这是步骤 14–19 的"缓冲-插入-下发"同步。如果 UE 一拿到 EAS IP 立刻发起业务,而此时 UL CL/BP + L-PSA 尚未插入,流量会冲到远端锚点,违背 MEC 就近卸载初衷。缓冲确保 UE 收到 IP 的瞬间,本地分流路径已就绪。

Q4: reporting-once 机制解决什么问题? A: 防止海量 UE 对同一 FQDN 重复上报 DNS Response 把 SMF 淹没。SMF 在对应 EAS IP 范围的检测模板上设 reporting-once,EASDF 对该范围只上报一次;UE 移出该 DNAI、SMF 拆除 UL CL 后复位该指示,重新允许上报以插入新锚点。

Q5: EASDF 是 Rel-17 才有的,和已经讲过的 UL CL 分流是什么关系? A: UL CL + 本地 PSA 是 R15 就有的会话分流机制(Session Breakout 模型),但它需要事先知道"分流哪些 IP"。EASDF 在 R17 引入,正是为了在 DNS 解析阶段动态发现 EAS IP,从而触发/精细化 UL CL 的插入。两者是"发现"与"分流"的配合关系——EASDF 解决"发现谁",UL CL 解决"怎么卸"。

参考来源

  1. 3GPP TS 23.548 V18.8.0 — 5G System Enhancements for Edge Computing — clause 6.2.3.2.2 EAS Discovery Procedure with EASDF;clause 6.2.3.4 EAS Deployment Information Management;clause 6.2.4 EDC Functionality
  2. 3GPP TS 29.556 V17.0.0 — Edge Application Server Discovery Services; Stage 3 — Nneasdf_DNSContext_Create/Update/Delete/Notify 服务操作定义
  3. 3GPP TS 23.501 — System architecture for the 5G System — clause 6.3.3 UPF selection;clause 5.8.2.23 N6 delay measurement;clause 5.6.8 DNAI/L-PSA
  4. Edge computing in CT protocols — 3GPP.org — Rel-17 EASDF 协议支持概述(基于 FQDN 的 DNS 流量转发/会话分流)
  5. On Using the EASDF to Enforce Edge Affinity (IEEE/EURECOM) — 基于 OpenAirInterface 的 EASDF 实现与移动场景下的服务连续性分析

本文由「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 等场景全覆盖。

51学通信知识星球海报-扫码加入