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

5GC实践篇之BSF篇第7篇:会话信息创建与PFCP会话绑定

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

5GC实践篇之BSF篇第7篇:会话信息创建与PFCP会话绑定

作者:爱卫生


1 测试背景与用例简介

在前面的文章中,我们了解了BSF的架构、服务注册与发现机制。本篇进入BSF最核心的功能——会话绑定信息的创建(Session Binding Creation)

在5G核心网中,当UE建立PDU会话时,SMF会选择一个PCF来管理该会话的策略控制。问题随之而来:当应用功能(AF)需要为某个特定IP地址的UE提供应用层策略(如QoS保障、计费控制)时,AF如何知道这个IP地址对应的PCF是哪一个?

答案就是BSF。BSF的核心职责就是维护"PDU会话信息(SUPI、DNN、S-NSSAI、IP地址)与PCF实例"之间的映射关系。当PCF被SMF选中后,PCF(或SMF内置BSF)会将这一映射关系存储起来,供后续AF查询使用。

本测试用例验证的核心场景是:多UE、多DNN场景下的会话绑定信息创建。具体来说,我们将看到两个UE(UE A和UE B)分别建立不同DNN的PDU会话,并被分配到不同的PCF,验证BSF能否正确存储多条会话绑定记录。

会话绑定的本质

会话绑定本质上是将以下两组信息"绑定"在一起:

  • UE侧信息:SUPI、GPSI、IPv4/IPv6地址、DNN、S-NSSAI

  • PCF侧信息:PCF Instance ID、PCF IP地址、PCF Diameter主机/域(用于Rx接口兼容)

这样,当AF后续通过BSF查询"某个IP地址对应的PCF是谁"时,BSF就能精确返回答案。

详细消息流程图


sequenceDiagram

    participant UE_A as UE A

    participant UE_B as UE B

    participant SMF as SMF/BSF

    participant PCF1 as PCF1

    participant PCF2 as PCF2

    Note over UE_A, PCF1: 场景1: UE A建立DNN1会话

    UE_A->>SMF: PDU Session Establishment Request (DNN1)

    SMF->>PCF1: POST /npcf-smpolicycontrol/v1/policies

    Note right of SMF: Npcf_SMPolicyControl_Create<br/>携带: SUPI A, IPv6 A1, DNN1, S-NSSAI

    PCF1-->>SMF: 201 Created (含smPolicyId)

    Note over SMF: BSF存储绑定信息1:<br/>SUPI A + DNN1 + IPv6 A1 <-> PCF1

    Note over UE_A, PCF2: 场景2: UE A建立DNN2会话

    UE_A->>SMF: PDU Session Establishment Request (DNN2)

    SMF->>PCF2: POST /npcf-smpolicycontrol/v1/policies

    Note right of SMF: Npcf_SMPolicyControl_Create<br/>携带: SUPI A, IPv6 A2, DNN2, S-NSSAI

    PCF2-->>SMF: 201 Created (含smPolicyId)

    Note over SMF: BSF存储绑定信息2:<br/>SUPI A + DNN2 + IPv6 A2 <-> PCF2

    Note over UE_B, PCF2: 场景3: UE B建立DNN1会话

    UE_B->>SMF: PDU Session Establishment Request (DNN1)

    SMF->>PCF2: POST /npcf-smpolicycontrol/v1/policies

    Note right of SMF: Npcf_SMPolicyControl_Create<br/>携带: SUPI B, IPv6 B1, DNN1, S-NSSAI

    PCF2-->>SMF: 201 Created (含smPolicyId)

    Note over SMF: BSF存储绑定信息3:<br/>SUPI B + DNN1 + IPv6 B1 <-> PCF2


flowchart LR

    subgraph 绑定信息创建流程

        A["SMF收到PDU会话建立请求"] --> B["SMF选择PCF"]

        B --> C["SMF向PCF发起SMPolicyControl_Create"]

        C --> D["PCF返回201 Created"]

        D --> E["BSF存储绑定信息: SUPI+DNN+S-NSSAI+IP <-> PCF ID"]

    end

    style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

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


测试目的

