5G核心网学习平台
网络切片 实践篇 #15

5GC实践篇之切片篇第5篇:AMF确定目标AMF与Allowed NSSAI的切片重选机制

《5G核心网原理与实践》实践篇 · 网络切片 网元功能

5GC实践篇之切片篇第5篇:AMF确定目标AMF与Allowed NSSAI的切片重选机制

作者:爱卫生


1 测试背景与用例简介

在前四篇文章中,我们系统分析了UE初始注册时的切片选择场景和URSP策略机制。第1篇到第3篇聚焦于注册流程,第4篇聚焦于策略下发。但这些场景有一个共同的隐含前提:UE接入的AMF恰好支持UE请求的切片

然而,实际网络中的AMF部署是多样化的。运营商通常部署多组AMF,每组AMF支持不同的切片组合(称为AMF Set或AMF Region)。当UE发起注册请求时,RAN选择的初始AMF可能并不支持UE需要的切片。这时就涉及5G切片架构中最复杂的机制之一——AMF重选(AMF Reallocation)

本篇聚焦一个具体场景:AMF收到UE的注册请求后,解析出Requested NSSAI,查询UE签约数据发现该S-NSSAI确实在签约列表中,并且当前AMF可以为此S-NSSAI提供服务。在这种场景下,当前AMF将作为Serving AMF继续为UE服务,并确定最终的Allowed NSSAI。

虽然本篇的场景是"AMF可以服务"的情况(未触发AMF重选),但我们将详细分析AMF做出这一决策的完整判断逻辑,并延伸讨论无法服务时的AMF重选机制,为后续深入分析奠定基础。

1.1 本篇与前文的衔接

本篇承接第1篇的基本框架(UE携带5G-GUTI和Requested NSSAI),但将分析重点从"注册流程本身"转向"AMF如何确定自己就是正确的Serving AMF"。读者可以将本篇理解为第1篇的"深度加强版",重点解析AMF内部决策逻辑。

2 协议规范与关键技术

2.1 核心协议参考

协议 关键内容
TS 23.501 第6.3.5节 AMF发现与选择机制,包括基于切片的AMF选择
TS 29.531 Nssf_NSSelection服务接口,NSSF协助AMF切片选择的流程
TS 29.509 Nssf_NSSAIAvailability服务,AMF向NSSF报告支持的切片
TS 38.413 NGAP中AMF重选相关的错误处理和重定向信令
TS 24.501 NAS层Registration Request/Accept中NSSAI相关参数

2.2 AMF切片选择架构

5G网络中的AMF切片选择涉及多个网元的协作:


UE → RAN → (Initial AMF) → NSSF → (Target AMF)

                      ↓

                     UDM (签约数据)

网元 角色
RAN 根据RRC中的NSSAI/GUTI进行初始AMF选择
Initial AMF 收到注册请求后判断是否需要重定向
NSSF 提供切片选择辅助信息,推荐目标AMF
Target AMF 支持UE请求切片的最终服务AMF
UDM 提供UE签约切片数据

2.3 AMF切片支持的配置方式

AMF通过以下方式声明自己支持的切片:

  1. AMF配置:AMF启动时配置支持的S-NSSAI列表

  2. GUAMI关联:AMF将支持的S-NSSAI与GUAMI(AMF标识)关联

  3. NSSF注册:AMF向NSSF报告自己支持的切片和GUAMI对应关系

  4. NG Setup交互:AMF通过NG Setup流程将切片支持信息告知RAN


AMF支持信息示例:

  GUAMI: 460-88-01-01-00

  Supported NSSAI:

    S-NSSAI 1: SST=1, SD=010203

    S-NSSAI 2: SST=1, SD=040506

  GUAMI: 460-88-01-02-00

  Supported NSSAI:

    S-NSSAI 1: SST=2

    S-NSSAI 2: SST=3

2.4 AMF决策的三种结果

当AMF收到携带Requested NSSAI的注册请求后,可能产生三种决策结果:

结果 条件 处理方式
当前AMF继续服务 所有请求的S-NSSAI都在签约中且AMF支持 直接确定Allowed NSSAI
部分服务 部分请求的S-NSSAI在签约中且AMF支持 确定Allowed NSSAI(仅允许的部分)
需要AMF重选 请求的S-NSSAI在签约中但AMF不支持 查询NSSF获取目标AMF

本篇聚焦第一种结果(当前AMF继续服务),第三种结果将在后续文章中详细分析。

3 消息流程与详细解读

3.1 整体流程图(AMF确定自身为Serving AMF)


sequenceDiagram

    participant UE as UE终端

    participant RAN as gNB(RAN)

    participant AMF as AMF(Serving)

    participant UDM as UDM

    UE->>RAN: RRC Setup<br/>携带5G-GUTI + Requested NSSAI

    RAN->>AMF: NGAP: Initial UE Message<br/>携带5G-GUTI + Requested NSSAI

    AMF->>AMF: 通过GUTI查找UE上下文

    AMF->>AMF: 解析Requested NSSAI

    AMF->>UDM: Nudm_SDM_Get<br/>获取签约切片数据

    UDM-->>AMF: 返回Subscribed NSSAI

    AMF->>AMF: 校验1-Requested NSSAI是否在签约数据中

    AMF->>AMF: 校验2-本AMF是否支持这些切片

    AMF->>AMF: 决策-当前AMF可作为Serving AMF继续服务

    AMF->>AMF: 计算Allowed NSSAI和Configured NSSAI

    AMF-->>UE: Registration Accept<br/>携带GUTI + Allowed NSSAI + Configured NSSAI

    UE->>AMF: Registration Complete<br/>UE保存新的NSSAI信息

3.2 流程详细解读

步骤1:UE发起注册请求

UE携带5G-GUTI和Requested NSSAI发起初始注册。RRC层和NAS层均携带切片信息,RAN据此选择初始AMF。如果RAN能够根据NSSAI精确路由到支持对应切片的AMF,则初始AMF就是最终的Serving AMF(本篇场景)。

步骤2:AMF解析请求并获取签约数据

AMF收到注册请求后:

  1. 通过5G-GUTI查找UE上下文(如果UE此前在同一AMF注册过)

  2. 解析出Requested NSSAI中的每个S-NSSAI

  3. 向UDM获取最新的签约数据,确认每个请求的S-NSSAI是否在签约列表中

步骤3:AMF执行切片服务能力校验

这是本篇的核心步骤。AMF按以下逻辑判断自己是否可以继续为UE服务:


对于Requested NSSAI中的每个S-NSSAI:

  1. 该S-NSSAI是否在UE的Subscribed NSSAI中?

     - 否 → 标记为Rejected,跳过

     - 是 → 继续下一步

  2. 当前AMF是否支持该S-NSSAI?

     - 否 → 该S-NSSAI需要通过其他AMF服务

     - 是 → 纳入Allowed NSSAI候选

最终判断:

  如果所有有效的S-NSSAI(在签约中的)都能被当前AMF支持

    → 当前AMF继续作为Serving AMF

  如果存在有效的S-NSSAI无法被当前AMF支持

    → 需要评估是否触发AMF重选

本篇场景中,所有请求的S-NSSAI都通过了两个校验,因此当前AMF确定自己就是Serving AMF。

步骤4:确定Allowed NSSAI

Allowed NSSAI的计算与前几篇相同:


Allowed NSSAI = {s ∈ Requested NSSAI | s ∈ Subscribed NSSAI ∧ s ∈ AMF Supported NSSAI}

同时计算Configured NSSAI:


Configured NSSAI = AMF Configured NSSAI ∩ Subscribed NSSAI

步骤5:下发注册接受

AMF发送Registration Accept,携带:

  • 新分配的5G-GUTI

  • Allowed NSSAI(当前AMF为UE授权的切片)

  • Configured NSSAI(可选,网络配置的完整可用切片列表)

步骤6:UE保存并确认

UE收到Registration Accept后:

  1. 比较新下发的NSSAI与本地保存的旧NSSAI的差异

  2. 保存更新后的Allowed NSSAI和Configured NSSAI

  3. 保存新的5G-GUTI

  4. 发送Registration Complete确认

UE识别差异并保存的过程很重要——如果Allowed NSSAI发生变化(例如某些之前允许的切片不再允许),UE需要释放与这些切片关联的PDU Session。

3.3 AMF切片决策完整逻辑


flowchart TD

    A[AMF收到Registration Request<br/>携带GUTI和Requested NSSAI] --> B[向UDM获取Subscribed NSSAI]

    B --> C[遍历Requested NSSAI中的每个S-NSSAI]

    C --> D{S-NSSAI在Subscribed NSSAI中}

    D -->|否| E[标记为Rejected NSSAI]

    D -->|是| F{当前AMF支持该S-NSSAI}

    F -->|是| G[纳入Allowed NSSAI候选]

    F -->|否| H[纳入需要重定向的S-NSSAI列表]

    E --> I{还有下一个S-NSSAI需要检查}

    G --> I

    H --> I

    I -->|是| C

    I -->|否| J{需要重定向的S-NSSAI列表是否为空}

    J -->|是| K[当前AMF作为Serving AMF继续服务]

    J -->|否| L{Allowed NSSAI候选是否为空}

    L -->|非空| M[当前AMF部分服务<br/>需评估是否查询NSSF]

    L -->|空| N[当前AMF无法服务<br/>必须查询NSSF确定目标AMF]

    K --> O[计算Allowed NSSAI和Configured NSSAI]

    M --> O

    N --> P[向NSSF查询目标AMF]

    P --> Q[触发AMF重选流程]

    O --> R[发送Registration Accept]

3.4 与AMF重选场景的对比

为帮助读者理解本篇场景在整个AMF选择架构中的位置,以下是三种典型场景的对比:

场景A(本篇):AMF可以完全服务


Requested NSSAI:  SST=1/SD=010203

Subscribed NSSAI: SST=1/SD=010203, SST=1/SD=040506, SST=2

AMF Supported:    SST=1/SD=010203, SST=1/SD=040506

结果: Allowed={SST=1/SD=010203}, 当前AMF继续服务 

场景B:AMF可以部分服务


Requested NSSAI:  SST=1/SD=010203, SST=2

Subscribed NSSAI: SST=1/SD=010203, SST=1/SD=040506, SST=2

AMF Supported:    SST=1/SD=010203, SST=1/SD=040506

结果: Allowed={SST=1/SD=010203}, SST=2需要AMF重选

     AMF可选择部分服务或触发完整重选

场景C:AMF完全无法服务


Requested NSSAI:  SST=2, SST=3

Subscribed NSSAI: SST=1/SD=010203, SST=1/SD=040506, SST=2, SST=3

AMF Supported:    SST=1/SD=010203, SST=1/SD=040506

结果: Allowed=空, 必须查询NSSF获取目标AMF

     触发AMF重选流程

4 关键信令参数分析

4.1 NGAP Initial UE Message中的切片信息

IE 取值示例 说明
FiveG-S-TMSI 从5G-GUTI中提取 用于AMF查找UE上下文
NSSAI SST=1, SD=010203 RRC层携带的切片信息
Selected PLMN ID MCC=460, MNC=88 UE选择的PLMN
RAN UE NGAP ID 0x0001 RAN侧UE标识
User Location Information TAI+Cell ID UE位置信息

4.2 UDM签约数据(Nudm_SDM_Get响应)


{

  "nssai": {

    "defaultSingleNssais": [

      {"sst": 1, "sd": "010203"},

      {"sst": 1, "sd": "040506"}

    ],

    "singleNssais": [

      {"sst": 1, "sd": "010203"},

      {"sst": 1, "sd": "040506"},

      {"sst": 2},

      {"sst": 3}

    ]

  }

}

4.3 AMF切片支持信息

AMF本地配置的切片支持信息(示例):


AMF Instance: AMF-Region01-Set01

  GUAMI List:

    GUAMI 1: 460-88-01-01-00

      Supported NSSAI:

        S-NSSAI: SST=1, SD=010203

        S-NSSAI: SST=1, SD=040506

    GUAMI 2: 460-88-01-01-01

      Supported NSSAI:

        S-NSSAI: SST=1, SD=010203

        S-NSSAI: SST=1, SD=040506

4.4 AMF决策过程中的关键参数

参数 本篇取值 说明
Requested NSSAI SST=1/SD=010203 UE请求的切片
Subscribed NSSAI SST=1/SD=010203, SST=1/SD=040506, SST=2, SST=3 签约切片
AMF Supported NSSAI SST=1/SD=010203, SST=1/SD=040506 AMF支持的切片
校验结果 SST=1/SD=010203: 通过 在签约中且AMF支持
Allowed NSSAI SST=1/SD=010203 最终允许的切片
Configured NSSAI SST=1/SD=010203, SST=1/SD=040506 AMF配置与签约的交集
决策 当前AMF作为Serving AMF 所有请求切片可服务

