用于有线配置和计费的 3GPP 策略和收费控制
用于有线配置和计费的 3GPP 策略和收费控制概述
第三代合作伙伴项目 (3GPP) 策略和收费控制 (PCC) 为客户提供了有线配置和会计的统一。 图1 显示了整个3GPP PCC架构的组件。
PCC 架构的四个主要组件是:
-
策略和计费规则功能 (PCRF) — 一个集中式策略决策点,用于部署业务策略和计费规则以分配宽带网络资源并管理用户和服务的基于流的费用。PCRF 使用 3GPP Gx 协议和在线策略接口将规则向下推送到策略和计费实施功能 (PCEF)。
-
策略和计费实施功能 (PCEF) — 在网关提供用户流量处理和 QoS、提供服务数据流检测以及应用从 PCRF 接收的规则的功能。PCEF 可选择使用 3GPP Gy 协议与在线收费系统 (OCS) 内的在线收费功能 (OCF) 进行交互,以检索配额和信用控制的策略和收费授权。
-
在线充电系统 (OCS) — 负责与 PCEF 交互的组件。PCEF 可选择使用 3GPP Gy 协议报告使用情况并从 OCS 接收其他授权。宽带 PCEF (BPCEF) 与 OCS 的交互使用在线会话计费,具有集中单位确定和集中评级。
-
离线计费系统 (OFCS) — 在收集网络资源使用情况的计费信息的同时收集该资源使用的过程。如果不需要基于信用的授权,PCEF 将使用 3GPP Gz 协议向 OFCS 应用策略和报告使用情况。您还可以将 OCS 用作主计费目标,并将 OFCS 用作备份。
表 1 列出了 PCRF 和 PCEF 之间的功能差异。
| 功能性 |
PCRF |
PCEF |
|---|---|---|
| 收费监管实施 |
涉及不同层面;聚合托管网络内的信息,被视为 PCC 架构的一部分。 |
涉及不同层面;位于网关位置 |
| 包含的功能 |
主要包括策略控制、决策和基于流的控制功能。 |
包括策略实施和基于流的计费功能。 |
| 预定义 PCC 规则 |
预定义 PCC 规则的激活或停用只能由 PCRF 完成。 |
由 PCEF 预配置。 |
| 线上线下充电互动 |
不支持 |
支持 |
构成 图 1 中 PCC 架构的其他三个组件是:
-
应用程序功能(接入点) - 应用程序功能与需要动态 PCC 的应用程序或服务进行交互。应用函数从应用信令中提取会话信息,并使用 Rx 协议向 PCRF 提供应用会话相关信息。
-
订阅配置文件存储库 (SPR) — SPR 包含基于每个数据包的数据网络 (PDN) 的用户和订阅信息。SP 协议使 PCRF 能够请求与订阅者的服务或会话相关的订阅信息。
-
承载绑定和事件报告功能 (BBERF) — PCC 规则需要映射到特定的 IP 承载,以确保数据包收到适当的 QoS 处理。PCC 规则与承载者之间的关联称为 承载者绑定。BBERF 的位置取决于接入技术。对于 3GPP,BBERF 位于服务网关中并使用 Gxx 协议。
3GPP 策略和充电控制架构的优势
-
为有线用户配置和计费提供统一框架。
宽带有线用户的策略和收费执行功能概述
策略和收费执行功能 (PCEF) 是 图 2 中第三代合作伙伴项目 (3GPP) 策略和收费控制 (PCC) 架构的四个主要组件之一。
PCEF 在网关提供用户流量处理和服务质量 (QoS),提供服务数据流检测,并应用从策略控制和收费规则功能 (PCRF) 接收到的规则。3GPP 将 Gx 定义为 PCRF 和 PCEF 之间的联机策略协议,用于控制用户的策略和基于流的费用。PCRF 是一个集中式策略决策点,用于部署业务策略规则以分配宽带网络资源,并管理基于流的用户和服务费用。或者,PCEF 使用 3GPP Gy 协议与在线收费系统 (OCS) 交互,以检索配额和信用控制的策略和收费授权。
PCEF 支持以下环境:
有线接入环境
对于移动用户,用户设备请求服务;对于宽带有线用户,PCRF 请求服务。在有线环境中,PCRF 充当服务请求方,而 PCEF 充当服务接收方和实施方。
在有线环境中调整 PCC 模型具有以下优势:
方便
先进的技术
已经由运营商的无线分支机构实施,该运营商提供的业务通常比有线分支机构大得多
PCRF 通过推送收费规则来控制 PCEF。收费规则作为服务(策略)规则重复使用,用于推送策略。充电规则还可能具有关联的评级组或充电键。因此,PCEF 配置必须定义计费规则以及信用控制服务(cc 服务)和评级组之间的映射。
在许多情况下,OCS 和离线充电系统 (OFCS) 3GPP 会计服务都需要使用移动站国际用户目录号 (MSISDN) 进行用户识别。MSISDN 作为订阅 ID 传递。虽然每个移动用户设备设备都有关联的 MSISDN,但此信息不适用于有线订阅者。为了使 PCRF 能够动态传递订阅 ID 参数,并支持各种身份验证、授权和配置,表 2 中的瞻博网络属性-值对 (AVP) 是从瞻博网络供应商 ID 空间 (2636) 供应商特定属性 (VSA) 中分配的。
如果未收到动态订阅 ID,则不会启动 OCS 或 OFCS 通信。
助理副总裁姓名 |
供应商 ID |
AVP 类型 |
直径类型 |
直径标志 |
|---|---|---|---|---|
瞻博网络-dyn-subscription-indicator |
2636 |
10001 |
枚举 |
V |
瞻博网络-dyn-subscription-id |
2636 |
10002 |
分组 |
虚拟机 |
瞻博网络-dyn-subscription-id-type |
2636 |
10003 |
整数 32 |
虚拟机 |
瞻博网络-dyn-subscription-id-data |
2636 |
10004 |
UTF8 字符串 |
虚拟机 |
客户端系统(路由器)发送瞻博网络-Dyn-Subscription-Id-Indicator AVP,以指示支持订阅 ID 的动态分配。瞻博网络-Dyn-Subscription-Id-Indicator 属性有两个值:
DYN_SUBSCRIPtION_NOT_SUPPORTED (0)
DYN_SUBSCRIPTION_SUPPORTED (1)
然后,服务器会将瞻博网络-Dyn-Subscription-Id AVP 发送至指示支持的客户端。这是一个分组的 AVP,其中包含要作为 Subscription-Id-Type 和 Subscription-Id-Data 发送的值。
PCRF 服务器可以使用标准订阅 ID AVP 将动态订阅 ID 传达给路由器。
如果 PCRF 同时发送了 瞻博网络-Dyn-Subscription-Id 和 Subscription-Id,则使用 Subscription-Id 值。
许多情况下,有线用户仅支持一个 IP 家族,这是 AAA 服务和 PCRF 所需的信息。为了指示此信息,表 3 中的瞻博网络供应商 ID 空间 (2636) VSA 中分配了瞻博网络网络家族指示器 AVP。
助理副总裁姓名 |
供应商 ID |
AVP 类型 |
直径类型 |
直径标志 |
|---|---|---|---|---|
瞻博网络-网络-系列-指示灯 |
2636 |
10010 |
枚举 |
V |
客户端系统(路由器)发送瞻博网络网络家族指示器 AVP,以指示哪些网络家族与服务请求相关联并得到订阅者支持。将瞻博网络网络家族指示器 AVP 配置为指示关联的网络家族时,系统会将信息发送至 PCRF。瞻博网络-网络-家族-指示器属性有四个值:
未指定 (0)
IPV4_FAMILY (1)
IPV6_FAMILY (2)
IPV4_IPV6_FAMILY (3)
有线客户通常仅通过 PCRF 控制用户服务,并将 OCS 用作方便的实时使用监控机制,而不是作为执行单元。要减少可能的错误 OCS 配置的数量,请在层次结构级别包含[edit access ocs partition partition-name]该force-continue语句,以强制宽带 PCEF (BPCEF) 限制来自 OCS 和配额到期的负面响应的影响,并防止为受影响的评级组发送 OCS 通知。每当 PCEF 收到对任何报告组的负面回复时,它都会停止向 OCS 报告该组。
Junos OS 环境
Junos OS 环境中的动态配置文件分为三类:
客户端动态配置文件
cos-service-dynamic-profiles
防火墙服务动态配置文件
client-dynamic-profiles 和 cos-service-dynamic-profile 定义提供给订阅者的服务的带宽和其他特征;firewall-service-profile 可执行过滤和使用计数。对于所有动态配置文件的类别,service-dynamic-profile 名称用作 Charging-Rule-Name AVP 的值。
当 service-dynamic-profile 没有变量时,或者当请求 service-dynamic-profile 定义中提供的默认值时,不需要其他元素。要为服务动态配置文件提供自定义值,请将 Charging-Rule-Definition AVP 与其他 VSA 一起使用。
PCRF 使用现有的瞻博网络替代 VSA(供应商 ID 2636 和类型 2024)以名称值对的形式提供属性。PCRF 还可以包括参数作为部分规则名称的位置表示法。重定向信息 AVP(供应商 ID 10415 和类型 1085)为 Redirect-URL 参数提供值。
对于客户请求的每个可能的服务动态配置文件参数名称,都会定义一个新的瞻博网络参数 VSA。 表 4 描述了固定瞻博网络参数 VSA 的初始集合。
参数 |
VSA 名称 |
供应商 ID |
类型 |
直径类型 |
|---|---|---|---|---|
Cos-TCP |
瞻博网络-param-cos-tcp |
2636 |
10005 |
UTF8 字符串 |
v4-防火墙-输入-过滤器 |
瞻博网络-参数-v4-防火墙-输入-过滤器 |
2636 |
10006 |
UTF8 字符串 |
v4-防火墙-输出-过滤器 |
瞻博网络-参数-v4-防火墙-输出-过滤器 |
2636 |
10007 |
UTF8 字符串 |
v6-防火墙-输入-过滤器 |
瞻博网络-参数-v6-防火墙-输入-过滤器 |
2636 |
10008 |
UTF8 字符串 |
v6-防火墙-输出-过滤器 |
瞻博网络-参数-v6-防火墙-输出-过滤器 |
2636 |
10009 |
UTF8 字符串 |
如果 PCRF 要求指示参数或服务标识符和额定组,则使用收费规则定义 AVP;否则,使用 Charging-Rule-Name AVP。
Charging-Rule-Definition ::= < AVP Header: 1003 >
{ Charging-Rule-Name }
[ Service-Identifier ]
[ Rating-Group ]
[ Online ]
[ Precedence ]
[ Juniper-Param-VSA ]
[ AVPs ] – standard AVPs used as parameters
例如,如果存在服务标识符和评级组组合,或者仅指定了服务标识符或仅指定评级组,则该组合在为订阅者安装的规则中必须是唯一的。在路由器上配置服务上下文 ID。
了解路由器与 PCRF 之间的 Gx 交互
Diameter 消息序列通过第三代合作伙伴项目 (3GPP) Gx 协议在策略控制和规则计费功能 (PCRF) 与充当策略和计费执行功能 (PCEF) 的路由器之间进行交换。
从 Junos OS 17.3R1 版开始,使用 Gy 和 Gx 协议添加了对其他 OCS 和 PCRF 功能的支持。新声明:
accept-sdr在层次结构级别[edit access pcrf partition partition-name]为 PCRF 分区添加。alternative-partition-name在层次结构级别[edit access ocs partition partition-name]为 OCS 分区添加。
它们交互以执行以下订阅者访问任务:
订阅者登录
路由器向策略管理器 (PCRF) 发送包含一组固定所需信息的 Diameter CCR 请求,并接收包含策略和其他信息的 CCA 响应。在层次结构级别包含[edit access profile profile-name]该语句时,provisioning-order pcrf将为订阅者启用 Gx 调配。当应用程序请求 AAA 激活用户会话时,路由器 向 PCRF 发送一条 CCR-GX-I(其中 I 代表 INITIAL_REQUEST)消息,以请求一组固定的用户会话调配信息,并接收一条包含策略和其他信息的 CCA-GX-I 响应消息,包括结果代码 AVP(AVP 代码 268)。
在访问配置文件中配置该 provisioning-order 语句时,宽带 PCEF (BPCEF) 模块会在客户端激活期间向 PCRF 发送调配请求。以下示例显示了 CCR-GX-I 和 CCA-GX-I 数据包交换:
CCR-GX-I 数据包示例
CCR-GX-I ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Auth-Application-Id: 16777238 }
{ Origin-Host: <configurable-string> }
{ Origin-Realm: <configurable-string> }
{ Destination-Realm: <configurable-string> }
{ CC-Request-Type: INITIAL_REQUEST(1) }
{ CC-Request-Number: 0 }
{ Subscription-Id:
{ Subscription-Id-Type: <configurable-integer> }
{ Subscription-Id-Data: <configurable-string> }
}
}
[ Destination-Host: <configurable-string> ] -- if configured
[ Origin-State-Id: <u32> ] -- if configured to send
[ Framed-IP-Address: <ipv4-address-in-radius-encoding> ] -- if available
[ Framed-IPv6-Prefix: <ipv6-prefix-in-radius-encoding> ] -- if available
{ IP-CAN-Type: <configurable-integer> }
{ Online: ENABLE_ONLINE (1) }
[ User-Name: <string> ]
[ NAS-Port-Id: <string> ] -- if included by config
[ Juniper-Virtual-Router: <virtual-router-name> ] -- if included by config
[ Event-Timestamp: <timestamp> ] -- login timestamp, if included by config
{ Juniper-Dyn-Subscription-Indicator: DYN_SUBSCRIPTION_SUPPORTED(1) }
{ Juniper-Network-Family-Indicator: <subscriber-family> }
当重新发送 CCR-GX-I 时,将重新计算 T(可能重传消息)位。此标志是在链路故障切换过程之后设置的,以删除重复请求。
CCA-GX-I 数据包示例
CCA-GX-I ::= <Diameter Header: 272, PXY, 16777238>
{ <Session-Id> }
{ Result-Code: <integer> }
{ Auth-Application-Id: 16777238 }
{ Origin-Host: <string> } -- should match destination-host if configured
{ Origin-Realm: <string> } -- should match destination-realm
{ Result-Code: <integer> }
{ CC-Request-Type: INITIAL_REQUEST(1) }
{ CC-Request-Number: 0 }
[ Juniper-Dyn-Subscription-Id:
{Juniper-Dyn-Subscription-Id-Type: <value-to-be-used-for-ocs-interactions> }
{Juniper-Dyn-Subscription-Id-Data: <value-to-be-used-for-ocs-interactions> }
]
*[ Supported-Features ] -- ignored
[ Origin-State-Id: <u32> ] -- Indicates restart PCRF side
*[ Downstream data units ]
如果 CCA-GX-I 中未定义规则安装 AVP,则安装默认规则。
所有事件触发器(包括尚未定义的触发器)都是可以接受的。但是,只有少数事件触发器在实施时真正生成事件。
PCRF 返回一条 CCA-GX-I 消息,其中包含映射到 表 5 中列出的结果类别的结果代码 AVP(AVP 代码 268)。
结果-代码-AVP 值 |
结果类别 |
|---|---|
SUCCESS(2001)、LIMITED_SUCCSS(2002)和有效消息 |
资助 |
AUTHENTICATION_REJECTED(4001)、UNKNOWN_SESSION_ID(5002)、AUTHORIZATION_REJECTED(5003) 和 USER_UNKNOWN(5030) |
拒绝 |
UNABLE_TO_DELIVER(3002)、REALM_NOT_SERVED(3003)、TOO_BUSY(3004)、LOOP_DETECTED(3005) 和 REDIRECT_INDICATION(3006) |
失败 |
所有其他 Diameter 永久故障结果代码 AVP 大于等于 5000,以及所有 Diameter 协议错误结果代码 AVP 大于等于 3000 且小于 4000 |
永久故障 |
其他结果代码 AVP,用于无效消息或无响应 |
失败 |
如 表 6 所示,CCA-GX-I 响应处理取决于三个因素:
本地决策超时是否已过期
本地决策的设置
结果类别
表 6 还包含 PCRF 本地决策超时过期作。
PCRF 本地 决策超时 |
PCRF 本地决策 |
结果 类别 |
行动 |
|---|---|---|---|
未过期 |
– |
资助 |
清除本地决策计时器,应用 CCA-GX-I 中的规则,通知在线充电系统 (OCS),然后确认用户激活。 |
未过期 |
– |
拒绝 |
清除本地决策计时器并失败订阅者激活。 |
未过期 |
– |
失败 |
重试 CCA-GX-I,直到本地决策超时。 |
未过期 |
资助 |
永久故障 |
清除本地决策计时器,应用默认规则,确认用户激活,然后继续重试 CCA-GX-I。 |
未过期 |
拒绝 |
永久故障 |
订阅者激活失败并启动订阅者注销流程。 |
到期时 |
资助 |
– |
应用默认规则,无限期重试 CCA-GX-I,并确认用户激活。 |
到期时 |
拒绝 |
– |
订阅者激活失败并启动订阅者注销流程。 |
已过期 |
资助 |
资助 |
如果 CCA-GX-I 包含规则,请删除默认规则并安装收到的规则,然后通知 OCS 并确认订阅者激活。 |
已过期 |
资助 |
拒绝 |
注销客户端。 |
已过期 |
资助 |
失败 |
无限期重试 CCA-GX-I。 |
已过期 |
资助 |
永久故障 |
暂停很长时间,然后重新开始重试 CCA-GX-I。 |
已过期 |
拒绝 |
拒绝 |
如果订阅者仍然注销,则忽略订阅者;否则,无需执行任何作。 |
订阅者登录将启动以下事件序列:
客户端应用(如 DHCP、PPP 或静态用户会话)请求 AAA 来对用户进行身份验证。
如果用户访问配置文件指定了 RADIUS 身份验证,则身份验证开始。身份验证成功后,登录将继续。当配置文件中的语句未指定 RADIUS 身份验证或未指定任何身份验证时
authentication-order,登录将失败。当身份验证失败时,登录也会失败。为订阅者激活默认服务。将激活身份验证服务器在身份验证授权中包含的任何服务。此外,可能已为客户端应用程序配置了默认服务。
如果用户访问配置文件指定了 Gx 调配,则路由器将通过向 PCRF 发送 CCR-GX-I 消息来启动 Gx 消息交换。路由器等待 PCRF 在不可配置的超时时间段内响应 CCA-GX-I 消息。
当 PCRF 在超时时间内响应并在 CCA-GX-I 消息中包含 Charging-Rule-Install AVP 时,当路由器停用所有默认服务并尝试激活指定服务时,用户登录将延迟。
如果激活了所有指定的服务,则登录完成。
如果无法激活任何服务,路由器将向 PCRF 发送一条 CCR-GX-U(其中 U 表示 UPDATE_REQUEST)消息,其中包含服务的状态(规则报告)。PCRF 使用CCA-GX-U响应此消息,该CCA-GX-U可以包含一组新的激活服务。
即使CCA-GX-I消息不包含任何服务,路由器也会忽略任何默认服务。在这种情况下,不会激活任何服务。
如果 PCRF 未在超时时间内返回 CCA-GX-I,则用户登录完成。
路由器首先搜索从身份验证服务器返回的服务,并激活它找到的任何服务。如果未找到此类服务,则路由器将激活任何本地配置的默认服务。当默认服务激活成功时,订阅者登录将完成,但当任何默认服务激活失败时,订阅者登录将失败。由于不需要存在默认服务,因此当未找到默认服务时,登录也会完成。
如果登录完成(无论是否使用默认服务),路由器会定期将 CCR-GX-I 消息重新发送到 PCRF。如果 PCRF 随后返回 CCA-GX-I,则路由器将停用默认服务(如果有),然后激活 CCA-GX-I 中包含的任何服务。如果消息不包含任何服务,则不会激活任何服务,甚至不会激活默认服务。
如果无法激活 CCA-GX-I 中包含的任何服务,路由器将向 PCRF 发送包含服务状态的 CCR-GX-U 消息(规则报告)。PCRF 使用CCA-GX-U响应此消息,该CCA-GX-U可以包含一组新的激活服务。
订阅者登录错误恢复
从 Junos 20.1R1 版开始,您可以将路由器配置为通过重新初始化订阅者会话以重新同步路由器和 PCRF 服务器状态,从某些 PCRF 服务器错误中恢复。某些PCRF服务器可能无法正确处理发送到路由器的CCA-GX-I消息丢失的情况。当路由器重试将CCR-GX-I发送到PCRF时,服务器与路由器不同步,因为它已经发送了回复,并且不知道路由器没有收到消息。这种状态不匹配可能会导致以下任一错误:
PCRF 服务器使用包含值为 5012(DIAMETER UNABLE TO COMPLY)的 Diameter 结果代码 AVP(代码 268)的 CCA-GX-I 响应重试。这被认为是永久性故障(表 5)。
PCRF 服务器发送 RAR。服务器希望会话处于活动状态,因为它已将CCA-GX-I发送到路由器,并且不知道未收到消息。服务器可能会发送以下任何 RAR 消息:
RAR-GX-D 断开会话连接,因为它认为会话错误
RAR-GX-A 读取有关错误会话的信息
RAR-GX-U 更新会话,因为它认为会话运行正常。
您可以使用 PCRF local-decision 配置重新初始化用户会话,以响应其中一个或两个错误。
包括
reinit-on-failure永久性故障错误的选项。reinit-on-rar包括 RAR 错误的选项。
重新初始化作具有以下附加配置要求:
您必须配置本地决策
grant选项。您必须将路由器配置为使用扩展会话 ID,以便它可以维护原始会话和与同一登录事件相关的新会话的状态。为此,请配置 PCRF
use-session-stamp选项。
在这两种情况下,重新初始化作都包含以下步骤:
路由器向 PCRF 发送会话终止请求 CCR-GX-T 以终止会话。这样做是为了使路由器和 PCRF 服务器在此会话中具有相同的状态。
路由器等待重新初始化超时一段时间以接收 CCA-GX-T。您可以使用该
reinit-timeout选项指定与默认值不同的时间段。如果路由器在超时时间内收到 CCA-GX-T,或者 CCA-GX-T 在超时到期前未到达,则路由器会使用新的扩展会话 ID 向 PCRF 发送 CCR-GX-I。扩展会话 ID 在 Diameter 会话 ID AVP(AVP 代码 263)中传达。
路由器通过附加会话戳件形成扩展会话 ID,该路由器在创建 CCR-GX-I 时包含 UTC 时间。例如,考虑以下 Diameter 会话 ID AVP。会话 ID 为 23
use-session-stamp,未配置:test-host1;0000000000;0000000023;
配置后
use-session-stamp,会话时间戳将附加到 AVP 值:test-host1;0000000000;0000000023;1557788595;
表 7 提供了有关路由器如何根据当前本地 PCRF 状态对这些错误做出反应的详细信息。
本地状态 |
发生 PCRF 错误时的作 |
|
该路由器执行以下作:
|
|
默认配置完成后,路由器将执行以下作:
|
|
未配置默认服务时,路由器将执行以下作:
配置默认服务时,路由器将执行以下作:
默认配置完成后,路由器将执行以下作:
|
订阅者更新
每当路由器上发生触发事件时,都会向 PCRF 发送更新请求。以下示例显示了 CCR-GX-U(其中 U 表示 UPDATE_REQUEST)和 CCA-GX-U 数据包交换:
CCR-GX-U 数据包示例
CCR-GX-U ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Auth-Application-Id: 16777238 }
{ Origin-Host: <configurable-string> }
{ Origin-Realm: <configurable-string> }
{ Destination-Realm: <configurable-string> }
{ CC-Request-Type: UPDATE_REQUEST(2) }
{ CC-Request-Number: <u32> }
[ Destination-Host: <configurable-string> ] -- if configured
[ Origin-State-Id: <u32> ] -- if configured to send
*[ Upstream data units ]
当重新发送 CCR-GX-U 时,T 位将重新计算。
CCA-GX-U 数据包示例
CCA-GX-U ::= <Diameter Header: 272, PXY, 16777238>
{ <Session-Id> }
{ Auth-Application-Id: 16777238 }
{ Origin-Host: <string> } -- should match destination-host if configured
{ Origin-Realm: <string> } -- should match destination-realm
{ Result-Code: <integer> }
{ CC-Request-Type: UPDATE_REQUEST(2) }
{ CC-Request-Number: <u32> }
[ Origin-State-Id: <u32> ] -- Indicates PCRF restart
*[ Downstream data units ]
PCRF 返回一条 CCA-GX-U 消息,其中包含映射到 表 8 中列出的结果类别的结果代码 AVP(AVP 代码 268)。
结果-代码-AVP 值 |
结果类别 |
|---|---|
SUCCESS(2001)、LIMITED_SUCCSS(2002)和有效消息 |
成功 |
UNABLE_TO_DELIVER(3002)、REALM_NOT_SERVED(3003)、TOO_BUSY(3004)、LOOP_DETECTED(3005) 和 REDIRECT_INDICATION(3006) |
失败 |
所有其他 Diameter 永久故障结果代码 AVP 大于等于 5000,以及所有 Diameter 协议错误结果代码 AVP 大于等于 3000 且小于 4000 |
成功 |
其他结果代码 AVP,用于无效消息或无响应 |
失败 |
订阅者注销
当客户端应用程序向AAA发送用户注销通知时,Gx 会发送一条 CCR-GX-T(其中 T 代表 TERMINATION_REQUEST)消息,以通知 PCRF 调配的用户会话即将终止。
每当路由器上发生触发事件时,都会向 PCRF 发送终止请求。以下示例显示了 CCR-GX-T 和 CCA-GX-T 数据包交换:
CCR-GX-T 数据包示例
CCR-GX-T ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Auth-Application-Id: 16777238 }
{ Origin-Host: <configurable-string> }
{ Origin-Realm: <configurable-string> }
{ Destination-Realm: <configurable-string> }
{ CC-Request-Type: TERMINATION_REQUEST(3) }
{ CC-Request-Number: <u32> }
[ Destination-Host: <configurable-string> ] -- if configured
{ Termination-Cause: DIAMETER_LOGOUT(1) }
[ Origin-State-Id: <u32> ] -- if configured to send
*[ Upstream data units ]
当重新发送 CCR-GX-T 时,T 位将重新计算。
CCA-GX-T 数据包示例
CCA-GX-T ::= <Diameter Header: 272, PXY, 16777238>
{ <Session-Id> }
{ Auth-Application-Id: 16777238 }
{ Origin-Host: <string> } -- should match destination-host if configured
{ Origin-Realm: <string> } -- should match destination-realm
{ Result-Code: <integer> }
{ CC-Request-Type: TERMINATION_REQUEST(3) }
{ CC-Request-Number: <u32> }
[ Origin-State-Id: <u32> ] -- Indicates PCRF restart
*[ Downstream data units ]
PCRF 返回一条 CCA-GX-T 消息,其中包含映射到 表 9 中列出的结果类别的结果代码 AVP(AVP 代码 268)。
结果-代码-AVP 值 |
结果类别 |
|---|---|
SUCCESS(2001)、LIMITED_SUCCSS(2002)和有效消息 |
成功 |
UNABLE_TO_DELIVER(3002)、REALM_NOT_SERVED(3003)、TOO_BUSY(3004)、LOOP_DETECTED(3005) 和 REDIRECT_INDICATION(3006) |
失败 |
所有其他 Diameter 永久故障结果代码 AVP 大于等于 5000,以及所有 Diameter 协议错误结果代码 AVP 大于等于 3000 且小于 4000 |
成功 |
其他结果代码 AVP,用于无效消息或无响应 |
失败 |
如果“结果代码”值为“成功”,则 Gx 通知 AAA,AAA 通知应用程序注销完成。如果 Gx 未收到 CCA-GX-T 消息,或者结果代码 AVP 具有任何其他值或丢失,则将重试终止请求,直到返回 CCA-GX-T 消息并显示成功。路由器通过发送另一个 CCR 请求以由 CCA 响应确认,来通知 PCRF 有关订阅者注销的信息。PCRF 还可以使用 RAR 请求来强制订阅者注销或更改应用的服务。
如果 Result-Code 值为 Failure,则重试请求。
用户断开
要执行用户断开连接,PCRF 发送 RAR-GX-D(其中 D 表示 DISCONNECT),BPCEF 使用 RAA-GX-D 消息进行响应。
以下示例显示了 RAR-GX-D 和 RAA-GX-D 数据包交换:
RAR-GX-D 数据包示例
RAR-GX-D ::= <Diameter Header: 258, PXY, 16777238>
{ <Session-Id> }
{ Auth-Application-Id: 16777238 }
{ Origin-Host: <string> } -- should match destination-host if configured
{ Origin-Realm: <string> } -- should match destination-realm
{ Destination-Realm: <string> } -- should match origin-realm
{ Destination-Host: <string> } -- should match origin-host
{ Re-Auth-Request-Type: AUTHORIZE_ONLY(0) }
[ Origin-State-Id: <u32> ] -- Indicates PCRF restart
{ Session-Release-Cause: <enum> }
*[ Downstream data units ] -- ignored
RAA-GX-D 数据包示例
RAA-GX-D ::= <Diameter Header: 272, REQ, PXY, 16777238>
{ <Session-Id> }
{ Auth-Application-Id: 16777238 }
{ Origin-Host: <configurable-string> }
{ Origin-Realm: <configurable-string> }
{ Result-Code: <integer> }
[ Origin-State-Id: <u32> ]
*[ Upstream data units ]
PCRF 返回一条 RAA-GX-T 消息,其中包含映射到 表 10 中列出的结果类别的结果代码 AVP(AVP 代码 268)。
结果-代码-AVP 值 |
结果类别 |
|---|---|
DIAMETER_SUCCESS(2001年) |
正在断开用户连接或未找到用户 |
DIAMETER_UNABLE_TO_COMPLY(5012) |
订阅者不可移除 |
DIAMETER_TOO_BUSY(3004) |
未完成的断开请求过多 |
BPCEF 包含至少 512 条 RAR-GX-D 或 RAA-GX-D 消息的缓冲空间。
连接故障恢复
Gx 不依赖设备之间的连接状态来检测路由器或 PCRF 中断,因为有些事件不会影响连接状态,而当设备之间存在 Diameter 中继或代理时,不会检测到其他事件。
为了缓解 PCRF 的连接故障,路由器使用以下故障恢复过程:
如果 PCRF 不可用,并且您安装并配置了默认服务,则用户登录将相应地继续。
未确认的配置请求无限期重放,或者直到订阅者注销为止。
注销请求将等待最终 OCS 查询完成,然后重放任何未确认的注销请求 24 小时。
该路由器使用标准 Diameter 传输冗余与冗余 PCRF 进行通信。
Gx 容错的一个重要方面是,订阅者登录和终止请求将重试(重放)24 小时,直到从 PCRF 收到令人满意的响应。您可以发出命令 clear network-access pcrf subscribers 来清除所有 PCRF 订阅者。
了解路由器与 OCS 之间的 Gy 交互
通过在线充电系统 (OCS) 与充当策略和充电执行功能 (PCEF) 的路由器之间的第三代合作伙伴项目 (3GPP) Gy 协议交换信息或询问。宽带 PCEF (BPCEF) 与 OCS 的交互使用在线会话计费,具有集中单位确定和集中评级。PCEF 可选择性地报告使用情况,并使用 Gy 协议从 OCS 接收其他授权。
从 Junos OS 17.3R1 版开始,使用 Gy 和 Gx 协议添加了对其他 OCS 和 PCRF 功能的支持。新声明:
accept-sdr在层次结构级别[edit access pcrf partition partition-name]为 PCRF 分区添加。alternative-partition-name在层次结构级别[edit access ocs partition partition-name]为 OCS 分区添加。
从 Junos OS 18.1R1 版开始,当 OCS 的主要路径和备用路径不可用时,宽带 PCEF 可为 OCS 数据提供文件备份。CCR-GY-T 帧存储在远程位置的文件中。层次结构 [edit access ocs partition partition-name]支持备份。
在策略控制和规则计费功能 (PCRF) 与 PCEF 之间完成订阅者调配后,路由器将开始在 OCS 和 PCEF 之间发送以下查询:
对 OCS 的第一次审讯
在第一次询问期间,路由器向 OCS 充电服务器发送包含一组固定所需信息的 Diameter CCR 请求。然后,OCS 充电服务器会回复有效时间、评级组和使用配额。
在此实施阶段,路由器允许订阅者访问,而无需等待 OCS 响应,并且 OCS 始终授予必要的配额。
要配置充电服务列表以通过 Gy 协议与 OCS 通信信息,请在层次结构级别配置charging-service-list ocs[edit access profile profile-name]该语句。以下示例显示了 CCR-GY-I 和 CCA-GY-I 数据包交换:
当重新发送 CCR-GY-I 时,将重新计算 T(潜在重传消息)位。此标志是在链路故障切换过程之后设置的,以帮助删除重复请求。
CCR-GY-I 数据包示例
CCR-GY-I ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Origin-Host: <configurable-string> }
{ Origin-Realm: <configurable-string> }
{ Destination-Realm: <configurable-string> }
{ Auth-Application-Id: 4 }
{ Service-Context-Id: 98924@customer.com }
{ CC-Request-Type: INITIAL_REQUEST(1) }
{ CC-Request-Number: 0 }
[ Destination-Host: <configurable-string> ] -- if configured
[ User-Name: <string> ]
[ Origin-State-Id: <u32> ] -- if configured to send
[ Event-Timestamp: <timestamp> ] -- login timestamp, if included by config
{ Subscription-Id:
{ Subscription-Id-Type: <received-from-pcrf> }
{ Subscription-Id-Data: <received-from-pcrf> }
}
{ Multiple-Services-Indicator: MULTIPLE_SERVICES_SUPPORTED(1) }
{ Multiple-Services-CC:
{ Service-Identifier: 7 }
{ Rating-group: 292 }
}
{ Multiple-Services-CC:
{ Service-Identifier: 7 }
{ Rating-group: 293 }
}
{ Multiple-Services-CC:
{ Service-Identifier: 7 }
{ Rating-group: 292 }
}
{ Multiple-Services-CC:
{ Service-Identifier: 1 }
{ Rating-group: 17 }
}
CCA-GY-I 数据包示例
CCA-GY-I ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Result-Code: DIAMETER_SUCCESS(2001) }
{ Origin-Host: <string> } -- should match dest-host if configured
{ Origin-Realm: <string> } -- should match dest-realm
{ Auth-Application-Id: 4 }
{ CC-Request-Type: INITIAL_REQUEST(1) }
{ CC-Request-Number: 0 }
{ CC-Session-Failover: FAILOVER_NOT_SUPPORTED(0) } -– ignored
}
{ Multiple-Services-CC:
{ Granted-Service-Unit:
{ CC-Time: 123456 }
{ CC-Total-Octets: 123455999000 }
}
{ Service-Identifier: 7 }
{ Rating-group: 292 }
{ Validity-Time: 7200 }
{ Result-Code: DIAMETER_SUCCESS(2001) }
}
{ Multiple-Services-CC:
{ Service-Identifier: 7 }
{ Rating-group: 293 }
{ Result-Code: DIAMETER_CREDIT_CONTROL_NOT_APPLICABLE(4011) }
}
{ Multiple-Services-CC:
{ Service-Identifier: 7 }
{ Rating-group: 292 }
{ Result-Code: DIAMETER_CREDIT_CONTROL_NOT_APPLICABLE(4011) }
}
{ Multiple-Services-CC:
{ Granted-Service-Unit:
{ CC-Time: 123456 }
{ CC-Total-Octets: 123455999000 }
}
{ Service-Identifier: 1 }
{ Rating-group: 17 }
{ Result-Code: DIAMETER_SUCCESS(2001) }
}
{ CC-Failure-Handling: TERMINATE(0) }
OCS 的中级询问
在路由器向 OCS 充电服务器发送一组固定的必需信息后,OCS 充电服务器会回复有效时间、评级组和使用配额。有效时间和配额到期会触发中间询问事件。
每当路由器上发生触发事件时,都会向 OCS 发送更新请求。以下示例显示了 CCR-GY-U(其中 U 代表 UPDATE_REQUEST)和 CCA-GY-U 数据包交换:
CCR-GY-U 数据包示例
CCR-GY-U ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Origin-Host: <configurable-string> }
{ Origin-Realm: <configurable-string> }
{ Destination-Realm: <configurable-string> }
{ Auth-Application-Id: 4 }
{ Service-Context-Id: 98924@customer.com }
{ CC-Request-Type: UPDATE_REQUEST(2) }
{ CC-Request-Number: <integer> }
[ Destination-Host: <configurable-string> ] -- if configured
[ User-Name: <string> ]
[ Origin-State-Id: <u32> ] -- if configured to send
[ Event-Timestamp: <timestamp> ] -- change timestamp, if included by config
{ Multiple-Services-Indicator: MULTIPLE_SERVICES_SUPPORTED(1) }
{ Multiple-Services-CC:
{ Used-Service-Unit:
{ Reporting-Reason: VALIDITY_TIME(4) }
{ CC-Time: 7200 }
{ CC-Total-Octets: 12345 }
{ CC-Input-Octets: 10000 }
{ CC-Output-Octets: 2345 }
}
{ Service-Identifier: 7 }
{ Rating-group: 292 }
}
{ Multiple-Services-CC:
{ Used-Service-Unit:
{ Reporting-Reason: FINAL(2) }
{ CC-Time: 334556 }
{ CC-Total-Octets: 12345 }
{ CC-Input-Octets: 10000 }
{ CC-Output-Octets: 2345 }
}
{ Service-Identifier: 1 }
{ Rating-group: 17 }
}
*[ More Multiple-Services-CC]
CCA-GY-U 数据包示例
CCA-GY-U ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Result-Code: DIAMETER_SUCCESS(2001) }
{ Origin-Host: <string> } -- should match dest-host if configured
{ Origin-Realm: <string> } -- should match dest-realm
{ Auth-Application-Id: 4 }
{ CC-Request-Type: UPDATE_REQUEST(1) }
{ CC-Request-Number: <integer> }
{ Multiple-Services-CC:
{ Granted-Service-Unit:
{ CC-Time: 123456 }
{ CC-Total-Octets: 123455999000 }
}
{ Service-Identifier: 7 }
{ Rating-group: 292 }
{ Validity-Time: 7200 }
{ Result-Code: DIAMETER_SUCCESS(2001) }
}
*[ More Multiple-Services-CC]
对 OCS 的最终审讯
当客户端应用程序向 AAA 发送用户注销通知时,Gy 会发送一条 CCR-GY-T(其中 T 表示 TERMINATION_REQUEST)消息,以通知 OCS 调配的用户即将终止。
每当路由器上发生触发事件时,都会向 OCS 发送终止请求。以下示例显示了 CCR-GY-T 和 CCA-GY-T 数据包交换:
CCR-GY-T 数据包示例
CCR-GY-T ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Origin-Host: <configurable-string> }
{ Origin-Realm: <configurable-string> }
{ Destination-Realm: <configurable-string> }
{ Auth-Application-Id: 4 }
{ Service-Context-Id: 98924@customer.com }
{ CC-Request-Type: TERMINATE_REQUEST(2) }
{ CC-Request-Number: <integer> }
[ Destination-Host: <configurable-string> ] -- if configured
[ User-Name: <string> ]
[ Origin-State-Id: <u32> ] -- if configured to send
[ Event-Timestamp: <timestamp> ] -- logout timestamp, if included by config
{ Termination-Cause: DIAMETER_LOGOUT(1) }
{ Multiple-Services-CC:
{ Used-Service-Unit:
{ Reporting-Reason: FINAL(2) }
{ CC-Total-Octets: 12345 }
{ CC-Input-Octets: 10000 }
{ CC-Output-Octets: 2345 }
}
{ Service-Identifier: 7 }
{ Rating-group: 292 }
}
*[ More Multiple-Services-CC]
CCA-GY-T 数据包示例
CCA-GY-T ::= <Diameter Header: 272, REQ, PXY 16777238>
{ <Session-Id> }
{ Result-Code: DIAMETER_SUCCESS(2001) }
{ Origin-Host: <string> } -- should match dest-host if configured
{ Origin-Realm: <string> } -- should match dest-realm
{ Auth-Application-Id: 4 }
{ CC-Request-Type: TERMINATE_REQUEST(1) }
{ CC-Request-Number: <integer> }
连接故障恢复
Gy 不依赖设备之间的连接状态来检测路由器或 OCS 中断,因为某些事件不会影响连接状态,而当设备之间存在 Diameter 中继或代理时,不会检测到其他事件。
为了缓解 OCS 连接故障,路由器使用以下故障恢复过程:
如果 OCS 不可用,则可以通过在层次结构级别设置
force-continue[edit access ocs partition partition-name]语句来配置为允许订阅者流量。注意:该
force-continue语句是必需的配置语句。未确认的第一次和中间询问无限期地重放或直到订阅者注销为止。
未经承认的最终审讯重播长达 24 小时。
该路由器使用标准 Diameter 传输冗余与冗余 OCS 通信。
可以配置传输冗余事件以触发应用程序流量故障。
Gy 容错的一个重要方面是,订阅者登录和终止请求将重试(重放)24 小时,直到从 OCS 收到满意的响应。您可以发出命令 clear network-access ocs statistics 来清除所有 OCS 统计信息。
中止会话请求
当接收 MX 系列路由器收集最终数据并发布最终询问时,OCS 可能会发出 ASR(Abort-Session-Request)。MX 系列路由器收到响应后,将停止更新相关会话的 OCS。
Gy 文件备份概述
Gy 协议(也称为 OCS)基于增量使用情况报告,同时保留中间数据。因此,OCS 服务器包含多种故障保护机制,例如直径传输冗余、OCS 的替代路径和文件备份。从 Junos OS 18.1R1 版开始,当主路径和备用路径都不可用时,宽带 PCEF 将提供文件备份。CCR-GY-T 帧存储在远程位置的文件中。
OCS 备份在 OCS 最终响应超时到期时生效。数据排队等待备份进程,订阅者注销继续进行 pcrf 会话终止。在所有情况下,备份作都由以下配置参数控制:
backup-limit- 备份条目总数的限制。达到限制后,新订阅者的登录将失败,或者最旧的备份条目将被丢弃,具体取决于备份溢出设置。
backup-timeout— 备份作超时。
backup-overflow—控制备份条目数超过备份限制时的作。
OCS SFTP 备份
stfp-backup 是第一个实现的备份机制。这些作由以下参数控制:
accumulation-timeout – 在第一次 CCR-GY-T 提交的文件累积时间之后写入文件。
accumulation-count — 在满足 file-account-count 的请求数后写入文件。
accumulation-size – 在其大小达到累积大小限制后写入文件。
retry-interval — 在此间隔后重试每个失败的写入作,直到累积 backup-timeout。
response-timeout – 单个 sftp 命令响应的超时。
OCS SFTP-Backup 服务器由其地址、登录名、密码、目录和文件前缀进行配置。默认情况下存在目标目录,如果不存在,则创建该目录。如果已经存在同名的目标文件,它将被覆盖。
Gy 文件备份的好处
提供了另一种处理内部网络不稳定性的方法。
了解 PCRF、PCEF 和 OCS 之间的相互作用
策略和收费规则功能 (PCRF)、策略和收费执行功能 (PCEF) 和在线收费系统 (OCS) 相互作用以提供用户服务并为其收费。这些交互包括订阅者登录、现有会话的服务更新、连接和监控以及订阅者终止和注销。
图 3 显示了第三代合作伙伴项目 (3GPP) 策略和充电控制 (PCC) 架构的整体组件。PCRF 使用 3GPP Gx 协议将规则向下推送到 MX 系列路由器上的 PCEF。PCEF 提供服务数据流检测,并应用从 PCRF 接收到的规则。或者,PCEF 使用 3GPP Gy 协议与 OCS 交互,以检索配额和信用控制的策略和收费授权。宽带 PCEF (BPCEF) 与 OCS 的交互使用在线会话计费,具有集中单位确定和集中评级。
PCRF 还可以推送对应用于现有会话的规则的更改。但是,不支持修改分级组。您还需要将语句[edit access ocs partition partition-name] hierarchy level设置为 force-continue 。
登录互动
此事件登录序列由检测到 PCEF 上的服务数据流触发。这通常是用户(CPE)发送的 DHCP DISCOVER 或 PPPoE PADI 数据包:
PCEF 向 PCRF 发送 CCR-GX-I,其中包含识别用户的信息。
PCRF 向 PCEF 回复 CCA-GX-I,并说明为订阅者应用哪些规则。
PCEF 为订阅者安装请求的服务/规则。
如果正在使用 OCS,则 PCEF 使用 CCR-GY-I 消息向 OCS 发送第一次询问,OCS 使用 CCA-GY-I 消息向 PCRF 发送适用的报告。
如果配置了,PCEF 在处理请求的服务/规则后通过 CCR-GX-U 消息向 PCRF 发送通知。
当以下两个条件都成立时,该规则将报告给 PCRF 为 非活动 状态:
service-dynamic-profile 实例化失败。
为收费规则设置了 Resource-Allocation-Notification (ENABLE_NOTIFICATION)。
当规则报告为非活动状态时,不会影响订阅者登录或其他规则。
当满足以下所有条件时,该规则将报告为 活动 规则:
service-dynamic-profile 实例化成功。
为收费规则设置了 Resource-Allocation-Notification (ENABLE_NOTIFICATION)。
SUCCESSFUL_RESOURCE_ALLOCATION事件触发器在请求中设置。
当没有要报告的规则时,不会发送报告。
PCRF 回复 CCA-GX-U 消息。
PCEF 为订阅者激活服务。
更新交互
此事件更新序列由 PCEF 从 PCRF 接收的 RAR-GX-U 消息触发。
如果更新请求包含任何安装或修改具有评级组的规则,则 PCEF 将拒绝该请求;否则,它通过向 PCRF 发送 RAA-GX-U 消息来确认请求。
PCEF 将启动服务移除和安装过程。
PCEF 将等待服务移除和安装过程完成,并在适用的情况下启动最终数据收集过程以向 OCS 报告。收集最终统计信息后,PCEF 会发送 CCR-GY-U 请求以通知 OCS。在以下每种情况下,这是现有服务删除过程的一部分:
当要删除的服务具有评级组时。
何时添加了具有评级组的新规则。
当带有评级组的规则被删除和添加时。
PCEF 使用 CCR-GX-U 消息向 PCRF 发送适用的报告。
当以下两个条件都成立时,该规则将报告给 PCRF 为 非活动 状态:
service-dynamic-profile 实例化失败。
为收费规则设置了 Resource-Allocation-Notification (ENABLE_NOTIFICATION)。
当规则报告为非活动状态时,不会影响更新或其他规则。
当满足以下所有条件时,该规则将报告为 活动 规则:
service-dynamic-profile 实例化成功。
为收费规则设置了 Resource-Allocation-Notification (ENABLE_NOTIFICATION)。
SUCCESSFUL_RESOURCE_ALLOCATION事件触发器在请求中设置。
当没有要报告的规则时,不会发送报告。
配额到期和有效时间交互
对于配额到期和有效时间交互,路由器使用 CCR-GY-U 消息向 OCS 发送中间询问,并处理 OCS 响应。
连接和监控交互
与 PCRF、OCS 或 Diameter 中继/代理服务器建立连接时,Diameter 守护程序将执行标准功能交换请求 (CER)/功能交换应答 (CEA) 事务。您可以使用现有的 Junos OS Diameter 基础架构来配置具有必要冗余功能的适当拓扑。此外,您可以将相同的 Diameter 连接用于 PCRF 和 OCS 通信以及其他应用。
以下示例显示了两种不同的通信连接方案:
使用专用连接与 PCRF 通信的 CER 示例
CER ::= <Diameter Header: 257, REQ>
{ Origin-Realm: CSim.PCRF.net }
{ Origin-Host: MX-GWR3 }
{ Host-IP-Address: 10.8.52.91 }
{ Vendor-Id: 2636 }
{ Product-Name: JUNOS }
[ Origin-State-Id: 7777 ] -- if configured
{ Supported-Vendor-Id: 10415 }
{ Supported-Vendor-Id: 2636 } -- have Juniper VSAs
{ Auth-Application-Id: 16777238 }
{ Vendor-Specific-Application-Id {
{ Vendor-Id: 10415 }
{ Auth-Application-Id: 16777238 }
{ Acct-Application-Id: 16777238 }
}
如果在 或 [edit access ocs partition partition-name] 层次结构级别为[edit access pcrf partition partition-name]路由器设置send-origin-state-id语句,则 Origin-State-Id 将包含在 Diameter 级别消息中,例如:CER、设备看门狗请求 (DWR)/设备看门狗应答 (DWA) 和断开对等请求 (DPR)/断开对等应答 (DPA)。
使用专用连接的 CER 示例,用于与 PCRF 和 OCS 进行通信
CER ::= <Diameter Header: 257, REQ>
{ Origin-Realm: CSim.PCRF.net }
{ Origin-Host: MX-GWR3 }
{ Host-IP-Address: 10.8.52.91 }
{ Vendor-Id: 2636 }
{ Product-Name: JUNOS }
[ Origin-State-Id: 7777 ] -- if configured
{ Supported-Vendor-Id: 10415 }
{ Supported-Vendor-Id: 2636 } -- have Juniper VSAs
{ Auth-Application-Id: 4 } -- this is the difference with previous
{ Auth-Application-Id: 16777238 }
{ Vendor-Specific-Application-Id {
{ Vendor-Id: 10415 }
{ Auth-Application-Id: 16777238 }
{ Acct-Application-Id: 16777238 }
}
Auth-Application-Id: 4 字段和值是 OCS 的身份验证应用程序 ID。这就是第一个和第二个示例之间的区别。
您可以使用标准 DWR/DWA 和 DPR/DPA 消息监视和管理连接。
注销交互
此注销事件序列由以下任一因素触发:
用户注销请求,例如 DHCP RELEASE 或 PPPoE PADT 数据包。
PCEF 从 PCRF 接收带有终止用户会话的请求的 RAR。
触发注销时,将执行以下顺序:
系统基础架构会通知 OCS 订阅者注销已开始。
如果适用,OCS 将启动最终数据收集过程。
如果要删除的服务具有评级组,则需要报告此服务的最终数据。OCS 根据需要开始最终数据收集。
PCRF 和 PCEF 都等待最终询问过程完成。
PCEF 向 PCRF 发送终止请求(CCR-GX-T 消息),然后等待来自 PCRF 的回复(CCA-GX-T 消息)。
PCEF 完成订阅者注销流程。
了解 PCRF 的上游和下游消息
MX 系列路由器实施了许多措施来防止下游和上游事务的数据过载。在过载条件下,下游事务受到来自网络的限制输入的保护。上游事务通过限制未完成请求的数量和使用第一个未确认消息的缓慢重试来获得保护,以实现可靠的恢复。
策略和计费实施功能 (PCEF) 环境的内置功能可防止因订阅者登录速率过高而导致的过载。如果由于重新授权请求 (RAR-GX) 消息而导致过多的规则更改和断开连接作,路由器将发送结果代码为 DIAMETER_TOO_BUSY (3004) 的重新授权应答 (RAA-GX) 响应。
在路由器的 AAA 组件中,会话表示会话数据库 (SDB) 中的订阅者(客户端)会话条目。
这仅表示订阅者会话;它不是类似于电话号码的独立于连接的永久标识符。如果订阅者断开连接并重新连接,并且它收到第二个连接的不同会话 ID。
会话 ID 在会话 ID 中传达(AVP 代码 263)。会话与会话 ID 值之间存在一对一对应关系。会话 ID 是全局且永远唯一的,因为它绑定到唯一的路由器身份并用于识别用户会话,而无需参考其他信息。同一订阅者可以映射到多个会话,例如来自断开连接和重新连接事件的会话。但是,会话始终与单个订阅者相关联。会话 ID AVP 具有以下默认格式:
Session-Id AVP ::=<DiameterIdentity>;
<upper 32 bits of the AAA COMPONENT session-id>;
<lower 32 bits of the AAA COMPONENT session-id>;
该 DiameterIdentity 字段是您为 Diameter 源主机配置的值。内部会话 ID 是按升序分配的 64 位整数。会话 ID 字符串的两个数字部分都是使用格式生成 %010u 的,这保证了会话 ID AVP 值在字典顺序上与内部 64 位会话的顺序相同。
您还可以将路由器配置为使用扩展会话 ID,该 ID 会在 ID 后附加会话戳记。会话戳由路由器创建 CCR-GX-I 时的 UTC 时间组成。在这种情况下,会话 ID AVP 的格式如下:
Session-Id AVP ::=<DiameterIdentity>;
<upper 32 bits of the AAA COMPONENT session-id>;
<lower 32 bits of the AAA COMPONENT session-id>;
<32 bits of UTC time>;
AVP 的前 64 位保持不变,使 PCRF 能够跟踪重新初始化。
您始终将路由器配置为在响应 PCRF 服务器错误而重新初始化会话时使用扩展会话 ID。有关详细信息,请参阅 了解路由器与 PCRF 之间的 Gx 交互 。
策略和计费规则功能 (PCRF) 使用 3GPP Gx 协议和在线策略接口将规则和消息向下推送到 PCEF。PCRF 和 Gx 协议包括以下消息:
常见上游消息
用于启动、更新和终止的信用控制响应(CCR-GX-I、CCR-GX-U 和 CCR-GX-T)和 RAA-GX 的上游消息可能包括以下规则、参数和数据:
事件时间戳 AVP
下面显示了 PCRF 和 Gx 之间的 CCR-GX-I、CCR-GX-U 和 CCR-GX-T 以及 RAA-GX 消息的 AVP:
{ Event-Timestamp: <timestamp> }
如果配置事件时间戳 AVP,则它将包含在下游消息中。 表 11 中的消息定义因事务而异。
消息 |
定义 |
|---|---|
CCR-GX-I |
订阅者登录时间戳 |
充电规则安装通知
以下通知显示 PCRF 和 Gx 之间的 CCR-GX-U 消息安装失败的安装示例和充电规则安装成功示例:
如果在客户端注销时未确认的报告仍处于待处理状态,则这些收费规则将包含在 CCR-GX-T 消息中。
报告规则安装失败的通知
{ Charging-Rule-Report
{ Charging-Rule-Name: <string> }
{ Charging-Rule-Name: <string> }
{ PCC-Rule-Status: INACTIVE(1) }
{ Rule-Failure-Code: UNKNOWN_RULE_NAME(1) }
}
通知报告规则安装成功
{ Charging-Rule-Report
{ Charging-Rule-Name: <string> }
{ Charging-Rule-Name: <string> }
{ PCC-Rule-Status: ACTIVE(0) }
}
事件触发器命令
下面显示了用于 PCRF 和 Gx 之间的 CCR-GX 和 RAA-GX 消息的预定义事件触发命令:
{ Event-Trigger: SUCCESSFUL_RESOURCE_ALLOCATION(22) }
常见下行消息
信用控制启动和更新答案(CCA-GX-I 和 CCA-GX-U)和 RAR-GX 的下游消息可能包括以下带有参数和数据的预定义规则:
CCA-GX-T(终止)消息不作为下游消息包含在内。
充电规则安装命令
以下示例显示了用于 PCRF 和 Gx 之间的 CCA-GX 和 RAR-GX 消息的预定义规则安装命令:
{ Charging-Rule-Install
{ Charging-Rule-Name: “fixed-cos” }
{ Charging-Rule-Definition:
{ Charging-Rule-Name: “firewall” }
{ Service-Identifier: 10 }
{ Rating-Group: 292 }
{ Juniper-Param-V4-Input-Filter: “my_input_filter” }
{ Juniper-Param-V4-Output-Filter: “my_output_filter” }
}
[ Resource-Allocation-Notification: ENABLE_NOTIFICATION(0) ]
}
某些 PCRF 可能无法生成资源分配通知 AVP。因此, report-resource-allocation 默认情况下,层次结构级别的 [edit access pcrf partition partition-name] 语句提供生成的报告。
充电规则删除命令
以下示例显示了用于 PCRF 和 Gx 之间的 CCA-GX 和 RAR-GX 消息的预定义规则删除命令:
{ Charging-Rule-Remove
{ Charging-Rule-Name: “predefined-ftp” }
{ Charging-Rule-Name: “firewall” }
}
在任何规则安装作之前,路由器都会处理所有规则删除作,使您能够在单个事务中同时请求删除现有规则和安装具有相同基名称的规则。
事件触发器命令
下面显示了 PCRF 和 Gx 之间的 CCA-GX 和 RAR-GX 消息的预定义事件触发命令:
{ Event-Trigger: SUCCESSFUL_RESOURCE_ALLOCATION(22) }
如果下游数据中存在 SUCCESSFUL_RESOURCE_ALLOCATION (22) 触发值,则宽带 PCEF 会报告在 Charging-Rule-Install AVP 中成功安装标有 Resource-Allocation-Notification AVP 的规则。
某些 PCRF 可能无法生成此事件触发器。因此, report-successful-resource-allocation 默认情况下,层次结构级别的 [edit access pcrf partition partition-name] 语句提供生成的报告。
配置 OCS 分区
在线计费系统 (OCS) 在特定的逻辑系统中工作:路由实例上下文,称为分区。
目前,仅支持单个分区;您必须在默认逻辑系统:路由实例上下文中对其进行配置。
配置 OCS 分区之前,请执行以下任务:
在层次结构级别配置
[edit diameter]Diameter 实例。请参阅 配置 Diameter。
OCS 分区的配置包括命名分区,然后定义或关联多个参数来定义分区的特征。
要配置 OCS 分区,请执行以下作:
配置 PCRF 分区
策略控制和规则计费功能 (PCRF) 在称为分区的特定逻辑系统:路由实例上下文中工作。
目前,仅支持单个分区;您必须在默认逻辑系统:路由实例上下文中对其进行配置。
配置 PCRF 分区之前,请执行以下任务:
在层次结构级别配置
[edit diameter]Diameter 实例。请参阅 配置 Diameter。
PCRF 分区的配置包括命名分区,然后定义或关联多个参数以定义分区的特征。
要配置 PCRF 分区,请执行以下作:
配置 OCS 全局参数
您可以为在线计费系统 (OCS) 配置第三代合作伙伴项目 (3GPP) Diameter 信用控制服务计费系统的全局属性,该系统与策略和计费执行功能 (PCEF) 交互。
目前,唯一可配置的全局属性是由服务提供商或操作员分配的服务上下文标识符。此值对应于 Service-Context-Id AVP,它与 Service-Identifier-AVP 一起唯一且全局标识 Diameter 信用控制服务。
要配置 OCS 全局参数:
配置服务上下文标识符。
[edit access ocs global] user@host# set service-context-id service-context
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。