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

5GC实践篇之BSF篇第14篇:查询不到会话绑定信息

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

5GC实践篇之BSF篇第14篇:查询不到会话绑定信息

作者:爱卫生


1 测试背景与用例简介

在前面的文章中,我们讨论了BSF的各种"正常"场景——查询到了绑定信息、IP地址重叠场景的区分查询等。但在实际网络中,还有一种必须妥善处理的异常场景:查询不到会话绑定信息

什么情况下会查询不到绑定信息?以下是一些典型的场景:

  1. 绑定信息被删除:用户B的PDU会话已释放(或签约变更导致绑定被删除),但AF/DRA尚未感知到这一变化,仍然发起了基于该用户IP地址的查询;
  1. 会话尚未建立:AF/DRA在用户PDU会话建立完成之前就发起了查询(时序问题);

  2. 绑定信息过期:在独立BSF场景下,绑定信息可能因超时而被清理;

  3. 网络故障:BSF与SMF之间的同步出现异常,导致绑定信息丢失。

无论哪种原因,当BSF查询不到绑定信息时,需要给查询方(DRA/AF/PCF)返回明确的错误响应,以便查询方能够进行后续处理(如重试、降级、通知上层应用等)。

本篇聚焦于查询不到会话绑定信息时的BSF行为,验证BSF在该场景下返回204 No Content的错误响应码。

测试对比设计

本测试采用对比验证法

  • 正对照:用户A的绑定信息正常存在,查询返回200 OK+完整绑定信息;

  • 负对照:用户B的绑定信息已被删除,查询返回204 No Content

通过两个用户的对比,清晰地展示BSF在有绑定和无绑定两种情况下的不同行为。

详细消息流程图


sequenceDiagram

    participant DRA as DRA/SCEF/AAC

    participant BSF as SMF/BSF

    participant PCF1 as PCF1

    participant PCF2 as PCF2

    Note over DRA, PCF2: 前置: 用户A和用户B已建立PDU会话

    Note over DRA, PCF2: 用户B的绑定信息已被手动删除

    Note over DRA, PCF1: 场景1: 查询用户A的绑定信息 - 正对照

    DRA->>BSF: GET /pcfBindings ipv4Addr=172.24.X.X

    Note right of DRA: Nbsf_Management_Discovery_Req<br/>查询用户A的IP地址

    BSF-->>DRA: 200 OK (用户A的PCF绑定信息)

    Note left of BSF: 返回完整绑定信息:<br/>SUPI A + PCF1 ID + PCF1地址

    DRA->>PCF1: AAR (Rx接口策略授权请求)

    PCF1-->>DRA: AAA (Rx接口策略授权响应)

    Note left of PCF1: 正常完成策略授权流程

    Note over DRA, PCF2: 场景2: 查询用户B的绑定信息 - 负对照

    DRA->>BSF: GET /pcfBindings ipv4Addr=172.24.X.Y

    Note right of DRA: Nbsf_Management_Discovery_Req<br/>查询用户B的IP地址

    BSF-->>DRA: 204 No Content

    Note left of BSF: 绑定信息不存在<br/>返回204 No Content

    Note over DRA: DRA无法完成策略授权<br/>需要异常处理


flowchart LR

    subgraph 正对照_用户A查询成功

        A1["DRA查询用户A绑定"] --> B1["BSF查找绑定记录"]

        B1 --> C1["找到匹配记录"]

        C1 --> D1["返回200 OK和完整绑定信息"]

    end

    subgraph 负对照_用户B查询失败

        A2["DRA查询用户B绑定"] --> B2["BSF查找绑定记录"]

        B2 --> C2["未找到匹配记录"]

        C2 --> D2["返回204 No Content"]

    end

    style C1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px

    style D1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px

    style C2 fill:#ffcdd2,stroke:#c62828,stroke-width:2px

    style D2 fill:#ffcdd2,stroke:#c62828,stroke-width:2px


2 协议规范与关键技术

2.1 相关协议参考

  • TS 29.551(Nbsf_Management服务):第5.2.2.2节定义了Nbsf_Management_Discovery操作的响应码。当BSF根据查询参数未找到匹配的绑定记录时,应返回204 No Content响应码,响应体为空。

  • TS 29.513(PCF策略控制):第4.2节描述了当Rx接口无法完成会话绑定时的错误处理流程。

  • TS 23.501(5G系统架构):第5.8.2.6节描述了BSF在策略控制架构中的角色,以及在绑定信息不存在时对策略控制流程的影响。

2.2 204 No Content vs 其他错误码

BSF在查询不到绑定信息时返回204 No Content,这与常见的404 Not Found不同。理解这一区别很重要:

响应码 含义 BSF使用场景
200 OK 查询成功 找到匹配的绑定记录
204 No Content 查询成功但无内容 查询参数有效但无匹配记录
400 Bad Request 请求错误 查询参数无效或匹配多条记录
403 Forbidden 禁止访问 查询方无权限
404 Not Found 资源不存在 指定的bindingId不存在

为什么用204而不是404? 因为204 No Content表示"请求处理成功,但没有内容可返回",强调的是BSF服务本身正常工作,只是没有匹配的数据。而404 Not Found通常表示"请求的资源不存在",更多用于REST API中指定ID的资源查询。

