Diameter 操作指南
目录
概述
Diameter 是在 IMS 架构中使用的认证、授权和计费(AAA)协议。OmniCSCF 使用 Diameter 与包括 HSS、PCRF 和 OCS 在内的关键网络元素进行通信。
什么是 Diameter?
Diameter (RFC 6733) 是 RADIUS 的继任者,旨在满足现代 AAA 场景的需求:
- 可靠传输 通过 TCP/SCTP(与 RADIUS 中的 UDP 相比)
- 可扩展 通过特定应用模块
- 对等 架构(不仅仅是客户端-服务器)
- 有状态 连接,带有看门狗监控
- 标准化 错误处理和结果代码
Diameter 在 CSCF 中
每个 CSCF 组件使用特定的 Diameter 应用接口:
| CSCF | 接口 | 应用 ID | 连接到 | 目的 |
|---|---|---|---|---|
| I-CSCF | Cx | 16777216 | HSS | S-CSCF 选择,用户位置 |
| S-CSCF | Cx | 16777216 | HSS | 用户认证,配置文件下载 |
| S-CSCF | Sh | 16777217 | HSS | 用户数据访问(可选) |
| P-CSCF | Rx | 16777236 | PCRF | QoS 策略和承载控制 |
| S-CSCF | Ro | 4 | OCS | 在线计费(信用控制) |
| S-CSCF | Rf | 3 | CDF | 离线计费(记账) |
IMS 架构中的 Diameter
网络概述
Diameter 接口
Cx 接口 (CSCF ↔ HSS)
Cx 接口由 I-CSCF 和 S-CSCF 用于用户认证和配置文件管理。
3GPP 规范: TS 29.228
I-CSCF 操作
用户授权���求 (UAR) / 用户授权应答 (UAA):
- 目的: 查询 HSS 以获取 S-CSCF 分配或能力
- 触发: 从用户接收到的 REGISTER
- 用例: I-CSCF 需要将注册路由到适当的 S-CSCF
位置信息请求 (LIR) / 位置信息应答 (LIA):
- 目的: 查询 HSS 以获取用户当前的 S-CSCF
- 触发: 收到终止用户的 INVITE 或 MESSAGE
- 用例: I-CSCF 需要将会话路由到用户的 S-CSCF
S-CSCF 操作
多媒体认证请求 (MAR) / 多媒体认证应答 (MAA):
- 目的: 从 HSS 获取认证向量
- 触发: 初始 REGISTER(在挑战之前)
- 用例: S-CSCF 需要挑战用户进行 IMS AKA 认证
服务器分配请求 (SAR) / 服务器分配应答 (SAA):
- 目的: 通知 HSS 注册状态,下载用户配置文件
- 触发: 成功认证(在 MAR/MAA 之后)
- 用例: S-CSCF 下载用户的 IFC 和服务配置文件
SAA 中的 User-Data AVP 包含完整的用户配置文件,包括:
- 公共身份
- 服务触发的初始过滤标准 (IFC)
- 订阅的媒体配置文件标识符
- 计费信息
注册终止请求 (RTR) / 注册终止应答 (RTA):
- 目的: HSS 发起的注销(来自 HSS 的推送)
- 触发: 行政注销,订阅变更
- 用例: HSS 指示 S-CSCF 注销用户
Rx 接口 (P-CSCF ↔ PCRF)
Rx 接口为 IMS 会话提供策略和 QoS 控制。
3GPP 规范: TS 29.214
关于 VoNR (5G NR) 的说明: 对于 VoNR 会话,媒体和 QoS 通过 N5 AF 接口(Npcf_PolicyAuthorization,HTTP/2 SBI)授权给 PCF,而不是 Diameter Rx。因此,此处描述的 Rx 接口适用于 4G/LTE 访问。
AA 请求 (AAR) / AA 应答 (AAA):
- 目的: 请求媒体会话的 QoS 授权
- 触发: SIP INVITE 中的 SDP 提供/应答交换
- 用例: P-CSCF 请求 PCRF 授权承载资源
重新认证请求 (RAR) / 重新认证应答 (RAA):
- 目的: PCRF 发起的策略更新(来自 PCRF 的推送)
- 触发: 策略变更,承载修改
- 用例: PCRF 指示 P-CSCF 更新 QoS 策略
会话终止请求 (STR) / 会话终止应答 (STA):
- 目的: 释放 Rx 会话和承载资源
- 触发: 呼叫终止(收到 BYE)
- 用例: P-CSCF 通知 PCRF 释放 QoS 资源
Ro 接口 (S-CSCF ↔ OCS)
Ro 接口提供在线计费(信用控制)。
3GPP 规范: TS 32.299
信用控制请求 (CCR) / 信用控制应答 (CCA):
- 目的: 实时信用授权和扣款
- 触发: 呼叫建立,中途呼叫,呼叫终止
- 用例: 预付费计费,实时信用检查
类型:
- CCR-Initial: 在呼叫开始时请求信用
- CCR-Update: ��呼叫期间刷新配额
- CCR-Terminate: 在呼叫结束时报告最终使用情况
通过 OmniWeb 进行对等管理
Diameter 对等状态、支持的应用程序和队列深度现在可以在 OmniWeb 中每个 CSCF 页面上的 Diameter 选项卡中查看,这是统一管理门户: <https://docs.omnitouch.com.au/docs/repos/Platform/OmniWeb/>。
从 OmniWeb Diameter 选项卡中,您可以查看每个 CSCF 的:
- 领域和 Diameter Origin-Host 身份
- 配置的对等体及其连接状态(I_Open、Closed 等)
- 每个对等体支持的 Diameter 应用程序,映射到 3GPP 接口名称(Cx/Dx、Sh/Dh、Rx、Ro、Gx、S6a/S6d 等)
- 工作队列长度和待处理事务
- 启用/禁用单个对等体的操作
对等状态
| 状态 | 描述 |
|---|---|
| I_Open | 连接已打开并正常运行 |
| Closed | 未建立连接 |
| Wait-Conn-Ack | 连接已发起,等待响应 |
| Wait-I-CEA | CER 已发送,等待 CEA |
Diameter 结果代码
常见结果代码及其含义:
| 代码 | 名称 | 含义 | 操作 |
|---|---|---|---|
| 2xxx | 成功 | ||
| 2001 | DIAMETER_SUCCESS | 操作成功 | 无 |
| 3xxx | 协议错误 | ||
| 3002 | DIAMETER_UNABLE_TO_DELIVER | 无法路由到目标 | 检查对等连接 |
| 3003 | DIAMETER_REALM_NOT_SERVED | 领域未被识别 | 验证领域配置 |
| 3007 | DIAMETER_APPLICATION_UNSUPPORTED | 应用程序不受支持 | 检查应用程序 ID |
| 4xxx | 瞬态故障 | ||
| 4001 | DIAMETER_AUTHENTICATION_REJECTED | 认证失败 | 检查凭据 |
| 4010 | DIAMETER_USER_UNKNOWN | 用户未配置 | 验证 HSS 配置 |
| 5xxx | 永久故障 | ||
| 5001 | DIAMETER_AVP_UNSUPPORTED | AVP 未被识别 | 检查协议版本 |
| 5002 | DIAMETER_UNKNOWN_SESSION_ID | 会话未找到 | 会话已过期或无效 |
| 5003 | DIAMETER_AUTHORIZATION_REJECTED | 未授权 | 检查用户权限 |
| 5012 | DIAMETER_UNABLE_TO_COMPLY | 无法处理请求 | 检查 HSS/PCRF/OCS 日志 |
常见问题
关键 Diameter 接口
当 Diameter 对等体出现故障时,影响和恢复的紧迫性取决于受影响的接口:
| 接口 | 故障影响 | 恢复优先级 |
|---|---|---|
| Cx (HSS) | 无法进行新注册,无 IFC 更新 | 关键 - 立即 |
| Rx (PCRF) | 新呼叫无 QoS | 高 - 在几分钟内 |
| Ro (OCS) | 无法进行预付费计费,服务可能继续 | 高 - 取决于策略 |
对等连接故障
症状: 对等体卡在 "Closed" 或 "Wait-Conn-Ack" 状态
诊断:
- 验证���络连接:
ping <peer-fqdn>
telnet <peer-fqdn> 3868 - 检查防火墙规则(端口 3868 TCP 必须开放)
- 验证对等配置(IP 地址,端口)
- 检查对等日志以获取连接尝试
解决方案:
- 修复网络/防火墙问题
- 验证对等体是否正在运行并监听端口 3868
- 检查对等体是否具有正确的 CSCF 配置
- 使用 OmniWeb Diameter 选项卡上的 Enable Peer 重试连接
CER/CEA 交换故障
症状: 对等体卡在 "Wait-I-CEA" 状态,或 CEA 返回错误代码
常见错误:
- 5010 (NO_COMMON_APPLICATION): 验证两个对等体是否支持相同的应用程序(例如,Cx = 16777216)
- 3003 (REALM_NOT_SERVED): 验证 Origin-Realm 是否与对等体的预期领域匹配
解决方案:
- 检查 Diameter 配置中的应用程序 ID 和领域
- 确保对等配置与 CSCF 预期匹配
- 查看 CSCF 后端日志以获取详细错误信息
HSS Cx 接口问题
症状: 注册失败,MAR/MAA 超时
常见错误:
| 结果代码 | 含义 | 解决方案 |
|---|---|---|
| 4010 | USER_UNKNOWN | 用户未在 HSS 中配置 |
| 4001 | AUTHENTICATION_REJECTED | IMPI/凭据不正确 |
| 5012 | UNABLE_TO_COMPLY | HSS 内部错误,检查 HSS 日志 |
解决方案:
- USER_UNKNOWN: 在 HSS 中配置用户
- AUTHENTICATION_REJECTED: 验证 HSS 中的 IMPI 和共享密钥
- UNABLE_TO_COMPLY: 检查 HSS 日志和数据库连接
PCRF Rx 接口问题
症状: 呼叫成功但未应用 QoS,AAR/AAA 超时
常见问题:
- PCRF 故障: 检查 OmniWeb Diameter 选项卡上的对等状态
- Framed-IP-Address 未被识别: PCRF 无法将 UE IP 映射到订阅者
- 策略未应用: 检查 PCRF 策略规则,验证 PCEF 集成
解决方案:
- 验证 PCRF 对等体是否处于 "I_Open" 状态
- 检查 PCRF 中的 UE IP 地址配置
- 验证 Gx 接口(PCRF 到 PCEF)是否正常
OCS Ro 接口问题
症状: 预付费呼叫失败,CCR/CCA 超时,呼叫被阻止
常见错误:
| 结果代码 | 含义 | 解决方案 |
|---|---|---|
| 4012 | CREDIT_LIMIT_REACHED | 信用不足 |
| 5003 | AUTHORIZATION_REJECTED | 用户未被授权进行预付费 |
解决方案:
- CREDIT_LIMIT_REACHED: 对于没有信用的预付费用户来说是正常的
- OCS 超时: 检查 OCS 可用性和对等状态
- AUTHORIZATION_REJECTED: 验证用户是否在 OCS 中配置为预付费
性能下降
症状: Diameter 响应���间缓慢,高延迟
诊断:
- 检查对等列表中的 "Last Used" 时间戳(应为最近)
- 监控 "Queue Length"(高值表示积压)
- 查看 CSCF 后端日志以获取超时警告
解决方案:
- 高延迟: 调查 CSCF 和对等体之间的网络
- 高队列长度: 检查对等体系统负载(HSS/PCRF/OCS)
- 超时: 如果网络延迟高,则增加事务超时
最佳实践
操作指南
对等管理:
- 通过 OmniWeb Diameter 选项卡监控对等状态
- 为对等故障事件设置外部监控
- 在维护窗口期间测试对等连接
容量规划:
- 根据注册和呼叫量估算 Diameter 事务速率
- 确保 HSS/PCRF/OCS 能够处理峰值事务速率
- 考虑在大型部署中使用 Diameter 路由代理(DRA)
故障排除:
- 在调查注册或呼叫失败时,首先检查对等状态
- 将 Diameter 故障与 SIP 故障关联(相同的 Call-ID 或用户)
- 查看 CSCF 后端日志以获取详细的 Diameter 事务跟踪
安全性:
- 在生产环境中使用 TLS 进行 Diameter 连接(如果支持)
- 通过防火墙限制 Diameter 对等体访问(仅限已知对等体)
- 定期查看对等启用/禁用审计日志
限制和未来增强
当前实现
OmniWeb Diameter 选项卡提供:
- ✅ 实时对等状态查看
- ✅ 启用/禁用对等操作
- ✅ 应用 ID 到接口名称的映射
尚未实现
以下功能 目前不可用,但可能在未来版本中添加:
- Diameter 消息检查器: 查看最近的 Diameter 事务和 AVP 详细信息
- 对等统计: 消息计数、成功率、每个对等体的平均延迟
- 看门狗监控: 实时 DWR/DWA 状态
解决方法
对于消息检查: 检查 CSCF 后端日志或启用 Diameter 调试日志
对于详细统计: 从 Prometheus 端点查询指标(请参见 指标参考 以获取完整的 CDP/Diameter 指标定义和监控设置)
对于手动重新连接: 使用 OmniWeb Diameter 选项卡禁用然后重新启用对等体
相关文档
- P-CSCF 操作指南 - P-CSCF Rx 接口操作
- I-CSCF 操作指南 - I-CSCF Cx 接口操作
- S-CSCF 操作指南 - S-CSCF Cx、Ro 接口
- 5G SBI 操作指南 - 用于 VoNR 的 N5/NRF 基于服务的接口(Rx 的 5G 对应)
- 指标参考 - CDP/Diameter 指标和监控
- OmniWeb - 通过 OmniWeb Diameter 选项卡进行 Diameter 对等管理
- CSCF 操作指南 - 一般 CSCF 操作
3GPP 规范
- TS 29.228: Cx 和 Dx 接口(CSCF-HSS)
- TS 29.214: Rx 接口(P-CSCF-PCRF)
- TS 32.299: Diameter 计费应用(Ro、Rf)
- RFC 6733: Diameter 基础协议
技术细节
实现
- Diameter 堆栈: 集成的 Diameter 协议栈
- 管理接口: RPC 协议到 CSCF 后端
- 管理门户: OmniWeb (<https://docs.omnitouch.com.au/docs/repos/Platform/OmniWeb/>)
对等配置(部署)
每个 CSCF 节点都有一个 Diameter 对等配置文件 - pcscf.xml、icscf.xml、scscf.xml - 在部署时由 Ansible 渲染。它定义了节点的 Diameter 身份以及它连接的 HSS/PCRF/DRA 对等体。结构在三个文件中是相同的;只有广告的应用程序不同。
| XML 字段 | 配置内容 | Ansible 源 |
|---|---|---|
DiameterPeer FQDN | 此节点的 Diameter origin-host FQDN | <inventory_hostname>.epc.mnc<mnc>.mcc<mcc>.3gppnetwork.org |
DiameterPeer Realm | 本地 Diameter 领域 | 如果定义则为 ims_realm,否则为 epc.mnc<mnc>.mcc<mcc>.3gppnetwork.org |
Vendor_Id / Product_Name | CER 身份 | 10415 (3GPP) / OmniCSCF |
Peer (直接模式) | 通过 SCTP:3868 直接对等每个 hss-组主机 | 在 ims_dra_support 为 false 时按主机渲染于 groups['hss'] |
Peer (DRA ���式) | 对每个 dra-组主机的对等体;当设置 diameter_dra_ip 时为显式 IP | 在 ims_dra_support 为 true 时按主机渲染于 groups['dra'] |
Acceptor | 本地绑定 FQDN/端口用于入站 Diameter (3868) | 节点 FQDN |
DefaultRoute | 到 HSS/PCRF 对等体的领域路由默认路由(度量 1)或 DRA(度量 2) | 从 groups['hss'] / groups['dra'] 渲染 |
每个节点的广告应用程序:
| 节点 (文件) | 应用程序 |
|---|---|
P-CSCF (pcscf.xml) | Rx 16777236 (vendors 10415, 0) |
I-CSCF (icscf.xml) | Cx 16777216 (vendors 10415, 13019, 0) + 基础计费 4 |
S-CSCF (scscf.xml) | Cx 16777216 (vendors 10415, 13019, 0) + 基础计费 4 |
关键 Ansible 变量:plmn_id.mcc / plmn_id.mnc_longform(构建所有 FQDN/领域),ims_realm(覆盖 Diameter 领域),ims_dra_support(在直接对等和 DRA 对等之间切换),diameter_dra_ip(DRA 对等体的静态 IP),以及 hss / dra 库存组(对等和默认路由列表)。S-CSCF 的 Ro 对等体(OCS)在启用计费时通过 RO_DESTINATION 单独处理,而不是通过 XML。
这些文件通过部署工具进行编辑,而不是通过 OmniWeb;OmniWeb 仅提供监控和操作控制(启用/禁用)。