用于订阅者配置和计费的 JSRC
瞻博网络会话和资源控制 (SRC) 和 JSRC 概述
瞻博网络会话和资源控制 (SRC) 环境提供了一个用于管理订阅者及其服务的中央管理点。SRC 软件在瞻博网络 C Series 控制器上运行。SRC 软件使用 Diameter 协议在瞻博网络路由平台上的本地 SRC 对等方与 C Series 控制器上的远程 SRC 对等方之间进行通信。本地 SRC 对等方称为 JSRC,是 AAA 应用的一部分。远程 SRC 对等方是服务激活引擎 (SAE);SAE 充当 SRC 环境中的控制代理。JSRC 和 SAE 共同提供远程控制实施功能 (RCEF)。
JSRC 承担以下职责:
向 SAE 请求地址授权。
请求 SAE 激活服务。
激活和停用 SAE 指定的服务。JSRC 可以使用相同的服务(动态配置文件)名称激活多个策略。
(可选)报告服务会计的卷统计信息。
按照 SAE 的规定注销订阅者。
使用新服务激活和停用的状态更新 SAE。
将订阅者状态和服务信息与 SAE 同步。
订阅者注销时通知 SAE。
SRC 软件使 SAE 能够激活和停用订阅者服务(由 SRC 策略说明)并注销订阅者。SAE 只能控制那些已通过 SAE 调配的资源。因此,SAE 仅接收 JSRC 已向 SAE 请求配置的用户的相关信息。例如,当订阅者登录,但配置不需要会话激活路径包括 SAE 设置时,SAE 不会收到有关此订阅者的信息,并且无法控制订阅者会话。
同样,SAE 只能控制它已激活的订阅者服务。如果服务未从 SAE(例如,RADIUS 激活的服务)激活,则 SAE 不会接收有关该服务的信息,也无法控制该服务。
SAE 还可以指示 JSRC 收集每个服务会话的会计统计数据。
一个路由器上可以同时运行多个基于 Diameter 的应用程序(函数)。
使用 JSRC 的好处
支持使用 MX 系列路由器在瞻博网络会话和资源控制 (SRC) 环境中充当本地对等方,以便集中管理订阅者及其服务。
订阅者访问 JSRC 的硬件要求
瞻博网络 MX 系列 5G 通用路由平台支持 JSRC。JSRC 当前支持静态和动态接口上的订阅者会话。
了解 JSRC-SAE 交互
本主题介绍 JSRC(本地 SRC 对等方)和 SAE(远程 SRC 对等方)之间在交互以执行以下订户访问任务时交换的 Diameter 消息序列:
订阅者登录
服务激活
服务停用
重新同步
SAE 发起的订阅者注销
统计信息收集和报告
订阅者发起的注销
订阅者登录
JSRC 授权对于不同的订阅者类型,工作方式如下:
在访问配置文件中同时
authorization-order jsrc
配置和authentication-order
时,授权顺序仅适用于受配置文件影响的 DHCP 订阅者,身份验证顺序仅适用于非 DHCP 订阅者。如果仅在
authorization-order jsrc
访问配置文件中配置,则授权顺序将应用于受配置文件影响的所有订阅者。
当订阅者尝试登录时,协议守护程序会向 AAA 发送身份验证请求。反过来,JSRC 会向 SAE 发送 Diameter AA-Request 消息。SAE 返回一条 Diameter AA-Answer 消息,该消息可以包括 Framed-IP 地址属性和 Juniper-DHCP-Options AVP(AVP 代码 2010)。JSRC 忽略此 AA-Answer 消息中包含的任何其他可选 AVP。
当您在[edit access profile profile-name]
层次结构级别包含provisioning-order
语句时,将为 DHCP(和 SSC)订阅者启用 JSRC 配置。当应用请求 AAA 激活订阅者的会话时,JSRC 会发送一条 AA-Request 消息,其中包括瞻博网络请求类型 AVP(AVP 代码 2050),其值指示正在从 SAE 请求服务配置。
SAE 返回一条 AA-Answer 消息,如果请求被接受,则包含 ACK;如果请求被拒绝,则返回 NAK。如果请求被接受,AA-Answer 消息将包含 Juniper-Policy-Install AVP(AVP 代码 2020),用于指定要附加到订阅者接口的服务。包含此 AVP 时,SAE 会将结果代码 AVP 设置为 1001 (DIAMETER_MULTI_ROUND_AUTH)。此代码意味着 JSRC 必须向 SAE 发送另一条 AA-Request 消息,以报告 AAA 策略实例化(服务激活)的成功或失败。JSRC 忽略此 AA-Answer 消息中包含的任何其他可选 AVP。SAE 返回一条 AA-Answer 消息,以确认这第二条 AA-Request 消息。
订阅者服务激活和停用
SAE 策略提供订阅者服务。订户登录后,SAE 可以向 JSRC 发送 PPR 消息以激活或停用服务。给定的 PPR 可以包括用于激活服务的瞻博网络策略安装 AVP(AVP 代码 2020)和用于停用服务的瞻博网络策略删除 AVP(AVP 代码 2027),或同时包含两者(针对不同服务)。PPR 可以包含不超过三个这些 AVP(安装、删除或混合)。
当 SAE 完成 PPR 中请求的任务时,JSRC 会向 SAE 发送 PPA 消息。PPA 表明 PPR 中请求的行动的成功或失败。
如果使用 RADIUS 或 CLI 停用 SAE 的服务,则 SAE 将与路由引擎上的订阅者状态不同步。
订阅者重新同步
在重新同步期间,JSRC 会通知 SAE 对于已调配的用户处于活动状态的服务。JSRC 或 SAE 会启动重新同步。
SAE 会在启动时或备份 SAE 由于主 SAE 上的资源限制或条件而接管会话控制时启动重新同步。SAE 清除其数据库中的所有条目,为同步做准备。
JSRC 会在 JSRC 启动时启动重新同步,例如在 AAA 启动或重新启动时。
在其他情况下,JSRC 也可以启动重新同步。当多 SAE 环境中的 SAE 处于活动状态时,它必须向 JSRC 发送 SRQ 作为其第一条消息。然后,JSRC 会锁定活动 SAE 的源主机 AVP。如果 JSRC 从源主机 AVP 所指示的任何其他 SAE 接收到消息,则随后会触发重新同步。如果活动 SAE 和备用 SAE 之间的通信中断,则可能会发生此类事件。
这两个实体都通过发送 SRQ 消息来启动重新同步。接收方响应一条 SRR 消息。发送 SRR 后,无论 SAE 还是 JSRC 发起同步,JSRC 都会为会话数据库中存在的每个置备订阅者向 SAE 发送一条 AA-Request 消息。AA-Request 消息包含活动服务的瞻博网络策略安装 AVP。SAE 返回一条带有 ACK 的 AA-Answer 消息,以确认收到。
由 SAE 终止的订阅者会话
当 SAE 终止订阅者会话时,它会向 JSRC 发送 ASR 消息。JSRC 使 AAA 向 DHCP(或 SSC)客户端应用程序发送注销请求。当 DHCP 客户端应用程序接受注销请求时,JSRC 会在其发送给 SAE 的 ASR 消息中包含一个 ACK,以表示成功。如果 DHCP 客户端应用程序不接受请求,则 JSRC 会在 ASR 中包含一个 NAK,以表示失败。DHCP 客户端应用程序负责使用 AAA 启动实际注销序列。
每个服务规则的统计信息收集和报告
统计信息可以从路由器发送到 SAE,也可以从 SAE 发送到路由器。Diameter Accounting-Request (ACR) 和 Accounting-Answer (ACA) 消息都包含 Juniper-Acct-Record AVP(AVP 代码 2053),用于标识请求其计费信息的策略(服务)。
订阅者注销
当 DHCP(或 SSC)客户端应用向 AAA 发送订阅者注销通知时,JSRC 会发送一条 STR 消息,通知 SAE 已调配的订阅者会话即将终止。SAE 向 JSRC 返回一条 STA 消息,然后 JSRC 通知 DHCP 注销完成。
JSRC 双堆栈订阅者的配置
从 Junos OS 18.1R1 版开始,您可以在层次结构级别包含该 dualstack-support
语句 [edit jsrc]
,以便为双堆栈订阅者配置 JSRC 配置,以便它使用单个 JSRC 会话报告有关给定订阅者的单独堆栈的信息。在早期版本中,DHCPv4 和 DHCPv6 堆栈被视为单个订阅者;远程 SRC 对等方 (SAE) 不会被告知是只有一个家庭还是两个家庭都处于活动状态。统计数字是作为两个家庭的总和报告的,而不是按家庭分开的。从 Junos OS 18.1R1 版开始的默认行为与早期版本中的行为相同。
这种双堆栈配置行为不向后兼容其他版本。第 2 页的 表 1 列出了配置双堆栈支持和未配置双堆栈支持时(默认值)时的一些行为差异。
配置双堆栈支持 |
未配置双堆栈支持 |
---|---|
激活第一个网络家族后,仅将初始请求中该系列的地址发送到 Provisioning Server。 |
激活第一个网络家族后,从 Provisioning Server(SAE;远程 SRC 对等方)请求调配。 |
激活第二个网络家族时,会发送一个特殊的家族激活数据包,以通知 Provisioning 服务器该系列处于活动状态。 |
激活第二个网络家族后,不会向 ProvisionServer 报告任何内容。 |
当倒数第二个网络家族停用时,会发送一个特殊的家族停用数据包,以通知 Provisioning 服务器该系列不再处于活动状态。 |
当倒数第二个网络家族停用时,不向 Provisioning 服务器报告任何内容。 |
分别报告 IPv4 和 IPv6 统计信息。 |
将订阅者和服务统计信息作为 IPv4 和 IPv6 统计信息的总和来报告。 |
JSRC 双堆栈配置的优势
使 SAE 能够了解订户当前处于活动状态的网络家族。
支持收集每个地址族的准确会计统计信息,而不是不加区别地包含两个族的统计信息的汇总计数。
配置双堆栈支持时的 AA 请求消息
配置后 dualstack-support
,发送到 SAE 的 Diameter AA-Request (AAR) 配置消息包括以下内容:
当前活动网络家族以及正在激活的家族的 IPv4 或 IPv6 地址。如果 AAR 消息中不包含任一地址类型,则表示相应的网络家族未处于活动状态,并且在发送请求时未激活。
对于 IPv4 寻址,以下 Diameter AVP(如果它们在订阅者的会话数据库条目中可用):
成帧 IP 地址 (AVP 8)
成帧 IP-网络掩码 (AVP 9)
对于 IPv6 寻址,以下 Diameter AVP 和瞻博网络 Diameter AVP(如果它们在订阅者的会话数据库条目中可用):
成帧 IPv6 地址 (AVP 168)
成帧 IPv6 前缀 (AVP 97)
委托 IPv6 前缀 (AVP 123)
瞻博网络 IPv6-NDRA 前缀 (AVP 2200)
瞻博网络成帧 IPv6 网络掩码 (AVP 2201)
以下瞻博网络 Diameter AVP(如果在订阅者的会话数据库条目中可用):
瞻博网络代理电路 ID (AVP 2202)
瞻博网络远程电路 ID (AVP 2203)
Juniper-Request-Type AVP (2636:2050) 中的以下新值之一,用于在非活动网络家族激活或现有网络家族停用时通知 SAE:
4 - NETWORK_FAMILY_ACTIVATE
5 - NETWORK_FAMILY_DEACTIVATE
通知中仅包含被激活或停用的家庭的地址。
注意:不会为激活的第一个网络家族发送激活通知。不会为最后一个停用的家族发送停用通知。
当 AAR 消息用于同步和恢复时,仅对该订阅者的当前活动地址族进行寻址。AAR 消息不包括对已停用家庭的寻址。
配置双堆栈支持时的计费请求消息
配置后 dualstack-support
,Diameter 记帐请求 (ACR) 消息始终包括 IPv4 和 IPv6 统计信息,即使该值为零也是如此。
将报告订阅者会话周期的统计信息,而不仅仅是网络家族会话生命周期的统计信息。当其中一个网络族处于非活动状态时,JSRC 会继续报告该非活动族的最新统计信息值以及该活动网络族的当前统计信息。如果已停用的族再次变为活动状态,则新的族统计信息将添加到现有值中。
以下瞻博网络 Diameter AVP(IANA 企业编号 2636)用于报告 IPv6 统计信息:
Accounting-IPv6-Input-Octets 属性 (2204)
Accounting-IPv6-Output-Octets 属性 (2205)
Accounting-IPv6-Input-Pkts 属性 (2206)
Accounting-IPv6-Output-Pkts 属性 (2207)
未配置时 dualstack-support
,不会使用这些 IPv6 AVP。在这种情况下,IPv6 统计信息将与相应 IPv4 AVP 中的 IPv4 统计信息进行聚合。
配置双堆栈支持时的网络家族激活和停用通知
以下序列描述了激活网络家族时的客户端和 authd 进程(守护程序)行为:
订阅者发起登录。
路由器上的客户端应用程序(如 PPP 或 DHCP)向 aWHD 发送身份验证和授权 (AA) 请求。
authd 进程按配置发送 AA 请求,并将响应返回给客户端应用程序,然后客户端应用程序向订阅者返回响应。
客户端应用程序使用来自客户端动态配置文件的信息在路由器上构建和配置用户接口。
客户端应用程序将第一个网络家族激活请求发送到 authd。
authd 进程会向 SAE 发送一个预配请求,其中包含要激活的家族的地址。由于 authd 会为第一个家庭激活发送预配请求,因此没有理由同时发送家庭激活通知。
SAE 返回要为订阅者激活的 authd 策略(服务)。
authd 进程激活这些服务,并向客户端应用程序发送家庭激活 ACK 响应。
客户端应用程序可能会向其他网络家族发送家族激活请求。
authd 进程激活该特定网络家族的任何服务,然后向客户端应用程序发送家族激活 ACK 响应。
然后,authd 进程会向 SAE 发送带有第二个家族地址的家庭激活通知。AAR 消息包括值为 4 (NETWORK_FAMILY_ACTIVATE) 的瞻博网络请求类型 AVP (2636:2050)。该通知仅包含此系列的地址。
对于停用,客户端应用程序仅当两个网络系列都处于活动状态时才会发送家族停用请求。authd 进程会根据请求停用网络系列(和任何相关服务),并向 SAE 发送包含该系列地址的系列停用通知。AAR 消息包含值为 5 (NETWORK_FAMILY_DEACTIVATE) 的瞻博网络请求类型 AVP (2636:2050)。该通知仅包含此系列的地址。
但是,当最后一个网络家族停用时,客户端会发送终止请求,这会导致 authd 向 SAE 发送 JSRC-Acct-Stop 消息。因此,authd 无需发送家庭停用通知。
JSRC 配置概述
您可以将 JSRC 客户端应用程序配置为与会话和资源控制 (SRC) 配合使用,以集中管理订阅者和服务。JSRC 从远程 SRC 对等方 (SAE) 请求地址和服务授权,激活和停用 SAE 指定的服务,注销 SAE 指定的订户,并将订户状态和服务信息与 SAE 同步。
要配置 JSRC,请执行以下操作:
配置 JSRC 分区
JSRC 在称为分区的特定逻辑系统:路由实例上下文中工作。
目前仅支持单个分区;您必须在默认逻辑系统:路由实例上下文中对其进行配置。
配置 JSRC 分区之前,请执行以下操作:
在
[edit diameter]
层次结构级别配置 Diameter 实例。请参阅 配置 Diameter。
JSRC 分区的配置包括命名分区,然后将 Diameter 实例、SAE 主机名和 SAE 领域与分区相关联。
要配置 JSRC 分区,请执行以下操作:
为 JSRC 分配分区
您必须将配置的 JSRC 分区与正在配置的 JSRC 实例相关联。
在向 JSRC 分配分区之前,请执行以下任务:
配置 JSRC 分区。请参阅 配置 JSRC 分区
要分配 JSRC 分区,请执行以下操作:
指定分区名称。
[edit jsrc] user@host# set jsrc-partition partition1
使用 JSRC 授权订阅者
您可以将 AAA 配置为在 SRC 环境中使用 JSRC,以便在 AAA 验证 DHCP 订阅者是否可以访问路由器时向 SAE 请求授权。配置 JSRC 授权后,AAA 将忽略任何配置的认证顺序设置。
在配置 JSRC 授权之前,请执行以下操作:
在
[edit access profile]
层次结构级别创建订阅者访问配置文件。在 DHCP 本地服务器或 DHCP 中继的身份验证配置中使用语
username-include
句定义订阅者用户名。
要配置 JSRC 授权:
在配置文件中指定
jsrc
为授权方法。[edit access profile dhcpsub1] user@host# set authorization-order jsrc
使用 JSRC 配置订阅者
您可以将 AAA 配置为在 SRC 环境中使用 JSRC 请求从 SAE 调配,从而为经过身份验证的订户实例化服务。
在为订户配置 JSRC 置备之前,请执行以下任务:
在
[edit access profile]
层次结构级别创建订阅者访问配置文件。
要配置 JSRC 配置:
在配置文件中指定
jsrc
为预配方法。[edit access profile dhcpsub1] user@host# set provisioning-order jsrc
为双堆栈订阅者配置 JSRC
缺省情况下,双堆栈订户的 JSRC 配置会将 DHCPv4 和 DHCPv6 堆栈视为单个订户。远程 SRC 对等方 (SAE) 不会被告知是只有一个家庭还是两个家庭都处于活动状态。统计数字是作为两个家庭的总和报告的,而不是按家庭分开的。
从 Junos OS 18.1R1 版开始,您可以配置双堆栈支持,以便 JSRC 使用单个 JSRC 会话报告有关给定订阅者的单独堆栈的信息。
配置对 JSRC 的双堆栈支持时,发送到 SAE 的 Diameter AA-Request (AAR) 配置消息包括 Diameter AVP(IANA 企业编号 2636),用于传达会话数据库中可用的 IPv4 和 IPv6 寻址信息。
对于 IPv4,这包括以下 AVP:
成帧 IP 地址 (AVP 8)
成帧 IP-网络掩码 (AVP 9)
对于 IPv6,这包括以下 AVP:
成帧 IPv6 地址 (AVP 168)
成帧 IPv6 前缀 (AVP 97)
委托 IPv6 前缀 (AVP 123)
瞻博网络 IPv6-NDRA 前缀 (AVP 2200)
瞻博网络成帧 IPv6 网络掩码 (AVP 2201)
JSRC 还会通过 Juniper-Agent-Circuit-Id (AVP 2202) 和 Juniper-Remote-Circuit-Id (AVP 2203) 等方式包含会话数据库中可用的接入线路信息。
激活第一个网络家族时,JSRC 只会将初始请求中该系列的地址发送到 Provisioning Server。激活第二个网络家族时,AAR 消息将包含值为 4 的瞻博网络请求类型 AVP (2050),表示家族激活。当倒数第二个家族停用时,将发送值为 5 的相同 AVP 以表示停用。
要将 JSRC 配置为按家族报告双堆栈订阅者信息:
启用双堆栈支持。
[edit jsrc] user@host# set dualstack-support
从 JSRC 的 Diameter 消息中排除 AVP
从 Junos OS 14.2 版开始,您可以将路由器配置为从 JSRC 发送到 SAE 的 Diameter 消息中排除 AVP。
目前,仅支持用户名 (1) AVP。
要将 JSRC 配置为排除 Diameter 消息中的 AVP,请执行以下操作:
使用 JSRC 的服务会计
服务会话表示特定订阅者的服务。服务会话存在于订阅者会话的上下文中。JSRC 激活和停用 SAE(远程 SRC 对等方)指定的服务。JSRC 可以按卷收集和报告服务会计数据。JSRC 核算要求将传统防火墙过滤器或快速更新防火墙过滤器配置为对服务数据包进行计数 — 服务数据包信息提供数据量统计信息。
JSRC 仅支持对服务会话进行卷统计。不支持时间统计和订阅者计费。
JSRC 服务计费支持基于服务激活/停用的计费和临时计费。
服务激活/停用计费 — 启用记帐时,JSRC 在激活服务时向 SAE 发送记帐开始消息,在停用服务时向 SAE 发送记帐停止消息。启动消息启动计费会话并提供有关服务会话的初始信息。停止消息终止计费会话并报告最终(累积)计费数据。
临时核算 — 为服务会话启用临时核算后,JSRC 将按指定的时间间隔向 SAE 发送临时核算消息,以报告当时可用的累积核算信息。如果未为相应的服务会话启用计费,则忽略临时计费。
服务的 JSRC 会计核算从服务激活时开始,并在服务处于活动状态时保持有效。SAE 指定要为使用瞻博网络策略安装 AVP(AVP 代码 2020)的用户激活的服务(策略)。当此 AVP 包含 Juniper-Acct-Collect AVP(AVP 代码 2054)时,JSRC 将启动对该服务的服务激活/停用计费。
当 Juniper-Policy-Install AVP 包含 Acct-Interim-Interval AVP(AVP 代码 85)时,JSRC 将启动临时核算。在这种情况下,JSRC 将在 AVP 中指定的时间间隔(600 到 86,400 秒)更新记帐值。将报告双堆栈情况的聚合计数器。
JSRC 和 SAE 交换 Diameter 计费请求 (ACR) 和计费应答 (ACA) 消息以传送计费数据。这两条消息都包含 Juniper-Acct-Record AVP(AVP 代码 2053),用于标识请求计费信息的服务。
JSRC 发送 ACR 消息,以便向 SAE 报告计费数据。ACR 消息包括 Accounting-Record-Type AVP(AVP 代码 480),用于指定它要发送的会计记录的类型。激活服务时,此 AVP 的值为 START_RECORD。停用服务时,其值为 STOP_RECORD。对于临时记帐,ACR 消息按指定的记帐间隔发送,并且 AVP 的值为 INTERIM_RECORD。
除了指定记帐记录类型之外,ACR 消息还包括标准 RADIUS 属性以指定所需的统计信息:acct-input-octets [42]、acct-output-octets [43]、acct-input-packets [47]、acct-output-packets [48] 和 acct-session-time [46]。
SAE 将 ACA 消息返回给 JSRC,以确认收到 ACR 消息。
访问配置文件指定订阅者访问身份验证和计费参数。通过 JSRC 激活服务时,可以将计费报告发送到 SAE 或 RADIUS。默认配置将报告发送到 SAE;您还可以通过在访问配置文件中包含语 service accounting-order activation-protocol
句来进行配置。要将报告改为发送到 RADIUS 服务器,请将语句包含在 service accounting-order radius
访问配置文件中。
通过 RADIUS 而不是通过 JSRC 激活服务时,服务会话的计费报告将发送到 RADIUS 服务器。
使用 JSRC 配置服务计费
除了此处显示的配置之外,JSRC 服务计费的网络上下文还包括用于计算统计信息、Diameter、JSRC、订阅者服务、RADIUS 和 SRC 的防火墙过滤器配置。
您可以将 JSRC 配置为报告服务会话的计费统计信息。
要通过 JSRC 配置服务计费:
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。
dualstack-support
语句
[edit jsrc]
,以便为双堆栈订阅者配置 JSRC 配置,以便它使用单个 JSRC 会话报告有关给定订阅者的单独堆栈的信息。