<!-- title: 5G注册AMF重分配信令全链拆解 -->
<!-- domain: core-network -->

# 5G 注册流程中的 AMF 重分配机制深度拆解

> 聚焦 3GPP TS 23.502 §4.2.2.2.3 与 TS 38.413 §8.6.5，剖析 Initial AMF 如何通过 NGAP Reroute NAS Request 将 UE 的 NAS 信令重新路由到 Target AMF，从触发判定、信息单元逐层拆解到抓包实战。

## 一、为什么需要 AMF 重分配

在 5G 核心网中，UE 发起初始注册时，无线接入网（NG-RAN）首先要做的并不是"路由 IP 包"，而是"选择一个 AMF"来承载这条 NAS 信令。这条选择路径在 **TS 23.501 §6.3.6（AMF Selection）** 与 **TS 38.413 §8.2（NG Setup 过程中下发的 AMF 信息）** 中定义：gNB 在 NG Setup Response 里获得每个 AMF 实例支持的 **PLMN 列表、S-NSSAI（切片）列表、GUAMI、AMF Set ID、AMF Region ID、Capacity** 等信息，并据此为 Initial UE Message 选路。

问题随之而来：**RAN 在收到 Registration Request 时只能看到 UE 表层信息（Selected PLMN、Requested NSSAI、可能的 5G-GUTI），却看不到订阅数据**。这意味着：

- RAN 选中的 AMF（称为 **Initial AMF**）可能不支持 UE 所请求的全部切片；
- Initial AMF 只有在去 **UDM / NSSF** 拉取订阅与切片授权信息后，才能判断自己是否"合格"；
- 一旦发现自己无法服务该 UE 的 **Allowed NSSAI**，它就必须把这条已经收下的 NAS 消息，**原路退回 RAN**，让 RAN 换一个 AMF 重新路由。

这就是 **Registration with AMF Re-allocation**（注册过程中的 AMF 重分配），定义于 **TS 23.502 §4.2.2.2.3**。它是网络切片（Network Slicing）真正落地到接入网边缘的第一道关口，也是 R16 之前最容易在跨厂商对接中出问题的流程之一。

## 二、核心概念与触发判定

### 2.1 四个必须厘清的角色

| 角色 | 含义 | 出处 |
|------|------|------|
| **Initial AMF** | RAN 凭 NG Setup 信息首次选中的 AMF，承担"判定者"角色 | TS 23.502 §4.2.2.2.3 |
| **Target AMF** | 重分配后真正服务 UE 的 AMF，负责完成认证、安全、5G-GUTI 分配 | TS 23.502 §4.2.2.2.3 |
| **Old AMF** | UE 携带的 5G-GUTI 所指向的上一次注册的 AMF（可能与 Initial AMF 不同） | TS 23.502 §4.2.2.2.2 step 4 |
| **NSSF** | 切片选择功能，决定 Allowed NSSAI 与候选 AMF Set | TS 23.501 §6.2.6 / TS 29.531 |

### 2.2 GUAMI 的层级结构

Target AMF 的归属由 **GUAMI（Globally Unique AMF Identifier，TS 23.501 §5.9.7）** 唯一标识：

```mermaid
flowchart LR
    G["GUAMI<br/>全局唯一AMF标识"] --> PLMN["PLMN ID<br/>MCC + MNC"]
    G --> R["AMF Region ID<br/>10 bits / 区域"]
    G --> S["AMF Set ID<br/>10 bits / 一组对等AMF"]
    G --> P["AMF Pointer<br/>6 bits / 集内具体实例"]
    style G fill:#2d6a4f,color:#fff
    style S fill:#52b788,color:#000
```

**设计意图**：AMF Set 是一组逻辑对等的 AMF 实例，它们共享 UE 上下文可恢复性（通过 UDSF）。重分配时，Target AMF 往往落在 **NSSF 指定的候选 AMF Set** 内；同一 Set 内的切换（如 AMF 故障迁移）无需重建全部上下文，这是 5G 相对 4G MME Pool 的一大增强。

### 2.3 触发重分配的判定逻辑

Initial AMF 在收到 Registration Request 后，按 **TS 23.502 §4.2.2.2.3** 的判定顺序执行：

