关键SBI接口:
Nnrf_NFManagement_NFRegister:NF注册服务操作
二、流程图
flowchart TD
A[切片管理平台发起切片实例化] --> B[部署NSSF网络功能实例]
B --> C[检查NSSF实例状态]
C --> D{所有Pod状态正常}
D -- 否 --> E[等待Pod就绪或排查故障]
E --> C
D -- 是 --> F[NSSF自动触发向NRF注册]
F --> G[NSSF发送Nnrf_NFManagement_NFRegister PUT请求]
G --> H[NRF生成并保存NF实例信息]
H --> I[NRF返回201 Created响应]
I --> J[注册完成,NSSF可被其他NF发现]
三、测试目的
验证NSSF在部署完成后,能够自动向NRF发起服务注册,完成NF实例信息的登记。具体验证点包括:
-
NSSF实例部署完成后状态正常,所有Pod运行正常;
-
NSSF自动向NRF发送Registration Request消息,消息中包含完整的NF Profile信息;
-
NRF接收并保存NSSF的NF实例信息(NF Type、NF Address、NF Profile等);
-
NRF通过Registration Response消息确认注册完成,返回心跳时长等信息;
-
通过操作维护命令或界面可查询到NSSF的注册信息。
四、前置条件
| 序号 |
前置条件 |
| 1 |
5GC核心网基础环境已部署完成,包括NRF等基础网元 |
| 2 |
切片管理平台可用,能够发起切片实例化操作 |
| 3 |
NSSF镜像/软件包已准备就绪 |
| 4 |
NRF服务运行正常,可接受NF注册请求 |
| 5 |
网络连通性正常,NSSF与NRF之间的SBI接口可达 |
| 6 |
已建立各接口信令跟踪和用户跟踪 |
五、测试步骤
步骤1:通过切片管理平台发起切片实例化
在切片管理平台上,选择对应的切片模板,发起切片实例化操作。系统将根据切片模板自动部署NSSF网络功能实例,包括创建相关的Kubernetes Pod、ConfigMap、Service等资源。
操作说明:
配置NSSF NF的关键参数:
{
"nfInstanceId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"nfType": "NSSF",
"nfStatus": "REGISTERED",
"sbi": {
"scheme": "https",
"addresses": [
{
"ipv4Address": "10.XX.XX.XX",
"port": 8443
}
]
},
"nsiList": [
{
"snssai": {
"sst": 1,
"sd": "010203"
},
"nsiId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
]
}
步骤2:检查NSSF实例化进展情况
在切片管理平台上监控NSSF实例化进度,确认所有组件部署完成。
检查项目:
Kubernetes检查命令示例:
# 查看NSSF相关Pod状态
kubectl get pods -n 5gc | grep nssf
# 预期输出示例
# nssf-deployment-xxxxx-xxxxx 1/1 Running 0 2m
步骤3:检查NSSF自动向NRF发起服务注册
NSSF实例部署完成并运行正常后,NSSF将自动触发向NRF的服务注册流程。在NRF上查看NF注册状态,确认NSSF已成功注册。
NRF上的查询结果示例:
NF Instance ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
NF Type: NSSF
NF Status: REGISTERED
SBI Address: https://10.XX.XX.XX:8443
Heartbeat Timer: 30s
Register Time: 2026-04-17T10:00:00Z
六、预期结果
结果a:NSSF实例部署完成
NSSF实例部署完成,在切片管理界面查看NSSF状态正常,所有Pod均处于Running状态。
结果b:NSSF自动发送Registration Request
NSSF实例正常运行后,作为服务请求者自动向NRF发送Registration Request消息,请求执行NSSF服务注册。请求消息中包括对应的网络功能实例的完整信息:
Nnrf_NFManagement_NFRegister请求消息示例:
PUT /nnrf-nfm/v1/nf-instances/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX HTTP/1.1
Host: 10.XX.XX.XX:8443
Content-Type: application/json
请求Body(NF Profile):
{
"nfInstanceId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"nfType": "NSSF",
"nfStatus": "REGISTERED",
"heartBeatTimer": 30,
"sbi": {
"scheme": "https",
"registeredDomain": "5gc.mncXX.mcc460.3gppnetwork.org",
"addresses": [
{
"ipv4Address": "10.XX.XX.XX",
"port": 8443,
"apiPrefix": "/nssf/v1"
}
]
},
"nfServices": [
{
"serviceInstanceId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"serviceName": "nnssf-nssselection",
"versions": [
{
"apiVersionInUri": "v1",
"apiFullVersion": "1.0.0"
}
],
"scheme": "https",
"nfServiceStatus": "REGISTERED",
"ipEndPoints": [
{
"ipv4Address": "10.XX.XX.XX",
"port": 8443
}
]
},
{
"serviceInstanceId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"serviceName": "nnssf-nsavailability",
"versions": [
{
"apiVersionInUri": "v1",
"apiFullVersion": "1.0.0"
}
],
"scheme": "https",
"nfServiceStatus": "REGISTERED",
"ipEndPoints": [
{
"ipv4Address": "10.XX.XX.XX",
"port": 8443
}
]
}
],
"plmnList": [
{
"mcc": "460",
"mnc": "XX"
}
],
"nsiList": [
{
"snssai": {
"sst": 1,
"sd": "010203"
}
}
]
}
Frame 1:NSSF -> NRF,Nnrf_NFManagement_NFRegister PUT请求,携带完整NF Profile
结果c:NRF生成并保存NF实例信息
NRF收到NSSF的注册请求后,生成并保存部署的网络功能实例的完整信息,包括:
| 信息字段 |
说明 |
| NF Type |
NSSF |
| NF Instance ID |
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
| NF Address |
10.XX.XX.XX:8443 |
| NF Profile |
包含支持的服务、切片信息、PLMN列表等 |
| Heartbeat Timer |
30秒 |
可通过操作维护命令或界面查询网络功能注册信息,确认NSSF已成功注册。
结果d:NRF返回Registration Response
NRF处理完NSSF的注册请求后,通过Registration Response消息通知NSSF服务注册已完成。
Nnrf_NFManagement_NFRegister响应消息示例:
HTTP/1.1 201 Created
Location: /nnrf-nfm/v1/nf-instances/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Content-Type: application/json
响应Body:
{
"nfInstanceId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"nfType": "NSSF",
"heartBeatTimer": 30,
"nfStatus": "REGISTERED",
"validityTime": "2026-04-18T10:00:00Z"
}
Frame 2:NRF -> NSSF,Nnrf_NFManagement_NFRegister 201 Created响应,确认注册完成
响应消息中包含:
-
心跳时长(heartBeatTimer):NSSF需要定期发送心跳以维持注册状态,默认30秒
-
NF Profile:NRF确认保存的NF实例信息
-
有效期(validityTime):注册的有效截止时间
七、信令深度解析
7.1 Nnrf_NFManagement_NFRegister接口概述
根据3GPP TS 29.510规范,Nnrf_NFManagement_NFRegister服务操作用于NF向NRF注册自身的实例信息。该操作使用HTTP PUT方法,URI格式为:
PUT /nnrf-nfm/v1/nf-instances/{nfInstanceId}
其中{nfInstanceId}为NF实例的唯一标识,采用UUID格式。
7.2 NF Profile关键字段解析
NSSF注册时发送的NF Profile包含以下关键信息:
1) nfInstanceId(NF实例标识)
2) nfType(NF类型)
-
类型:枚举
-
用途:标识NF的功能类型
-
对于NSSF,该值为"NSSF"
3) nfServices(NF服务列表)
4) sbi(基于服务的接口信息)
-
包含NSSF的SBI访问地址、端口、协议等信息
-
scheme:通常为"https"
-
addresses:IP地址和端口列表
5) nsiList(网络切片实例列表)
6) plmnList(PLMN列表)
7.3 注册流程的时序分析
时间轴 消息方向 消息名称
---------------------------------------------------------
T0 切片管理平台 发起切片实例化
T1 K8s集群 部署NSSF Pod
T2 NSSF Pod 启动,初始化配置
T3 NSSF --> NRF PUT /nnrf-nfm/v1/nf-instances/{id}
[NF Profile JSON]
T4 NRF --> NSSF 201 Created
[Registration Response JSON]
T5 NRF 保存NF实例信息到数据库
T6 NSSF 启动心跳定时器(30s)
7.4 心跳维持机制
NSSF注册成功后,需要定期向NRF发送心跳请求以维持注册状态。心跳机制如下:
-
心跳间隔:由NRF在注册响应中的heartBeatTimer字段指定,通常为30秒
-
心跳方式:NSSF发送Nnrf_NFManagement_NFUpdate(HTTP PATCH)请求
-
心跳超时:如果NRF在3倍心跳时间内未收到心跳,则认为NSSF不可用,将其从NF Repository中移除
-
心跳内容:PATCH请求中携带nfStatus为"REGISTERED"
7.5 NRF的NF Profile存储机制
NRF收到NSSF的注册请求后,会进行以下处理:
-
验证NF Profile:检查NF Profile的完整性和合法性
-
生成NF记录:在NRF数据库中创建NF实例记录
-
建立服务索引:根据nfServices建立服务名到NF实例的索引
-
设置过期时间:根据heartBeatTimer计算注册有效期
-
返回注册结果:通过201 Created响应确认注册成功
7.6 HTTP状态码说明
| 状态码 |
含义 |
场景 |
| 201 Created |
注册成功 |
新NF实例首次注册 |
| 200 OK |
更新成功 |
已注册的NF实例更新Profile |
| 400 Bad Request |
请求格式错误 |
NF Profile格式不合法 |
| 403 Forbidden |
权限不足 |
NF无权注册到该NRF |
| 500 Internal Server Error |
服务器内部错误 |
NRF处理异常 |
八、常见问题与排查
8.1 NSSF注册失败
现象:NSSF部署完成后,在NRF上查询不到NSSF的注册信息。
可能原因及排查步骤:
-
网络连通性问题
-
检查NSSF与NRF之间的网络是否可达
-
使用curl命令测试:curl -k https://10.XX.XX.XX:8443/nnrf-nfm/v1/nf-instances
-
NF Profile格式错误
-
检查NSSF的配置文件中NF Profile的JSON格式是否正确
-
查看NRF日志中是否有解析错误
-
NRF服务异常
-
检查NRF Pod状态是否正常
-
查看NRF日志中是否有异常信息
8.2 NSSF注册后心跳超时
现象:NSSF注册成功后,很快从NRF中消失。
可能原因:
-
NSSF负载过高,无法及时发送心跳
-
网络抖动导致心跳包丢失
-
心跳定时器配置不合理
九、测试结论
本测试用例验证了NSSF向NRF发起服务注册的完整流程。测试结果表明:
-
NSSF能够通过切片管理平台成功部署,所有Pod正常运行;
-
NSSF部署完成后自动向NRF发送Nnrf_NFManagement_NFRegister请求,请求消息中包含完整的NF Profile信息(NF类型、SBI地址、服务列表、切片信息等);
-
NRF成功接收并保存NSSF的NF实例信息,可通过操作维护命令或界面查询;
-
NRF通过201 Created响应消息确认注册完成,响应中包含心跳时长和NF Profile等信息;
-
NSSF注册成功后,其他NF(如AMF)可以通过NRF发现并调用NSSF的切片选择服务。
该测试用例验证了3GPP TS 29.510中定义的NF注册机制在NSSF上的正确实现,是网络切片功能正常运行的基础前提。
数据脱敏声明:本文中所有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