面向用户的 L2TP LAC 隧道
LAC 隧道选择概述
当用户登录到域时,PPP 客户端会联系 LAC 建立连接。LAC 必须在域中找到目标以及可以到达该目标的隧道。目标、隧道和域之间的关联由隧道配置文件提供,该配置文件位于用户访问配置文件的域映射中,或从 RADIUS 服务器接收的隧道组属性 (VSA 26-64) 中。RADIUS 属性优先于域映射中指定的配置文件。隧道配置文件包括隧道列表;每个隧道都与一个目标 IP 地址和一个隧道优先级别相关联。
L2TP 使您能够指定:
-
一个域最多 31 个目标。
-
多达八级隧道首选级。优先级决定了 LAC 尝试使用现有隧道(或建立新隧道)到用户请求域中的目标的顺序。
注意:零 (0) 是最高级别的优先级;这是首选级别。
如果两个隧道都到达域内的有效目标,则 LAC 会首先选择优先级最高的隧道。例如,当隧道 A 的优先级为 1 而隧道 B 的优先级为 4 时,LAC 会先尝试使用隧道 A。
-
单个偏好级别最多 31 个目标。
当 LAC 确定应通过隧道传输 PPP 会话时,它会从通过 隧道 配置文件与 PPP 用户或 PPP 用户的域关联的隧道集中选择一个隧道。
隧道选择受以下配置影响:
-
首选项级别之间的故障切换 - 默认情况下,当未在首选项级别中选择到达有效目的的隧道时,选择过程将故障转移到下一个级别;也就是说,LAC 下降到下一个较低级别以继续搜索合适的隧道。有关详细信息,请参阅 配置首选项级别之间的故障切换时的选择 。
-
优先级内的故障切换 — 在这种情况下,LAC 不会将其建立会话的尝试限制为仅在优先级级别的单个隧道。如果尝试通过选定隧道失败,则选择过程将在同一级别内进行故障转移,方法是选择另一条合适的隧道到有效的目标。LAC 会继续在该级别内尝试连接,直到该级别上不再有通往有效目标的隧道可用。然后 LAC 下降到下一个较低级别以继续搜索。有关详细信息,请参阅 配置首选项级别内故障切换时的选择 。
-
每条隧道的最大会话数 — 当配置每条隧道允许的最大会话数时,LAC 会在隧道选择过程中考虑该设置。每个隧道的最大会话数可通过 RADIUS Tunnel-Max-Sessions VSA [26-33] 或将该
max-sessions语句包含在隧道配置文件中来配置。当随机选择的隧道的当前会话计数等于其最大会话数时,LAC 不会尝试连接到包含该隧道的目标。相反,它会从该优先级的隧道集中选择在域中具有有效目标的备用隧道。如果当前优先级中不存在此类隧道,则 LAC 将下降到下一个优先级进行选择。无论当前在 LAC 上运行哪种故障切换方案,此过程都是一致的。
如果未为隧道配置最大会话数,则该隧道可以支持的会话数没有上限。默认情况下,最大会话数值为 0(零),允许隧道中有无限的会话。
-
加权负载平衡 — 此平衡方法使用基于概率的隧道权重评估,以便在隧道之间分配会话。LAC 仍会在优先级别内随机选择隧道,但平均而言,会话会根据隧道的权重分布在隧道之间。一条隧道的权重由该隧道的最大会话限制和其他隧道在相同优先级下的最大会话限制决定。有关详细信息,请参阅 加权负载平衡 。
-
目标等负载平衡 — 此会话平衡方法根据到目标的会话数和隧道承载的会话数来评估隧道,以便在所有隧道之间平均分配会话负载。会话计数最低的目标被确定为负载最轻的隧道。此过程在隧道上以最高可用优先级运行。更多信息,请参阅 目标等负载平衡 。
请考虑以下信息,了解隧道和目标选择过程以及故障切换:
-
多个隧道可能能够到达目标,并且这些隧道可以具有相同的优先级或不同的优先级。
-
选择建立用户会话的隧道本身可能已经建立。表示 IT 当前具有活动会话或者,如果尚未建立能够到达目标的隧道,则 LAC 可能必须建立一条到目标的新隧道。
-
有效的目标满足以下条件:
-
它可以通过未达到其最大会话限制的隧道到达。
-
尚未就当前订阅者登录请求联系它。
-
它可以锁定或解锁。
-
-
锁定的目标正在运行目标锁定计时器。锁定的目标将被放置在锁定列表中,直到计时器到期或被清除(重置为零)。无法联系列表中的目标以建立会话。
-
未锁定目标是指目标锁定计时器为零的目标。
-
当 LAC 发现锁定的有效目标时,它会将其放置在 DestinationsLockedNotContacted 列表中,该列表与包含所有锁定目标的锁定列表不同。DestinationsLockedNotContacted 列表仅包括 LAC 尚未尝试联系以进行当前进行的用户登录的锁定目标。DestinationsLockedNotContacted 列表不包括 LAC 在尝试建立连接但失败后锁定的目标。
-
您可以使用该
clear services l2tp destination lockout命令手动清除所有锁定的目标,或仅清除与指定的本地或远程网关地址匹配的锁定目标。例如,如果要清除特定目标,以便它在优先级别内获得优先级,则可以使用该命令。 -
作为隧道选择过程一部分的故障切换行为仅在由于以下原因之一而无法访问目标时适用:
-
在最大重传尝试次数后,LNS 无法返回 SCCRP 消息以响应来自 LAC 的 SCCRQ 消息。
-
隧道已建立,但在最大重传尝试次数后,LNS 不会返回 ICRP 消息以响应来自 LAC 的 ICRQ。
-
-
此故障切换行为不适用于以下情况:
-
客户端终止连接。
-
隧道已建立,但 LAC 尝试与 LNS 建立会话时,LNS 发送 CDN 消息,导致用户登录尝试失败。
-
配置优先级之间故障切换时的选择
当用户尝试登录到默认配置中的域时(即当未配置首选项级别内的故障切换且未配置负载平衡时),LAC 将从最高的隧道优先级开始搜索请求域的有效目标。如果未找到有效目标,或者尝试连接到目标失败,LAC 将下降到下一个较低级别以继续搜索。除最低级别外,所有级别的搜索过程都是相同的:
-
搜索首先,从域的隧道配置文件中指定的所有隧道中识别具有优先级目标的有效隧道。
-
所有锁定的有效目标都放置在 DestinationsLockedNotContacted 列表中。没有尝试联系这些目的地中的任何一个。
-
LAC 从未锁定的有效目的地中随机选择一个,并尝试通过关联的隧道进行连接;如果隧道没有当前会话,则 LAC 必须建立隧道。
注意:随机选择是默认行为。配置加权负载平衡或目标等等负载平衡时,行为会有所不同。有关负载平衡的信息,请参阅 在多个 LNS 之间分配会话负载时的选择 。
-
如果尝试成功,LAC 会向 PPP 客户端报告登录成功情况。LAC 还会清除 DestinationsLockedNotContacted 列表中的所有目标。
-
如果 LAC 未收到响应,则会重试尝试,直到最大重试次数。如果 LAC 在未收到回复的情况下用尽重试,则该尝试被视为不成功,并且 LAC 会通过锁定目标将目标标记为无法访问。它将目标放在锁定列表中并启动目标锁定计时器。
-
-
LAC 接下来要做什么取决于当前的优先级。
-
如果不是最低优先级,则 LAC 下降到下一个较低的优先级并继续搜索过程。
-
如果它是最低首选项级别,并且 DestinationsLockedNotContacted 列表不为空,则 LAC 将解锁 DestinationsLockedNotContacted 列表中的所有目标,并跳回最高首选项级别并重新启动搜索过程。
-
如果它是最低优先级,并且 DestinationsLockedNotContacted 列表为空(表示已尝试所有有效目标),则 LAC 会向 PPP 客户端报告登录失败。
-
-
当一个级别的有效目标全部锁定时,LAC 接下来执行的作取决于当前的优先级别。
-
如果不是最低优先级,则 LAC 下降到下一个较低的优先级并继续搜索过程。
-
如果是最低优先级,则 LAC 选择剩余锁定时间最短的锁定有效目标。它会清除锁定计时器并尝试连接到目标并建立会话。
-
如果尝试成功,LAC 会向 PPP 客户端报告登录成功情况。
-
如果尝试失败且 DestinationsLockedNotContacted 列表为空(表示已尝试所有有效目标),则 LAC 会向 PPP 客户端报告登录失败。
-
如果尝试失败且 DestinationsLockedNotContacted 列表不为空,则 LAC 将解锁 DestinationsLockedNotContacted 列表中的所有目标,跳回最高优先级,然后重新启动搜索过程。
-
-
-
当不存在有效目标时,LAC 接下来执行的作取决于当前的优先级。
-
如果不是最低优先级,则 LAC 下降到下一个较低的优先级并继续搜索过程。
-
如果它是最低优先级,并且 DestinationsLockedNotContacted 列表为空(表示已尝试所有有效目标),则 LAC 会向 PPP 客户端报告登录失败。
-
如果它是最低首选项级别,并且 DestinationsLockedNotContacted 列表不为空,则 LAC 将解锁 DestinationsLockedNotContacted 列表中的所有目标,跳回最高首选项级别,然后重新启动进程。
-
-
搜索和故障切换过程在级别中循环,直到建立会话或尝试所有有效目标(DestinationsLockedNotContacted 列表中没有目标),并且登录失败。
图 1 说明了在默认情况下选择目的地和相应隧道的可能条件和决策点,其中故障切换发生在隧道优先级别之间。
例如,假设隧道配置文件包含以下隧道,每个隧道都有一个有效的目标:
-
优先级 0,隧道 1,192.168.10.10
-
优先级 1,隧道 2,192.168.22.22
-
优先级 1,隧道 3,192.168.33.33
-
优先级 2,隧道 4,192.168.44.44
未配置优先级内的故障切换和负载平衡。
当 PPP 用户尝试连接到域时,LAC 的工作方式如下:
-
在最高优先级别 0 下,LAC 选择隧道 1,因为它是该级别中唯一具有有效目标的隧道。LAC 尝试到达 192.168.10.10。
-
此连接尝试失败,因此 LAC 锁定 192.168.10.10。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。
-
LAC 丢弃(故障切换)到下一级别(优先级 1),以到达域的目标。LAC 在通过隧道 2 的 192.168.22.22 和通过隧道 3 的 192.168.33.33 之间随机选择。它选择 192.168.22.22 并尝试通过隧道 2 进行连接。
-
尝试与 192.168.22.22 的连接失败,因此 LAC 将锁定 192.168.22.22。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。
注意:即使隧道 3 具有未锁定的有效目标,LAC 现在也无法选择该隧道以到达 192.168.33.33,因为当故障切换方法介于优先级之间时,LAC 每次在级别中搜索时只能尝试一次到达有效目标。
-
在本例中,LAC 降至最终(最低)级别,即优先级 2。LAC 选择隧道 4 是该层级中唯一具有有效目标的隧道。LAC 尝试到达 192.168.44.44。
-
与 192.168.44.44 的连接尝试也会失败,因此 LAC 会锁定 192.168.44.44。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。
-
由于这是最低级别,并且 DestinationsLockedNotContacted 列表为空,因此 LAC 会拒绝来自 PPP 客户端的登录请求。
目标 192.168.10.10、192.168.22.22 和 192.168.44.44 已锁定,但未添加到 DestinationsLockedNotContacted 列表中,因为 LAC 在尝试连接后将其锁定。未联系目标 192.168.33.33,但未添加到 DestinationsLockedNotContacted 列表中,因为它未锁定。
-
客户端尝试再次登录,LAC 将重复隧道选择过程,从优先级级别 0 重新开始,以检查解锁的有效目的地,并根据需要在各个级别之间循环。
-
在优先级 0 时,192.168.10.10 是唯一有效的目标,仍处于锁定状态,因此 LAC 无法尝试连接到目标。LAC 将 192.168.10.10 添加到 DestinationsLockedNotContacted 列表中,然后下降到优先级 1。
注意:请记住,目标锁定计时器会全局适用,因此它会在多个订阅者登录后持续存在。DestinationsLockedNotContacted 列表仅适用于给定的订阅者登录,不会保留。即使 LAC 为此订阅者联系了 192.168.10.10,也是在上一次登录尝试期间。在此登录尝试中,由于锁定,它无法联系目标,因此将目标放在 DestinationsLockedNotContacted 列表中。
-
在优先级 1,192.168.22.22 仍处于锁定状态,因此 LAC 会将 192.168.22.22 添加到 DestinationsLockedNotContacted 列表中。192.168.33.33 仍然可用。LAC 尝试通过隧道 3 连接到 192.168.33.33。
-
此连接尝试失败,因此 LAC 锁定 192.168.33.33。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。LAC 降至优先级 2。
-
192.168.44.44 仍处于锁定状态,因此 LAC 会将 192.168.44.44 添加到 DestinationsLockedNotContacted 列表中。
-
这是最低首选项级别,但这次 DestinationsLockedNotContacted 列表不为空;它包含 192.168.10.10、192.168.22.22 和 192.168.44.44。LAC 将解锁 DestinationsLockedNotContacted 列表中的所有目标,然后跳回最高优先级别。
-
在优先级 0 时,LAC 会尝试连接到 192.168.10.10,因为它已解锁。LAC 建立会话并向 PPP 客户端报告成功登录。
尽管 LAC 不会尝试联系锁定的目标,但当 LAC 已达到最低优先级时,会出现一种特殊情况。该级别必须具有多个有效目标,并且必须锁定所有目标。例如,假设隧道配置文件包含以下隧道,每个隧道都有一个有效的目标:
-
优先级 0,隧道 1,192.168.10.10
-
优先级 1,隧道 2,192.168.22.22。目标已锁定,锁定计时器当前为 245 秒。
-
优先级 1,隧道 3,192.168.33.33。目标被锁定,锁定计时器当前为 180 秒。
未配置优先级内的故障切换和负载平衡。
当 PPP 用户尝试连接到域时,LAC 的工作方式如下:
-
在最高优先级别 0 下,LAC 选择隧道 1,因为它是该级别中唯一具有有效目标的隧道。LAC 尝试到达 192.168.10.10。
-
此连接尝试失败,因此 LAC 锁定 192.168.10.10。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。
-
LAC 下降到下一级别,即优先级 1,以到达域的目标。此级别的两个有效目标 192.168.22.22 和 192.168.33.33 都已锁定。
-
LAC 会将这两个目标添加到 DestinationsLockedNotContacted 列表中。
-
由于这是最低优先级,因此 LAC 将确定哪个目标的剩余锁定时间更短。它选择 192.168.33.33,因为它的剩余锁定时间(180 秒)短于 192.168.22.22(245 秒)。LAC 解锁 192.168.33.33 并尝试通过隧道 3 进行连接。因此,LAC 还会从 DestinationsLockedNotContacted 列表中删除 192.168.33.33。
-
连接尝试成功,会话已建立到 192.168.33.33。LAC 报告成功登录到 PPP 客户端。
配置优先级内的故障切换时的选择
在首选项 级别内 配置故障切换时,目标和隧道选择过程与默认配置相同,但有一个例外:LAC 不限于在首选项级别上仅尝试一次连接。
当 LAC 尝试连接到未锁定的有效目标但未成功时,它会锁定该目标,但不会立即下降到下一个较低级别。相反,如果另一个未锁定的有效目标在同一首选项级别可用,则 LAC 会尝试连接到该目标。
如果 LAC 未连接,则它将继续尝试到达该首选项级别内的目标,直到不再尝试未锁定的有效目标。此时,LAC 下降以在下一个较低的优先级进行搜索。在每个级别,LAC 都会搜索并尝试连接到有效目标,直到没有可用的未锁定有效目标。
如果 LAC 下拉到最低优先级,并且未找到未锁定的有效目标,则行为取决于 DestinationsLockedNotContacted 列表:
-
如果 DestinationsLockedNotContacted 列表不为空,则 LAC 将解锁 DestinationsLockedNotContacted 列表中的所有目标,并跳回最高优先级并重新启动搜索过程。
-
如果 DestinationsLockedNotContacted 为空,表示已尝试所有有效目标,则 LAC 会向 PPP 客户端报告登录失败。
例如,假设隧道配置文件指定了以下隧道和目标。未配置负载均衡。所有目的地均有效;除 192.168.3.3 外,所有 192.168.3.3 均已解锁。隧道的优先级分配如下:
-
优先级 0,隧道 1,192.168.1.1,未锁定
-
优先级 0,隧道 2,192.168.2.2,已解锁
-
优先级 0,隧道 3,192.168.3.3,锁定计时器 100 秒
-
优先级 1,隧道 4,192.168.4.4,未锁定
-
优先级 1,隧道 5,192.168.5.5,未锁定
在此示例中,当 PPP 用户尝试连接到域时,LAC 的工作方式如下:
-
LAC 在优先级 0 的两个未锁定的有效目标之间随机选择,即 192.168.1.1 通过隧道 1 和 192.168.2.2 通过隧道 2。它选择 192.168.2.2 并尝试通过隧道 2 进行连接。
-
尝试与 192.168.2.2 的连接失败,因此 LAC 将锁定 192.168.2.2。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。
-
然后,LAC 会尝试通过优先级 0 的隧道 1 连接到 192.168.1.1。
-
尝试与 192.168.1.1 的连接失败,因此 LAC 将锁定 192.168.1.1。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。
-
通过隧道 3 的 192.168.3.3 是优先级 0 上唯一剩余的有效目标,但它已锁定。LAC 将 192.168.3.3 添加到 DestinationsLockedNotContacted 列表中。LAC 未将 192.168.1.1 和 192.168.2.2 添加到 DestinationsLockedNotContacted 列表中,因为它在尝试联系它们后将其锁定。
-
由于级别 0 不再有未锁定的有效目标,因此 LAC 下降到下一个级别(优先级别 1),以到达域的目标。
-
在优先级 1,LAC 随机选择 192.168.4.4 并尝试通过隧道 4 进行连接。
-
尝试与 192.168.4.4 的连接失败,因此 LAC 将锁定 192.168.4.4。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。
-
然后,LAC 尝试通过优先级级别 1 的隧道 5 连接到 192.168.5.5。
-
尝试与 192.168.5.5 的连接失败,因此 LAC 将锁定 192.168.5.5。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。1 级不再有未锁定的有效目的地。由于 DestinationsLockedNotContacted 列表不为空,因此 LAC 将解锁列表中的所有目标(在本例中为 192.168.3.3),并跳回最高优先级 0。
-
192.168.3.3 现在是优先级级别 0 下唯一未锁定的目标,因此 LAC 尝试通过隧道 3 连接到它。
-
尝试与 192.168.3.3 的连接失败,因此 LAC 将锁定 192.168.3.3。在此登录尝试期间不会再次考虑它,并且在任何登录尝试中都不会考虑它,直到目标锁定计时器到期。
-
由于级别 0 不再有未锁定的有效目标,因此 LAC 下降到下一个级别,即优先级别 1。
-
优先级 1 没有未锁定的有效目的地。DestinationsLockedNotContacted 为空,因为 LAC 已在两个优先级级别联系所有有效目标。LAC 拒绝来自 PPP 客户端的登录请求。
在多个 LNS 之间分配会话负载时的选择
可以在 LAC 上配置多个隧道配置文件;某些隧道可能共享目标。当 LAC 通过 PPP 用户的会话通过隧道连接到 LNS 时,必须为该用户会话选择一条隧道。隧道选择过程将选择具有最高优先级且具有可到达目的地的隧道。默认情况下,LAC 会从满足相同条件的多个隧道中随机选择一条隧道。或者,您可以配置负载平衡以启用不同的选择选项。这两种负载均衡方法都会影响 LAC 选择的隧道和目标,但选择和故障切换过程在其他方面保持不变。
加权负载平衡和目标等负载平衡是互斥的。您只能启用其中一个。
加权负载平衡
加权负载平衡根据隧道的权重评估隧道。一条隧道的权重由该隧道的最大会话限制和其他隧道在相同优先级下的最大会话限制决定。具有最高会话限制的隧道在该首选项级别中的权重最高。具有下一个最高会话限制的隧道具有下一个最高权重,依此类推。具有最低最大会话限制的隧道具有最低的权重。
隧道选择和会话分配基于概率;负载不是严格按照重量分配的。
配置加权负载平衡时,LAC 仍会在优先级别内随机选择隧道,但平均而言,会话会根据隧道权重跨隧道分布。
通过加权负载平衡,LAC 会在等于优先级中所有隧道的所有会话限制的总和的范围内生成一个随机数。它将范围的一部分(数字池)与与隧道权重成正比的每条隧道相关联。与权重较低的隧道相比,权重较高的隧道与范围的更大部分(较大的池)相关联。当随机数位于其关联的数字池中时,将选择隧道。平均而言,随机数更有可能位于较大的池中,因此权重较高的隧道(较大的池)比权重较低的隧道(池较小)更有可能被选择。
例如,考虑只有两个隧道(1 和 2)的优先级别。隧道 1 的最大限制为 1000 个会话,隧道 2 的最大限制为 2000 个会话,因此总共 3000 个会话。LAC 从 3000 个池中生成一个随机数,范围从 0 到 2999。1000 个数字的池(范围从 0 到 999 的部分)与隧道 1 相关联。一个 2000 个号码池(范围从 1000 到 2999 的部分)与隧道 2 相关联。
-
当生成的数字小于 1000 时,将选择隧道 1,即使其权重 (1000) 低于隧道 2 (2000)。
-
当生成的数字为 1000 或更大时,将选择隧道 2。
由于隧道 2 (2000) 可能生成的编号池是隧道 1 (1000) 的两倍,因此平均 而言,选择隧道 2 的频率是隧道 1 的两倍。
目标等负载平衡
目标等负载平衡根据到目标的会话数和隧道承载的会话数来评估隧道,以便在所有隧道之间平均分配会话负载。会话数最低的目标被视为负载最轻的隧道。此过程在隧道上以最高可用优先级运行,并使用以下准则:
-
当每个隧道都前往单独的目标,并且只有一个目标在所有目标中会话数最低时,LAC 会选择到该目标的隧道。
-
当每个隧道都转到单独的目标,并且多个目标具有相同的最低会话数时,LAC 会从到这些目标的隧道中随机选择一条隧道。
-
当多个隧道访问同一目标,且该目标的目标会话数最低时,LAC 会从这些隧道中选择隧道会话总数最少的隧道。如果所有这些隧道的会话计数都相同,则 LAC 会随机选择其中一个隧道。
请考虑以下方案,以更好地了解启用目标等负载平衡时的隧道选择行为。
在场景 1 中,每条隧道都有不同的有效目标,并且仅评估目标会话计数:
-
隧道 1,优先级 1,192.168.1.1,目标会话计数 = 200
-
隧道 2,优先级 1,192.168.2.2,目标会话计数 = 50
-
隧道 3,优先级 1,192.168.3.3,目标会话计数 = 300
-
隧道 4,优先级 1,192.168.4.4,目标会话计数 = 100
当第一个 PPP 用户尝试连接到域时,LAC 会选择隧道 2,因为它处于最高优先级 1,并且具有有效目标 B,会话数最低,为 50。
当其他 PPP 用户尝试连接到域时,LAC 将按如下方式运行:
-
隧道 2 将继续选择,直到 192.168.2.2 的会话计数等于 100(与隧道 4 中的下一个最低会话计数 192.168.4.4 匹配)。
-
当下一个用户登录时,LAC 会在隧道 2 和隧道 4 之间随机选择,因为它们的目标具有相同的会话计数,并且低于其他目标的会话数。
-
无论从此对中选择哪个隧道,其目标的会话计数现在都是 101。另一个隧道将在下一个订阅者登录时选择,因为它的目标会话计数较低,为 100。这会将其目标会话计数增加到 101,与其他隧道匹配。
-
当用户继续登录时,LAC 将重复此过程,当其会话计数匹配时,在隧道 2 和隧道 4 之间随机选择,然后选择包含下一个用户的另一条隧道,直到其目标会话计数都达到 200,与隧道 1 匹配。
-
当下一个用户登录时,LAC 现在会在隧道 1、隧道 2 和隧道 4 之间随机选择,因为 192.168.1.1、192.168.2.2、192.168.3.3 的会话计数都相同,为 200。所选隧道的目标会话计数将提高到 201,因此对于下一个用户,LAC 会在其他两个隧道之间随机选择。现在,两个隧道的目标会话计数为 201,因此 LAC 为下一个用户选择剩余的隧道。
-
当用户继续登录时,LAC 将重复此过程,当隧道 1、隧道 2 和隧道 4 的会话计数匹配时,在隧道 1、隧道 2 和隧道 4 之间随机选择,在下一个用户的剩余对之间随机选择,然后选择剩余的隧道,以便这三个隧道的目标会话计数再次匹配。此模式一直持续到所有三个隧道的目标会话计数达到 300(与隧道 3 匹配)为止。
-
现在,所有四个隧道的目标具有相同的会话计数。因为只有四个隧道,所以将建立最终模式。LAC 首先在所有四条隧道中随机选择,然后是其余三条隧道,然后是剩余的一对,最后选择最后一条隧道。当目标会话计数全部相同时,LAC 将再次启动此模式。
在场景 2 中,两条隧道共享相同的有效目标。评估隧道会话计数和目标会话计数:
-
隧道 1,优先级 1,隧道会话计数 = 120、192.168.1.1,目标会话计数 = 200
-
隧道 2,优先级 1,隧道会话计数 = 80,192.168.1.1,目标会话计数 = 200
-
隧道 3,优先级 1,192.168.2.2,目标会话计数 = 300
-
隧道 4,优先级 2,192.168.3.3,目标会话计数 = 100
当第一个 PPP 用户尝试连接到域时,LAC 会先在目标之间进行选择。192.168.1.1 和 192.168.2.2 的隧道均处于优先级 1。LAC 选择 192.168.1.1,因为它的会话计数 (200) 低于 192.168.2.2 (300)。然后,LAC 必须在隧道 1 和隧道 2 之间进行选择,因为两者都转到 192.168.1.1。LAC 评估隧道会话计数。隧道 2 的计数 (80) 低于隧道 1 (120),因此 LAC 会为第一个用户选择隧道 2。
当其他 PPP 用户尝试连接到域时,LAC 将按如下方式运行:
-
隧道 2 将继续被选中,直到其隧道会话计数增加到 120(与隧道 1 匹配)。
-
当下一个用户登录时,LAC 会在隧道 1 和隧道 2 之间随机选择,因为它们具有相同的隧道会话计数。所选隧道的隧道会话计数将提高到 121。
-
当下一个用户登录时,LAC 会选择通往 192.168.1.1 的另一条隧道,因为它的隧道会话计数较低。从此时开始,LAC 继续交替,首先在隧道 1 和 2 之间进行随机选择,然后选择另一条隧道,直到目标会话计数增加到 300,与隧道 3 中 192.168.2.2 的会话计数匹配。(此时,隧道 1 和隧道 2 的隧道会话计数均为 150。)
-
对于下一个用户,LAC 会在隧道 1、2 和 3 之间随机选择。
-
如果 LAC 选择隧道 1 或隧道 2,则 192.168.1.1 会话计数将上升到 301。因此,LAC 为下一个用户选择隧道 3,因为 192.168.2.2 会话计数仍为 300。此时,两个目标的会话计数再次相同。
-
如果 LAC 选择隧道 3,则 192.168.2.2 会话计数将增加到 301。对于下一个用户,LAC 会在隧道 1 和隧道 2 之间随机选择,因为它们都转到 192.168.1.1。无论 LAC 选择哪一个,192.168.1.1 会话计数都会增加到 301。此时,两个目标的会话计数再次相同。
注意:不再评估隧道 1 和 2 的隧道会话计数;LAC 仅考虑 192.168.1.1 和 192.168.2.2 的目标会话计数。
此模式将延续到所有后续订阅者。
-
在场景 3 中,每条隧道都有不同的有效目标,并且仅评估目标会话计数:
-
隧道 1,优先级 1,192.168.1.1,目标会话计数 = 100
-
隧道 2,优先级 1,192.168.2.2,目标会话计数 = 100
-
隧道 3,优先级 1,192.168.3.3,目标会话计数 = 100
-
隧道 4,优先级 1,192.168.4.4,目标会话计数 = 100
当第一个 PPP 用户尝试连接到域时,LAC 将确定优先级上所有四个隧道的所有目标的目标会话计数相同。因此,LAC 会在四个隧道中随机选择。
假设 LAC 为第一个用户选择隧道 1。
当其他 PPP 用户尝试连接到域时,LAC 将按如下方式运行:
-
LAC 在隧道 2、3 和 4 之间随机选择,因为目标 192.168.2.2、192.168.3.3 和 192.168.4.4 的会话计数都相同,即 100,低于 192.168.1.1、101 的当前会话计数。
-
假设 LAC 选择隧道 2。对于下一个用户,LAC 会在隧道 3 和 4 之间随机选择,因为 192.168.3.3 和 192.168.4.4 的会话计数都相同,即 100,低于 192.168.1.1 和 192.168.2.2 的当前会话计数 101。
-
假设 LAC 选择隧道 3。对于下一个用户,LAC 选择隧道 4,因为 192.168.4.4 的会话计数为 100,所有其他目标的会话计数为 101。
-
现在,所有四个隧道的目标具有相同的会话计数。因为只有四个隧道,所以将建立最终模式。当用户继续登录时,LAC 首先在所有四个隧道中随机选择,然后是其余三个隧道,然后是剩余的一对,最后选择最后一个隧道。当目标会话计数全部相同时,LAC 将再次启动此模式。
在场景 4 中,LAC 会评估目标会话限制和隧道最大会话限制:
-
隧道 1,优先级 1,192.168.1.1,目标会话计数 = 30,隧道最大会话限制 = 200
-
隧道 2,优先级 1,192.168.2.2,目标会话计数 = 40,隧道最大会话限制 = 200
-
隧道 3,优先级 1,192.168.3.3,目标会话计数 = 300,隧道最大会话限制 = 1000
-
隧道 4,优先级 2,192.168.4.4,目标会话计数 = 100
当第一个 PPP 用户尝试连接到域时,LAC 会选择隧道 1,因为 192.168.1.1 的会话计数在优先级中最低。
当其他 PPP 用户尝试连接到域时,LAC 将按如下方式运行:
-
LAC 将继续选择隧道 1,直到 192.168.1.1 的目标会话计数等于 40,与隧道 2 中 192.168.2.2 的计数匹配。
-
当下一个用户登录时,LAC 会在隧道 1 和隧道 2 之间随机选择,因为它们的目标具有相同的会话计数,并且低于隧道 3 (300) 的会话数。
-
无论从此对中选择哪个隧道,其目标的会话计数现在都是 41。另一个隧道将在下一个用户登录时选择,因为它的目标会话计数较低,为 40。这会将其目标会话计数增加到 41,与其他隧道匹配。
-
当用户继续登录时,LAC 会重复此过程,当其会话计数匹配时,在隧道 1 和隧道 2 之间随机选择,然后选择另一个包含下一个用户的隧道,直到其目标会话计数均达到 200,从而匹配其隧道最大会话限制 200。由于两个隧道均已达到其最大会话限制,因此无法进行选择。
-
当用户继续登录时,LAC 会选择首选项级别隧道 3 中的剩余隧道,直到其目标的会话计数达到隧道的最大会话限制 1000。
-
当下一个用户登录时,LAC 将下降到下一个优先级并选择隧道 4,因为它是此级别的唯一隧道。
-
当用户继续登录时,LAC 将继续选择隧道 4,因为未为此隧道配置最大会话限制。只有当该级别的一个隧道的会话终止时,LAC 随后才能选择该级别较高隧道,从而将其会话计数降至最大限制以下。
在场景 5 中,其中一个目标已锁定:
-
隧道 1,优先级 1,192.168.1.1,目标会话计数 = 100,目标锁定
-
隧道 2,优先级 1,192.168.2.2,目标会话计数 = 200
-
隧道 3,优先级 1,192.168.3.3,目标会话计数 = 250
当第一个 PPP 用户尝试连接到域时,LAC 无法选择隧道 1,即使其目标的会话计数最低,因为隧道处于目标锁定状态。在隧道 1 脱离锁定状态之前,无法将其考虑在内。LAC 选择隧道 2,因为 192.168.2.2 的会话计数低于 192.168.3.3。
当其他 PPP 用户尝试连接到域时,接下来会发生什么取决于 192.168.1.1 何时从锁定状态中出现。只要 192.168.1.1 被锁定,LAC 就会按如下方式进行选择:
-
LAC 将继续选择隧道 2,直到 192.168.2.2 的会话计数等于 250,与隧道 3 中 192.168.3.3 的计数匹配。
-
当下一个用户登录时,LAC 会在隧道 2 和隧道 3 之间随机选择,因为它们的目标具有相同的会话计数,即 250。
-
无论从此对中选择哪个隧道,其目标的会话计数现在都是 251。另一个隧道将在下一个用户登录时选择,因为它的目标会话计数较低,为 250。这会将其目标会话计数增加到 251,与其他隧道匹配。
-
当用户继续登录时,LAC 会重复此过程,当其会话计数匹配时,在隧道 2 和隧道 3 之间随机选择,然后选择另一个有下一个用户的隧道。
每当 192.168.1.1 从锁定状态中出现时,LAC 都会为下一个用户选择隧道 1,因为 192.168.1.1 的会话计数最低。LAC 将继续执行此作,直到 192.168.1.1 的会话计数与其他任一目标的当前会话计数匹配。从那时起,LAC 轮流在目标会话计数匹配的隧道之间进行随机选择,然后选择计数最低的隧道。
每当 192.168.1.1 从锁定状态出现时,
-
LAC 为下一个用户选择隧道 1,因为 192.168.1.1 的会话数最低。
-
LAC 将继续选择隧道 1,直到 192.168.1.1 的会话计数与其他任一目标的当前会话计数匹配。
-
从那时起,LAC 轮流在目标会话计数匹配的隧道之间进行随机选择,然后选择计数最低的隧道。
L2TP 会话限制概述
当启动 L2TP 会话请求时,LNS 或 LAC 会根据机箱、隧道、隧道组、客户端(请求主机设备)或客户端组允许的最大会话数检查当前活动会话数。当达到配置的会话限制时,新会话请求将被拒绝。
当请求会话时,LNS 按以下顺序检查会话限制:
机箱>隧道>隧道组>会话限制组>客户端
在每个级别,LNS 确定当前会话计数是否小于配置的限制。当为 true 或未配置限制时,检查通过,LNS 继续检查下一个级别。如果在任何级别上,当前会话计数等于配置的限制,则 LNS 将拒绝会话请求,并且不会检查任何其他级别。否则,可以建立会话。
当现有隧道的会话请求被拒绝时,将返回一条呼叫-断开-通知 (CDN) 消息,其结果代码和错误代码均设置为 4,以响应来电请求 (ICRQ)。当被拒绝的请求针对新隧道时,将建立隧道,但会话无法启动,从而导致隧道因没有会话而关闭。
LAC 执行相同的检查,但仅针对机箱和隧道级别执行。LAC 通过向客户端返回 PPP 终止消息来拒绝请求。
您可以为机箱、所有隧道、隧道组、一组客户端或单个客户端配置会话限制。以下场景描述了会话限制的不同配置会发生什么情况。
场景 1: 机箱限制
在 表 1 中,当前的 L2TP 会话计数为 10,000,每个级别的会话限制配置为 10,000。请求新会话时,机箱级别的第一次检查将失败,因为当前会话计数与配置的限制匹配。不会在其他级别执行进一步的检查,并且会话请求将被拒绝。在当前会话计数降至 10,000 以下之前,任何级别都不允许新会话。
级别 |
配置的会话限制 |
命令显示 |
会话限制检查结果 |
|---|---|---|---|
机箱 |
10,000 |
10,000 |
失败 |
隧道 A |
10,000 |
10,000 |
– |
隧道组 B |
10,000 |
10,000 |
– |
会话限制组 |
10,000 |
10,000 |
– |
客户端 |
10,000 |
10,000 |
– |
场景 2:隧道限制
在 表 2 中,当前的 L2TP 会话计数为 2000。请求新会话时,机箱级别的第一次检查将通过,因为配置的限制允许机箱上最多有 10,000 个会话,但当前只有 2000 个会话处于活动状态。隧道级别的下一次检查失败,因为当前会话计数与为隧道 A 配置的 2000 个隧道限制匹配。
不会在其他级别执行进一步的检查,并且会话请求将被拒绝。
级别 |
配置的会话限制 |
命令显示 |
会话限制检查结果 |
|---|---|---|---|
机箱 |
10,000 |
2000 |
通行证 |
隧道 A |
2000 |
2000 |
失败 |
隧道组 B |
10,000 |
2000 |
– |
会话限制组 |
6000 |
2000 |
– |
客户端 |
6000 |
2000 |
– |
在 隧道 A 的当前会话计数降至 2000 以下并且会话检查可以通过之前,不允许在 A 上新增会话。如果发生这种情况,则其他级别检查在此方案中通过,因为它们配置的限制大于其当前计数。
2000 的会话限制适用于所有隧道;也就是说,每个活动隧道都有 2000 个会话的独立限制。一个隧道发生故障不会影响其他隧道。只要该隧道的当前会话计数小于 2000,任何其他隧道上的会话请求就会通过。
场景 3:隧道组限制
在 表 3 中,当前的 L2TP 会话计数为 2000。请求新会话时,机箱级别的第一次检查将通过,因为配置的限制允许机箱上最多有 10,000 个会话,但当前只有 2000 个会话处于活动状态。出于同样的原因,隧道级别的第二次检查也通过了。在隧道组级别对隧道组 B 进行的下一次检查失败,因为隧道组 B 的当前会话计数与配置的隧道组限制 2000 匹配。
不会在其他级别执行进一步的检查,并且会话请求将被拒绝。
级别 |
配置的会话限制 |
命令显示 |
会话限制检查结果 |
|---|---|---|---|
机箱 |
10,000 |
2000 |
通行证 |
隧道 A |
10,000 |
2000 |
通行证 |
隧道组 B |
2000 |
2000 |
失败 |
会话限制组 |
6000 |
2000 |
– |
客户端 |
6000 |
2000 |
– |
在组 B 的当前会话计数低于 2000 并且会话检查可以通过之前隧道不允许在组 B 上添加新会话。如果发生这种情况,则其他级别检查可以通过,因为它们配置的限制大于其当前计数。
对于隧道组,会话限制是按组配置的;也就是说,您不能指定适用于所有隧道组的单个限制。任何隧道组发生故障都不会影响其他隧道组。在这种情况下,如果任何其他隧道组的当前会话计数小于其配置的会话限制,则该组上的会话请求将通过。
场景 4:会话限制组限制
在 表 4 中,当前的 L2TP 会话计数为 6000。请求新会话时,机箱、隧道和隧道组的检查将通过,因为为每个会话配置的限制最多允许 10,000 个会话,但当前只有 6000 个会话处于活动状态。会话限制组的检查失败,因为会话限制组 slg1 的当前会话计数与配置的限制 6000 匹配。
不会在剩余级别执行进一步的检查,并且会话请求将被拒绝。
级别 |
配置的会话限制 |
命令显示 |
会话限制检查结果 |
|---|---|---|---|
机箱 |
10,000 |
6000 |
通行证 |
隧道 A |
10,000 |
6000 |
通行证 |
隧道组 B |
10,000 |
6000 |
通行证 |
会话限制组 slg1 |
6000 |
6000 |
失败 |
客户端 |
8000 |
2000 |
– |
在会话限制组 slg1 中的任何客户端都不允许新会话,直到该组的当前会话计数降至 6000 以下并且会话检查可以通过。如果发生这种情况,则剩余级别检查可以通过,因为其配置的限制大于其当前计数。
您可以通过移除或添加客户端来重新配置会话限制组,而不会影响任何当前会话。重新配置确实会影响可供客户端组建立的会话数。
如果删除客户端,则可以建立的新会话数将增加该客户端的当前会话数。
如果添加客户端,则可以建立的新会话数将减少该客户端的当前会话数。现有客户端加上新客户端的新当前会话总数可能会超过为会话限制组配置的限制。在这种情况下,不会丢弃任何会话,但在会话计数降至配置的组限制以下之前,无法建立新会话。
要进一步探索这一点,请考虑以下事件序列:
会话限制组 slg1 有两个客户端,当前会话计数为 3500 的 ent1-serviceA 和当前会话计数为 0 的 ent1-serviceB。由于组 slg1 的限制为 6000,因此不能为以下客户端添加超过 2500 个会话:
6000 - 3500 = 2500
然后为客户端 ent1-service B 登录 1000 个会话。现在,为以下客户端添加的会话不超过 1500 个:
6000 - (3500 + 1000) = 1500
接下来,假设您从会话限制组中删除客户端 ent1-serviceA。组会话容量增加到 5000 个会话:
6000 - 1000 = 5000
最后,将新客户端 ent1-serviceC 添加到会话限制组。这个新客户端目前有 8000 个活动会话。在这种情况下,会话限制组现在有 9000 个会话:
1000 + 8000 = 9000
即使超过组的最大会话限制 6000,也不会丢弃任何会话。在会话计数从 9000 降至 6000 以下之前,无法添加新会话。
方案 5:单个客户端限制
在 表 5 中,机箱、隧道和隧道组的会话检查通过,因为它们配置的限制大于其当前会话计数。客户端 ent1-serviceA 不属于会话限制组。客户端的限制检查失败,因为其当前会话计数与配置的限制 6000 匹配。
级别 |
配置的会话限制 |
命令显示 |
会话限制检查结果 |
|---|---|---|---|
机箱 |
10,000 |
6000 |
通行证 |
隧道 A |
10,000 |
6000 |
通行证 |
隧道组 B |
8000 |
6000 |
通行证 |
客户端 ent1-serviceA |
6000 |
6000 |
失败 |
在此客户端的当前会话计数降至 6000 以下并且会话检查可以通过之前,不允许此客户端进行新会话。任何独立客户端的故障都不会影响其他客户端。在此方案中,如果任何其他独立客户端的当前会话计数小于其配置的会话限制,则该客户端的会话请求将通过。
您为不属于会话限制组的单个客户端设置的会话限制将以每个隧道组为基础应用。具有相同源主机名但不同源 IP 地址的多个 LAC 将被视为同一客户端。
假设您有三个 LAC:A、B 和 C。这三个主机都具有相同的源主机名 ce-lac。LAC A 和 LAC B 通过与隧道组 1 关联的网关地址与 LNS 建立会话。LAC C 通过与隧道组 2 关联的不同网关建立会话。由于 LAC 的主机名相同,因此这三者的客户端配置也相同。但是,由于存在隧道组,客户端会话限制对 LAC 的应用方式不同。
假设客户端会话限制为 100。由于 LAC A 和 LAC B 都在隧道组 1 中创建会话,因此它们必须共享客户端限制。这意味着 LAC A 和 LAC B 允许的会话总数为 100。
LAC C 在不同的隧道组 2 中创建会话。由于客户端会话限制适用于每个隧道组,因此无论 LAC A 和 LAC B 已建立多少会话,都允许 LAC C 有 100 个会话。
限制 LAC 或 LNS 允许的 L2TP 会话数
您可以限制机箱、所有隧道、隧道组、一组客户端、单个客户端或者单个服务接口或聚合服务接口允许的最大 L2TP 会话数。当达到配置的会话限制时,LNS 或 LAC 将拒绝新会话请求。当达到最大机箱限制时,即使未超过配置的限制,会话请求也会被拒绝。可配置的会话限制可以对客户在多个位置通过 LAC 连接时可以拥有的会话数进行精细控制。
您不能将限制设置为超过机箱的默认最大限制。
要限制机箱(LAC 或 LNS)上允许的会话数:
配置最大会话数。
[edit services l2tp] user@host# set maximum-sessions number
要限制所有隧道(LAC 或 LNS)的每条隧道的会话数:
配置最大会话数。
[edit services l2tp tunnel ] user@host# set maximum-sessions number
您不能将限制设置为超过 65,535 个会话。
要限制特定隧道组 (LNS) 中所有隧道的会话数:
配置最大会话数。
[edit services l2tp tunnel-group tunnel-group-name] user@host# set maximum-sessions number
要限制单个服务接口上允许的会话数:
配置最大会话数。
[edit interfaces si-slot/pic/port] user@host# set l2tp-maximum-session number
要限制单个聚合服务接口上允许的会话数:
配置最大会话数。
[edit interfaces asinumber] user@host# set l2tp-maximum-session number
注意:该配置适用于所有成员接口;不能为聚合服务接口的单个成员接口配置此限制。
要限制一组客户端 (LNS) 的会话数:
要限制不是会话限制组 (LNS) 成员的客户端的会话数:
配置最大会话数。
[edit access profile profile-name client client-name] user@host# set maximum-sessions number
将任何级别的会话限制配置为小于该级别当前存在的会话数不会影响现有会话。仅当会话数低于新限制时,新限制才适用。
您可以使用命令 show services l2tp summary extensive 显示为隧道配置的会话数限制:
user@host> show services l2tp tunnel extensive
...
Max sessions: 32000, Window size: 4, Hello interval: 60
...
显示的已配置会话限制设置为以下已配置会话值中的最低值:
全局(机箱)—(LAC 和 LNS)
set services l2tp tunnel maximum-sessionsnumber隧道配置文件(单个隧道)—(LAC 和 LNS)
set access tunnel-profile profile-name tunnel tunnel-idmax-sessionsnumber]RADIUS—(LAC 和 LNS)VSA 26–33 的值,tunnel-max-sessions
主机配置文件—(仅限 LNS)
set access profile profile-name client client-name l2tp maximum-sessions-per-tunnel
配置的值确定从以下 Junos OS 版本开始的字段值:19.2R3、19.3R3、19.4R3、20.1R2、20.2R2 和 20.3R1。在早期版本中,该字段显示 LNS 的主机配置文件值,但 LAC 的固定值为 512,000。
在 GRES、统一 ISSU 或重新启动 jl2tpd 进程后,只有在隧道上启动新会话后,此字段的值才准确。在此之前,该字段显示的值为 65,535,而不是配置的值。
假设您有两个隧道,隧道 A 和隧道 B。进行 GRES,每条隧道的字段显示 65,535。当隧道 B 上启动新会话时,该隧道的值将更新为配置的值。对于隧道 A,该字段将继续显示 65,535,直到该隧道获得新会话。
设置隧道名称的格式
默认情况下,隧道的名称对应于 AAA 服务器返回的 Tunnel-Assignment-Id [82]。您可以选择性地将 LAC 配置为在构造隧道名称 assignment-id-format client-server-id 时使用更多元素,方法是在层次结构级别包含 [edit services l2tp tunnel] 该语句。此格式使用三个属性:tunnel-client-auth-id [90]、tunnel-server-endpoint [67] 和 tunnel-assignment-id [82]。这些属性分别对应于隧道配置文件中为 LAC(源网关)名称、LNS 上的隧道端点(远程网关)地址和隧道 ID 配置的值。
这种 client-server-id 格式的结果是,当AAA服务器返回与之前返回的 Tunnel-Client-Auth-ID 不同的 Tunnel-Client-Auth-Id 时,LAC 会自动创建一个新隧道。
在降级到不支持此语句的 Junos OS 版本之前,建议您在层次结构级别包含[edit services l2tp tunnel]该no assignment-id-format assignment-id语句,以显式取消配置该功能。
要更改隧道名称的格式:
配置格式。
[edit services l2tp tunnel] user@host# set assignment-id-format client-server-id
为用户访问配置隧道配置文件
隧道配置文件指定一组属性来描述隧道。该配置文件可以通过域映射应用,也可以在创建隧道时自动应用。
RADIUS 属性和 VSA 可以覆盖域映射中的隧道配置文件配置的值。在没有域映射的情况下,RADIUS 可以提供隧道的所有特征。以下过程中的步骤列出了可在 RADIUS 服务器上配置以修改或配置隧道配置文件的相应标准 RADIUS 属性或 VSA。
RADIUS 提供的属性通过属性中携带的标记与隧道相关联,该标记与隧道标识符匹配。标记 0 表示未使用该标记。如果 L2TP 收到标记为 0 的 RADIUS 属性,则无法将该属性与与隧道域对应的订阅者域对应的隧道配置文件配置合并,因为隧道配置文件无法提供 0 的隧道标记(隧道标识符)。仅支持 1 到 31 范围内的标记。
要为隧道配置文件配置隧道定义:
以下示例显示了隧道配置文件的完整配置:
tunnel-profile marketing {
tunnel 1 {
preference 5;
remote-gateway {
address 198.51.100.4;
gateway-name work;
}
source-gateway {
address 192.0.2.10;
gateway-name local;
}
secret $ABC123;
logical-system bos-metro-5;
routing-instance rox-12-32;
medium ipv4;
type l2tp;
identification tunnel_to_work;
max-sessions 32;
nas-port-method cisco avp;
}
}
配置 L2TP LAC 隧道选择参数
当 LAC 确定应通过隧道传输 PPP 会话时,它会从与 PPP 用户或 PPP 用户的域相关联的隧道集中选择一条隧道。您可以配置隧道的选择方式,以及是否由 LAC 向 LNS 发送某些信息。
要配置隧道选择参数:
在优先级内配置 LAC 隧道选择故障切换
您可以配置在连接失败的情况下如何继续选择 LAC 隧道。默认情况下,当路由器无法连接到给定首选项级别的目标时,它会尝试在下一个较低级别进行连接。您可以指定路由器改为尝试连接到与失败尝试处于相同级别的另一个目标。
如果某个优先级的所有目标都标记为不可达,则路由器不会尝试连接到该级别的目标。它下降到下一个较低的优先级以选择目标。
如果所有优先级的所有目标都标记为不可访问,则路由器会选择首先失败的目标并尝试建立连接。如果连接失败,路由器将拒绝 PPP 用户会话,而不尝试联系远程路由器。
例如,假设一个域有四个隧道:A、B、C 和 D。所有隧道都被视为可访问,并且分配优先级如下:
优先级 0 的 A 和 B
优先级 1 的 C 和 D
当路由器尝试连接到域时,假设它从优先级 0 中随机选择隧道 B。如果无法连接到隧道 B,则路由器会在五分钟内排除隧道 B,并尝试连接到隧道 A。如果此尝试也失败,则路由器将降至优先级 1。然后假设路由器选择隧道 C。如果也无法连接到隧道 C,则路由器会在五分钟内排除隧道 C,并尝试连接到隧道 D。
您可以在隧道配置文件或 RADIUS 隧道优先级 [83] 属性中配置用于此隧道选择方法的优先级别。
要在首选项级别内启用隧道选择故障切换:
在首选项中指定故障切换。
[edit services l2tp] user@host# set failover-within-preference
为 LAC 隧道会话配置加权负载均衡
默认情况下,L2TP LAC 会从最高可用优先级别内随机为新会话选择隧道。您可以通过评估每条隧道的权重,将 LAC 配置为以最高的可用优先级跨隧道分配会话。此方法称为 加权负载平衡。一条隧道的权重与其最大会话限制以及同一优先级下其他隧道的最大会话限制成正比。配置加权负载平衡时,LAC 仍会在优先级别内随机选择隧道,但平均而言,会话会根据隧道权重分布在隧道之间。
要配置加权负载平衡,请执行以下作:
指定负载平衡。
[edit services l2tp] user@host# set weighted-load-balancing
为 LAC 隧道会话配置目标等负载均衡
默认情况下,L2TP LAC 会从最高可用优先级别内随机为新会话选择隧道。从 Junos OS 15.1 版开始,您可以通过评估到目标的会话数和隧道承载的会话数,将 LAC 配置为以最高的可用优先级在所有隧道之间平均分配会话。这种分配方法称为 目标等负载平衡。LAC 根据以下准则选择负载最轻的隧道:
当每个隧道都前往单独的目标,并且只有一个目标在所有目标中会话数最低时,LAC 会选择到该目标的隧道。
当每个隧道都转到单独的目标,并且多个目标具有相同的最低会话数时,LAC 会从到这些目标的隧道中随机选择一条隧道。
当多个隧道访问同一目标,且该目标的目标会话数最低时,LAC 会从这些隧道中选择隧道会话总数最少的隧道。如果所有这些隧道的会话计数都相同,则 LAC 会随机选择其中一个隧道。
要配置目标等负载平衡,请执行以下作:
指定目标等负载平衡。
[edit services l2tp] user@host# set destination-equal-load-balancing
为 IPv6 服务启用 LAC
您可以将 LAC 配置为在将用户通过隧道连接到 LNS 时创建 IPv6 地址族 (inet6)。然后,LAC 上的服务可将 IPv6 防火墙过滤器应用于订阅者流量。默认情况下,LAC 只需要家族 inet 即可启用转发到 IP 隧道。LAC 可以将 IPv4 防火墙过滤器应用于会话。即使 family inet6 包含在动态配置文件中,默认情况下也不会创建它以节省资源,因为不需要它。因此,无法应用 IPv6 防火墙过滤器。
要启用 IPv6 地址族创建和 IPv6 防火墙过滤器应用,请执行以下作:
配置启用。
[edit services l2tp] user@host# set enable-ipv6-services-for-lac
您可以使用该 show services l2tp summary 命令显示语句是启用还是禁用。
从 LAC 测试 L2TP 隧道配置
您可以在 LAC 上测试 L2TP 隧道配置,并在不调出 PPP 用户和关联隧道的情况下测试成功的用户身份验证和隧道。
从 CLI作模式下发出 test services l2tp tunnel 命令,将用户映射到 L2TP 隧道,验证 L2TP 隧道配置(本地在 LAC 上和后端服务器(如 RADIUS 服务器)上),并验证是否可以通过远程 LNS 建立来自 LAC 的 L2TP 隧道。
通过 Junos OS LAC 实施,您可以配置多个隧道,其中一个隧道会选择一个隧道用于为 PPP 用户建立隧道。您可以使用该 test services l2tp tunnel 命令测试所有可能的隧道配置,以验证是否可以建立每个配置。或者,您可以仅为订阅者测试特定隧道。
发出命令时,必须指定配置的用户名。测试会为订阅者生成一个虚拟密码 testpass,您也可以选择性地指定密码。该测试验证是否可以根据隧道配置对由该用户名标识的用户隧道进行隧道传输。如果可以对用户进行隧道传输,则测试将验证是否可以根据 L2TP 配置与 LNS 建立 L2TP 隧道。
您可以选择指定隧道 ID,在这种情况下,仅测试该隧道;必须已为该用户名配置隧道。如果省略此选项,则测试将应用于为用户名返回的完整隧道配置集。您指定的隧道 ID 与 Tunnel-Assignment-Id(RADIUS 属性 82)使用的 ID 相同,并且由 identification 隧道配置文件中的语句指定的 ID 相同。
要测试用户身份验证和隧道配置:
仅指定用户名。
示例 1:
user@host> test services l2tp tunnel user test-user1@example.com Subscriber: test-user1@example.com, authentication failed
用户使用生成的密码进行身份验证失败,因此未通过隧道传输。
示例 2:
user@host> test services l2tp tunnel user user23@example.com Subscriber: user23@example.com, authentication success, l2tp tunneled Tunnel-name Tunnel-peer Logical-System Routing-Instance Status test1tunnel 192.168.2.3 default default Up test2tunnel 192.168.30.3 default default Peer unresponsive test3tunnel 192.168.50.1 default test Up
此用户已使用生成的密码进行身份验证,并成功建立隧道。发现一组隧道与该用户名相关联,并对整个隧道集进行了测试。
指定用户名和用户配置的密码。
user@host> test services l2tp tunnel user test-user1@example.com password grZ98#jW Subscriber: test-user1@example.com, authentication success, locally terminated
订阅者已通过身份验证。但是,用户在本地终止,而不是通过隧道终止;这意味着未发现任何与用户关联的隧道。
为用户指定用户名和特定隧道。
user@host> test services l2tp tunnel user rx37w@example.com tunnel-name ce-lac Subscriber: rx37w@example.com, authentication success, l2tp tunneled Tunnel-name Tunnel-peer Logical-System Routing-Instance Status ce-lac 192.168.5.10 default default Up
用户已通过身份验证并建立隧道。已为用户找到指定的隧道,并已建立隧道,确认隧道配置。
指定用户名、用户配置的密码和隧道。
user@host> test services l2tp tunnel user fanta4-mfg-fan@example.com password dieda499 tunnel-name tunnel5 Subscriber: fanta4-mfg-fan@example.com, authentication success, l2tp tunneled
用户已通过身份验证并建立隧道。输出中没有隧道信息表示指定的隧道配置不存在。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。