1. 若 UE 携带 5G-GUTI 且 Old AMF ≠ Initial AMF，调用 **Namf_Communication_UEContextTransfer** 向 Old AMF 取回上下文；
2. 若取不到（或为初始注册），调用 **Nudm_UECM_Registration / Nudm_SDM_Get** 向 UDM 拉取签约与切片订阅；
3. 调用 **Nnssf_NSSelection_Get**（或本地配置）计算 **Allowed NSSAI** 与候选 AMF Set；
4. **关键判定**：若 Initial AMF 不支持 Allowed NSSAI 中的全部 S-NSSAI，或 NSSF 返回的候选 AMF Set 不包含自己 → **触发重分配**。

> 一句话总结：**RAN 选 AMF 靠"看得见的信息"，AMF 选自己靠"查得到的信息"。信息不对称是重分配存在的根本原因。**

## 三、完整信令时序图

下图基于 **TS 23.502 Figure 4.2.2.2.3-1**（R16+ 版本，采用 NGAP Reroute NAS Request 方案）绘制，是当前主流厂商实现的标准形态：

```mermaid
sequenceDiagram
    autonumber
    participant UE
    participant RAN as NG-RAN (gNB)
    participant IAMF as Initial AMF
    participant UDM
    participant NSSF
    participant TAMF as Target AMF

    UE->>RAN: NAS Registration Request<br/>(Requested NSSAI, 5G-GUTI/SUCI)
    RAN->>IAMF: NGAP Initial UE Message<br/>(NAS-PDU, UserLocation, SelectedPLMN)
    Note over IAMF: 5G-GUTI? → 向 Old AMF 取上下文
    IAMF->>UDM: Nudm_UECM_Registration + Nudm_SDM_Get<br/>(取切片签约)
    UDM-->>IAMF: Subscribed S-NSSAIs, TraceData
    IAMF->>NSSF: Nnssf_NSSelection_Get<br/>(Requested NSSAI, TA, ROAM)
    NSSF-->>IAMF: Allowed NSSAI + 候选 AMF Set ID
    Note over IAMF: 判定：自身不支持 Allowed NSSAI<br/>→ 触发重分配
    IAMF->>RAN: NGAP Reroute NAS Request<br/>(NAS-PDU, Allowed NSSAI, AMF Set 提示)
    Note over RAN: 基于 Allowed NSSAI 重新选 AMF
    RAN->>TAMF: NGAP Initial UE Message<br/>(同一 NAS-PDU)
    Note over TAMF: 接管流程：认证(5G-AKA)+ SMC<br/>+ UDM 注册 + 分配新 5G-GUTI
    TAMF->>UE: NAS Registration Accept<br/>(新 5G-GUTI, Allowed NSSAI)
    UE->>TAMF: NAS Registration Complete
    TAMF->>IAMF: Namf_Communication_RegistrationStatusNotify<br/>(status=success, 分配的5G-GUTI)
    Note over IAMF: 清理临时上下文/取消UDM订阅
```

需要特别强调第 9 步：**Reroute NAS Request 携带的 NAS-PDU 就是 UE 最初发出的那条原始 Registration Request，原封不动地被回送**。这意味着 RAN 实际上"转交"了一条完整的 NAS 报文，只是换了一条 AMF 落地路径。Target AMF 因此能拿到与 Initial AMF 完全一致的输入。

## 四、关键信息单元逐层拆解

### 4.1 NGAP Initial UE Message（TS 38.413 §8.6.4）

这是 RAN 首次把 NAS 信令投递给 AMF 的消息，也是判定重分配的"原料来源"。

```mermaid
classDiagram
    class InitialUEMessage {
        +RAN_UE_NGAP_ID : 必选
        +NAS_PDU : 必选(含Registration Request)
        +UserLocationInformation : 必选(TAI+NCI)
        +RRCEstablishmentCause : 必选
        +SelectedPLMN : 必选
        +AllowedNSSAI : 条件必选
        +5G_S_TMSI : 可选
        +AMFSetID : 可选(R16+)
    }
    class RerouteNASRequest {
        +RAN_UE_NGAP_ID : 必选
        +AMF_UE_NGAP_ID : 条件必选
        +NAS_PDU : 必选(原始报文)
        +AllowedNSSAI : 可选
        +MaskedIMEISV : 可选
    }
    InitialUEMessage --> RerouteNASRequest : "Initial AMF回送后，RAN用InitialUEMessage复用"
```