2.3 查询失败对上层业务的影响

当BSF返回204 No Content时,DRA/AF无法获取PCF的地址信息,导致Rx接口的策略授权流程无法继续。可能的处理策略包括:

  1. 重试:DRA在短时间后重新查询BSF,可能绑定信息已被重新创建;

  2. 降级:AF在无法获取策略授权时,可能使用默认策略(如尽力而为QoS);

  3. 错误通知:DRA向AF返回错误,由AF决定后续操作(如拒绝会话建立)。


3 消息流程与详细解读

3.1 测试前置条件

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

  2. 用户A(IMSI: 4608800000XXXXXA)附着成功,SMF/BSF已创建IMS PDU会话和数据业务PDU会话;

  3. 用户B(IMSI: 4608800000XXXXXB)附着成功,SMF/BSF已创建IMS PDU会话和数据业务PDU会话;

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

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

3.2 测试步骤

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

  2. 在BSF上删除用户B的会话绑定信息(模拟绑定丢失场景);

  3. 用户A发起语音业务或数据业务,触发策略授权请求操作;

  4. 用户B发起语音业务或数据业务,触发策略授权请求操作。

3.3 查询失败处理流程


flowchart TD

    A["DRA收到AF的策略授权请求"] --> B["DRA提取用户IP地址"]

    B --> C["DRA查询BSF: GET /pcfBindings"]

    C --> D{"BSF返回结果"}

    D -->|"200 OK"| E["DRA获取PCF地址"]

    D -->|"204 No Content"| F["绑定信息不存在"]

    E --> G["DRA将AAR路由到PCF"]

    F --> H["DRA无法路由AAR"]

    H --> I["DRA向AF返回错误"]

    I --> J["AF处理策略授权失败"]

    style F fill:#ffcdd2,stroke:#c62828,stroke-width:2px

    style I fill:#ffcdd2,stroke:#c62828,stroke-width:2px

    style G fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px


4 关键信令参数分析

4.1 用户A的PDU会话信息(正对照)

用户A(IMSI: 4608800000XXXXXA)附着成功,SMF/BSF已创建PDU会话:


[local]SMF07#epg smf user-info identifier-type imsi value 4608800000XXXXXA

mobile-user-information:

    subscriber-information:

        imsi: 4608800000XXXXXA

        msisdn: 86138000XXXXXA

        imei: 88723900XXXXXA0

        active-pdu-sessions:

            active-pdu-session:

                pdu-session-id: 5

                dnn-in-use: apn1

                an-type: 3GPP

                ssc-mode: SSC_MODE_1

                ue-address-1:

                    ipv4: 172.24.6.2

                ip-address-allocation-method: Shared IP Pool

                single-nssai:

                    slice-service-type: 5

                    slice-differentiator: 000001

                nr-location:

                    tai:

                        plmn-id: mnc88.mcc460

                        tac: 10

                    ncgi:

                        plmn-id: mnc88.mcc460

                        nr-cell-id: 15335424

                amf-information:

                    amf-id: 78ab1112-86e1-427d-be1e-9e2d125f5c8c

                    address: 10.10.32.127:8080

                n3-interface:

                    ran-fteid:

                        teid: 1342177293

                        address: 174.38.0.33

                    upf-fteid:

                        teid: 1415577601

                        address: 2a01:10:185:255::8

                n4-interface:

                    local-fseid:

                        seid: 739259520

                        address: 10.10.32.96

                    remote-fseid:

                        seid: 12159718993900339201

                        address: 10.10.32.83

                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: 123457

                    downlink-kbps: 1235000

4.2 用户B的PDU会话信息(绑定删除前)

用户B(IMSI: 4608800000XXXXXB)附着成功,SMF/BSF已创建PDU会话:


[local]SMF07#epg smf user-info identifier-type imsi value 4608800000XXXXXB

mobile-user-information:

    subscriber-information:

        imsi: 4608800000XXXXXB

        msisdn: 86138000XXXXXB

        imei: 88723900XXXXXB0

        active-pdu-sessions:

            active-pdu-session:

                pdu-session-id: 5

                dnn-in-use: apn1

                an-type: 3GPP

                ssc-mode: SSC_MODE_1

                ue-address-1:

                    ipv4: 172.24.6.3

                single-nssai:

                    slice-service-type: 5

                    slice-differentiator: 000001

                amf-information:

                    amf-id: 78ab1112-86e1-427d-be1e-9e2d125f5c8c

                    address: 10.10.32.127:8080

                n3-interface:

                    ran-fteid:

                        teid: 1342177295

                        address: 174.38.0.32

                n4-interface:

                    local-fseid:

                        seid: 192099088

                        address: 10.10.32.96

                session-ambr:

                    uplink-kbps: 123457

                    downlink-kbps: 1235000

4.3 两个用户的会话信息对比