4.5 Registration Accept消息参数

参数 取值示例 说明
5G-GUTI 460-88-01-01-00-0x11223344 新分配的GUTI
Allowed NSSAI SST=1, SD=010203 允许的切片
Configured NSSAI SST=1/SD=010203, SST=1/SD=040506 配置的切片
TAI List 46088-0001, 46088-0002 注册区域

5 测试验证与数据解读

5.1 AMF决策日志分析(脱敏后)

以下是AMF在处理本场景时的内部决策日志(脱敏后):


AMF-Version# show slice-selection log supi 4608800000XXXXXX

[2026-04-17 15:00:01.100] Registration Request received

  GUTI: 460-88-01-01-00-0xOldTMSI001

  Requested NSSAI: [SST=1, SD=010203]

[2026-04-17 15:00:01.150] UDM subscription data retrieved

  Subscribed NSSAI:

    SST=1, SD=010203 (default)

    SST=1, SD=040506 (default)

    SST=2

    SST=3

[2026-04-17 15:00:01.200] Slice validation started

  Checking S-NSSAI: SST=1, SD=010203

    In Subscribed NSSAI: YES

    In AMF Supported NSSAI: YES

    Result: ALLOWED

[2026-04-17 15:00:01.250] AMF decision

  Total Requested: 1 S-NSSAI

  Total Allowed: 1 S-NSSAI

  Total Rejected: 0 S-NSSAI

  Need AMF Reallocation: NO

  Decision: Current AMF continues as Serving AMF

[2026-04-17 15:00:01.300] NSSAI calculation

  Allowed NSSAI: [SST=1, SD=010203]

  Configured NSSAI: [SST=1, SD=010203, SST=1, SD=040506]

  Rejected NSSAI: [none]

[2026-04-17 15:00:01.500] Registration Accept sent

  New GUTI: 460-88-01-01-00-0x11223344

  Allowed NSSAI: [SST=1, SD=010203]

  Configured NSSAI: [SST=1, SD=010203, SST=1, SD=040506]

5.2 关键分析点

  1. 决策日志清晰记录了三步校验:首先从UDM获取签约数据,然后逐一校验Requested NSSAI中的S-NSSAI,最后做出AMF服务决策。这种结构化的决策过程便于排障和审计。

  2. Need AMF Reallocation: NO:这是本篇场景的核心结论。当前AMF支持UE请求的所有有效S-NSSAI,无需触发AMF重选。

  3. Configured NSSAI范围大于Allowed NSSAI:Configured NSSAI包含SST=1/SD=040506,而Allowed NSSAI中没有。这是因为UE没有请求SST=1/SD=040506,但网络告知UE该切片也可用(签约中且AMF支持),供UE后续使用。

5.3 UE上下文验证

在AMF上查看UE完整上下文(脱敏后):


AMF-Version# show ue context imsi 4608800000XXXXXX

UE Context Information:

  SUPI        : 4608800000XXXXXX

  GPSI        : 86138000XXXXXX

  5G-GUTI     : 460-88-01-01-00-0x11223344

  RM State    : RM-REGISTERED

  CM State    : CM-IDLE

  Serving AMF : AMF-Region01-Set01 (self)

  AMF Reallocation: Not triggered

  NSSAI Information:

    Requested NSSAI:

      S-NSSAI 1: SST=1, SD=010203

    Allowed NSSAI:

      S-NSSAI 1: SST=1, SD=010203

    Configured NSSAI:

      S-NSSAI 1: SST=1, SD=010203

      S-NSSAI 2: SST=1, SD=040506

    Subscribed NSSAI:

      S-NSSAI 1: SST=1, SD=010203 (default)

      S-NSSAI 2: SST=1, SD=040506 (default)

      S-NSSAI 3: SST=2

      S-NSSAI 4: SST=3

    Rejected NSSAI: [none]

  AMF Slice Capability:

    Supported NSSAI:

      SST=1, SD=010203

      SST=1, SD=040506

    GUAMI-NSSAI Mapping:

      460-88-01-01-00 -> SST=1/SD=010203, SST=1/SD=040506

  Registration History:

    Type: Initial Registration

    Time: 2026-04-17 15:00:01

    Previous GUTI: 460-88-01-01-00-0xOldTMSI001

    NSSAI Change: YES (new Allowed NSSAI received)