验证SMF能够在UE的PDU会话流程建立成功后,保存该UE PDU会话相关信息和对应SMF所选的PCF ID或地址。验证内置BSF支持对SMF中UE的PDU会话上下文保存的该UE PDU会话相关信息、对应SMF所选的PCF ID或地址、pcfInfo进行访问,将上述信息作为该UE PDU会话的会话绑定信息。

测试前置条件

  1. 网络中SMF(内置BSF)、PCF网元系统及操作维护台运行正常。

  2. 网元SMF(内置BSF)、PCF服务注册成功。

  3. 根据DNN1选择的PCF为融合网元PCF/PCRF。

  4. UE A和UE B已在UDM开户,签约5G业务。

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

测试步骤

  1. UE A发起附着(注册),SMF收到PDU会话流程建立请求后,向选定的PCF1发送HTTP POST请求Npcf_SMPolicyControl_Create操作,POST消息携带UE A的SUPI A、UE IPv6 A1、DNN1等信息。PCF处理成功后给SMF返回201 Created响应。

  2. UE A携带DNN2向SMF发起PDU会话流程建立请求,SMF向选定的PCF2发送HTTP POST请求Npcf_SMPolicyControl_Create操作,POST消息携带UE A的SUPI A、UE IPv6 A2、DNN2等信息。PCF处理成功后给SMF返回201 Created响应。

  3. UE B发起附着(注册),SMF收到PDU会话流程建立请求后,向选定的PCF2发送HTTP POST请求Npcf_SMPolicyControl_Create操作,POST消息携带UE B的SUPI B、UE IPv6 B1、DNN1等信息。PCF处理成功后给SMF返回201 Created响应。

  4. 在SMF内置BSF上通过维护管理接口进行会话绑定信息查询,验证各UE的绑定信息是否正确存储。

测试结果验证(预期)

  1. UE A附着成功后,检查SMF中UE A的用户上下文包含有UE PDU会话相关信息(UE IPv6 A1、DNN1、S-NSSAI、SUPI A)和对应SMF所选的PCF ID或地址。如SMF可获取UE的GPSI,还应包含GPSI。

  2. UE A建立DNN2的PDU会话后,检查SMF中UE A的用户上下文包含有UE PDU会话相关信息(UE IPv6 A2、DNN2、S-NSSAI、SUPI A)和对应SMF所选的PCF ID或地址。如SMF可获取UE的GPSI,还应包含GPSI。

  3. UE B附着成功后,检查SMF中UE B的用户上下文包含有UE PDU会话相关信息(UE IPv6 B1、DNN1、S-NSSAI、SUPI B)和对应SMF所选的PCF ID或地址。如SMF可获取UE的GPSI,还应包含GPSI。

  4. 在SMF内置BSF上通过维护管理接口进行会话绑定信息查询,可以查到三条独立的会话绑定记录。


2 信令深度解析

本测试的核心信令交互发生在SMF与PCF之间,通过Npcf_SMPolicyControl_Create服务完成策略关联的建立,同时在SMF内置BSF中自动创建会话绑定信息。

(注:为保护网络安全,以下log中的SUPI/IMSI标识、网元IP及实例ID等敏感信息已做严格脱敏处理)

2.1 UE A第一条PDU会话建立(DNN1 → PCF1)

UE A发起第一条PDU会话建立请求,SMF根据DNN(Internet9)选择PCF1,并向PCF1发送策略关联创建请求。

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:e07:8460:a62b:18c/64

                    # UE的IPv6地址前缀

                ue-address-2:

                    ipv4: 10.XX.XX.XX

                    # UE的IPv4地址(已脱敏)

                ip-address-allocation-method: Shared IP Pool

                ipv6-address-allocation-method: Shared IP Pool

                single-nssai:

                    slice-service-type: 9

                    # SST=9, 运营商自定义切片类型

                    slice-differentiator: 000001

                nr-location:

                    tai:

                        plmn-id: mncXX.mcc460

                        tac: 7

                    ncgi:

                        plmn-id: mncXX.mcc460

                        nr-cell-id: 393216

                amf-information:

                    amf-id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

                    address: 10.XX.XX.XX:8080

                n3-interface:

                    ran-fteid:

                        teid: 1342267282

                        address: 10.XX.XX.XX

                    upf-fteid:

                        teid: 249561089

                        address: 10.XX.XX.XX

                n4-interface:

                    local-fseid:

                        seid: 931282336

                        address: 10.XX.XX.XX

                    remote-fseid:

                        seid: 1071856711314178049

                        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 数据网络名称,即APN的5G版本
ipv6 2a01:172:2401:0:... UE A的PDU会话1的IPv6地址
slice-service-type 9 S-NSSAI的SST值,标识切片类型
fiveQi 5 默认QoS流的5QI值
snssai-sst 切片SST 值为9,标识运营商自定义切片
snssai-sd 切片SD 切片差异化标识
ueIp UE IP地址 UE的IPv6地址,是AF查询绑定的关键索引
dnn 数据网络名称 Internet9,标识会话访问的目标网络
supi 用户永久标识 IMSI格式的SUPI,唯一标识用户
gpsi 通用公共订阅标识 MSISDN格式,用于外部标识
pcfId PCF实例ID UUID格式,标识管理该会话的PCF实例
pcfDiameterHost PCF Diameter主机名 用于Rx接口兼容(4G/5G互操作)
pcfDiameterRealm PCF Diameter域 用于Rx接口路由
pcfIpEndPoints PCF IP端点 AF/PCF访问PCF的服务地址和端口

协议参考:根据3GPP TS 29.513第4.2节和TS 29.551第5.2.2节,会话绑定信息的创建通过Nbsf_Management服务的POST /pcbbindings操作完成。绑定信息中必须包含能够唯一标识PDU会话的参数组合(如IP地址+DNN+S-NSSAI,或SUPI+DNN+S-NSSAI),以便后续AF通过这些参数精确查找对应的PCF。


2.3 UE A第二条PDU会话建立(DNN2 → PCF2)

同一个UE A可以建立第二条PDU会话,使用不同的DNN(apn9)。SMF根据DNN选择不同的PCF(PCF2),BSF中会创建第二条独立的绑定记录。

BSF查询绑定信息2:


[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:817a:c6da:7c01:2fc8

    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
IPv6 2a01:172:2401:0:... 2a01:172:2401:1:...
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

关键发现:

  • 同一个UE A建立了两条PDU会话(两个不同的DNN),BSF中对应两条独立的绑定记录;

  • 两条绑定记录的SUPI和GPSI相同,但DNN和IP地址不同,对应不同的PCF实例;

  • 这验证了BSF支持同一用户多会话的绑定信息存储能力。


2.4 UE B的PDU会话建立(DNN1 → PCF2)

UE B作为另一个用户,同样发起PDU会话建立请求,使用DNN1(Internet9)。SMF为其选择PCF2。

UE B用户上下文详情:


[local]SMF09#epg smf user-info identifier-type imsi value 460XX00000XXYY

mobile-user-information:

    subscriber-information:

        imsi: 460XX00000XXYY

        msisdn: 86138000XXXYY

        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:3:3e7d:da46:1f24:b0b/64

                ue-address-2:

                    ipv4: 10.XX.XX.XZ

                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

                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

BSF查询绑定信息3:


[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 10.XX.XX.XZ

pcf-binding-information:

    snssai-sst: 9

    snssai-sd: 000001

    ueIp: 2a01:172:2401:3:3e7d:da46:1f24:b0b

    dnn: Internet9

    supi: 460XX00000XXYY

    gpsi: 86138000XXXYY

    pcfId: 2244c290-3621-4d72-b718-e0194603ab11

    pcfDiameterHost: rxDiam-Host.com

    pcfDiameterRealm: rxDiam-Realm.com

    pcfIpEndPoints: 10.XX.XX.XX:9091

三条绑定记录全景对比:

对比项 绑定1 (UE A + DNN1) 绑定2 (UE A + DNN2) 绑定3 (UE B + DNN1)
SUPI 460XX00000XXXX 460XX00000XXXX 460XX00000XXYY
GPSI 86138000XXXXX 86138000XXXXX 86138000XXXYY
DNN Internet9 apn9 Internet9
S-NSSAI SST=9 SST=9 SST=9
PCF PCF1 (2244c290) PCF2 (4444c290) PCF1 (2244c290)

关键发现:

  • 绑定1和绑定3使用了相同的DNN(Internet9),但SUPI不同,被分配到相同的PCF1。这说明PCF选择策略与DNN相关,同一DNN的会话可能由同一PCF管理;

  • 绑定1和绑定2属于同一用户(相同SUPI),但DNN不同,被分配到不同的PCF。这验证了BSF支持按DNN粒度区分会话绑定;

  • 三条绑定记录各自独立存储,BSF通过IP地址作为主索引进行查询。


2.5 【硬核附加】Nbsf_Management的SBI接口深度解析

本测试中,SMF内置BSF自动完成了会话绑定信息的创建,无需显式的SBI接口调用。但在独立BSF部署场景下,PCF需要通过Nbsf_Management服务向BSF注册绑定信息。


sequenceDiagram

    participant SMF

    participant PCF

    participant BSF as 独立BSF

    Note over SMF, BSF: 独立BSF场景下的绑定创建

    SMF->>PCF: Npcf_SMPolicyControl_Create

    Note right of SMF: SMF向PCF发起策略关联创建

    PCF->>BSF: POST /nbsf-management/v1/pcbbindings

    Note right of PCF: Nbsf_Management<br/>PCC Binding Registration<br/>携带: SUPI, DNN, S-NSSAI, UE IP, PCF ID

    BSF-->>PCF: 201 Created

    Note left of BSF: 返回bindingId<br/>绑定信息存储成功

    PCF-->>SMF: 201 Created (含smPolicyId)

POST /pcbbindings请求体示例:


{

    "supi": "imsi-460XX00000XXXX",

    "gpsi": "msisdn-86138000XXXXX",

    "dnn": "Internet9",

    "snssai": {

        "sst": 9,

        "sd": "000001"

    },

    "ipv4Addr": "10.XX.XX.XX",

    "ipv6Addr": "2a01:172:2401:0:e07:8460:a62b:18c",

    "pcfId": "2244c290-3621-4d72-b718-e0194603ab11",

    "pcfFqdn": "pcf1.example.com",

    "pcfIpEndPoints": [

        {

            "ipv4Address": "10.XX.XX.XX",

            "port": 9091

        }

    ],

    "pcfDiameterHost": "rxDiam-Host.com",

    "pcfDiameterRealm": "rxDiam-Realm.com"

}

Nbsf_Management服务操作列表:

操作 HTTP方法 URI 说明
PCC Binding Registration POST /pcbbindings 创建新的绑定信息
PCC Binding Update PUT/PATCH /pcbbindings/{bindingId} 更新已有绑定信息
PCC Binding Delete DELETE /pcbbindings/{bindingId} 删除绑定信息
PCC Binding Get GET /pcbbindings 查询绑定信息(按条件过滤)

协议参考:根据3GPP TS 29.551第5.2.2节,Nbsf_ManagementPCC Binding Registration操作要求请求体中至少包含以下参数之一来标识PDU会话:SUPI+DNN+S-NSSAI,或IPv4地址,或IPv6地址+IPv6前缀长度。BSF根据这些参数的组合来唯一确定一条绑定记录。当PCF向BSF注册绑定信息时,BSF会生成一个全局唯一的bindingId作为该绑定记录的标识,PCF在后续的更新和删除操作中需要使用此ID。


3 测试结论

验证项 结果 说明
UE A第一条PDU会话建立 OK SMF选择PCF1,BSF创建绑定信息1
UE A第二条PDU会话建立 OK SMF选择PCF2,BSF创建绑定信息2
UE B的PDU会话建立 OK SMF选择PCF1,BSF创建绑定信息3
同一用户多会话绑定 OK UE A的Internet9和apn9分别绑定不同PCF
不同用户同DNN绑定 OK UE A和UE B的Internet9绑定到相同PCF1
绑定信息完整性 OK 包含SUPI、GPSI、IP、DNN、S-NSSAI、PCF ID等全量信息
PCF Diameter信息 OK 包含Diameter Host/Realm,支持Rx接口兼容

本测试用例全面验证了BSF在多用户、多DNU场景下的会话绑定信息创建能力。测试结果表明,BSF能够正确地为每个PDU会话创建独立的绑定记录,包含完整的UE标识、会话标识和PCF信息。绑定信息中的IP地址、DNN、S-NSSAI等字段为后续AF查询PCF提供了精确的索引能力。所有信令交互与3GPP TS 29.513和TS 29.551规范一致。



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

← 返回 BSF 实践篇