Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

适用于多域网络的 L2TP 隧道交换

L2TP 隧道交换概述

L2TP 隧道交换(也称为 L2TP 多跳)简化了跨多个域的 L2TP 网络部署。位于 LAC 和 LNS 之间的路由器配置为 L2TP 隧道交换机 (LTS),有时简称为隧道 交换机隧道交换聚合器 (TSA),如图 1 所示。LTS 同时配置为 LNS 和 LAC。当远程 LAC 将封装的 PPP 数据包发送到 LTS 上配置的 LNS 时,LTS 可以通过不同的隧道将数据包转发或重定向到 LTS 之外的其他 LNS。原始 L2TP 会话的逻辑端点将切换到其他端点。

例如,在 图 1 所示的网络中,来自服务提供商 A 配置的用户的数据包最初以 LTS 上配置的 LNS 为目标。LTS 可能会将这些数据包重定向到 LNS1。

图 1:L2TP 隧道交换网络拓扑 L2TP Tunnel Switching Network Topology

当 LAC 的管理域与所需 LNS 的管理域不同时,L2TP 隧道交换可简化网络配置。例如:

  • LTS 充当多个 LAC 的 LNS。各个 LAC 不必具有确定终止其会话的最合适 LNS 所需的管理控制或能力。LTS 执行该功能集中于 LTS 中。

  • LTS 充当多个 LNS 的 LAC。将新的远程 LAC 添加到 ISP 的网络时,ISP 不必重新配置其 LNS 路由器来容纳新的 LAC,因为它们连接到 LTS 上的 LAC。

在第 2 层批发网络中,批发商可以使用 L2TP 隧道交换来创建更易于管理的扁平网络配置。批发商将来自 LAC 的第 2 层会话捆绑到单个 L2TP 隧道中,这些会话发往不同的 ISP,因此也发往不同的 LNS。此配置允许将通用 L2TP 控制连接用于 LAC。

图 2 显示了针对具有以下事件顺序的传入呼叫进行 L2TP 隧道切换的示例:

  1. 订阅者打开到 LAC 的 PPP 会话。

  2. LAC 创建到 LTS 上配置的 LNS 的第一条 L2TP 隧道,以及第一个 L2TP 会话以传输封装的 PPP 数据包。

  3. 在对第一个会话进行身份验证期间,LTS 根据 LTS 上配置的隧道交换机配置文件是否存在,确定是否将会话重新隧道到 LTS 之外的 LNS。

    隧道交换机配置文件可以是默认配置文件,也可以由 RADIUS 服务器、域映射配置或隧道组配置应用。

  4. 如果配置了隧道交换机配置文件,则 LTS 会在配置文件中指定的 LTS 之外创建到 LNS 的第二个隧道(如果尚不存在),并在此隧道中创建第二个会话。

图 2:用于传入呼叫 L2TP Tunnel Switching for Incoming Calls的 L2TP 隧道切换

隧道开关配置文件的应用

您可以通过多种方式配置要应用的隧道交换机配置文件:

  • 作为默认配置文件,全局应用于从所有 LAC 接收的流量

  • 将域映射应用于订阅者会话

  • 将隧道组应用于订阅者会话

  • 在 RADIUS 服务器配置中,在隧道交换机配置文件 VSA (26-91) 中返回

您可以配置其中多种应用程序方法。当存在多个隧道交换机配置文件时,以下优先级顺序将确定 LTS 使用哪个配置文件;顺序是从最高 (RADIUS) 到最低(默认配置文件):

  1. RADIUS VSA 26-91 >域映射>隧道组>全局隧道交换机配置文件

隧道交换机配置文件还必须引用隧道配置文件。此隧道配置文件指定订阅者数据包切换到的第二个隧道的特征。

终止 LTS 上的隧道交换会话

当发生以下任一情况时,LTS 上的隧道交换会话将终止:

  • LTS 上的 LAC 或 LNS 接口都会收到呼叫-断开连接-通知 (CDN) 消息(表 1)。

    表 1:CDN 消息的原因

    CDN 消息在 上接收

    LAC 接口

    发生以下任一情况:

    • 无法建立第二次会话。

    • 远程 LNS 终止第二个会话。

    LNS 接口

    发生以下任一情况:

    • PPPoE 客户端启动注销。

    • 始发 LAC 启动隧道终止

    第一个和第二个会话都将终止,因为 LTS 将 CDN 中继到未接收 CDN 的接口。两个会话的断开连接原因相同。

  • LTS 上的 LAC 或 LNS 接口都会收到停止控制连接通知 (StopCCN) 消息(表 2)。

    表2:CCN消息停止原因

    StopCCN 消息在 上收到

    LAC 接口

    发生以下任一情况:

    • 无法建立第二次会话。

    • 远程 LNS 终止第二个隧道。

    LNS 接口

    始发 LAC 启动隧道终止。

    LTS 不会中继 StopCCN 消息,因为给定的隧道可以同时包含交换和非交换会话。在批发场景中的另一个原因是,在 LTS 上的 LNS 上结束的隧道可以包含来自不同提供商的 LAC 的会话。相反,LTS 会向未收到 StopCCN 的接口发送 CDN 消息,以终止隧道交换会话。此 CDN 中继 StopCCN 中携带的错误代码。

  • 在 LTS 上发出管理 clear 命令。

表 3 列出了在 LTS 上发出管理 clear 命令时执行的操作。

表 3:为响应管理清除命令而对交换隧道采取的 LAC、LNS 和 LTS 操作

命令

LAC 或 LNS 操作

LTS 操作

clear services l2tp destination

清除目标以及所有关联的隧道和会话。

对于通向目标隧道中的每个交换会话,通过向相应的映射交换会话发送原因设置为“管理”的 CDN 消息来清除该会话。

clear services l2tp destination all

清除所有目标以及所有关联的隧道和会话。

没有。

clear services l2tp session

清除会话。

通过向此会话发送原因设置为“管理”的 CDN 消息,清除此会话的相应映射交换会话。

clear services l2tp session all

清除所有会话。

没有。

clear services l2tp tunnel

清除隧道及其所有会话。

对于隧道中的每个交换会话,通过向相应的映射交换会话发送原因设置为“管理”的 CDN 消息来清除该会话。

clear services l2tp tunnel all

清除所有隧道。

没有。

L2TP AVP 在交换边界的隧道交换操作

当 L2TP 隧道交换将数据包重定向到其他 LNS 时,它会在交换边界对 L2TP 消息中携带的每个 AVP 执行以下操作之一:

  • relay—L2TP 透明地转发交换数据包中的 AVP,无需更改。

  • regenerate— L2TP 忽略由第一个隧道和会话协商的已接收 AVP。它根据 LTS 的本地策略为第二个会话生成新的 AVP,并在交换数据包中发送此 AVP。本地策略可能会也可能不会使用在协商第一个会话期间收到的 AVP 值。

表 4 列出了每个 AVP 的默认操作。强制性 AVP 始终包含在来自 LAC 的 L2TP 消息中;消息中可能包含可选的 AVP。

您可以选择覆盖在承载类型 AVP (18)、主叫号码 AVP (22) 或 Cisco NAS 端口信息 AVP (100) 的交换边界上执行的默认操作。您可以将这三个 AVP 中的任何一个配置为从交换的数据包中丢弃或重新生成,也可以恢复默认中继操作。

注意:

隐藏了属性值的 L2TP AVP 始终在交换边界重新生成。将数据包转发到远程 LNS 时,将解码该值并以明文形式发送。

表 4:在交换边界处理 L2TP AVP 的默认操作

AVP 姓名(编号)

AVP 类型

L2TP 消息类型

默认操作

分配的会话 ID (14)

强制性

CDN、ICRQ

再生

分配的隧道 ID (9)

强制性

SCCRQ

再生

承载能力 (4)

SCCRQ

再生

承载类型 (18)

ICRQ

继 电器

呼叫序列号 (15)

强制性

ICRQ

继 电器

被叫号码 (21)

ICRQ

继 电器

电话 (22)

ICRQ

继 电器

挑战 (11)

SCCRQ

再生

挑战响应 (13)

新加坡华族文化中心

再生

思科网络存储端口

ICRQ

继 电器

故障切换功能

SCCRQ

再生

固件修订版 (6)

SCCRQ

再生

成帧功能 (3)

强制性

SCCRQ

再生

框架类型 (19)

强制性

国际商会

继 电器

主机名 (7)

强制性

SCCRQ

再生

初始收到的 LCP CONFREQ (26)

国际商会

继 电器

使用 LNS 上的客户端配置文件中的语句启用 lcp-negotiation LCP 重新协商时,将重新生成 AVP,而不是中继 AVP。

上次收到的 LCP CONFREQ (28)

国际商会

继 电器

使用 LNS 上的客户端配置文件中的语句启用 lcp-negotiation LCP 重新协商时,将重新生成 AVP,而不是中继 AVP。

上次发送的 LCP CONFREQ (27)

国际商会

继 电器

使用 LNS 上的客户端配置文件中的语句启用 lcp-negotiation LCP 重新协商时,将重新生成 AVP,而不是中继 AVP。

消息类型 (0)

强制性

所有

再生

物理通道 ID (25)

ICRQ

再生

私人团体 ID (37)

国际商会

继 电器

协议版本 (2)

强制性

SCCRQ

再生

代理身份验证挑战 (31)

国际商会

继 电器

使用 LNS 上客户端配置文件中的语句启用 lcp-negotiation LCP 重新协商时,还会重新协商身份验证,并重新生成 AVP,而不是中继。

代理身份验证 ID (32)

国际商会

继 电器

使用 LNS 上客户端配置文件中的语句启用 lcp-negotiation LCP 重新协商时,还会重新协商身份验证,并重新生成 AVP,而不是中继。

代理身份验证名称 (30)

国际商会

继 电器

使用 LNS 上客户端配置文件中的语句启用 lcp-negotiation LCP 重新协商时,还会重新协商身份验证,并重新生成 AVP,而不是中继。

代理身份验证响应 (33)

国际商会

继 电器

使用 LNS 上客户端配置文件中的语句启用 lcp-negotiation LCP 重新协商时,还会重新协商身份验证,并重新生成 AVP,而不是中继。

代理身份验证类型 (29)

国际商会

继 电器

使用 LNS 上客户端配置文件中的语句启用 lcp-negotiation LCP 重新协商时,还会重新协商身份验证,并重新生成 AVP,而不是中继。

接收窗口大小 (10)

SCCRQ

再生

接收连接速度 (38)

国际商会

继 电器

需要排序 (39)

国际商会

再生

子地址 (23)

ICRQ

继 电器

领带断路器 (5)

SCCRQ

再生

隧道恢复

SCCRQ

再生

Tx 连接速度 (24)

强制性

国际商会

继 电器

供应商名称 (8)

SCCRQ

再生

配置 L2TP 隧道交换

L2TP 隧道交换使配置为 LTS 的路由器能够将在一个 L2TP 会话上携带的 PPP 数据包转发到在不同 LNS 上终止的第二个 L2TP 会话。要配置 L2TP 隧道交换,必须定义隧道交换机配置文件,然后分配该配置文件。

您可以为全局所有会话、隧道组中的所有会话、域中的所有会话或要在 RADIUS 隧道交换机配置文件 VSA (26-91) 中返回的 RADIUS 服务器配置中配置隧道交换机配置文件。来自各种来源的隧道交换机配置文件的优先级顺序如下:

  • RADIUS VSA 26-91 >域映射>隧道组>全局隧道交换机配置文件

要定义 L2TP 隧道交换机配置文件,请执行以下操作:

  1. 创建配置文件。
  2. (可选)覆盖在交换边界处对某些 L2TP AVP 执行的默认操作。
  3. 指定用于定义订阅者流量切换到的隧道的隧道配置文件。
    注意:

    对于在隧道交换机配置文件 VSA (26-91) 中指定的隧道交换机配置文件,此步骤不是必需的。

  4. (可选)将配置文件应用为全局默认配置文件,以切换来自 LAC 的所有传入会话的数据包。
  5. (可选)将配置文件作为隧道组的一部分应用,以从隧道组中的所有会话切换数据包。
    注意:

    隧道组是 LTS 配置的一部分,使其能够充当来自 LAC 的原始会话的 LNS。

    具有隧道交换机配置文件的隧道组还必须包含动态配置文件,因为隧道交换仅支持动态订阅者。

  6. (可选)将配置文件作为域映射的一部分应用,以从与域关联的所有会话中切换数据包。
    注意:

    域映射不能同时具有隧道交换机配置文件和隧道配置文件。如果添加另一个,则必须删除另一个。

  7. (可选)通过对来自 LAC 的会话进行身份验证时返回的 RADIUS 访问-接受消息中的隧道-交换机-配置文件 VSA [26–91] 应用配置文件。请参阅 RADIUS 服务器的文档以确定如何配置此方法。
    注意:

    由 RADIUS 服务器在隧道交换机配置文件 VSA (26-91) 中指定的隧道交换机配置文件优先于 CLI 配置中指定的隧道交换机配置文件。如果除了隧道交换机配置文件 VSA (26-91) 之外还收到隧道组 VSA (26–64),则隧道交换机配置文件 VSA (26-91) 优先于隧道组 VSA (26-64),从而确保订阅者是隧道交换的,而不是 LAC 隧道。

例如,请考虑以下配置。这将创建三个隧道交换机配置文件:l2tp-tunnel-switch-profile、lts-profile-groupA 和 lts-profile-example-com:

配置文件 l2tp-tunnel-switch-profile 应用为全局默认值。根据此配置文件交换数据包时,将根据 L2TP 隧道交换机上的本地策略重新生成 L2TP 数据包中的承载类型 AVP (18) 和主叫号码 AVP (22) 的值,然后随数据包一起发送。只需丢弃思科 NAS 端口信息 AVP (100)。最后,l2tp-tunnel-profile1 提供流量切换到的隧道的配置特征。

隧道交换机配置文件 lts-profile-groupA 通过隧道组 A 应用;它指定不同的隧道配置文件 L2TP-tunnel-profile2,并且不会覆盖任何 AVP 操作。隧道交换机配置文件 lts-profile-example.com 通过 example.com 域的域映射应用;它指定不同的隧道配置文件 L2TP-tunnel-profile3,并且不会覆盖任何 AVP 操作。

设置 L2TP 接收窗口大小

您可以为 L2TP 隧道配置 L2TP 接收窗口大小。接收窗口大小指定对等方在等待路由器确认之前可以发送的数据包数。

默认情况下,接收窗口大小设置为四个数据包。如果接收窗口大小设置为其默认值,则路由器不会在隧道协商期间发送的第一个数据包中向其对等方发送接收窗口大小 AVP 10。

要配置接收窗口大小,请执行以下操作:

设置 L2TP 隧道空闲超时

您可以配置 LAC 或 LNS,以指定没有任何会话的隧道保持活动状态的时间。空闲计时器在隧道上的最后一个会话终止时启动。当计时器过期时,隧道将断开连接。此空闲超时可释放非活动隧道消耗的资源。

如果将空闲超时值设置为零,则在最后一个会话终止后,隧道将强制无限期保持活动状态,直到发生以下情况之一:

  • clear services l2tp tunnel发出命令。

  • 远程对等方断开隧道连接。

最佳实践:

在降级到不支持此语句的 Junos OS 版本之前,建议您通过在层次结构级别包含 no idle-timeout 语句 [edit services l2tp tunnel] 来显式取消配置该功能。

要设置隧道空闲超时,请执行以下操作:

  • 配置超时期限。

设置 L2TP 销毁超时

您可以配置 LAC 或 LNS,以指定路由器在动态目标、隧道和会话被销毁后尝试维护它们的时间。此析构超时通过在目标、隧道或会话终止后保存底层内存结构来帮助调试和其他分析。如果必须尽早回收资源以允许建立新隧道,则在整个时间段内可能不会维护任何特定的动态目标、隧道或会话。

最佳实践:

在降级到不支持此语句的 Junos OS 版本之前,建议您通过在层次结构级别包含 no destruct-timeout 语句 [edit services l2tp] 来显式取消配置该功能。

要设置 L2TP 销毁超时,请执行以下操作:

  • 配置超时期限。

配置 L2TP 目标锁定超时

当多组隧道参数可用时,L2TP 使用选择过程为用户流量选择最佳隧道。作为此选择过程的一部分,L2TP 会锁定订阅者尝试访问域时无法连接到的目标。L2TP 将目标放在目标锁定列表中,并在称为目标 锁定超时的可配置时间段内排除目标。

默认情况下,目标锁定超时为 300 秒(5 分钟)。您可以配置 60 到 3600 秒(1 分钟到 1 小时)之间的值。当锁定超时到期时,L2TP 假定目标现在可用,并在执行隧道选择过程时包括目标。目标锁定期是一个全局值,不能为特定目标、隧道或隧道组单独配置。

注意:

通常,在锁定计时器到期之前,无法使用锁定的目标。但是,当 L2TP 执行隧道选择过程时,在某些情况下,它会清除锁定目标的锁定计时器。有关选择过程的详细信息,请参阅 LAC 隧道选择概述中的配置首选项级别之间的故障转移时选择配置首选项级别内的故障转移时选择

最佳实践:

将锁定超时配置为等于或短于析构超时。否则,析构超时将在锁定超时之前过期。在这种情况下,锁定的目标将被销毁,随后可以在锁定超时到期之前恢复服务,从而否定锁定超时的有效性。

要配置目标锁定超时,请执行以下操作:

  • 以秒为单位指定时间段。

show services l2tp destination lockout 命令显示目标锁定列表,并针对每个目标指示其超时到期前剩余的时间。该 show services l2tp destination detail 命令指示每个目标是锁定并等待超时到期还是未锁定。

从目标锁定列表中删除 L2TP 目标

当 PPP 用户尝试登录到域时,L2TP 会选择与该域中的目标关联的隧道并尝试访问该目标。如果连接尝试失败,L2TP 会将目标置于目标锁定列表中。在称为目标 锁定超时的可配置时间段内,此列表中的目标不会被考虑用于后续连接。

您可以针对特定目标发出命令以 request services l2tp destination unlock 将其从目标锁定列表中删除。结果是,当订阅者登录到关联的域时,此目标立即可供考虑。

要从目标锁定列表中删除目标:

  • 指定要解锁的目标的名称。

配置 L2TP 漏极

出于管理目的,您可以将 L2TP 目标或隧道的状态设置为排出。这可以防止在 L2TP LAC 和 LNS 上创建新会话、隧道和目标。

您可以在全局级别配置L2TP 排出,也可以为特定目标或隧道配置 L2TP 排出。如果在全局 L2TP 级别配置该功能,则无法创建新的目标、隧道或会话。如果为特定目标配置了该功能,则无法在该目标上创建新的隧道或会话。同样,如果为特定隧道配置了该功能,则无法将新会话分配给该隧道,但可以创建新的目标和隧道。

  • 要防止为 L2TP 创建新的会话、目标和隧道,请执行以下操作:
  • 要防止在特定目标创建新的隧道和会话,请执行以下操作:
  • 要防止在特定隧道上创建新会话,请执行以下操作:
    注意:

    隧道是本地分配的隧道名称,格式如下:destination-name/tunnel-nametunnel-name如果仅提供 ,tunnel-name则必须包含语句以address ip-address标识隧道name的目标。

配置此功能后,命令输出 show services l2tp summaryshow services l2tp destination和 会将 L2TP 会话、目标和 show services l2tp tunnel 隧道 Drain的状态显示为 。

使用相同的 L2TP 隧道注入和复制 IP 数据包

您可以将用于订阅者安全策略镜像的相同 L2TP 隧道配置为用于数据包复制。重复的数据包用于将流量注入到客户或网络。所有订阅者访问模式都支持数据包的注入或传输。单个 L2TP 隧道用于数据包的传输和数据包的复制。配置为在 L2TP 隧道一端复制数据包的端口或接口连接到另一个隧道端点。隧道的另一个端点可以使用 L2TP 隧道将 IP 数据包发送到为数据包复制配置的端口或接口,在该接口接收的 IP 数据包可以转发给客户,也可以像从客户那里接收一样发送。

远程隧道端点发送一个 IP 隧道数据包,该数据包的有效负载中包含以太网 MAC 地址。如果有效负载数据包的目标 MAC 地址包含路由器的 MAC 地址,则以太网数据包将沿传出方向发送到网络,并进行处理和转发,就像在客户端口上接收一样。如果有效负载数据包的源 MAC 地址包含路由器的 MAC 地址,则以太网数据包将沿传出方向向客户端口传输。如果隧道不包含配置的接收 cookie,则不会进行数据包注入。在这种情况下,任何收到的隧道数据包的计数和丢弃方式与计算和丢弃错误 cookie 的数据包的方式相同。

要将数据包配置为复制并发送到客户或网络(基于以太网有效负载中的 MAC 地址),请在层次结构级别包含decapsulate l2tp output-interface interface-name cookie l2tpv3-cookie语句[edit firewall family family-name filter filter-name term term-name then]。您还可以通过在层次结构级别包含count counter-name[edit firewall family family-name filter filter-name term term-name then]语句来为重复或解封装的 L2TP 数据包配置计数器