Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

针对订阅者访问的 L2TP 概述

针对订阅者访问的 L2TP 概述

第 2 层通道协议 (L2TP) 是一种客户端服务器协议,允许跨网络对点到点协议 (PPP) 建立隧道。L2TP 封装第 2 层数据包(如 PPP),以在网络中传输。在接入设备上配置的 L2TP 访问集中器 (LAC) 从远程客户端接收数据包,将其转发至远程网络的 L2TP 网络服务器 (LNS)。LNS 用作由 LAC 从远程客户端隧道发送的 PPP 会话的逻辑终止点。 图 1 显示了简单的 L2TP 拓扑。

图 1:典型的 L2TP 拓扑 Typical L2TP Topology

L2TP 将电缆或 xDSL 等接入技术的终止从 PPP 终止和后续网络访问分开。这样的分离使公共 ISP 能够将其接入技术外包给竞争性本地交换运营商 (CLEC)。L2TP 让 ISP 可提供 VPN 服务;私营企业可减少或避免对远程工作者的接入技术投资。

您可以将路由器配置为 PPP 通过模式下的 LAC,其中 LAC 从远程客户端接收数据包,然后第 2 层直接将其转发至 LNS。PPP 会话在 LNS 上终止。此 LAC 实施仅支持通过动态或静态逻辑接口的以太网点到点协议 (PPPoE) 订阅者。 图 2 显示了 L2TP 通过连接的协议层堆栈。

图 2:通过模式中的 L2TP 订阅者的协议堆栈 Protocol Stacking for L2TP Subscribers in Pass-Through Mode
注意:

在 MX 系列路由器上,只有 MPC 才支持 LAC 和 LNS 功能;它们不受任何服务 PIC 或 MS-DPC支持。有关 L2TP 的 MPC 支持的详细信息,请参阅 MX 系列接口模块参考

某些M Series路由器支持服务 PIC 上的 LNS 功能。有关这些路由器上的 L2TP 实施M Series,请参阅 L2TP 服务配置概述

LAC 根据协议身份验证参数AAA创建隧道,然后通过 IP/用户数据报协议 (UDP) 将 L2TP 数据包传输至 LNS。流量在 L2TP 中传输 session ;隧道是一个或多个会话的聚合。您还可以配置域映射,由 AAA来确定是隧道还是终止 LAC 上的 PPPoE 用户。每个通过隧道到 LNS 的 PPP 用户与 L2TP 会话之间存在一对一映射。

当 LNS 是 MX 系列路由器时,MPC 上面向 LAC 的对等接口将提供一个 IP 地址,用于隧道端点之间交换 IP 数据包;路由引擎维护 L2TP 隧道。该数据包转发引擎托管一个或多个内联服务 ( si ) 接口。这些接口像虚拟物理接口一样 运行,在 LNS 上锚定 L2TP 会话。该 si 接口支持 L2TP 服务,无需特殊服务 PIC。最后,还使用另一个接口将用户数据从互联网传输至互联网。

通道的特性可能源于您配置的隧道配置文件,或源自您可以在 LAC 访问的 AAA 服务器中的 RADIUS 隧道属性和供应商特定属性 (VSA)。您可以在域映射中包括隧道配置文件,该配置文件在RADIUS之前应用隧道配置文件。您可以使用标准RADIUS VSA 来替代域图中隧道配置文件配置的任何或所有特征。或者,RADIUS在 RADIUS 登录中指定 RADIUS 通道组 VSA [26-64] 时,系统本身也可以应用RADIUS配置文件。

注意:

GRE 隧道不支持 L2TP。

服务提供商 AAA 服务器上订阅者配置文件中的虚拟路由器 VSA [26-1] 用于确定 LNS 上启动 L2TP 会话的路由实例。不存在此 VSA 时,订阅者会话会与隧道在同一路由实例中启动,因为 AAA 服务器只能从隧道终止 LNS 的路由实例访问。

此行为与 DHCP 和非隧道 PPPoE 订阅者不同,在缺少虚拟路由器 VSA 的情况下在默认路由实例中出现。对于 L2TP 订阅者,当您希望订阅者会话在路由实例与隧道路由实例不同时,您必须将此 VSA 包括到订阅者配置文件中。

从 Junos OS版本17.4R1开始,LNS 向 RADIUS 服务器发送访问请求消息时,包括以下RADIUS属性:

  • 隧道类型 (64)

  • 通道介质类型 (65)

  • 隧道客户端-端点 (66)

  • 隧道-服务器端点 (67)

  • Acct-Tunnel-Connection (68)

  • 隧道分配 ID (82)

  • Tunnel-Client-Auth-Id (90)

  • 隧道-服务器-身份验证 Id (91)