5.4 AMF重选场景的NSSF交互(延伸参考)

虽然本篇场景不需要AMF重选,但为完整性,这里给出AMF重选时AMF与NSSF的交互示例:


[如果触发AMF重选,AMF将执行以下交互]

AMF -> NSSF: Nnssf_NSSelection_Get

  Request:

    {

      "targetNssai": [{"sst": 2}],

      "homePlmn": {"mcc": "460", "mnc": "88"},

      "taai": {"plmn": {"mcc": "460", "mnc": "88"}, "tac": "0001"},

      "subscriptionInfo": {

        "subscribedNssai": [...]

      }

    }

NSSF -> AMF: 200 OK

  Response:

    {

      "targetAmfSet": "460-88-01-02",

      "targetAmfService": "amf-service-02",

      "allowedNssai": [{"sst": 2}],

      "candidateAmfList": [

        {"amfInstance": "amf-02-region01-set02", "guami": "460-88-01-02-00"}

      ]

    }

AMF: 根据NSSF响应,触发NGAP Reroute到目标AMF

6 小结与思考

6.1 本篇小结

本篇详细分析了AMF收到携带Requested NSSAI的注册请求后,如何确定自身为Serving AMF并计算Allowed NSSAI。核心要点如下:

  1. 双重校验机制:AMF首先校验Requested NSSAI中的S-NSSAI是否在UE签约数据中,然后校验本AMF是否支持这些切片。只有同时满足两个条件的S-NSSAI才能进入Allowed NSSAI。

  2. AMF自身能力的核心角色:AMF的切片支持配置是决策的关键输入。AMF通过本地配置知道自己支持哪些切片,并将此信息与签约数据交叉验证。

  3. 当前AMF继续服务的条件:所有请求的S-NSSAI(且在签约数据中的)都能被当前AMF支持时,当前AMF作为Serving AMF继续服务,流程最简洁。

  4. UE的NSSAI差异处理:UE需要识别新下发的NSSAI与旧NSSAI的差异,并保存更新。如果某些切片不再被允许,UE需要释放相关的PDU Session。

6.2 延伸思考

问题1:为什么不在RAN阶段就确保UE路由到正确的AMF?

RAN确实会根据RRC中的NSSAI信息进行初始AMF选择(通过NG Setup时AMF告知RAN的切片支持信息)。但RAN的选择是"尽力而为"的,可能因为以下原因失败:RAN配置不完整、UE的切片需求变化、网络切片配置更新等。因此AMF级别的二次校验是必要的安全网。

问题2:AMF Set和AMF Region在切片选择中如何发挥作用?

AMF Region和AMF Set是AMF分层架构的体现。同一个AMF Set中的AMF支持相同的切片集合。当需要AMF重选时,NSSF可以推荐同一AMF Set中的另一个AMF实例(负载均衡),或不同AMF Set中的AMF(切片不兼容时)。GUAMI中的Region ID和Set ID标识了这种层级关系。

问题3:AMF重选对UE有什么影响?

从UE角度看,AMF重选是透明的。UE不知道发生了AMF重定向,只知道最终收到了Registration Accept。但从网络角度看,AMF重选增加了延迟和信令开销(需要NSSF查询和NGAP重定向)。因此,合理的RAN配置和AMF部署规划对于减少不必要的AMF重选至关重要。

6.3 切片篇系列总结

通过五篇文章,我们从UE初始注册的三个不同场景出发,逐步深入到URSP策略机制和AMF切片选择决策,构建了一个完整的5G核心网切片实践知识体系:

篇章 主题 核心内容
第1篇 携带GUTI+NSSAI注册 基本切片注册流程,三重校验机制
第2篇 携带SUCI+NSSAI注册 SUCI安全机制,安全模式后的NSSAI传递
第3篇 无NSSAI无GUTI注册 Default NSSAI机制,Configured NSSAI的重要性
第4篇 URSP策略交互 应用到切片的映射,PCF策略下发流程
第5篇 AMF切片决策 AMF自校验机制,Serving AMF确定逻辑

后续文章将进一步分析AMF重选、NSSF查询、切片间切换等更复杂的场景,帮助读者全面掌握5G切片技术。


← 返回 网络切片 实践篇