会话信息查询的核心机制
BSF的查询服务基于Nbsf_Management服务化接口的GET /pcfBindings操作实现。查询方(DRA/AF/PCF)通过以下参数组合来定位目标绑定记录:
BSF收到查询请求后,在绑定数据库中搜索匹配的记录,将包含PCF实例ID、PCF IP地址、Diameter主机名/域名等完整绑定信息返回给查询方。
详细消息流程图
sequenceDiagram
participant DRA as DRA/SCEF/AAC
participant BSF as SMF/BSF
participant PCF1 as PCF1
participant PCF2 as PCF2
Note over DRA, PCF2: 前置条件: UE A和UE B已建立PDU会话, BSF已创建绑定
Note over DRA, PCF1: 场景1: 查询UE A的IMS会话绑定
DRA->>BSF: GET /pcfBindings ipv4Addr=10.XX.XX.XX, ipDomain=bsfipdomain1
Note right of DRA: Nbsf_Management_Discovery_Req<br/>携带UE A的IPv4地址
BSF-->>DRA: 200 OK (PCF1绑定信息)
Note left of BSF: 返回PCF1 ID, PCF1 IP, pcfDiamHost等
DRA->>PCF1: AAR (Rx接口策略授权请求)
PCF1-->>DRA: AAA (Rx接口策略授权响应)
Note over DRA, PCF2: 场景2: 查询UE B的数据会话绑定
DRA->>BSF: GET /pcfBindings ipv4Addr=10.XX.XX.XY, ipDomain=bsfipdomain2
Note right of DRA: Nbsf_Management_Discovery_Req<br/>携带UE B的IPv4地址
BSF-->>DRA: 200 OK (PCF2绑定信息)
Note left of BSF: 返回PCF2 ID, PCF2 IP, pcfDiamHost等
DRA->>PCF2: AAR (Rx接口策略授权请求)
PCF2-->>DRA: AAA (Rx接口策略授权响应)
flowchart LR
subgraph 会话绑定查询流程
A["DRA收到策略授权触发"] --> B["DRA构造查询请求: GET /pcfBindings"]
B --> C["BSF搜索绑定数据库"]
C --> D["BSF返回匹配的绑定信息"]
D --> E["DRA获取PCF地址, 发起AAR/策略授权"]
end
style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style E fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
测试目的
验证SMF内置BSF支持通过服务化接口提供会话绑定信息查询服务。具体来说,验证DRA或SCEF/AAC基于用户IP地址发起查询时,BSF能够正确返回对应PCF的实例ID、IP地址、Diameter主机名/域名等绑定信息。
测试前置条件
-
网络中BSF、DRA或SCEF/AAC、PCF1、PCF2网元系统及操作维护台运行正常。
-
5G VoIMS用户A附着成功,SMF/BSF已创建IMS PDU会话和数据业务PDU会话。
-
5G VoIMS用户B附着成功,SMF/BSF已创建IMS PDU会话和数据业务PDU会话。
-
DRA或SCEF/AAC上已配置用户IP地址段和BSF ID或地址的对应关系。
-
IMS AF或SCEF/AAC接入DRA,采用Rx接口访问PCF。
-
服务化接口的信令监控与分析工具准备就绪。
测试步骤
-
在SMF/BSF上进行消息跟踪和抓包操作。
-
5G VoIMS用户A发起语音业务或数据业务,触发策略授权请求操作。DRA收到策略授权触发后,基于用户A的IP地址向BSF发起会话绑定信息查询。
-
5G VoIMS用户B发起语音业务或数据业务,触发策略授权请求操作。DRA收到策略授权触发后,基于用户B的IP地址向BSF发起会话绑定信息查询。
-
检查BSF返回的绑定信息是否正确匹配各UE对应的PCF。
测试结果验证(预期)
-
检查BSF成功响应DRA或SCEF/AAC基于用户IP地址1和IP地址2的会话绑定信息查询请求。
-
SMF/BSF针对UE A的IP地址查询会话绑定信息,返回PCF1的ID或地址给DRA或SCEF/AAC。
-
SMF/BSF针对UE B的IP地址查询会话绑定信息,返回PCF2的ID或地址给DRA或SCEF/AAC。
2 信令深度解析
本测试的核心信令交互发生在DRA与BSF之间,通过Nbsf_Management服务的GET /pcfBindings操作完成会话绑定信息的查询。查询成功后,DRA获得PCF地址,进而通过Rx接口发起策略授权。
(注:为保护网络安全,以下log中的SUPI/IMSI标识、网元IP及实例ID等敏感信息已做严格脱敏处理)
2.1 UE A用户上下文与绑定信息验证
首先确认UE A已成功附着并建立PDU会话,查看其用户上下文信息:
UE A用户上下文详情:
[local]SMF09#epg smf user-info identifier-type imsi value 460XX00000XXXX
mobile-user-information:
subscriber-information:
imsi: 460XX00000XXXX
msisdn: 86138000XXXXX
imei:
active-pdu-sessions:
active-pdu-session:
pdu-session-id: 5
dnn-in-use: Internet9
an-type: 3GPP
ssc-mode: SSC_MODE_1
ue-address-1:
ipv6: 2a01:172:2401:0:3e7d:da46:1f24:b0b/64
ue-address-2:
ipv4: 10.XX.XX.XX
ip-address-allocation-method: Shared IP Pool
ipv6-address-allocation-method: Shared IP Pool
single-nssai:
slice-service-type: 9
slice-differentiator: 000001
nr-location:
tai:
plmn-id: mncXX.mcc460
tac: 7
ncgi:
plmn-id: mncXX.mcc460
nr-cell-id: 327680
amf-information:
amf-id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
address: 10.XX.XX.XX:8080
n3-interface:
ran-fteid:
teid: 1342267283
address: 10.XX.XX.XX
upf-fteid:
teid: 249561095
address: 10.XX.XX.XX
n4-interface:
local-fseid:
seid: 712099648
address: 10.XX.XX.XX
remote-fseid:
seid: 1071856711314178052
address: 10.XX.XX.XX
qos-flows:
qos-flow:
qos-flow-id: 5
fiveQi: 5
allocation-retention-priority:
priority-level: 1
pre-emption-capability: Disabled
pre-emption-vulnerability: Disabled
session-ambr:
uplink-kbps: 50000
downlink-kbps: 150000
关键参数解读:
imsi |
460XX00000XXXX |
UE A的SUPI(IMSI格式) |
msisdn |
86138000XXXXX |
UE A的GPSI(MSISDN格式) |
dnn-in-use |
Internet9 |
数据网络名称,IMS APN的5G版本 |
ipv4 |
10.XX.XX.XX |
UE A的IPv4会话地址,查询绑定的关键索引 |
ipv6 |
2a01:172:2401:0:... |
UE A的IPv6地址前缀 |
slice-service-type |
9 |
S-NSSAI的SST值,标识切片类型 |
2.2 BSF绑定信息查询(UE A → PCF1)
通过BSF维护管理接口,基于UE A的IPv4地址查询绑定信息:
查询命令与结果:
[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 10.XX.XX.XX
pcf-binding-information:
snssai-sst: 9
snssai-sd: 000001
ueIp: 2a01:172:2401:0:3e7d:da46:1f24:b0b
dnn: Internet9
supi: 460XX00000XXXX
gpsi: 86138000XXXXX
pcfId: 2244c290-3621-4d72-b718-e0194603ab11
pcfDiameterHost: rxDiam-Host.com
pcfDiameterRealm: rxDiam-Realm.com
pcfIpEndPoints: 10.XX.XX.XX:9091
绑定信息关键字段解析:
snssai-sst |
切片SST |
值为9,标识运营商自定义切片 |
snssai-sd |
切片SD |
切片差异化标识 |
ueIp |
UE IP地址 |
UE的IPv6地址,用于AF查询绑定 |
dnn |
数据网络名称 |
Internet9,标识会话访问的目标网络 |
supi |
用户永久标识 |
IMSI格式的SUPI,唯一标识用户 |
gpsi |
通用公共订阅标识 |
MSISDN格式,用于外部标识 |
pcfId |
PCF实例ID |
UUID格式,标识管理该会话的PCF1 |
pcfDiameterHost |
PCF Diameter主机名 |
用于Rx接口兼容 |
pcfDiameterRealm |
PCF Diameter域 |
用于Rx接口路由 |
pcfIpEndPoints |
PCF IP端点 |
DRA/AF访问PCF的服务地址和端口 |
2.3 BSF绑定信息查询(UE A第二条PDU会话 → PCF2)
UE A建立了第二条PDU会话(DNN=apn9),对应不同的PCF实例:
查询结果:
[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 10.XX.XX.XY
pcf-binding-information:
snssai-sst: 9
snssai-sd: 000001
ueIp: 2a01:172:2401:1:4575:4ba7:27e0:9608
dnn: apn9
supi: 460XX00000XXXX
gpsi: 86138000XXXXX
pcfId: 4444c290-3621-4d72-b718-e0194603ab11
pcfDiameterHost: rxDiam-Host.com
pcfDiameterRealm: rxDiam-Realm.com
pcfIpEndPoints: 10.XX.XX.XY:9091
对比两条绑定记录:
| 对比项 |
绑定信息1 (DNN1) |
绑定信息2 (DNN2) |
| SUPI |
460XX00000XXXX |
460XX00000XXXX |
| GPSI |
86138000XXXXX |
86138000XXXXX |
| DNN |
Internet9 |
apn9 |
| IPv4 |
10.XX.XX.XX |
10.XX.XX.XY |
| S-NSSAI |
SST=9, SD=000001 |
SST=9, SD=000001 |
| PCF ID |
2244c290-... |
4444c290-... |
| PCF IP |
10.XX.XX.XX:9091 |
10.XX.XX.XY:9091 |
2.4 DRA通过SBI接口查询BSF(核心信令抓包)
以下是DRA(或SCEF/AAC)通过HTTP/2接口向BSF发起查询的实际信令抓包。
消息1:DRA查询UE A的会话绑定信息(ipDomain=bsfipdomain1)
curl -v --http2 --http2-prior-knowledge \
-X GET "http://10.XX.XX.XX:30086/nbsf-management/v1/pcfBindings?ipDomain=bsfipdomain1&ipv4Addr=10.XX.XX.XX"
> GET /nbsf-management/v1/pcfBindings?ipDomain=bsfipdomain1&ipv4Addr=10.XX.XX.XX HTTP/1.1
> Host: 10.XX.XX.XX:30086
> Accept: */*
< HTTP/2.0 200
< content-type: application/json
< content-length: 278
BSF返回的JSON响应(UE A绑定信息):
{
"ipv6Prefix": "2a01:172:2401:0:657a:4ecc:b212:XXXX",
"dnn": "Internet9",
"pcfDiamHost": "rxDiam-Host.com",
"supi": "460XX00000XXXX",
"pcfIpEndPoints": [
{
"ipv4Address": "10.XX.XX.XX",
"port": 9091
}
],
"snssai": {
"sst": 9,
"sd": "000001"
},
"gpsi": "86138000XXXXX",
"pcfDiamRealm": "rxDiam-Realm.com"
}
消息2:DRA查询UE B的会话绑定信息(ipDomain=bsfipdomain2)
curl -v --http2 --http2-prior-knowledge \
-X GET "http://10.XX.XX.XX:30086/nbsf-management/v1/pcfBindings?ipDomain=bsfipdomain2&ipv4Addr=10.XX.XX.XY"
> GET /nbsf-management/v1/pcfBindings?ipDomain=bsfipdomain2&ipv4Addr=10.XX.XX.XY HTTP/1.1
> Host: 10.XX.XX.XX:30086
> Accept: */*
< HTTP/2.0 200
< content-type: application/json
< content-length: 246
BSF返回的JSON响应(UE B绑定信息):
{
"dnn": "apn9",
"ipv4Addr": "10.XX.XX.XY",
"pcfDiamHost": "rxDiam-Host.com",
"supi": "460XX00000XXYY",
"pcfIpEndPoints": [
{
"ipv4Address": "10.XX.XX.XY",
"port": 9091
}
],
"snssai": {
"sst": 9,
"sd": "000001"
},
"gpsi": "86138000XXXYY",
"pcfDiamRealm": "rxDiam-Realm.com"
}
信令消息检查点:
| 检查项 |
结果 |
说明 |
| DRA请求包含用户IP地址 |
OK |
GET请求中包含ipv4Addr参数 |
| DRA请求包含ipDomain |
OK |
GET请求中包含ipDomain参数 |
| BSF返回200 OK |
OK |
查询成功,返回完整绑定信息 |
| 绑定信息包含PCF IP |
OK |
返回pcfIpEndPoints字段 |
| 绑定信息包含Diameter信息 |
OK |
返回pcfDiamHost和pcfDiamRealm |
| UE A绑定返回PCF1信息 |
OK |
PCF IP为10.XX.XX.XX:9091 |
| UE B绑定返回PCF2信息 |
OK |
PCF IP为10.XX.XX.XY:9091 |
2.5 【硬核附加】Nbsf_Management_Discovery的SBI接口深度解析
BSF的查询服务通过Nbsf_Management服务化接口的GET /pcfBindings操作实现。根据3GPP TS 29.551规范,该操作支持多种查询参数组合。
GET /pcfBindings支持的查询参数:
ipv4Addr |
string |
可选 |
UE的IPv4地址 |
ipv6Prefix |
string |
可选 |
UE的IPv6地址前缀 |
ipDomain |
string |
可选 |
IP地址域标识 |
supi |
string |
可选 |
用户永久标识 |
dnn |
string |
可选 |
数据网络名称 |
snssai |
object |
可选 |
网络切片标识 |
BSF响应状态码说明:
| 状态码 |
含义 |
场景 |
| 200 OK |
查询成功 |
找到匹配的绑定信息,返回PcfBinding |
| 204 No Content |
无匹配 |
未找到绑定信息(绑定已被删除或不存在) |
| 400 Bad Request |
查询不唯一 |
同一IP匹配到多条绑定信息 |
| 404 Not Found |
资源不存在 |
指定的bindingId不存在 |
flowchart TD
subgraph BSF查询处理逻辑
A["收到GET /pcfBindings请求"] --> B["提取查询参数: ipv4Addr/ipDomain/supi等"]
B --> C["在绑定数据库中搜索匹配记录"]
C --> D["检查匹配结果数量"]
D -->|"0条"| E["返回 204 No Content"]
D -->|"1条"| F["返回 200 OK + PcfBinding"]
D -->|"多条"| G["返回 400 Bad Request"]
end
style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style F fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
style E fill:#fff3e0,stroke:#e65100,stroke-width:2px
style G fill:#ffebee,stroke:#c62828,stroke-width:2px
协议参考:根据3GPP TS 29.551第5.2.3节,Nbsf_Management的PCC Binding Discovery操作(即GET /pcfBindings)允许NF(AF、DRA等)基于UE IP地址、SUPI、DNN等参数查询绑定信息。BSF在数据库中匹配查询参数时,必须确保返回的结果唯一。如果同一查询条件匹配到多条记录,BSF应返回400错误,要求查询方提供更精确的查询参数(如增加SUPI或DNN等过滤条件)。参考TS 29.513第4.2节,绑定信息中包含的pcfDiamHost和pcfDiamRealm字段用于Rx/N5接口的Diameter路由,确保AF能够通过Diameter协议与正确的PCF建立会话。
3 测试结论
| 验证项 |
结果 |
说明 |
| UE A的IMS会话绑定查询 |
OK |
BSF返回PCF1的ID和地址信息 |
| UE A的数据会话绑定查询 |
OK |
BSF返回PCF2的ID和地址信息 |
| UE B的会话绑定查询 |
OK |
BSF正确区分不同UE的绑定信息 |
| DRA查询请求包含IP和ipDomain |
OK |
查询参数完整 |
| BSF返回完整绑定信息 |
OK |
包含PCF ID、IP、Diameter Host/Realm |
| 不同ipDomain区分不同PCF |
OK |
同IP地址通过ipDomain区分绑定 |
| HTTP/2 SBI接口正常 |
OK |
请求响应格式符合规范 |
本测试用例全面验证了BSF在多用户、多DNN场景下的会话绑定信息查询能力。测试结果表明,DRA通过用户IP地址和ipDomain参数查询BSF时,BSF能够正确返回对应PCF的完整绑定信息(包括PCF实例ID、IP地址、Diameter主机名/域名等)。查询响应的JSON结构体包含了AF发起Rx/N5策略授权所需的全部信息,整个查询流程与3GPP TS 29.551和TS 29.513规范一致。BSF的查询服务为5G核心网中"从UE会话到策略控制器"的映射提供了高效、准确的路由能力。
关于作者:爱卫生,从事通信教学18年,出版过《5G核心网原理与实践》等4本专业书籍。学5G核心网、IMS,来51学通信就对了!知识星球:200+小时视频、3000+精华文章、1年答疑群。公众号/知识星球:51学通信,微信:gprshome201101