订阅者访问的会话选项
您可以通过会话选项为 DHCP、L2TP 和终止的 PPP 订阅者会话指定多个特性。会话选项在访问配置文件中配置,用于确定订阅者访问、身份验证、授权和计费参数。
了解订阅者访问的会话选项
您可以使用访问配置文件配置为 DHCP、L2TP 和终止的 PPP 订阅者创建的会话的多个特性。您可以根据会话启动时长、用户处于非活动状态的时间或两者来限制订阅者访问。您可以按每个访问配置文件的用户名来限制订阅者会话。您还可以设置参数,根据订阅者的访问配置文件在登录时修改订阅者的用户名。
订阅者会话超时
您可以通过配置会话超时或空闲超时来限制订阅者访问。使用会话超时指定允许订阅者访问的固定时间段。使用空闲超时指定订阅者可以空闲的最大时间段。您可以单独使用这些超时,也可以一起使用这些超时。默认情况下,两者均未出现超时。
对于 DHCP 以外的所有订阅者类型(如 L2TP 隧道和 PPP 终止订阅者),会话超时值会限制订阅者会话。对于 DHCP 订阅者,当不存在其他租用时间配置时,会话超时值用于限制租期。超时值到期时,租约将到期。如果 CLI 或 RADIUS 未提供此值,则 DHCP 租约不会过期。
空闲超时基于订阅者的计费统计信息。路由器通过监控从用户上游(入口)和下游到用户(出口)的数据流量来确定订阅者不活动。控制流量将被忽略。只要在任一方向上检测到数据流量,订阅者就不会被视为空闲。
或者,您可以指定仅监控订阅者入口流量;出口流量将被忽略。如果 LNS 将流量发送至远程对等方,即使对等方没有启动,例如 LNS 未启用 PPP 激活,因此无法检测到对等方不工作,此配置会很有用。在这种情况下,由于默认情况下 LAC 会同时监控入口和出口流量,它会检测来自 LNS 的出口流量,并且不会注销订阅者或延迟检测不活动,直到出口流量停止。指定仅监控入口流量时,LAC 可以检测对等方是否处于非活动状态,然后启动退出。
当任一超时期到期时,非 DHCP 订阅者将正常退出,类似于 RADIUS 发起的断开连接或 CLI 发起的退出。DHCP 订阅者断开连接。Acct-终止原因 [RADIUS 属性 49] 包括会话超时原因代码 5,空闲超时为 4。
您可以使用 RADIUS 属性会话超时 [27] 和空闲超时 [28],为每个订阅者配置这些订阅者访问限制。RADIUS 在 Access-Accept 消息中返回这些属性,以响应来自访问服务器的 Access-Request 消息。从 Junos OS 19.4R1 版开始,RADIUS CoA 消息支持会话超时属性 [27]。例如,当订阅者购买特定时间段的互联网访问时,必须在会话到期时退出时,此功能很有用。
当 CoA 到达并出现会话超时时,超时将从会话激活时间算起。这会产生以下后果:
如果属性值大于当前会话正常运行时间,且在最小超时值和最大超时值之间,则当会话激活以来的秒数超过该秒数时,订阅者将退出。例如,假设会话在 12:00:00 激活,CoA 在 12:00:30 接收,值为 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 消息。
如果会话超时值为 0,则该会话的任何现有会话超时将被取消。
服务提供商通常选择对大量订阅者应用相同的限制。您可以通过按路由实例定义访问配置文件中订阅者的限制来减少此方案所需的 RADIUS 调配工作量。如果这样做,则随后使用配置文件登录的特定订阅者的 RADIUS 属性将覆盖每个路由实例的值。
建议不要为接收语音服务的订阅者配置会话超时。由于会话超时仅基于时间,而不是用户活动,因此可能会使用语音服务主动中断订阅者,并意外终止其呼叫(从订阅者的角度来看)。这一结果是紧急服务呼叫特别关心的问题。
建议不要为 DHCP 订阅者配置空闲超时。当超时到期且无活动且连接被终止时,协议无法通知客户端。因此,这些订阅者在下次尝试访问互联网时被迫重新启动其 CPE 设备。
对比为 PPP 订阅者配置空闲超时时的行为。在这种情况下,超时到期将导致 PPP 终止与对等方的链接。根据 CPE 设备,这种终端使对等方能够按需或立即自动重试连接。无论哪种情况,都不需要订阅者干预。
无论您是在 CLI 中配置超时,还是通过 RADIUS 属性进行配置,超时设置的可用范围都是相同的:
会话超时可以在 CLI 中设置为 1 分钟到 527,040 分钟,在会话超时属性 [27] 中设置相应的秒数(60 到 31,622,400)。
可以在 CLI 中将空闲超时设置为 10 分钟到 1440 分钟,并在“空闲超时”属性 [28] 中设置相应的秒数(600 到 86,400)。
路由器会解释属性中的值,以符合支持的范围。例如,对于会话超时 [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 上本地配置限制可以消除对外部服务器的依赖性。
配置限制时,将跟踪用户名/访问配置文件组合的活动会话。当验证收到新的会话登录请求时,将检查跟踪的会话数。如果跟踪的会话数与限制匹配,则新的登录尝试将被拒绝并计为受阻止的请求。
当 Authed 收到某个会话的退出或客户端终止请求时,该用户名/访问配置文件条目的跟踪会话计数将减去。如果持续到没有活动会话进行组合,则会从会话限制表中移除该条目。如果从配置中删除访问配置文件或会话限制,所有关联的用户名/访问配置文件条目都将从表中删除。
一个用户名的会话总数可以超过特定访问配置文件的配置限制,因为同一用户名可用于多个访问配置文件。
对于具有自动配置 VLAN 的 PPP 等堆叠订阅者会话,将使用堆栈中的两个用户名进行身份验证,因此两个用户名均会计入会话限制。
配置的限制适用于现有活动订阅者,但如果活动会话数超过具有该用户名和访问配置文件的订阅者的限制,则现有会话不会被拆除。
在配置两个会话限制时,请考虑以下情况:对于给定的用户名/访问配置文件组合,有 5 个会话当前处于活动状态。
活动会话计数在会话限制表条目中记录为 5,以便进行组合。
具有相同用户名和密码和访问配置文件的新订阅者会尝试登录。尝试被阻止,因为两个会话的限制已经超过(五个>两个)。
现有订阅者会退出,从而将活动会话计数减少到四个。
具有相同用户名和密码和访问配置文件的新订阅者会尝试登录。尝试被阻止,因为两个会话的限制仍然超出(四个>两个)。
三个现有订阅者退出,活动会话计数减少到一个。
具有相同用户名和密码和访问配置文件的新订阅者会尝试登录。允许尝试,因为两个会话的限制尚未达到(一个<两个)。
会话限制设计可防止恶意用户使用正确的用户名和密码进行多次登录尝试,但密码错误的拒绝服务事件。多次登录尝试可能会超过配置的会话限制,但不会发生这种情况,因为仅当订阅者会话状态转换为活动状态(而恶意登录无法实现)时,跟踪的会话计数才会递增。
使用 CLI 限制用户名会话的优势
允许您限制路由器本地的会话数,而不是依赖外部 RADIUS 服务器来提供限制。
可阻止某些基于多次登录的拒绝服务攻击。
订阅者用户名修改
对于第 2 层批发应用,某些网络服务提供商会使用用户名修改将订阅者定向到相应的零售企业网络。这种修改也称为用户名 剥离,因为用户名中的某些字符会被去除并丢弃。字符串的剩余部分将成为经过修改的新用户名。修改后的用户名由外部 AAA 服务器用于会话身份验证和计费。根据订阅者访问配置文件应用修改参数,该配置文件还决定了订阅者和会话上下文;即订阅者使用的逻辑系统:路由实例 (LS:RI)。仅支持默认(主)逻辑系统。由于批发商通过将每个零售商放入不同的 LS:RI 中来区分多个零售商,因此会为每个零售商适当修改用户名。
您可以选择最多 8 个字符作为分隔符,以标记原始用户名丢弃和保留的部分之间的边界:没有默认分隔符。所选分隔符右侧的名称部分与分隔符一起被丢弃。通过配置多个分隔符,给定的用户名结构可能会导致不同的修改用户名。您可以配置原始名称解析的方向,以确定哪个分隔符标记边界。默认情况下,解析方向为从左到右。
考虑以下示例:
您可以指定一个分隔符 @。用户名为 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 中来区分多个零售商,因此会为每个零售商适当修改用户名。
您可以选择最多 8 个字符作为分隔符,以标记原始用户名丢弃和保留的部分之间的边界:没有默认分隔符。所选分隔符右侧的名称部分与分隔符一起被丢弃。通过配置多个分隔符,给定的用户名结构可能会导致不同的修改用户名。您可以配置原始名称解析的方向,以确定哪个分隔符标记边界。默认情况下,解析方向为从左到右。
要配置用户名修改:
在以下示例中,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: