订阅者访问的会话选项
通过会话选项,您可以为 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 属性会话超时 [27] 和空闲超时 [28] 为每个订阅者配置这些订阅者访问限制。RADIUS 在 Access-Accept 消息中返回这些属性,以响应来自访问服务器的 Access-Request 消息。从 Junos OS 19.4R1 版开始,RADIUS CoA 消息中支持 Session-Timeout 属性 [27]。例如,当订阅者在特定时间段内购买互联网接入,并且必须在会话到期时注销时,此功能非常有用。
当 CoA 到达时带有 Session-Timeout 时,超时从会话激活的时间开始计算。这会产生以下后果:
如果属性值大于当前会话正常运行时间且介于最小和最大超时值之间,则当自会话激活以来经过该秒数时,订阅者将注销。例如,假设会话在 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 属性中设置为相应的秒数(600 到 86,400 秒)[28]。
路由器会解释属性中的值以符合支持的范围。例如,对于会话超时 [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),堆栈中的两个用户名都用于身份验证,因此两者都计入会话限制。
配置的限制适用于现有活动订阅者,但如果活动会话数超过具有该用户名和访问配置文件组合的用户的限制,则不会拆除现有会话。
考虑这样一种情况:当您配置两个限制时,给定的用户名/访问配置文件组合当前有五个会话处于活动状态。
活动会话计数在组合的会话限制表条目中记录为 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 访问请求、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 没有上层协议来帮助确定何时通过语句移除 remove-when-no-subscribers VLAN;例如,在具有固定地址的业务访问模型中,当 VLAN 支持不使用 DHCP 的以太网 IP 时。
要在 RADIUS 中配置空闲超时属性,请参阅 RADIUS 服务器的文档。
要移除非活动动态订阅者 VLAN:
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。