| IE | 方向 | 作用 | 在重分配中的意义 |
|----|------|------|------------------|
| **NAS-PDU** | UE→AMF | 封装 Registration Request | 重分配时被原样回传，保证输入一致 |
| **Allowed NSSAI** | RAN→AMF | RAN 根据广播切片筛选 | 若为空或 AMF 不支持，触发判定 |
| **User Location Information** | RAN→AMF | TAI + NCI | NSSF 切片选择的关键输入 |
| **5G-S-TMSI** | RAN→AMF | 携带 AMF Set ID + AMF Pointer | RAN 据此做首次 AMF 选择 |
| **AMF Set ID** | R16+ 新增 | 显式指引 AMF 选择 | 允许 AMF 之间通过 RAN 协同重新选路 |

### 4.2 UDM 切片订阅获取

Initial AMF 通过两条服务化接口拉取签约：

- **Nudm_UECM_Registration（TS 29.503 §5.3.2）**：在 UDM 注册自己为服务 AMF，并获取"是否已有其他 AMF 注册"的信息；
- **Nudm_SDM_Get（TS 29.503 §5.2.2）**：拉取 `AccessAndMobilitySubscriptionData`，其中含 **Subscribed S-NSSAIs**（签约切片）。

这里隐藏着一个**实战陷阱**：如果 Initial AMF 已经调用了 `Nudm_UECM_Registration`，它就在 UDM 里"占位"了。一旦触发重分配，Initial AMF **必须**在 Target AMF 通知注册成功后，调用 `Nudm_UECM_Registration` 的去注册（deregistration）来**释放该占位**，否则 UDM 会出现"双 AMF 注册"的脏数据，导致后续短信、IMS、策略下发等流程路由到错误的 AMF。

### 4.3 NSSF 切片选择（TS 29.531）

Initial AMF 调用 **Nnssf_NSSelection_Get**，输入参数包括：

- **Requested NSSAI**（UE 请求）；
- **User Location / TA**；
- **Roamer Information**（归属/拜访场景）；
- **5G-GUTI**（如可用）。

NSSF 返回：

- **Allowed NSSAI**（针对该 TA 授权的切片）；
- **Candidate AMF Set ID / List**（候选 AMF 集合）；
- **Network Slice Instance（NSI）信息**。

正是 `Candidate AMF Set` 让 Initial AMF 明确"我应该把 UE 交给谁"。

### 4.4 NGAP Reroute NAS Request（TS 38.413 §8.6.5 / §9.2.5.5）

这是整个机制的**核心控制消息**，由 Initial AMF 发往 RAN，明确指示"换路"。其 IE 结构如下表：

| IE | 是否必选 | 内容 | 作用 |
|----|----------|------|------|
| **RAN UE NGAP ID** | 必选 | RAN 侧 UE 标识 | 关联原有 NGAP 信令连接 |
| **AMF UE NGAP ID** | 条件必选 | AMF 侧 UE 标识 | 若已分配则回带 |
| **NAS-PDU** | 必选 | **原始 Registration Request** | 供 RAN 转交 Target AMF |
| **Allowed NSSAI** | 可选 | 经授权的切片 | RAN 据此选 Target AMF |
| **Masked IMEISV** | 可选 | 屏蔽的终端型号 | 紧急注册等场景 |
| **UE Aggregate Maximum Bit Rate** | 可选 | UE 聚合速率 | Target AMF 复用 |

> **设计精髓**：Reroute NAS Request 本质上是一个"AMF 发给 RAN 的反向选路指令"。它把 SBI 域（AMF-AMF）的复杂性，下沉到 N2 接口（AMF-RAN），让 RAN 充当"中立的路由仲裁"。这避免了 R15 早期"AMF 之间通过 Namf 接口互相转发 NAS 消息"带来的跨厂商 SBI 互通难题。

### 4.5 Namf_Communication_RegistrationStatusNotify（TS 29.518）

Target AMF 完成注册后，通过该服务化操作**回告** Initial AMF：

```mermaid
flowchart LR
    subgraph Target AMF 完成后
      A["RegistrationStatusNotify<br/>{status, 5G-GUTI}"] --> B["Initial AMF"]
    end
    B --> C{"status = success?"}
    C -- 是 --> D["取消自身UDM占位<br/>删除临时上下文"]
    C -- 否 --> E["触发回退/异常清理"]
```

该操作的入参包含 `registrationStatus`（成功/失败）与 Target AMF 新分配的 `5G-GUTI`。Initial AMF 据此决定清理策略——这是保证"双 AMF 占位"问题不发生的最后一道闸门。

## 五、两种重路由方案的演进与对比

理解 AMF 重分配，绕不开 R15→R16 的方案演进：

| 维度 | R15 早期方案（AMF 间直接转发） | R16+ 方案（NGAP Reroute NAS Request） |
|------|------------------------------|---------------------------------------|
| **路由主体** | Initial AMF 通过 Namf 直接把消息转给 Target AMF | Initial AMF 退回 RAN，由 RAN 重新选 AMF |
| **接口** | SBI（Namf_Communication） | N2（NGAP） |
| **RAN 参与** | 不参与，仅做透传 | 深度参与，重新执行 AMF Selection |
| **跨厂商互通** | 难（SBI 实现差异大） | 易（N2 接口标准化程度高） |
| **NGAP 连接** | RAN 只对 Initial AMF 建链 | RAN 需对 Target AMF 建新链 |
| **典型场景** | Target AMF 与 Initial AMF 同厂商 | 现网主流，切片密集部署 |

R16 引入 Reroute NAS Request 的根本动因是 **网络切片规模化部署**：当一台 gNB 下挂多个 AMF Set、分别服务不同行业切片时，必须让 RAN 而非某个 AMF 来"裁定"最终归属，才能避免 AMF 间的策略耦合。

## 六、状态转换视角

从 UE 上下文角度，重分配涉及 AMF 侧的状态迁移：

```mermaid
stateDiagram-v2
    [*] --> RM_DEREGISTERED : UE未注册
    RM_DEREGISTERED --> RM_COMMON : Initial AMF收RegistrationRequest
    RM_COMMON --> RM_COMMON : 判定重分配/发RerouteNASRequest
    RM_COMMON --> RM_REGISTERED : Target AMF完成注册<br/>分配5G-GUTI
    RM_COMMON --> RM_DEREGISTERED : Initial AMF清理临时上下文
    RM_REGISTERED --> RM_DEREGISTERED : 显式去注册
    note right of RM_COMMON
        Initial AMF: 临时态
        Target AMF: 正式接管
    end note
```

注意 **RM_COMMON（TS 23.501 §5.5.1）** 是 5G 相对 4G 的状态增强：允许 UE 在 CM-IDLE 与 CM-CONNECTED 之间快速切换而无需重新认证，而重分配过程恰好横跨这一中间态的"交接"。

## 七、抓包识别与排错实战

### 7.1 如何在 Wireshark 里识别这个流程

打开 NGAP/NAS 复合抓包，按以下特征定位：

1. **找到第一条 NGAP Initial UE Message**，看其中 `Allowed NSSAI` 与 RAN 选中的 AMF（通过 SCTP 端口或 `AMF_UE_NGAP_ID` 前缀）；
2. **搜索 NGAP Reroute NAS Request**（消息名 `RerouteNASRequest`，Procedure Code 在 TS 38.413 §9.1.x）。若存在，说明发生了重分配；
3. **对比两条 Initial UE Message 的 NAS-PDU**：它们的 NAS sequence number、message type 应完全相同（都是同一条 Registration Request），但 SCTP 流/对端 AMF 不同——这是"换路"的铁证；
4. **确认 SBI 侧**：在 Target AMF 与 Initial AMF 之间应能看到 `RegistrationStatusNotify`（HTTP POST 到 `.../namf-comm/v1/.../registrations/.../status-notify`）。

### 7.2 常见故障点

| 故障现象 | 根因 | 排查方向 |
|----------|------|----------|
| **注册反复失败、UE 反复重试** | Initial AMF 触发重分配但 RAN 选错 Target，循环 | 检查 gNB NG Setup 中的 S-NSSAI 与 AMF 绑定是否与核心网一致 |
| **UDM 双 AMF 占位** | Initial AMF 未在重分配后去注册 | 检查 RegistrationStatusNotify 是否到达、Initial AMF 是否清理 |
| **Target AMF 收到 NAS 但认证失败** | 上下文未随 Reroute 携带，Target AMF 从 Old AMF 取不到 | 检查 5G-GUTI 是否有效、Old AMF 是否在线 |
| **IMS/短信路由异常** | UDM 里 AMF 选路记录指向已清理的 Initial AMF | 复核 UDM 的 Serving AMF 记录是否更新为 Target AMF |
| **跨 PLMN 漫游重分配失败** | NSSF 未配置拜访地候选 AMF Set | 检查 NSSF 的 roaming 配置与 NSSAI 映射 |
## 八、设计意图的再思考

回到协议设计哲学，AMF 重分配解决的是一个 **"分布式选路中的信息不对称"** 问题：

- RAN 拥有"实时拓扑"（哪些 AMF 在线、各自容量），但缺"用户画像"（订阅切片）；
- UDM/NSSF 拥有"用户画像"，但无"实时拓扑"；
- 唯有让 Initial AMF 居中协调，并用 **Reroute NAS Request 把决定权交还给 RAN**，才能在两者之间达成平衡。

这种"先试选、再校验、按需换路"的模式，与 TCP 的三次握手、BGP 的路由收敛有异曲同工之妙——都是**在不可预知的环境中用最小的状态代价逼近正确路由**。理解这一点，比死记信令步骤重要得多：它是 5G SBA 架构"服务化但去中心化"理念的缩影。

## 常见问题

**Q1：AMF 重分配和 4G 的 Tracking Area Update 中 MME 改变（MME Change）是一回事吗？**
A：理念相似（都是接入控制节点变更），但机制不同。4G MME Change 依赖 GTP-C 的 S10 接口在 MME 间直接迁移上下文；5G AMF 重分配则把 NAS 消息退回 RAN 由其重新选路，更强调 RAN 的参与和切片感知，体现了 5G 控制面下沉与切片化的整体演进。

**Q2：Reroute NAS Request 会把认证上下文一起带给 Target AMF 吗？**
A：不会。Reroute NAS Request 只携带原始 NAS-PDU 和选路辅助信息（如 Allowed NSSAI）。认证（5G-AKA / EAP-AKA'）由 Target AMF 接管后重新执行，或由 Target AMF 通过 5G-GUTI 向 Old AMF 调用 UEContextTransfer 获取已有上下文来复用认证结果。

**Q3：如果 NSSF 故障，重分配还能进行吗？**
A：可以回退。Initial AMF 可基于本地配置（`Configured NSSAI for default configured S-NSSAI`）与 UDM 签约做最小切片判定，但此时 Allowed NSSAI 可能不全。生产环境强烈建议 NSSF 高可用部署，否则会显著影响切片体验。

**Q4：一台 UE 在一次注册中会被重分配多次吗？**
A：理论上 TS 23.502 不排除级联重分配，但工程上**强烈不建议**。每多一次重分配，延迟与失败概率都会上升，因此 RAN 侧的 AMF Selection 通常一次到位。若抓包发现连续多次 Reroute，基本可判定为配置错误。

**Q5：重分配过程中 UE 会感知到吗？**
A：完全不会。整个过程发生在 RAN 与核心网之间，UE 始终只看到一条 Registration Request 发出、一条 Registration Accept 返回。这是控制面对用户面透明性的典型体现。

## 参考来源

1. [3GPP TS 23.502 — Procedures for the 5G System, §4.2.2.2.3 Registration with AMF re-allocation](https://www.3gpp.org/dynareport/23502.htm) — 重分配流程主规范与时序图
2. [3GPP TS 38.413 — NG-RAN; NGAP, §8.6.5 Reroute NAS Request / §9.2.5.5](https://www.3gpp.org/dynareport/38413.htm) — NGAP 重路由消息与 IE 定义
3. [3GPP TS 23.501 — System architecture for the 5G System, §5.9.7 GUAMI / §6.3.6 AMF Selection](https://www.3gpp.org/dynareport/23501.htm) — GUAMI 结构与 AMF 选择机制
4. [通信大视野博客园 — Registration with AMF re-allocation 流程解读](https://www.cnblogs.com/bitmetaverse/articles/18000482) — 流程分步中文解析
5. [3glteinfo — 5G NGAP Reroute NAS Request 消息详解](https://www.3glteinfo.com/messages/5g/ngap/reroute-nas-request/) — 消息 IE 与调用场景
6. [Cisco — Ultra Cloud Core 5G AMF Slice Selection Support](https://www.cisco.com/c/en/us/td/docs/wireless/ucc/amf/2023-04/config-and-admin/b_ucc-5g-amf-config-and-admin-guide_2023-04/m_slice_selection_support.html) — 厂商实现与切片选择工程实践

---

> 本文由「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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