参数 用户A 用户B
IMSI 4608800000XXXXXA 4608800000XXXXXB
IPv4地址 172.24.6.2 172.24.6.3
DNN apn1 apn1
S-NSSAI SST=5, SD=000001 SST=5, SD=000001
AMF ID 78ab1112-...-9e2d125f5c8c 78ab1112-...-9e2d125f5c8c
PDU Session ID 5 5
QoS Flow QFI=5, 5QI=5 QFI=5, 5QI=5
AMBR UL: 123457/DL: 1235000 kbps UL: 123457/DL: 1235000 kbps

4.4 正对照:查询用户A的绑定信息(成功)

DRA基于用户A的IP地址(172.24.6.2)查询BSF,BSF成功返回完整的PCF绑定信息。用户A的策略授权流程正常完成。

4.5 负对照:查询用户B的绑定信息(失败)

在BSF上删除用户B的会话绑定信息后,DRA基于用户B的IP地址(172.24.6.3)查询BSF。由于绑定信息已不存在,BSF返回204 No Content

BSF查询用户A绑定信息——成功(200 OK):


[local]SMF07#epg smf sbi bsf-services show-pcf-binding-info address 172.24.6.2

pcf-binding-information:

    snssai-sst: 5

    snssai-sd: 000001

    ueIp: 172.24.6.2

    dnn: apn1

    supi: 4608800000XXXXXA

    gpsi: 86138000XXXXXA

    pcfId: [PCF1 Instance ID]

    pcfIpEndPoints: 10.10.32.XX:9091

BSF查询用户B绑定信息——失败(绑定已删除):

BSF在内部删除用户B的绑定记录后,对用户B IP地址的查询返回空结果。


5 测试验证与数据解读

5.1 验证一:用户A的查询成功

BSF成功响应DRA基于用户A IP地址的会话绑定信息查询请求。SMF/BSF针对用户A的IP地址查询到会话绑定信息,将PCF1的ID和地址返回给DRA。

关键点:

  • 响应码:200 OK

  • 响应体:包含完整的PcfBinding信息

  • 后续操作:DRA根据返回的PCF信息,成功将Rx AAR路由到PCF1

5.2 验证二:用户B的查询返回204

BSF响应DRA基于用户B IP地址的会话绑定信息查询请求。由于用户B的绑定信息已被删除,BSF返回204 No Content

关键点:

  • 响应码:204 No Content

  • 响应体:空

  • 后续操作:DRA无法获取PCF地址,策略授权流程失败

5.3 两个用户查询结果的对比分析

验证项 用户A(正对照) 用户B(负对照)
绑定信息状态 存在 已删除
BSF查询响应 200 OK 204 No Content
PCF信息返回 返回PCF1完整信息
策略授权 成功完成 无法完成
DRA路由 正常路由到PCF1 无法路由

5.4 204 No Content对业务的影响分析

当BSF返回204 No Content时,对上层业务的影响取决于具体场景:

业务场景 影响程度 可能的处理
IMS语音(VoNR/VoLTE) 语音呼叫可能失败,需要重试
数据业务QoS保障 可能降级为默认QoS
计费控制 计费可能不准确
应用层策略 使用默认策略

5.5 测试结果汇总

验证项 预期结果 实际结果 结论
用户A查询成功 200 OK + 绑定信息 确认返回完整绑定 通过
用户B查询失败 204 No Content 确认返回204 通过
正负对照对比 行为差异明显 用户A成功/B失败 通过
204响应码正确 符合协议规范 与TS 29.551一致 通过

6 小结与思考

本篇验证了BSF在查询不到会话绑定信息时的行为。测试结果表明:

  1. 明确的错误响应:当BSF中不存在匹配的绑定记录时,BSF返回204 No Content响应码,响应体为空。这一行为与3GPP TS 29.551规范一致。

  2. 正负对照验证:用户A(绑定信息存在)的查询成功返回200 OK,用户B(绑定信息已删除)的查询返回204 No Content。两个用户的对比清晰展示了BSF的正确行为。

  3. 对业务的影响:查询失败意味着策略授权流程无法继续,上层应用需要具备错误处理和降级能力。

延伸思考:

  • 204与 BINDING_INFORMATION_NOT_FOUND 的关系:在SMF内置BSF场景下,CLI查询返回的是Error: BINDING_INFORMATION_NOT_FOUND。而通过SBI接口查询时,BSF返回的是HTTP 204 No Content。两者表达的是同一个含义——绑定信息不存在,只是接口层面的表达方式不同。

  • 绑定信息的生命周期管理:在实际网络中,绑定信息的删除应该是PDU会话释放流程的一部分,确保"会话释放->绑定删除"的原子性。如果出现绑定信息提前删除的情况(如本测试中手动删除),说明网络中可能存在异常,需要关注。

  • 查询失败的监控与告警:运营商应监控BSF的查询失败率。如果查询失败率异常升高,可能意味着SMF与BSF之间的绑定信息同步出现问题,需要及时排查。

协议参考:根据3GPP TS 29.551第5.2.2.2.4节,当BSF根据Nbsf_Management_Discovery请求中的查询参数未找到匹配的PcfBinding记录时,BSF应返回204 No Content响应码,不携带响应体。查询方收到204响应后,应按照自身的错误处理策略进行后续操作。


← 返回 BSF 实践篇