在融合组网中,PCF和PCRF可以是合设网元(PCF/PCRF),同时支持5G SBI接口和4G Diameter接口。问题的核心在于:
-
SMF通过SBI接口选择PCF时,获取的是PCF的SBI服务地址(如IP:Port);
-
IMS AF通过DRA发起Rx接口请求时,需要的是PCF/PCRF的Diameter路由信息(如rxDiamHost、rxDiamRealm);
-
BSF需要在两者之间建立映射,将SBI侧的PCF信息转换为Diameter侧的路由信息。
测试验证要点
本篇验证的核心能力是BSF的PCRF地址映射/记录功能,具体包括:
-
PCF/PCRF向NRF注册时携带Diameter信息(rxDiamHost、rxDiamRealm);
-
SMF在PDU会话建立过程中获取并存储PCF的Diameter路由信息;
-
DRA通过BSF查询时,BSF返回PCF的完整Diameter信息,支持Rx接口会话绑定。
详细消息流程图
sequenceDiagram
participant PCF1 as PCF/PCRF1
participant PCF2 as PCF/PCRF2
participant NRF as NRF
participant SMF as SMF/BSF
participant DRA as DRA
participant AF as IMS AF
Note over PCF1, NRF: 步骤1: PCF向NRF注册Diameter信息
PCF1->>NRF: Nnrf_NFManagement_NFRegister<br/>携带PCF info: rxDiamHost, rxDiamRealm, dnnList
PCF2->>NRF: Nnrf_NFManagement_NFRegister<br/>携带PCF info: rxDiamHost, rxDiamRealm, dnnList
NRF-->>PCF1: 201 Created
NRF-->>PCF2: 201 Created
Note over SMF, NRF: 步骤2: SMF发现PCF获取Diameter信息
SMF->>NRF: Nnrf_NFDiscovery_Request (查询PCF服务)
NRF-->>SMF: 200 OK (返回PCF info含rxDiamHost, rxDiamRealm)
Note over SMF: 步骤3: BSF存储绑定<br/>IP + rxDiamHost + PCF ID
Note over AF, SMF: 步骤4: DRA查询BSF获取PCF Diameter信息
AF->>DRA: AAR (Rx接口, 携带UE IP地址)
DRA->>SMF: GET /pcfBindings (查询UE IP对应的PCF信息)
Note right of DRA: Nbsf_Management_Discovery_Req
SMF-->>DRA: 200 OK (含pcfDiamHost, pcfDiamRealm, pcfIpEndPoints)
Note left of SMF: 返回PCF的Diameter路由信息和SBI地址
DRA->>AF: AAA (携带PCF/PCRF Diameter路由信息)
Note left of DRA: DRA基于rxDiamHost路由AAR到PCF/PCRF
DRA->>PCF1: AAR (Rx接口, 路由到正确的PCF/PCRF)
PCF1-->>DRA: AAA (Rx接口策略授权响应)
flowchart LR
subgraph PCRF地址映射全流程
A["PCF向NRF注册Diameter信息"] --> B["SMF通过NRF发现PCF"]
B --> C["SMF建立PDU会话获取PCFinfo"]
C --> D["BSF存储IP-PCF-Diameter映射"]
D --> E["DRA查询BSF获取Diameter路由"]
E --> F["DRA将AAR路由到PCF或PCRF"]
end
style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style D fill:#fff9c4,stroke:#f57f17,stroke-width:3px
style F fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
2 协议规范与关键技术
2.1 相关协议参考
-
TS 29.551(Nbsf_Management服务):第6.1.6节定义了PcfBinding数据结构,其中包含pcfDiamHost和pcfDiamRealm字段,用于存储PCF的Diameter路由信息。
-
TS 29.513(PCF策略控制):定义了N7/Rx接口的交互流程。第4.2节描述了PCF如何同时支持SBI和Diameter接口。
-
TS 23.501(5G系统架构):第5.8.2.6节描述了BSF在策略控制架构中的角色,特别是在Rx/N5接口会话绑定中的功能。
-
TS 29.510(NRF服务):定义了NF Profile中pcfInfo字段的格式,包括dnnList、supiRanges、rxDiamHost和rxDiamRealm。
2.2 PCF Info中的Diameter路由信息
PCF/PCRF向NRF注册时,在nfProfile的pcfInfo字段中携带以下Diameter路由信息:
dnnList |
PCF支持的DNN列表 |
["Internet2", "apn2"] |
supiRanges |
PCF服务的SUPI范围 |
46088000002XXXX |
rxDiamHost |
Rx接口Diameter主机名 |
rxDiam-Host.com |
rxDiamRealm |
Rx接口Diameter域名 |
rxDiam-Realm.com |
SMF在通过NRF发现PCF时,获取这些信息并在PDU会话建立过程中传递给BSF。BSF将这些信息与UE的IP地址、DNN、S-NSSAI等信息一起存储为会话绑定记录。
2.3 Rx接口会话绑定的关键路径
IMS AF(P-CSCF) --Rx/AAR--> DRA --Nbsf_Discovery--> BSF(SMF内置)
|
v
返回: pcfDiamHost + pcfDiamRealm
|
v
DRA根据Diameter路由信息将AAR
转发到正确的PCF/PCRF
DRA收到IMS AF的AAR消息后,需要确定该AAR应该路由到哪个PCF/PCRF。DRA使用用户IP地址查询BSF,BSF返回包含Diameter路由信息的绑定记录,DRA据此完成路由。
3 消息流程与详细解读
3.1 测试前置条件
-
网络中BSF、IMS AF、DRA、NRF、PCF/PCRF(合设)网元系统及操作维护台运行正常;
-
DRA上已配置用户IP地址段和BSF地址的对应关系,或可通过服务发现获取该对应关系;
-
PCF/PCRF1和PCF/PCRF2已完成向NRF的服务注册;
-
5G VoNR用户A(IMSI: 4608800000XXXXXX)和B(IMSI: 4608800000XXXXXY)已附着成功。
3.2 步骤一:PCF/PCRF向NRF注册
PCF/PCRF1和PCF/PCRF2分别向NRF发送Nnrf_NFManagement_NFRegister请求,在nfProfile中携带PCF info(DNN、rxDiamHost、rxDiamRealm)。
NRF注册消息的关键参数:
Nnrf_NFManagement_NFRegister Request:
nfProfile:
nfType: PCF
nfInstanceId: 2244c290-3621-4d72-b718-e0194603ab11
pcfInfo:
dnnList: ["Internet2"]
rxDiamHost: "rxDiam-Host.com"
rxDiamRealm: "rxDiam-Realm.com"
3.3 步骤二:SMF发现PCF并建立PDU会话
SMF为用户A和B的IMS PDU会话分别选择PCF1和PCF2。SMF通过NRF发现PCF时,获取pcfInfo中的Diameter信息,并在PDU会话建立过程中将这些信息存储在内置BSF中。
3.4 步骤三:DRA查询BSF获取PCF Diameter信息
用户A发起VoNR语音业务时,IMS AF通过DRA发起Rx AAR请求。DRA使用用户A的IP地址查询BSF:
flowchart TD
A["IMS AF收到SIP INVITE"] --> B["AF向DRA发送AAR"]
B --> C["DRA提取UE IP地址"]
C --> D["DRA查询BSF: GET /pcfBindings"]
D --> E["BSF返回绑定信息含pcfDiamHost"]
E --> F["DRA根据rxDiamHost路由AAR"]
F --> G["PCF或PCRF处理AAR并返回AAA"]
G --> H["IMS AF收到策略授权响应"]
style E fill:#fff9c4,stroke:#f57f17,stroke-width:2px
style F fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
4 关键信令参数分析
4.1 用户A的PDU会话信息
用户A(IMSI: 4608800000XXXXXX)已建立Internet2的PDU会话,分配IPv4和IPv6双栈地址:
[local]SMF02#epg smf user-info identifier-type imsi value 4608800000XXXXXX
mobile-user-information:
subscriber-information:
imsi: 4608800000XXXXXX
msisdn: 86138000XXXXXX
imei: 49172000XXXXXX0
active-pdu-sessions:
active-pdu-session:
pdu-session-id: 5
dnn-in-use: Internet2
an-type: 3GPP
ssc-mode: SSC_MODE_1
ue-address-1:
ipv6: 2a01:172:2401:0:657a:4ecc:b212:498a/64
ue-address-2:
ipv4: 172.24.1.2
single-nssai:
slice-service-type: 2
slice-differentiator: 000001
4.2 用户B的PDU会话信息
用户B(IMSI: 4608800000XXXXXY)已建立apn2的PDU会话:
[local]SMF02#epg smf user-info identifier-type imsi value 4608800000XXXXXY
mobile-user-information:
subscriber-information:
imsi: 4608800000XXXXXY
msisdn: 86138000XXXXXY
active-pdu-sessions:
active-pdu-session:
pdu-session-id: 5
dnn-in-use: apn2
an-type: 3GPP
ssc-mode: SSC_MODE_1
ue-address-1:
ipv4: 172.24.1.2
single-nssai:
slice-service-type: 2
slice-differentiator: 000001
4.3 DRA查询BSF的用户A绑定信息
DRA使用用户A的IP地址(172.24.1.2)和ipDomain(bsfipdomain1)查询BSF:
curl -v --http2 --http2-prior-knowledge -X GET \
"http://10.10.32.250:30086/nbsf-management/v1/pcfBindings\
?ipDomain=bsfipdomain1&ipv4Addr=172.24.1.2"
> GET /nbsf-management/v1/pcfBindings?ipDomain=bsfipdomain1&ipv4Addr=172.24.1.2
> Host: 10.10.32.250:30086
< HTTP/2.0 200
< content-type: application/json
< content-length: 278
{
"ipv6Prefix": "2a01:172:2401:0:657a:4ecc:b212:498a",
"dnn": "Internet2",
"pcfDiamHost": "rxDiam-Host.com",
"supi": "4608800000XXXXXX",
"pcfIpEndPoints": [{"ipv4Address": "10.10.32.34", "port": 9091}],
"snssai": {"sst": 2, "sd": "000001"},
"gpsi": "86138000XXXXXX",
"pcfDiamRealm": "rxDiam-Realm.com"
}
4.4 DRA查询BSF的用户B绑定信息
DRA使用用户B的IP地址(172.24.1.2)和ipDomain(bsfipdomain2)查询BSF:
curl -v --http2 --http2-prior-knowledge -X GET \
"http://10.10.32.250:30086/nbsf-management/v1/pcfBindings\
?ipDomain=bsfipdomain2&ipv4Addr=172.24.1.2"
> GET /nbsf-management/v1/pcfBindings?ipDomain=bsfipdomain2&ipv4Addr=172.24.1.2
> Host: 10.10.32.250:30086
< HTTP/2.0 200
< content-type: application/json
< content-length: 246
{
"dnn": "apn2",
"ipv4Addr": "172.24.1.2",
"pcfDiamHost": "rxDiam-Host.com",
"supi": "4608800000XXXXXY",
"pcfIpEndPoints": [{"ipv4Address": "10.10.32.32", "port": 9091}],
"snssai": {"sst": 2, "sd": "000001"},
"gpsi": "86138000XXXXXY",
"pcfDiamRealm": "rxDiam-Realm.com"
}
4.5 绑定信息中的关键Diameter字段分析
pcfDiamHost |
rxDiam-Host.com |
rxDiam-Host.com |
Diameter主机名 |
pcfDiamRealm |
rxDiam-Realm.com |
rxDiam-Realm.com |
Diameter域名 |
pcfIpEndPoints |
10.10.32.34:9091 |
10.10.32.32:9091 |
PCF SBI地址 |
dnn |
Internet2 |
apn2 |
各自的DNN |
supi |
4608800000XXXXXX |
4608800000XXXXXY |
不同的SUPI |
关键发现: 两个用户虽然使用了相同的IP地址(172.24.1.2),但通过不同的ipDomain(bsfipdomain1和bsfipdomain2)区分,BSF能够正确返回各自对应的PCF绑定信息。DRA根据返回的pcfDiamHost和pcfDiamRealm将Rx AAR消息路由到正确的PCF/PCRF。
4.6 BSF查询响应参数详解
Nbsf_Management_Discovery响应消息(PcfBinding结构):
ipv4Addr |
string |
UE的IPv4会话地址 |
ipv6Prefix |
string |
UE的IPv6地址前缀 |
dnn |
string |
数据网络名称 |
supi |
string |
用户永久标识符 |
gpsi |
string |
通用公共订阅标识符 |
snssai |
object |
网络切片信息(sst + sd) |
pcfId |
string |
PCF实例ID(UUID格式) |
pcfIpEndPoints |
array |
PCF的SBI服务端点(IP + 端口) |
pcfDiamHost |
string |
PCF的Diameter主机名(用于Rx路由) |
pcfDiamRealm |
string |
PCF的Diameter域名(用于Rx路由) |
5 测试验证与数据解读
5.1 验证一:PCF注册时携带Diameter信息
检查PCF1和PCF2向NRF发送的Nnrf_NFManagement_NFRegister消息中携带了pcfInfo,包括DNN列表(dnnList)、SUPI范围(supiRanges)以及Diameter路由信息(rxDiamHost、rxDiamRealm)。
5.2 验证二:SMF获取并存储PCF的Diameter信息
SMF在建立PDU会话过程中,通过NRF发现PCF时获取pcfInfo。SMF将PCF的Diameter信息存储在PDU会话上下文中,供BSF查询使用。
5.3 验证三:BSF返回完整的Diameter路由信息
DRA基于用户IP地址和ipDomain查询BSF时,BSF成功返回200 OK响应,包含完整的PcfBinding信息。特别关键的是响应中包含了pcfDiamHost和pcfDiamRealm字段,使DRA能够将Rx接口请求路由到正确的PCF/PCRF。
5.4 验证四:不同用户路由到不同PCF
两个用户虽然使用相同的IPv4地址(172.24.1.2),但通过不同的ipDomain参数查询BSF,分别获得了不同的PCF绑定信息:
5.5 测试结果汇总
| 验证项 |
预期结果 |
实际结果 |
结论 |
| PCF注册携带Diameter信息 |
NRF注册含rxDiamHost |
确认携带 |
通过 |
| SMF获取PCFinfo |
包含Diameter信息 |
确认获取 |
通过 |
| BSF存储Diameter映射 |
绑定信息含pcfDiamHost |
确认存储 |
通过 |
| DRA查询用户A绑定 |
返回PCF1 Diameter信息 |
200 OK, 含rxDiamHost |
通过 |
| DRA查询用户B绑定 |
返回PCF2 Diameter信息 |
200 OK, 含rxDiamHost |
通过 |
| ipDomain区分相同IP |
正确区分不同用户 |
返回不同PCF |
通过 |
6 小结与思考
本篇验证了BSF的PCF/PCRF地址映射功能——在5G与4G融合组网中,BSF如何帮助DRA将Diameter Rx接口请求路由到正确的PCF/PCRF。测试结果表明:
-
NRF注册完整性:PCF/PCRF向NRF注册时正确携带了Diameter路由信息(rxDiamHost、rxDiamRealm),这是地址映射的基础;
-
BSF映射正确性:SMF在PDU会话建立过程中获取PCF的Diameter信息并存储在BSF中,BSF查询时能完整返回Diameter路由信息;
-
ipDomain区分能力:当不同用户使用相同的IP地址时,通过ipDomain参数能够正确区分,BSF返回各自对应的PCF绑定信息。
延伸思考:
-
Diameter与SBI共存:在5G网络全面SBI化的演进过程中,Diameter接口将逐步被SBI接口替代。但在IMS语音、计费等场景中,Diameter接口仍有较长的生命周期。BSF的地址映射功能是这一过渡期的关键支撑。
-
多DRA场景:当网络中部署多个DRA时,BSF需要支持多个DRA的并发查询。在高负载场景下,BSF的查询性能需要满足实时性要求。
-
安全考虑:BSF返回的PCF Diameter路由信息是策略控制基础设施的关键数据,需要确保只有授权的DRA/AF才能查询这些信息。
协议参考:根据3GPP TS 29.551第6.1.6节,PcfBinding数据结构中包含pcfDiamHost和pcfDiamRealm可选字段。当PCF同时支持SBI和Diameter接口时,这些字段用于存储PCF的Diameter路由信息。BSF在响应Nbsf_Management_Discovery请求时,应返回完整的绑定信息,包括Diameter路由信息。
扫码关注「51学通信」,每天学一点5G核心网。知识星球会员享200+小时视频课程+3000+精华文章+1年专属答疑群,公众号回复"会员"了解详情。