在早期版本中,LNS 仅在其发送给该服务器会计记录RADIUS属性。在访问请求消息中,它们可用于在RADIUS上关联从 LAC 到 LNS 的会话。

LAC 支持RADIUS的镜像,该镜像基于某些 RADIUS VSA 创建安全策略,并使用 RADIUS 属性识别镜像流量的订阅者。(MX 系列路由器上配置的 LNS 不支持此功能。)

LAC 和 LNS 支持统一 ISSU。启动升级时,LAC 将完成进行的任何 L2TP 协商,但拒绝任何新的协商,直到升级完成。升级期间未建立新隧道或会话。升级期间会记录订阅者注销,升级完成后完成。

L2TP 术语

表 1 描述了 L2TP 的基本术语。

表 1:L2TP术语

术语

描述

AVP

属性值对 (AVP)—唯一属性的组合(由整数表示)以及包含由属性识别的实际值的值。

远程系统与 LAC 之间的连接(或尝试连接)。

LAC

L2TP 访问集中器 (LAC) — 一个节点,作为 L2TP 通道端点的一侧,是 LNS 的对等方。LAC 位于 LNS 和远程系统之间,将数据包转发至和转发给每个系统。

LNS

L2TP 网络服务器 (LNS) — 一个节点,作为 L2TP 通道端点的一侧,是 LAC 的对等方。LNS 是由 LAC 通过远程系统通过远程系统建立通道的 PPP 连接的逻辑终止点。

同行

在 L2TP 环境中,LAC 或 LNS。LAC 的对等方是 LNS,反之亦然。

代理身份验证

由 LAC 代表 LNS 执行的 PPP 预认证。代理数据由 LAC 发送至包含身份验证类型、认证名称和认证挑战等属性的 LNS。LNS 会通过认证结果做出响应。

代理 LCP

由 LAC 代表 LNS 执行的链路控制协议 (LCP) 协商。代理由 LAC 发送至包含属性(例如从客户端发送和接收的最后配置属性)的 LNS。

远程系统

连接到远程访问网络的终端系统或路由器,是呼叫发起方或接收者。

会话

在远程系统和 LNS 之间建立端到端 PPP 连接时,在 LAC 和 LNS 之间创建的逻辑连接。

注意:

建立的 L2TP 会话与其关联的 PPP 连接之间具有一对一关系。

隧道

由控制连接和 0 个或多个 L2TP 会话组成的 LAC-LNS 对之间的连接。

L2TP 实施

L2TP 在四个级别实施:

  • 来源 — 作为 LAC 的本地路由器。

  • 目标 — 作为 LNS 的远程路由器。

  • 通道 - LAC 和 LNS 之间的直接路径。

  • 会话 — 隧道中的 PPP 连接。

路由器已建立目标、隧道和会话后,可以控制 L2TP 流量。对目标进行更改会影响到达该目标的所有隧道和会话;对隧道进行更改会影响该隧道中所有会话例如,关闭目标会关闭到达该目标的所有隧道和会话。

LAC 上的事件顺序

作为 LAC 的路由器将动态创建目标、隧道和会话,如下所示:

  1. 客户端会启动与路由器的 PPP 连接。

  2. 路由器和客户端交换链路控制协议 (LCP) 数据包。LAC 代表 LNS 协商;这称为 代理 LCP

  3. LAC 代表 LNS 对客户端进行身份验证;这称为 代理认证。通过使用与域名或认证相关的本地数据库RADIUS,路由器将决定终止 PPP 连接或建立 PPP 连接隧道。

  4. 如果路由器发现应该通过隧道发送会话,则执行以下操作:

    1. 设置新目标或选择现有目标。

    2. 设置新隧道或选择现有隧道。

      在隧道配置文件或 RADIUS 属性中配置共享密钥时,Tunnel-Password [69](具体取决于用于配置隧道的方法),密钥用于在建立阶段对隧道进行身份验证。LAC 在发送至 LNS 的 S常见问题解答消息中包含挑战 AVP。LNS 在 SCCRP 消息中返回质询响应 AVP。如果 LNS 的响应与 LAC 预期的值不匹配,则隧道认证失败且未建立隧道。

    3. 打开新会话。

  5. 路由器将 LCP 协商和认证的结果转发至 LNS。

客户端与 LNS 之间现在存在 PPP 连接。

注意:

如果 L2TP 标头中可变长度的可选偏置板字段过大,路由器将丢弃收到的数据包。路由器始终支持具有最多 16 字节的偏置板字段的数据包,并且可能支持更大的偏置板字段,具体取决于标头中的其他信息。此限制有可能(虽然不太可能)导致 L2TP 数据包被过度丢弃。

注意:

当 LAC 终止 PPP 会话时,会生成 PPP 断开连接原因,并将此信息包括在 PPP 断开连接原因代码 (AVP 46) 中,同时向 LNS 发送呼叫断开通知 (CDN) 消息。代码值为 0,表示无可用信息的全局错误。

LNS 上的事件顺序

可能按如下方式设置用作 LNS 的路由器:

  1. LAC 会启动一个隧道,由路由器充当 LNS。

  2. LNS 验证带此 LAC 的隧道是否有效:已配置目标、主机名和隧道密码正确。

  3. LNS 使用 LAC 完成隧道设置。

  4. LAC 会建立一个会话,然后向 LNS 发起会话请求。

  5. LNS 使用静态接口或创建动态接口来锚定 PPP 会话。

  6. 如果启用且存在,LNS 将接受代理 LCP 和代理认证数据,将其传递至 PPP。

  7. PPP 进程 代理 LCP(如果存在),如果接受代理 LCP,则使 LCP 以开放状态放在 LCP 上,而不重新协商 LCP。

  8. PPP 处理代理认证数据(如果存在),然后将数据传递AAA供验证。(如果没有数据,PPP 会向对等方请求数据。)

    注意:

    代理 LCP 不存在或不可接受时,LNS 会与对等方协商 LCP。在 LNS 上启用 LCP 重新协商时,LNS 将忽略任何预协商的 LCP 参数,并重新协商 LCP 参数和 PPP 身份验证与 PPP 客户端。

  9. LNS 将认证结果传递至对等方。

L2TP 控制消息的重新传输

L2TP 对等方维护必须发送至对等设备的控制消息队列。本地对等方(LAC 或 LNS)发送消息后,将等待来自远程对等方的响应。如果未收到响应,则本地对等方重新发送消息。此行为允许远程对等方有更多的时间对消息做出响应。

您可以通过以下两种方式控制重新传输行为:

  • 重新传输计数 - 您可以配置本地对等方重新传输未确认消息多少次。增加计数为远程对等方提供了更多响应机会,但也增加了控制流量。对于已建立的隧道,在 retransmission-count-established 层次结构级别中包括 [edit services l2tp tunnel] 语句。对于尚未建立的隧道,请包含 retransmission-count-not-established 语句。

  • 重新传输间隔 - 您可以配置本地对等方等待第一个控制消息响应的时间。如果第一个超时间隔内未收到响应,则重新传输计时器将每次连续重新传输之间的间隔翻倍,最多为 16 秒。增加间隔时间让远程对等方有更多的时间做出响应,而且还将更多资源用于可能不可用的对等方。在 minimum-retransmission-interval 层次结构级别 [edit services l2tp tunnel] 中包括 语句。

本地对等方将继续重新发送控制消息,直至发生以下一种:

  • 在此等待期内收到响应。

  • 达到了最大重新传输计数。

如果达到了最大计数且未收到响应,则清除隧道及其所有会话。

注意:

达到最大 16 秒的间隔不会停止重新传输。每次后续重新传输后,本地对等方将继续等待 16 秒。

以下示例介绍不同情况下的重新传输行为:

  • 示例 1 - 重新传输计数为三,且最小重新传输间隔为 1 秒。

    1. 本地对等方发送控制消息。

    2. 本地对等方等待 1 秒,但无响应。

    3. 本地对等方重新发送控制消息。这是首次重新传输。

    4. 本地对等方等待 2 秒,但会在间隔到期之前收到响应。

    5. 由于在间隔内收到响应,因此重新传输停止。

  • 示例 2 - 重新传输计数为两个,且最小重新传输间隔为 8 秒。

    1. 本地对等方发送控制消息。

    2. 本地对等方等待 8 秒,但无响应。

    3. 本地对等方重新发送控制消息。这是首次重新传输。

    4. 本地对等方等待 16 秒,但是不会收到任何响应。

    5. 本地对等方重新发送控制消息。这是第二次重新传输。

    6. 本地对等方再次等待 16 秒,因为间隔不能超过 16,但是不会收到响应。

    7. 重新传输停止,因为达到了两个重新传输的最大计数。

    8. 将清除隧道及其所有会话。

配置 L2TP 控制消息的重新传输属性

您可以配置本地对等方重新发送消息多少次以及等待响应再传输的时间,以控制未确认 L2TP 控制消息的重新传输。

L2TP 对等方维护必须发送至对等设备的控制消息队列。本地对等方(LAC 或 LNS)发送消息后,将等待来自远程对等方的响应。如果未在最小重新传输间隔内收到响应,本地对等方将重新发送邮件,并等待重新传输间隔两倍。每次重新发送消息时,对等方将等待的时间翻倍,最长 16 秒。

如果未收到响应,本地对等方将继续发送邮件,直到重新传输次数与重新传输计数匹配。在这种情况下,重新传输将停止,隧道及其所有会话将被清除。

最佳做法:

在降级Junos OS不支持这些语句的云版本之前,建议在 层次结构级别包含 语句和 语句,以显式取消 no retransmission-count-established no retransmission-count-non-established [edit services l2tp tunnel] 配置功能。

最佳做法:

在配置为 LAC 的 MX 系列路由器上的统一不服务软件升级(统一 ISSU)期间,LAC 不响应来自 LNS 的控制消息。这可能会导致丢弃 LAC L2TP 会话。您可以通过确保 LNS 上的最大重新传输计数设置为 16 或更高,来避免这种情况。

要设置已建立隧道的最大重新传输计数:

  • 配置计数。

要设置未建立隧道的最大重新传输计数:

  • 配置计数。

要设置重新传输之间的最小间隔时间:

  • 配置时间间隔。

例如,以下配置指定已建立的隧道的最大重新传输计数为三次,而最低重新传输间隔为两秒:

对于此示例配置,以下顺序适用于 LAC 或 LNS 发送的每条控制消息:

  1. 本地对等方发送控制消息,并等待来自远程对等方的响应。
  2. 如果未在至少 2 秒的间隔内收到响应,则本地对等方将重新发送消息。这是首次重新传输。
  3. 如果 4 秒钟内未收到响应,本地对等方将重新发送邮件。这是第二次重新传输。
  4. 如果 8 秒钟内未收到响应,本地对等方将重新发送邮件。这是第三次也是最后一次重发,因为已到达最大计数。
  5. 如果 16 秒钟内未收到响应,将清除隧道及其所有会话。

为 SNMP 统计信息收集启用隧道和全局计数器

默认情况下,L2TP 统计信息禁用 SNMP 轮询。因此,表 2 中列出的 L2TP 隧道和全局计数器的默认值为 0。

表 2:用于 L2TP 统计信息的 SNMP 计数器

计数器名称

类型

jnxL2tpTunnelStatsDataTxPkt

隧道

jnxL2tpTunnelStatsDataRxPkt

隧道

jnxL2tpTunnelStatsDataTxBytes

隧道

jnxL2tpTunnelStatsDataRxBytes

隧道

jnxL2tpStatsPayloadRxOctets

全球

jnxL2tpStatsPayloadRxPkt

全球

jnxL2tpStatsPayloadTxOctets

全球

jnxL2tpStatsPayloadTxPkt

全球

您可通过在 层次结构级别包含 语句来 enable-snmp-tunnel-statistics 启用这些 [edit services l2tp] 统计信息的收集。启用时,L2TP 进程每隔 30 秒为 1000 个会话轮询这些统计信息。统计信息的潜在时间随着订阅者会话数量的增加而增加;随着会话数量的减少,数据将更快速地刷新。例如,对于 60,000 个会话,没有一个统计信息会超过 30 分钟。

最佳做法:

启用这些计数器时,系统负载可能会增加,并且也会使用RADIUS更新。建议仅在使用 SNMP 统计信息时启用这些计数器。

要启用 SNMP 的 L2TP 统计信息收集:

  • 启用统计信息收集。

验证和管理用于订阅者访问的 L2TP

目的

查看或清除有关 L2TP 隧道和会话的信息。

最佳做法:

选项不能用作执行 L2TP 订阅者批量注销 all 的方式。建议在生产环境中不要将 选项 all 用于 clear services l2tp destinationclear services l2tp sessionclear services l2tp tunnel 语句。考虑基于接口、隧道或目标终端,清除较小组中订阅者,而不是一次清除所有订阅者。

行动

  • 要显示 L2TP 隧道、会话、错误以及控制以及数据包的汇总:

  • 要显示 L2TP 目标:

  • 要清除所有 L2TP 目标:

  • 要清除属于目标、属于指定本地网关地址的隧道和属于指定对等方网关地址的隧道的所有 L2TP 隧道的统计信息:

  • 要显示 L2TP 会话:

  • 要清除所有 L2TP 会话、具有指定本地会话 ID 的会话,或与由 IP 地址或名称指定的本地网关关联的会话:

  • 要清除所有 L2TP 会话的统计信息、具有指定本地会话 ID 的会话,或与由 IP 地址或名称指定的本地网关关联的会话:

  • 要显示 L2TP 隧道:

  • 要清除所有 L2TP 隧道、具有指定本地隧道 ID 的隧道或与由 IP 地址或名称指定的本地网关相关联的隧道:

  • 要清除所有 L2TP 隧道、具有指定本地隧道 ID 的隧道或由 IP 地址或名称指定的本地网关的隧道,请执行以下操作: