5G核心网学习平台
NSSF 实践篇 #09

5GC实践篇之NSSF篇第4篇:请求NSSAI与签约一致时的切片选择

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

5GC实践篇之NSSF篇第4篇:请求NSSAI与签约一致时的切片选择

作者:爱卫生


一、测试背景与用例简介

网络切片选择是5G核心网中最具特色的功能之一。当UE发起注册请求时,如果在Registration Request消息中携带了Requested NSSAI(请求的Network Slice Selection Assistance Information),并且该Requested NSSAI与UE在UDM中的签约NSSAI(Subscribed NSSAI)存在交集,但当前服务的AMF不支持这些切片时,就需要NSSF介入进行切片选择,确定能够为UE提供服务的目标AMF。

本文讲解的场景是:UE开机发起GUTI注册,携带了Requested NSSAI,但由于NG链路故障等原因,RAN将UE的注册请求路由到了一个不支持UE请求切片的AMF(称为Initial AMF)。Initial AMF需要通过查询NSSF来确定目标AMF,并通过RAN重定向将UE引导到正确的AMF。

相关3GPP规范

  • TS 29.531:NSSF服务接口(Nnssf_NSSelection)

  • TS 23.501:5G系统架构,定义了网络切片选择流程

  • TS 23.502:5G系统流程,定义了注册流程中的切片选择机制

  • TS 29.510:NRF服务接口(Nnrf_NFDiscovery)

  • TS 29.518:AMF服务接口(Namf_Communication)

关键SBI接口

  • Nnssf_NSSelection_Get:网络切片选择查询

  • Nnrf_NFDiscovery:NF发现(查询目标AMF地址)

  • Namf_Communication_N1MessageNotify:AMF间NAS消息转发


二、流程图


flowchart TD

    A[UE发送Registration Request携带GUTI和Requested NSSAI] --> B[RAN因链路故障将消息路由到Initial AMF]

    B --> C[Initial AMF向UDM获取UE签约数据]

    C --> D[Initial AMF比对Requested NSSAI与签约NSSAI]

    D --> E{AMF能否支持切片交集}

    E -- 是 --> F[AMF直接处理注册流程]

    E -- 否 --> G[Initial AMF向NSSF查询切片选择]

    G --> H[NSSF返回目标AMF Set和Allowed NSSAI]

    H --> I[Initial AMF通过RAN发送Route NAS Request]

    I --> J[RAN将Initial UE Message转发到Target AMF]

    J --> K[Target AMF处理后续注册流程]


三、测试目的

验证当UE携带的Requested NSSAI与签约NSSAI存在交集,但Initial AMF不支持该交集切片时,通过NSSF获取目标AMF信息以及Allowed NSSAI的完整流程。具体验证点包括:

  1. UE发送Registration Request消息中携带GUTI和Requested NSSAI;

  2. RAN将注册请求路由到不支持请求切片的Initial AMF;

  3. Initial AMF向UDM获取UE签约数据,确定签约NSSAI;

  4. Initial AMF判断无法支持UE请求的切片,向NSSF查询切片选择;

  5. NSSF返回目标AMF Set信息和Allowed NSSAI;

  6. Initial AMF通过RAN重定向将UE引导到Target AMF;

  7. Target AMF完成后续注册流程,NAS消息中携带Allowed NSSAI和Configured NSSAI。


四、前置条件

序号 前置条件
1 UE已开户,在UDM中签约了切片数据
2 UE签约切片包含Requested NSSAI对应的切片
3 存在至少两套AMF,支持的切片信息不同
4 Initial AMF不支持UE请求的切片,Target AMF支持
5 NSSF已配置切片与AMF Set的映射关系
6 RAN支持在NG Setup流程与AMF交互切片及GUAMI关系
7 所有相关网元已建立接口跟踪和用户跟踪

测试环境配置

  • UE签约切片:S-NSSAI 1(SST=1, SD=010203)、S-NSSAI 2(SST=2, SD=040506)

  • UE默认切片:S-NSSAI 1(SST=1, SD=010203)

  • Initial AMF(AMF2):仅支持切片3,不支持切片1和2

  • Target AMF(AMF1):支持切片1和2

  • NSSF配置

  • TA1 -> AMF Set 1 -> 切片 1, 2

  • TA1 -> AMF Set 2 -> 切片 3

  • GUAMI对应关系:AMF1 -> AMF Set 1 -> TA1


五、测试步骤

步骤1:UE开机发起GUTI Registration

通过构造NG链路故障方式,确保RAN将UE发送到不支持UE请求切片信息的AMF(Initial AMF/AMF2)上。

UE发送的Registration Request消息


NAS Message: Registration Request

  5GS Registration Type: Initial Registration

  Mobile Identity: GUTI

    5G-GUTI: 460-XX-XXXX-X-XXXXXXXXXXX

  Requested NSSAI:

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

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

RRC层消息


RRC Setup Complete

  dedicatedNAS-Message:

    Registration Request (包含GUTI和Requested NSSAI)

说明:UE在RRC消息中也携带了Requested NSSAI,以便RAN能够根据切片信息进行初步路由。但由于链路故障等原因,RAN将消息路由到了AMF2。

步骤2:检查消息跟踪

在信令跟踪工具中检查以下消息流:

  1. UE -> RAN:RRC Connection Setup Complete(携带Registration Request)

  2. RAN -> Initial AMF(AMF2):Initial UE Message(携带NGAP + NAS)

  3. Initial AMF -> UDM:Nudm_SDM_Get(获取签约数据)

  4. Initial AMF -> NSSF:Nnssf_NSSelection_Get

  5. NSSF -> Initial AMF:Nnssf_NSSelection_Get Response

  6. Initial AMF -> RAN:Route NAS Request(RAN重定向)

  7. RAN -> Target AMF(AMF1):Initial UE Message

步骤3:AMF上查看UE相关信息

在Target AMF(AMF1)上查看UE的注册信息,确认:

  • UE已成功注册到Target AMF

  • Allowed NSSAI已正确设置

  • Configured NSSAI已正确设置


六、预期结果

结果1:Registration Request携带GUTI和Requested NSSAI

UE发起Registration Request消息中需要携带GUTI和Requested NSSAI,并且RRC消息中也需要携带GUTI信息。

NAS Registration Request消息关键字段


Protocol Discriminator: 5GS Mobility Management

Security Header Type: 0 (No Security)

Message Type: Registration Request (0x41)

5GS Registration Type: Initial Registration (0x01)

Mobile Identity:

  Type: 5G-GUTI

  MCC: 460, MNC: XX

  AMF Region ID: XX

  AMF Set ID: XX

  AMF Pointer: X

  5G-TMSI: XXXXXXXX

Requested NSSAI:

  Length: XX

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

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

UE Network Capability: [UE支持的能力]

Frame 1:UE -> RAN -> Initial AMF,Registration Request,携带GUTI和Requested NSSAI

结果2:RAN将注册请求路由到Initial AMF

NG-RAN因链路故障,将Registration Request消息路由到不支持请求切片的AMF(Initial AMF/AMF2)上。

NGAP Initial UE Message


NGAP PDU: Initiating Message

  Procedure Code: id-InitialUEMessage (15)

  Criticality: ignore

  Value:

    RAN UE NGAP ID: XXXX

    NAS-PDU:

      [Registration Request NAS Message]

    UserLocationInformation:

      TAI:

        PLMN Identity: 460XX

        TAC: 0001

      ECGI:

        PLMN Identity: 460XX

        ECI: XXXXXXXXXXXX

    RRC Establishment Cause: mo-Signalling

    UE Context Request: true

    Allowed NSSAI:

      S-NSSAI: SST=3, SD=XXXXXX

Frame 2:RAN -> Initial AMF(AMF2),NGAP Initial UE Message

结果3:Initial AMF向UDM获取签约数据

Initial AMF需要向UDM获取UE的切片信息。Initial AMF向UDM获取签约数据,这个步骤也可以获取完整的签约数据。

Nudm_SDM_Get请求


GET /nudm-sdm/v2/imsi-460XX00000XXXX/sm-data?plmn-id=%7B%22mcc%22:%22460%22,%22mnc%22:%22XX%22%7D HTTP/1.1

Host: 10.XX.XX.XX

Accept: application/json

Nudm_SDM_Get响应(签约切片数据)


{

  "nssai": {

    "subscribedSnssai": [

      {"snssai": {"sst": 1, "sd": "010203"}, "defaultIndication": true},

      {"snssai": {"sst": 2, "sd": "040506"}, "defaultIndication": true},

      {"snssai": {"sst": 3, "sd": "070809"}, "defaultIndication": false}

    ]

  }

}

Frame 3:Initial AMF -> UDM,Nudm_SDM_Get,获取UE签约切片数据

Frame 4:UDM -> Initial AMF,Nudm_SDM_Get Response,返回签约NSSAI

结果4:Initial AMF判断不能为UE提供切片服务

Initial AMF根据UE的签约数据以及UE的Requested NSSAI,以及本AMF支持的切片信息,判断AMF不能为UE提供切片服务。

判断逻辑


Requested NSSAI: {SST=1/SD=010203, SST=2/SD=040506}

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

交集: {SST=1/SD=010203, SST=2/SD=040506}

Initial AMF支持的切片: {SST=3/SD=070809}

交集与AMF支持切片的交集: 空

结论: Initial AMF无法服务该UE

结果5:Initial AMF向NSSF查询切片选择

Initial AMF向NSSF请求切片信息,并发送Nnssf_NSSelection_Get请求。

Nnssf_NSSelection_Get请求


GET /nnssf-nsselection/v1/network-slice-information

  ?requested-nssai=%5B%7B%22sst%22:1,%22sd%22:%22010203%22%7D,%7B%22sst%22:2,%22sd%22:%22040506%22%7D%5D

  &subscribed-nssai=%5B%7B%22sst%22:1,%22sd%22:%22010203%22%7D,%7B%22sst%22:2,%22sd%22:%22040506%22%7D,%7B%22sst%22:3,%22sd%22:%22070809%22%7D%5D

  &target-plmn=%7B%22mcc%22:%22460%22,%22mnc%22:%22XX%22%7D

  &tai=%7B%22plmnId%22:%7B%22mcc%22:%22460%22,%22mnc%22:%22XX%22%7D,%22tac%22:%220001%22%7D

  &nf-type=AMF HTTP/1.1

Host: 10.XX.XX.XX:8443

Accept: application/json

请求参数说明

参数 说明
requested-nssai UE请求的NSSAI [{sst:1,sd:010203},{sst:2,sd:040506}]
subscribed-nssai UE签约的NSSAI [{sst:1,sd:010203},{sst:2,sd:040506},{sst:3,sd:070809}]
target-plmn 目标PLMN {mcc:460,mnc:XX}
tai UE所在的TAI {plmnId:{mcc:460,mnc:XX},tac:0001}
nf-type 请求方NF类型 AMF

Frame 5:Initial AMF -> NSSF,Nnssf_NSSelection_Get,请求切片选择

结果6:NSSF返回目标AMF Set和Allowed NSSAI

NSSF根据配置的策略信息和请求参数,确定目标AMF Set和Allowed NSSAI。

Nnssf_NSSelection_Get响应


{

  "targetAmfSet": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",

  "targetAmfServiceSet": "AMF_SET_1",

  "allowedNssai": {

    "allowedSnssai": [

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

      {"snssai": {"sst": 2, "sd": "040506"}}

    ]

  },

  "configuredNssai": {

    "configuredSnssai": [

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

      {"snssai": {"sst": 2, "sd": "040506"}},

      {"snssai": {"sst": 3, "sd": "070809"}}

    ]

  },

  "rejectedNssaiInPlmn": [],

  "rejectedNssaiInTa": []

}

NSSF处理逻辑


1. 比对Requested NSSAI与Subscribed NSSAI的交集:

   交集 = {SST=1/SD=010203, SST=2/SD=040506}

2. 根据NSSF配置的TAI -> AMF Set映射:

   TAI=0001 -> AMF Set 1 支持切片 {1, 2}

   TAI=0001 -> AMF Set 2 支持切片 {3}

3. 确定目标AMF Set: AMF Set 1(支持交集切片 {1, 2})

4. 生成Allowed NSSAI: {SST=1/SD=010203, SST=2/SD=040506}

   = Requested NSSAI与Subscribed NSSAI的交集

5. 生成Configured NSSAI: {SST=1, SST=2, SST=3}

   = Subscribed NSSAI与NSSF配置的NSSAI的交集

Frame 6:NSSF -> Initial AMF,Nnssf_NSSelection_Get Response,返回目标AMF Set和Allowed NSSAI

结果7:Initial AMF通过RAN重定向到Target AMF

Initial AMF向NG-RAN发送Route NAS Request消息,消息中携带NGAP Message(包含完整Initial UE message)、AMF Set ID等信息。NG-RAN根据Route NAS Request消息中携带的目标AMF信息找到Target AMF,并发送Initial UE Message。

NGAP Route NAS Request消息


NGAP PDU: Initiating Message

  Procedure Code: id-RouteNASRequest ( plotting)

  Criticality: reject

  Value:

    AMF Set ID: 1

    AMF Pointer: X

    RAN UE NGAP ID: XXXX

    NAS-PDU:

      [Registration Request NAS Message - 原始消息]

    Allowed NSSAI:

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

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

Frame 7:Initial AMF -> RAN,NGAP Route NAS Request,请求RAN重定向

RAN转发到Target AMF


NGAP PDU: Initiating Message

  Procedure Code: id-InitialUEMessage (15)

  Value:

    RAN UE NGAP ID: YYYY

    NAS-PDU:

      [Registration Request NAS Message]

    UserLocationInformation:

      TAI: {PLMN: 460XX, TAC: 0001}

    Allowed NSSAI:

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

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

Frame 8:RAN -> Target AMF(AMF1),NGAP Initial UE Message,转发UE注册请求

结果8:后续Target AMF的切片处理同初始注册场景

Target AMF(AMF1)收到转发的Registration Request后,执行正常的初始注册流程。

Target AMF发送的Registration Accept消息


NAS Message: Registration Accept

  5GS Registration Result: Registered

  Allowed NSSAI:

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

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

  Configured NSSAI:

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

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

    S-NSSAI 3: SST=3, SD=070809

  5G-GUTI:

    MCC: 460, MNC: XX

    AMF Region ID: XX

    AMF Set ID: XX

    AMF Pointer: X

    5G-TMSI: XXXXXXXX


七、信令深度解析

7.1 Nnssf_NSSelection_Get接口概述

根据3GPP TS 29.531规范,Nnssf_NSSelection_Get服务操作用于AMF向NSSF查询网络切片选择信息。该操作使用HTTP GET方法:


GET /nnssf-nsselection/v1/network-slice-information

关键输入参数

参数 必选 说明
requested-nssai UE请求的NSSAI
subscribed-nssai UE签约的NSSAI(AMF从UDM获取)
target-plmn 目标PLMN标识
tai UE所在的跟踪区标识
nf-type 请求方NF类型
slice-info-request-for-registration 注册场景标识

关键输出参数

参数 说明
targetAmfSet 目标AMF Set标识
allowedNssai 允许的NSSAI
configuredNssai 配置的NSSAI(可选)
rejectedNssaiInPlmn PLMN内拒绝的NSSAI
rejectedNssaiInTa TA内拒绝的NSSAI
candidateAmfList 候选AMF列表(可选)

7.2 切片选择的决策流程

NSSF在进行切片选择时,执行以下决策流程:

步骤1:验证Requested NSSAI


Requested NSSAI: {SST=1/SD=010203, SST=2/SD=040506}

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

验证结果: Requested NSSAI全部在签约范围内

步骤2:确定Allowed NSSAI


Allowed NSSAI = Requested NSSAI ∩ Subscribed NSSAI

= {SST=1/SD=010203, SST=2/SD=040506}

步骤3:确定目标AMF Set


NSSF配置:

  TAI=0001, 切片=1 -> AMF Set 1

  TAI=0001, 切片=2 -> AMF Set 1

  TAI=0001, 切片=3 -> AMF Set 2

Allowed NSSAI需要的切片: {1, 2}

匹配的AMF Set: AMF Set 1(支持切片1和2)

步骤4:生成Configured NSSAI


Configured NSSAI = Subscribed NSSAI ∩ Configured NSSAI(NSSF配置)

= {SST=1, SST=2, SST=3}

7.3 AMF间重定向机制

在本场景中,Initial AMF通过RAN重定向方式将UE引导到Target AMF:

方案一:通过RAN重定向(本场景使用)

  1. Initial AMF -> RAN:NGAP Route NAS Request(携带目标AMF信息)

  2. RAN -> Target AMF:NGAP Initial UE Message(转发NAS消息)

  3. 优点:RAN能够正确建立与Target AMF的NG连接

  4. 缺点:需要RAN支持Route NAS Request流程

方案二:AMF间直接转发

  1. Initial AMF -> Target AMF:Namf_Communication_N1MessageNotify

  2. 优点:不依赖RAN的重定向能力

  3. 缺点:需要Initial AMF与Target AMF之间建立SBI连接

7.4 完整信令流程时序


时间轴     方向                  消息

---------------------------------------------------------------

T0       UE -> RAN              RRC Setup Complete + Registration Request

T1       RAN -> Initial AMF     NGAP Initial UE Message

T2       Initial AMF -> UDM     Nudm_SDM_Get (签约数据)

T3       UDM -> Initial AMF     Nudm_SDM_Get Response (签约NSSAI)

T4       Initial AMF            判断无法支持UE请求切片

T5       Initial AMF -> NSSF    Nnssf_NSSelection_Get

T6       NSSF -> Initial AMF    Nnssf_NSSelection_Get Response (目标AMF Set)

T7       Initial AMF -> RAN     NGAP Route NAS Request (RAN重定向)

T8       RAN -> Target AMF      NGAP Initial UE Message (转发)

T9       Target AMF             处理注册流程

T10      Target AMF -> UE       Registration Accept (Allowed NSSAI)

7.5 NRF查询目标AMF地址

Initial AMF在收到NSSF返回的Target AMF Set信息后,可能需要通过NRF查询具体的目标AMF地址:

Nnrf_NFDiscovery请求


GET /nnrf-disc/v1/nf-instances

  ?target-nf-type=AMF

  &requester-nf-type=AMF

  &amf-set-id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

  &target-plmn-list=%5B%7B%22mcc%22:%22460%22,%22mnc%22:%22XX%22%7D%5D

Host: 10.XX.XX.XX:8443

Accept: application/json

Nnrf_NFDiscovery响应


{

  "nfInstances": [

    {

      "nfInstanceId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",

      "nfType": "AMF",

      "nfStatus": "REGISTERED",

      "sbi": {

        "addresses": [

          {"ipv4Address": "10.XX.XX.XX", "port": 8443}

        ]

      }

    }

  ]

}


八、常见问题与排查

8.1 NSSF返回空的目标AMF Set

现象:AMF向NSSF查询切片选择后,NSSF返回的targetAmfSet为空。

可能原因

  • NSSF配置的TAI -> AMF Set映射缺少对应条目

  • S-NSSAI格式不匹配(如SD值大小写问题)

  • NSSF数据库中无匹配的切片配置

排查步骤

  1. 检查NSSF的切片配置是否包含UE请求的S-NSSAI

  2. 确认TAI值在NSSF配置中有对应的AMF Set映射

  3. 检查S-NSSAI的SST和SD值格式

8.2 RAN重定向失败

现象:Initial AMF发送Route NAS Request后,RAN未能将消息转发到Target AMF。

可能原因

  • RAN与Target AMF之间的NG连接未建立

  • Target AMF地址不可达

  • RAN不支持Route NAS Request流程

排查步骤

  1. 检查RAN与Target AMF之间的NG连接状态

  2. 验证NRF返回的Target AMF地址是否正确

  3. 检查RAN是否支持NGAP Route NAS Request


九、测试结论

本测试用例验证了AMF收到请求NSSAI与签约NSSAI存在交集但当前AMF不支持时,通过NSSF进行切片选择的完整流程。测试结果表明:

  1. UE发送Registration Request消息中携带了GUTI和Requested NSSAI,RRC消息中也携带了GUTI信息;

  2. 由于NG链路故障,RAN将注册请求路由到不支持UE请求切片的Initial AMF;

  3. Initial AMF向UDM获取UE的签约数据,确定签约NSSAI;

  4. Initial AMF判断无法为UE提供切片服务后,向NSSF发送Nnssf_NSSelection_Get请求;

  5. NSSF返回目标AMF Set信息和Allowed NSSAI(Requested NSSAI与Subscribed NSSAI的交集);

  6. Initial AMF通过NGAP Route NAS Request消息经RAN重定向到Target AMF;

  7. Target AMF完成注册流程,在Registration Accept中携带了Allowed NSSAI和Configured NSSAI。

该测试用例验证了3GPP TS 29.531和TS 23.502中定义的切片选择与AMF重定向机制的正确实现。


数据脱敏声明:本文中所有SUPI、IP地址、NF Instance ID等敏感信息均已做脱敏处理(如SUPI显示为"imsi-460XX00000XXXX",IP显示为"10.XX.XX.XX",Instance ID显示为"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"),不影响技术原理的理解与分析。


关于作者:爱卫生,从事通信教学18年,出版过《5G核心网原理与实践》等4本专业书籍。学5G核心网、IMS,来51学通信就对了!知识星球:200+小时视频、3000+精华文章、1年答疑群。公众号/知识星球:51学通信,微信:gprshome201101

← 返回 NSSF 实践篇