5G核心网学习平台
BSF 实践篇 #02

5GC实践篇之BSF篇第11篇:会话信息查询

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

5GC实践篇之BSF篇第11篇:会话信息查询

作者:爱卫生


1 测试背景与用例简介

在前面的文章中,我们已经了解了BSF如何创建和维护会话绑定信息。本篇进入BSF的另一个核心功能——会话绑定信息的查询(Session Binding Discovery)

在5G核心网中,AF(Application Function)或PCF需要获取某个UE会话对应的PCF信息,以完成策略授权流程。例如,当用户发起IMS语音呼叫时,P-CSCF(作为AF)需要找到管理该用户IMS PDU会话的PCF,才能发起Rx/N5接口的策略授权请求。BSF正是为这种"从IP地址到PCF"的映射查询提供服务。

本测试用例验证的核心场景是:多用户、多DNN场景下,DRA(或SCEF/AAC)通过BSF查询不同UE的会话绑定信息。具体来说,两个5G VoIMS用户(UE A和UE B)分别建立了IMS PDU会话和数据业务PDU会话,DRA通过用户IP地址查询BSF,BSF返回对应的PCF实例ID和地址信息。

会话信息查询的核心机制

BSF的查询服务基于Nbsf_Management服务化接口的GET /pcfBindings操作实现。查询方(DRA/AF/PCF)通过以下参数组合来定位目标绑定记录:

  • IPv4地址:UE的IPv4会话地址

  • IPv6前缀:UE的IPv6地址前缀

  • ipDomain:IP地址域标识(用于IP地址重叠场景的区分)

  • SUPI:用户永久标识

  • DNN:数据网络名称

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主机名/域名等绑定信息。

测试前置条件

  1. 网络中BSF、DRA或SCEF/AAC、PCF1、PCF2网元系统及操作维护台运行正常。

  2. 5G VoIMS用户A附着成功,SMF/BSF已创建IMS PDU会话和数据业务PDU会话。

  3. 5G VoIMS用户B附着成功,SMF/BSF已创建IMS PDU会话和数据业务PDU会话。

  4. DRA或SCEF/AAC上已配置用户IP地址段和BSF ID或地址的对应关系。

  5. IMS AF或SCEF/AAC接入DRA,采用Rx接口访问PCF。

  6. 服务化接口的信令监控与分析工具准备就绪。

测试步骤

  1. 在SMF/BSF上进行消息跟踪和抓包操作。

  2. 5G VoIMS用户A发起语音业务或数据业务,触发策略授权请求操作。DRA收到策略授权触发后,基于用户A的IP地址向BSF发起会话绑定信息查询。

  3. 5G VoIMS用户B发起语音业务或数据业务,触发策略授权请求操作。DRA收到策略授权触发后,基于用户B的IP地址向BSF发起会话绑定信息查询。

  4. 检查BSF返回的绑定信息是否正确匹配各UE对应的PCF。

测试结果验证(预期)

  1. 检查BSF成功响应DRA或SCEF/AAC基于用户IP地址1和IP地址2的会话绑定信息查询请求。

  2. SMF/BSF针对UE A的IP地址查询会话绑定信息,返回PCF1的ID或地址给DRA或SCEF/AAC。

  3. 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_ManagementPCC 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

← 返回 BSF 实践篇