订阅者访问的会话选项
通过会话选项,可以为 DHCP、L2TP 和已终止的 PPP 订阅者会话指定多个特征。会话选项在访问配置文件中配置,用于确定订阅者访问、身份验证、授权和计费的参数。
了解订阅者访问的会话选项
您可以使用访问配置文件来配置为 DHCP、L2TP 和已终止的 PPP 订阅者创建的会话的多个特征。您可以根据会话的启动时间长短和/或用户处于非活动状态的时间对订阅者访问设置限制。您可以按每个访问配置文件的用户名限制订阅者会话。您还可以根据订阅者的访问配置文件设置在登录时修改订阅者用户名的参数。
订阅者会话超时
您可以通过配置会话超时或空闲超时来限制订阅者的访问。使用会话超时指定允许订阅者访问的固定时间段。使用空闲超时指定订阅者可以空闲的最长时间段。您可以单独或一起使用这些超时。默认情况下,两者都不存在超时。
对于 DHCP 以外的所有订阅者类型(如 L2TP 隧道和 PPP 终止的订阅者),会话超时值会限制订阅者会话。对于 DHCP 订阅者,会话超时值用于在不存在其他租用时间配置时限制租期。当超时值到期时,租约将过期。如果 CLI 或 RADIUS 均未提供此值,则 DHCP 租约不会过期。
空闲超时基于订阅者的计费统计信息。路由器通过监控用户(入口)上游和用户下游(出口)的数据流量来确定用户处于非活动状态。控制流量将被忽略。只要在任一方向上检测到数据流量,订阅者就不会被视为空闲。
(可选)可以指定仅监控订阅者入口流量;出口流量将被忽略。如果 LNS 将流量发送到远程对等方,即使对等方未启动,此配置也很有用(例如,当 LNS 未启用 PPP 激活,因此无法检测到对等方未启动时)。在此情况下,由于 LAC 默认同时监控入口和出口流量,因此它会检测来自 LNS 的出口流量,并且不会注销用户,或者延迟检测不活动,直到出口流量停止。当您指定仅监控入口流量时,LAC 可以检测到对等方处于非活动状态,然后启动注销。
当任一超时期到期时,非 DHCP 订阅者将正常注销,类似于 RADIUS 发起的断开连接或 CLI 发起的注销。DHCP 订阅者已断开连接。Acct-Terminate-Cause [RADIUS 属性 49] 值包括用于会话超时的原因代码 5 和用于空闲超时的代码 4。
您可以使用 RADIUS 属性 Session-Timeout [27] 和 Idle-Timeout [28] 对每个订阅者的访问配置这些限制。RADIUS 在 Access-Accept 消息中返回这些属性,以响应来自访问服务器的 Access-Request 消息。从 Junos OS 19.4R1 版开始,RADIUS CoA 消息中支持会话超时属性 [27]。例如,当订阅者购买特定时间段的 Internet 接入,并且必须在会话到期时注销时,此功能非常有用。
当 CoA 到达时具有会话超时,超时从会话激活的时间开始计算。这会产生以下后果:
如果属性值大于当前会话正常运行时间,并且介于最小超时值和最大超时值之间,则订阅者将在会话激活后经过该秒数时注销。例如,假设会话在 12:00:00 激活,并在 12:00:30 收到 CoA,值为 120 秒。订阅者在 12:02:00 注销。
使用相同值查看此问题的另一种方法是,当前会话正常运行时间为 30 秒,属性值为 120 秒。再过 90 秒后,订阅者将注销。
如果属性值大于当前会话正常运行时间,但小于 60 秒的最小超时值,则当正常运行时间达到 60 秒时,订阅者将被注销。
如果属性值大于当前会话正常运行时间,但大于最大超时值 31,622,400 秒,则当正常运行时间达到 31,622,400 秒时,订阅者将被注销。
如果属性值小于当前会话正常运行时间,则不会应用会话超时。AAA 使用 NAK 回复 CoA 消息。例如,如果会话超时为 60 秒,但正常运行时间为 100 秒,则会话不受影响。
根据上述规则应用会话超时还取决于 CoA 的所有其他方面是否成功。例如,如果 CoA 包含服务激活,并且该服务激活失败,则不会应用会话超时。AAA 使用 NAK 回复 CoA 消息。
如果 Session-Timeout 值为 0,则取消该会话的任何现有会话超时。
服务提供商经常选择对大量用户应用相同的限制。您可以通过在访问配置文件中按路由实例定义订阅者的限制,从而减少此方案的 RADIUS 预置工作量。如果这样做,随后为使用配置文件登录的特定订阅者返回的 RADIUS 属性将覆盖 per-routing-instance 值。
建议不要为接收语音服务的订阅者配置会话超时。由于会话超时仅基于时间,而不基于用户活动,因此很可能会中断主动使用语音服务的用户,并意外终止其呼叫(从用户的角度来看)。这一结果是紧急服务呼叫特别关注的问题。
建议不要为 DHCP 订阅者配置空闲超时。当超时到期且没有任何活动且连接终止时,协议无法通知客户端。因此,这些用户在下次尝试访问互联网时,会被迫重新启动其 CPE 设备。
对比一下为 PPP 订阅者配置空闲超时时的行为。在这种情况下,超时过期会导致 PPP 终止与对等方的链路。根据 CPE 设备的不同,此终端使对等方能够按需或立即自动重试连接。无论哪种情况,都不需要订阅者干预。
无论是在 CLI 中还是通过 RADIUS 属性配置超时,设置超时的可用范围都是相同的:
可以在 CLI 中将会话超时设置为 1 分钟到 527,040 分钟,在 Session-Timeout 属性 [27] 中可以设置相应的秒数(60 到 31,622,400)。
在 CLI 中,空闲超时可设置为 10 分钟到 1440 分钟,在 Idle-Timeout 属性 [28] 中可以设置相应的秒数(600 到 86,400)。
路由器会解释属性中的值以符合支持的范围。例如,对于 Session-Timeout [27]:
值为零时视为无超时。
1 到 59 范围内的值将提高到 60 秒。
超过 31,622,400 的值将减少到 31,622,400 秒。
对于空闲超时 [28]:
值为零时视为无超时。
1 到 599 范围内的值将提高到 600 秒。
超过 86,400 的值将减少到 86,400 秒。
在使用动态创建的用户 VLAN 的配置中,当达到非活动阈值时,空闲超时还会删除非活动用户 VLAN。除了删除非活动动态订阅者 VLAN 之外,空闲超时还会在未创建客户端会话时移除动态 VLAN(例如,在动态 VLAN 上未创建客户端会话的情况下,或者在会话创建或客户端身份验证期间发生错误且在动态 VLAN 上未创建客户端会话的情况下)。
用于删除动态订阅者 VLAN 的会话和空闲超时仅在非常有限的用例中有用;通常,不会为此目的配置任何超时。
它们可能有用的一种可能情况是,动态 VLAN 没有上层协议来帮助确定何时通过 remove-when-no-subscribers
语句移除 VLAN;例如,当 VLAN 在具有固定地址的业务访问模型中支持不带 DHCP 的以太网 IP 时。但是,商业访问通常是比住宅访问更高级别的服务,因此通常不会像住宅订阅者所希望的那样因不活动而导致超时。
空闲超时可能适用于某些第 2 层批发情况,在这些情况下,当从 CPE 收到任何数据包时,可以重新生成连接。
使用空闲超时进行动态 VLAN 移除时,请记住以下几点:
在创建动态用户 VLAN 接口或动态用户 VLAN 接口上的流量活动停止后,空闲超时期开始。
如果创建了新的客户端会话或成功重新激活了客户端会话,则客户端空闲超时将重置。
非活动用户 VLAN 的移除只能与经过身份验证的 VLAN 配合使用。
每个用户名和访问配置文件的订阅者会话数限制
合法订阅者可能会与未经授权的人员共享其登录凭据,从而耗费服务提供商的资源,而不会使提供商受益。从 Junos OS 18.4R1 版开始,您可以通过限制与访问配置文件关联的特定用户名所允许的活动订阅者会话数来控制或阻止登录凭据的共享。也可以使用 RADIUS 实现此控制,但在 BNG 上本地配置限制将消除对外部服务器的依赖关系。
配置限制时,将跟踪用户名/访问配置文件组合的活动会话。当 authd 收到新的会话登录请求时,将检查跟踪的会话数。如果跟踪的会话数与限制匹配,则新的登录尝试将被拒绝并计为已阻止的请求。
当 authd 收到会话的注销或客户端终止请求时,该用户名/访问配置文件条目的跟踪会话计数将递减。如果这种情况一直持续到组合没有活动会话为止,则该条目将从会话限制表中删除。如果从配置中删除访问配置文件或会话限制,则所有关联的用户名/访问配置文件条目都将从表中删除。
一个用户名的会话总数可以超过特定访问配置文件的配置限制,因为同一个用户名可以用于多个访问配置文件。
对于堆叠订阅者会话(如具有自动配置 VLAN 的 PPP),堆栈中的两个用户名都用于身份验证,因此都会计入会话限制。
配置的限制适用于现有活动订阅者,但如果活动会话数超过具有该用户名和访问配置文件组合的订阅者的限制,则不会删除现有会话。
请考虑以下情况:当配置限制为 2 个会话时,给定用户名/访问配置文件组合当前有 5 个会话处于活动状态。
活动会话计数在组合的会话限制表条目中记录为 5。
具有相同用户名和访问配置文件的新订阅者尝试登录。尝试被阻止,因为已超过两个会话的限制(五个会话>两个会话)。
现有订阅者注销,活动会话计数减少到 4。
具有相同用户名和访问配置文件的新订阅者尝试登录。尝试被阻止,因为仍然超出了两个会话的限制(四个会话>两个会话)。
三个现有订阅者注销,将活动会话计数减少到 1。
具有相同用户名和访问配置文件的新订阅者尝试登录。允许尝试,因为尚未达到两个会话的限制(一个会话<两个会话)。
会话限制设计可防止拒绝服务事件,即恶意用户使用正确的用户名和访问配置文件进行多次登录尝试,但密码错误。多次登录尝试可能会超出配置的会话限制,但这不会发生,因为仅当订阅者会话状态转换为活动状态时,跟踪的会话计数才会递增,而恶意登录无法实现。
使用 CLI 限制用户名会话的好处
允许您在路由器上本地限制会话数,而不是依赖外部 RADIUS 服务器来提供限制。
防止某些基于多次登录的拒绝服务攻击。
订阅者用户名修改
对于第 2 层批发应用,某些网络服务提供商会采用修改用户名的方式,将订阅者定向到相应的零售企业网络。这种修改也称为用户名 剥离,因为用户名中的某些字符被剥离和丢弃。字符串的其余部分将成为新的、修改过的用户名。外部 AAA 服务器使用修改后的用户名进行会话身份验证和计费。修改参数根据订阅者访问配置文件应用,该配置文件还决定了订阅者和会话上下文;即订阅者使用的逻辑系统:路由实例 (LS:RI)。仅支持默认(主)逻辑系统。由于批发商通过将多个零售商放在不同的 LS:RI 中来区分多个零售商,因此会针对每个零售商适当修改用户名。
您最多可以选择八个字符作为分隔符,以标记原始用户名的丢弃部分和保留部分之间的边界;没有默认分隔符。所选分隔符右侧的名称部分将与分隔符一起丢弃。通过配置多个分隔符,给定的用户名结构可能会导致不同的用户名被修改。您可以配置原始名称的解析方向,以确定哪个分隔符标记边界。默认情况下,解析方向为从左到右。
请看以下示例:
指定一个分隔符 @。用户名为 user1@example.com。在这种情况下,解析方向无关紧要。在任何一种情况下,都会找到单个分隔符并丢弃 example.com。修改后的用户名为 user1。
指定一个分隔符 @。用户名为 user1@test@example.com。在这种情况下,解析方向会导致不同的用户名。
解析方向为从左到右 - 最左侧的 @ 被标识为分隔符,test@example.com 被丢弃。修改后的用户名为 user1。
解析方向为从右到左 - 最右侧的 @ 被标识为分隔符,example.com 被丢弃。修改后的用户名为 user1@test。
指定两个分隔符,@ 和 /。用户名为 user1@bldg1/example.com。解析方向会产生不同的用户名。
解析方向为从左到右 - @ 被标识为分隔符,bldg1/example.com 被丢弃。修改后的用户名为 user1。
解析方向为从右到左 - / 被标识为分隔符,example.com 被丢弃。修改后的用户名为 user1@bldg1。
您可以配置订阅者访问配置文件,以便去除每个订阅者登录字符串的一部分,随后由外部 AAA 服务器用作修改后的用户名,用于会话身份验证和计费。例如,修改后的用户名将显示在 RADIUS Access-Request、Acct-Start 和 Acct-Stop 消息中,以及 RADIUS 发起的断开连接请求和授权变更 (CoA) 请求中。
订阅者用户名修改的好处
使第 2 层批发网络服务提供商能够轻松地将订户定向到适当的零售企业网络。
另见
订阅者会话超时选项
通过订阅者会话超时选项,您可以根据会话已启动的时间长短和/或用户处于非活动状态的时间对订阅者访问进行限制。订阅者会话选项同时适用于 L2TP 隧道和 PPP 终止的订阅者会话。对于 DHCP 订阅者,会话超时会限制 DHCP 租用时间。
要在 RADIUS 中配置超时属性,请参阅 RADIUS 服务器的文档。
要配置订阅者会话限制,请在客户端配置文件中配置适用于订阅者的会话选项:
在配置的会话超时到期时终止订阅者,无论活动如何。
[edit access profile profile-name session-options] user@host# set client-session-timeout minutes
在配置的空闲超时期间没有入口或出口数据流量时,终止订阅者。
[edit access profile profile-name session-options] user@host# set client-idle-timeout minutes
在配置的空闲超时期间没有入口数据流量时终止订阅者;忽略出口流量。
[edit access profile profile-name session-options] user@host# set client-idle-timeout minutes user@host# set client-idle-timeout-ingress-only
例如,要在客户端配置文件中 acc-prof
配置会话超时选项,指定 15 分钟的空闲超时,仅监控入口流量,并在 120 分钟后会话超时:
[edit] access { profile { acc-prof { session-options { client-idle-timeout 15; client-idle-timeout-ingress-only; client-session-timeout 120; } } } }
限制每个用户名和访问配置文件的活动会话数
您可以通过限制与访问配置文件关联的特定用户名允许的活动订阅者会话数来控制合法订阅者共享其登录凭据的程度。
要限制每个用户名和访问配置文件的活动会话数,请执行以下操作:
[edit access profile profile-name] user@host# set session-limit-per-username number
例如,要将访问配置文件 isp-weg-4 的每个用户名的最大活动会话数设置为 5:
[edit access profile isp-weg-4] user@host# set session-limit-per-username 5
show network-access aaa statistics session-limit-per-username
您可以使用命令查看活动会话和已阻止请求的统计信息。
对于以下任何一种情况,您可以通过清除被阻止的请求统计信息来使用 clear network-access aaa statistics session-limit-per-username username
命令作为调试的辅助工具:
对于所有访问配置文件中的所有用户名。
对于所有访问配置文件中的特定用户名。
对于特定访问配置文件中的特定用户名。
对于特定访问配置文件中的所有用户名。
为订阅者会话配置用户名修改
您可以使用订阅者会话选项根据订阅者的访问配置文件设置在登录时修改订阅者用户名的参数。这种修改也称为用户名 剥离,因为用户名中的某些字符被剥离和丢弃。字符串的其余部分将成为新的、修改过的用户名。外部 AAA 服务器使用修改后的用户名进行会话身份验证和计费。例如,在第 2 层批发实施中,网络服务提供商会使用用户名修改功能将订阅者定向到相应的零售企业网络。
修改参数根据订阅者访问配置文件应用,该配置文件还决定了订阅者和会话上下文;即订阅者使用的逻辑系统:路由实例 (LS:RI)。仅支持默认(主)逻辑系统。由于批发商通过将多个零售商放在不同的 LS:RI 中来区分多个零售商,因此会针对每个零售商适当修改用户名。
您最多可以选择八个字符作为分隔符,以标记原始用户名的丢弃部分和保留部分之间的边界;没有默认分隔符。所选分隔符右侧的名称部分将与分隔符一起丢弃。通过配置多个分隔符,给定的用户名结构可能会导致不同的用户名被修改。您可以配置原始名称的解析方向,以确定哪个分隔符标记边界。默认情况下,解析方向为从左到右。
要配置用户名修改:
在以下示例中,AAA 选项配置文件 aaa1 为默认逻辑系统和路由实例 1 中的订阅者指定订阅者访问配置文件 entA。访问配置文件 entA 指定从左到右检查用户名,直到找到分隔符 @。AAA 选项配置文件应用于属于组配置文件 FD1 的隧道 PPP 订阅者。
[edit access aaa-options aaa1] user@host# access-profile entA user@host# aaa-context default:1 [edit access profile entA session-options strip-user-name] user@host# set delimiter @ user@host# set parse-direction left-to-right [edit access group-profile FD1 ppp] user@host# set ppp-options aaa-options aaa1
在给定该配置的情况下,假设订阅者尝试使用用户名 user1@example.com 登录。检查此名称时,分隔符和字符串 example.com 将被丢弃,留下修改后的用户名 user1。请注意,如果将解析方向设置为从右到左检查名称,则结果是相同的,因为只定义了一个分隔符,并且原始用户名中只存在一个分隔符。
现在假设订阅者使用用户名 user1@test@example.com 登录。对于这样的用户名,解析方向会对修改后的用户名产生影响。配置确定首先找到分隔符 @ 的第一个实例,因为名称是从左到右解析的。此分隔符和字符串 test@example.com 将被丢弃,留下 user1 作为修改后的用户名。
当配置设置不同的解析方向时会发生什么情况?
[edit access profile entA session-options strip-user-name] user@host# set delimiter @ user@host# set parse-direction right-to-left
在这种情况下,对于用户名 user1@test@example.com,将标识分隔符的第二个实例,并使用字符串 @example.com 将其丢弃。修改后的用户名为 user1@test。
通过配置多个分隔符,可以根据解析方向对不同的修改用户名获得相同的结果,如以下配置所示,其中指定两个分隔符 @ 和 /。
[edit access profile entA session-options strip-user-name] user@host# set delimiter [@ /] user@host# set parse-direction left-to-right
对于用户名 user1@bldg1/example.com,从左到右解析首先标识 @ 分隔符,修改后的用户名为 user1。相反,从右到左解析,首先标识 / 分隔符,然后用字符串 example.com 将其剥离,留下修改后的用户名 user1@bldg1。
另见
移除非活动动态用户 VLAN
通过订阅者会话超时,您可以根据会话已启动的时间长短和/或用户处于非活动状态的时间对订阅者访问进行限制。在使用动态创建的用户 VLAN 的配置中,空闲超时还:
当达到非活动阈值时,删除非活动用户 VLAN。
在未创建客户端会话时移除动态 VLAN(例如,在动态 VLAN 上未创建客户端会话的情况下,或者在会话创建或客户端身份验证期间发生错误且未在动态 VLAN 上创建客户端会话)移除动态 VLAN。
会话超时通常不用于删除动态订阅者 VLAN。超时可能仅在非常有限的用例中有用。一种情况可能是,动态 VLAN 没有上层协议来帮助确定何时通过 remove-when-no-subscribers
语句移除 VLAN;例如,在具有固定地址的业务访问模型中,当 VLAN 支持不使用 DHCP 的以太网 IP 时。
要在 RADIUS 中配置空闲超时属性,请参阅 RADIUS 服务器的文档。
要移除非活动动态订阅者 VLAN,请执行以下操作:
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。