适用于多域网络的 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。

当 LAC 的管理域与所需 LNS 的管理域不同时,L2TP 隧道交换可简化网络配置。例如:
LTS 充当多个 LAC 的 LNS。各个 LAC 不必具备所需的管理控制或能力来确定终止其会话的最合适 LN。LTS 执行该功能集中在 LTS 中。
LTS 充当多个 LNS 的 LAC。将新的远程 LAC 添加到 ISP 的网络时,ISP 无需重新配置其 LNS 路由器来容纳新的 LAC,因为它们连接到 LTS 上的 LAC。
在第 2 层批发网络中,批发商可以使用 L2TP 隧道切换来创建更扁平、更易于管理的网络配置。批发商将来自 LAC 的第 2 层会话捆绑到一个 L2TP 隧道上,这些会话发往不同的 ISP,因而也发往不同的 LNS。此配置允许将通用 L2TP 控制连接用于 LAC。
图 2 显示了具有以下事件顺序的传入呼叫的 L2TP 隧道切换示例:
订阅者将打开到 LAC 的 PPP 会话。
LAC 会创建第一个到 LTS 上配置的 LNS 的 L2TP 隧道,以及第一个 L2TP 会话来传输封装的 PPP 数据包。
在对第一个会话进行身份验证期间,LTS 会根据 LTS 上配置的隧道交换机配置文件的存在与否,确定是否通过隧道将会话重新传输到 LTS 之外的 LNS。
通道交换机配置文件可以是默认配置文件,也可以由 RADIUS 服务器、域映射配置或隧道组配置应用。
如果配置了隧道交换机配置文件,则 LTS 将在配置文件中指定的 LTS 之外创建到 LNS 的第二个隧道(如果尚不存在),并在此隧道中创建第二个会话。

隧道交换机配置文件的应用
您可以配置以多种方式应用通道交换机配置文件:
作为全局应用于从所有 LAC 接收的流量的默认配置文件
将域映射应用于订阅者会话
将隧道组应用于订阅者会话时
在 RADIUS 服务器配置中,在隧道交换机配置文件 VSA (26-91) 中返回
您可以配置这些应用程序方法中的多种。当存在多个隧道交换机配置文件时,按以下优先顺序确定 LTS 使用的配置文件;顺序从最高 (RADIUS) 到最低(默认配置文件):
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 接口会接收 Stop-Control-Connection-Notification (StopCCN) 消息(表 2)。
表 2:StopCCN 消息的原因 接收 StopCCN 消息
什么时候
LAC 接口
出现以下任一情况:
无法建立第二次会议。
远程 LNS 终止第二个隧道。
LNS 接口
始发 LAC 启动隧道终止。
LTS 不会中继 StopCCN 消息,因为给定的隧道可以同时包含交换和非交换会话。批发场景中的另一个原因是,以 LTS 上的 LNS 为终点的隧道可以包含来自不同提供商的 LAC 的会话。相反,LTS 会向未收到 StopCCN 的接口发送 CDN 消息,以终止隧道交换会话。此 CDN 中继 StopCCN 中携带的错误代码。
在 LTS 上发出管理
clear
命令。
表 3 列出了在 LTS 上发出管理 clear
命令时执行的操作。
命令 |
LAC 或 LNS 操作 |
LTS 操作 |
---|---|---|
|
清除目标以及所有关联的隧道和会话。 |
对于通向目标的隧道中的每个交换会话,通过向其发送 CDN 消息(原因设置为 Administrative)来清除相应的映射交换会话。 |
|
清除所有目标以及所有关联的隧道和会话。 |
没有。 |
|
清除会话。 |
通过向此会话发送 CDN 消息(原因设置为 Administrative),清除此会话的对应映射交换会话。 |
|
清除所有会话。 |
没有。 |
|
清除隧道及其所有会话。 |
对于隧道中的每个交换会话,向相应的映射交换会话发送一条 CDN 消息(原因设置为 Administrative),以清除该会话映射。 |
|
清除所有隧道。 |
没有。 |
交换边界处 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 时,该值将被解码并以明文形式发送。
AVP 姓名(编号) |
AVP 类型 |
L2TP 消息类型 |
默认操作 |
---|---|---|---|
分配的会话 ID (14) |
命令的 |
CDN、ICRQ |
再生 |
分配的隧道 ID (9) |
命令的 |
SCCRQ |
再生 |
承载能力 (4) |
自选 |
SCCRQ |
再生 |
承载型 (18) |
自选 |
ICRQ |
中继 |
呼叫序列号 (15) |
命令的 |
ICRQ |
中继 |
主叫号码 (21) |
自选 |
ICRQ |
中继 |
呼叫号码 (22) |
自选 |
ICRQ |
中继 |
挑战 (11) |
自选 |
SCCRQ |
再生 |
挑战响应 (13) |
自选 |
新加坡华族链球网 (SCCCN |
再生 |
Cisco NAS 端口 |
自选 |
ICRQ |
中继 |
故障切换能力 |
自选 |
SCCRQ |
再生 |
固件修订版 (6) |
自选 |
SCCRQ |
再生 |
成帧能力 (3) |
命令的 |
SCCRQ |
再生 |
框架类型 (19) |
命令的 |
国际刑事法院 (ICCN) |
中继 |
主机名 (7) |
命令的 |
SCCRQ |
再生 |
首次收到 LCP CONFREQ (26) |
自选 |
国际刑事法院 (ICCN) |
中继 当使用 |
上次收到 LCP CONFREQ (28) |
自选 |
国际刑事法院 (ICCN) |
中继 当使用 |
最后发送 LCP CONFREQ (27) |
自选 |
国际刑事法院 (ICCN) |
中继 当使用 |
消息类型 (0) |
命令的 |
都 |
再生 |
物理通道 ID (25) |
自选 |
ICRQ |
再生 |
专用组 ID (37) |
自选 |
国际刑事法院 (ICCN) |
中继 |
协议版本 (2) |
命令的 |
SCCRQ |
再生 |
代理身份验证挑战 (31) |
自选 |
国际刑事法院 (ICCN) |
中继 当使用 |
代理身份验证 ID (32) |
自选 |
国际刑事法院 (ICCN) |
中继 当使用 |
代理身份验证名称 (30) |
自选 |
国际刑事法院 (ICCN) |
中继 当使用 |
代理身份验证响应 (33) |
自选 |
国际刑事法院 (ICCN) |
中继 当使用 |
代理身份验证类型 (29) |
自选 |
国际刑事法院 (ICCN) |
中继 当使用 |
接收窗口大小 (10) |
自选 |
SCCRQ |
再生 |
接收连接速度 (38) |
自选 |
国际刑事法院 (ICCN) |
中继 |
需要排序 (39) |
自选 |
国际刑事法院 (ICCN) |
再生 |
子地址 (23) |
自选 |
ICRQ |
中继 |
拉丝断路器 (5) |
自选 |
SCCRQ |
再生 |
隧道恢复 |
自选 |
SCCRQ |
再生 |
发送连接速度 (24) |
命令的 |
国际刑事法院 (ICCN) |
中继 |
供应商名称 (8) |
自选 |
SCCRQ |
再生 |
配置 L2TP 通道切换
通过 L2TP 隧道切换,配置为 LTS 的路由器可以将在一个 L2TP 会话上传输的 PPP 数据包转发到在不同 LNS 上终止的第二个 L2TP 会话。要配置 L2TP 隧道切换,必须定义隧道交换机配置文件,然后分配该配置文件。
您可以为全局所有会话、隧道组中的所有会话、域中或 RADIUS 服务器配置中的所有会话配置隧道交换机配置文件,以便在 RADIUS 隧道交换机配置文件 VSA (26-91) 中返回。来自各种源的隧道交换机配置文件的优先顺序如下:
RADIUS VSA 26-91 >域映射>隧道组>全局隧道交换机配置文件
要定义 L2TP 通道交换机配置文件,请执行以下操作:
例如,请考虑以下配置。这将创建三个隧道交换机配置文件:l2tp-tunnel-switch-profile、lts-profile-groupA 和 lts-profile-example-com:
[edit access tunnel-switch-profile l2tp-tunnel-switch-profile] user@host# set avp bearer-type regenerate user@host# set avp calling-number regenerate user@host# set avp cisco-nas-port-info drop user@host# set tunnel-profile l2tp-tunnel-profile1 [edit access tunnel-switch-profile lts-profile-groupA] user@host# set tunnel-profile l2tp-tunnel-profile2 [edit access tunnel-switch-profile lts-profile-example.com] user@host# set tunnel-profile l2tp-tunnel-profile3 [edit services l2tp] user@host1# set tunnel-switch-profile l2tp-tunnel-switch-profile user@host1# set tunnel-group groupA tunnel-switch-profile lts-profile-groupA [edit access domain] user@host1# set map example.com tunnel-switch-profile lts-profile-example.com
MX 系列设备的 LTS(第 2 层隧道交换)配置示例如下:
set services l2tp tunnel-group TG1 l2tp-access-profile DEFAULT set services l2tp tunnel-group TG1 aaa-access-profile aaa-access-profile set services l2tp tunnel-group TG1 hello-interval 0 set services l2tp tunnel-group TG1 local-gateway address 192.1.1.1 set services l2tp tunnel-group TG1 local-gateway gateway-name default set services l2tp tunnel-group TG1 service-interface si-0/0/0 set services l2tp tunnel-group TG1 dynamic-profile lns-profile set chassis fpc 0 pic 0 inline-services bandwidth 10g set chassis network-services enhanced-ip set dynamic-profiles lns-profile routing-instances "$junos-routing-instance" interface "$junos-interface-name" set dynamic-profiles lns-profile interfaces "$junos-interface-ifd-name" unit "$junos-interface-unit" ppp-options chap set dynamic-profiles lns-profile interfaces "$junos-interface-ifd-name" unit "$junos-interface-unit" ppp-options pap set dynamic-profiles lns-profile interfaces "$junos-interface-ifd-name" unit "$junos-interface-unit" family inet unnumbered-address "$junos-loopback-interface" set dynamic-profiles lns-profile interfaces "$junos-interface-ifd-name" unit "$junos-interface-unit" family inet6 unnumbered-address "$junos-loopback-interface" set access profile DEFAULT client default l2tp aaa-access-profile aaa-access-profile set access profile DEFAULT client default l2tp shared-secret "$9$i.T3AtOREyApIcSrLX" set access profile DEFAULT client default l2tp dynamic-profile lns-profile set access profile DEFAULT client default user-group-profile l2tp-access-group-profile set access group-profile l2tp-access-group-profile ppp idle-timeout 200 set access group-profile l2tp-access-group-profile ppp ppp-options pap set access group-profile l2tp-access-group-profile ppp ppp-options chap set access group-profile l2tp-access-group-profile ppp keepalive 0 set access tunnel-profile lac-profile tunnel 1 preference 1 set access tunnel-profile lac-profile tunnel 1 identification 1 set access tunnel-profile lac-profile tunnel 1 remote-gateway address 192.1.2.1 set access tunnel-profile lac-profile tunnel 1 remote-gateway gateway-name default set access tunnel-profile lac-profile tunnel 1 source-gateway address 192.1.2.5 set access tunnel-profile lac-profile tunnel 1 source-gateway gateway-name default set access tunnel-profile lac-profile tunnel 1 secret "$9$u9CE0BEleW-dsp07Vb2GUCtu" set access tunnel-switch-profile tsp-profile tunnel-profile lac-profile set access domain map yogeshn.com tunnel-switch-profile tsp-profile …
配置文件 l2tp-tunnel-switch-profile 作为全局默认值应用。根据此配置文件交换数据包时,L2TP 数据包中的承载类型 AVP (18) 和主叫号码 AVP (22) 的值将根据 L2TP 隧道交换机的本地策略重新生成,然后与数据包一起发送。Cisco NAS 端口信息 AVP (100) 被简单地丢弃。最后,l2tp-tunnel-profile1 提供了流量切换到的隧道的配置特征。
隧道交换机配置文件 lts-profile-groupA 通过隧道组 groupA 应用;它指定不同的隧道配置文件 l2tp-tunnel-profile2,并且不会覆盖任何 AVP 操作。通过 example.com 域的域映射应用隧道交换机配置文件 lts-profile-example.com;它指定不同的隧道配置文件 l2tp-tunnel-profile3,并且不会覆盖任何 AVP 操作。
设置 L2TP 接收窗口大小
您可以为 L2TP 隧道配置 L2TP 接收窗口大小。接收窗口大小指定对等方在等待路由器确认之前可以发送的数据包数。
默认情况下,接收窗口大小设置为四个数据包。如果接收窗口大小设置为其默认值,则路由器不会在隧道协商期间向对等方发送第一个数据包中的接收窗口大小 AVP AVP 10。
要配置接收窗口大小,请执行以下操作:
[edit services l2tp tunnel] user@host# set rx-window-size packets
设置 L2TP 隧道空闲超时
您可以配置 LAC 或 LNS 来指定没有任何会话的隧道保持活动状态的时间。当隧道上的最后一个会话终止时,空闲计时器启动。当计时器到期时,隧道将断开连接。此空闲超时将释放非活动隧道占用的资源。
如果将空闲超时值设置为零,则在最后一个会话终止后,隧道将强制无限期地保持活动状态,直到发生以下情况之一:
发出
clear services l2tp tunnel
命令。远程对等方断开隧道连接。
在降级到不支持此语句的 Junos OS 版本之前,建议您通过在[edit services l2tp tunnel]
层次结构级别包含no idle-timeout
该语句来显式取消配置该功能。
要设置隧道空闲超时,请执行以下操作:
配置超时期限。
[edit services l2tp tunnel] user@host# set idle-timeout seconds
设置 L2TP 销毁超时
您可以配置 LAC 或 LNS,以指定路由器在动态目标、隧道和会话被销毁后尝试维持的时间。此销毁超时通过在目标、隧道或会话终止后保存底层内存结构来帮助调试和其他分析。如果必须尽早回收资源以允许建立新隧道,则在整个时间段内可能无法维护任何特定的动态目标、隧道或会话。
在降级到不支持此语句的 Junos OS 版本之前,建议您通过在[edit services l2tp]
层次结构级别包含no destruct-timeout
该语句来显式取消配置该功能。
要设置 L2TP 销毁超时:
配置超时期限。
[edit services l2tp] user@host# set destruct-timeout seconds
配置 L2TP 目标锁定超时
当有多组隧道参数可用时,L2TP 会使用选择过程来为用户流量选择最佳隧道。作为此选择过程的一部分,当订阅者尝试访问域时,L2TP 会锁定它无法连接到的目的地。L2TP 将目标放置在目标锁定列表中,并在称为 目标锁定超时的可配置时间段内将目标排除在考虑范围之外。
默认情况下,目标锁定超时为 300 秒(5 分钟)。您可以配置一个介于 60 到 3600 秒(1 分钟到 1 小时)之间的值。当锁定超时到期时,L2TP 假定目标现在可用,并在执行隧道选择过程时包含目标。目标锁定期是一个全局值,不能针对特定目标、隧道或隧道组单独配置。
通常,在锁定计时器到期之前,不能使用锁定的目标。但是,当 L2TP 执行隧道选择过程时,在某些情况下会清除锁定目标的锁定计时器。有关选择过程的详细信息,请参阅 LAC 隧道选择概述中的配置首选项级别之间故障切换时的选择和首选项级别内故障转移时的选择。
将锁定超时配置为等于或短于销毁超时。否则,销毁超时将在锁定超时之前过期。在这种情况下,锁定的目标将被销毁,随后可以在锁定超时到期之前恢复服务,从而否定锁定超时的有效性。
要配置目标锁定超时,请执行以下操作:
以秒为单位指定时间段。
[edit services l2tp destination] user@host# set lockout-timeout seconds
命令 show services l2tp destination lockout
将显示目标锁定列表,并针对每个目标指示其超时到期前的剩余时间。该 show services l2tp destination detail
命令指示每个目标是否处于锁定状态,正在等待超时到期或未锁定。
从目标锁定列表中移除 L2TP 目标
当 PPP 订阅者尝试登录域时,L2TP 会选择与该域中目标关联的隧道,并尝试访问该目标。如果连接尝试失败,L2TP 会将目标置于目标锁定列表中。在称为 目标锁定超时的可配置时间段内,此列表中的目标被排除在后续连接的考虑范围之外。
您可以发出特定目标的命令 request services l2tp destination unlock
,以将其从目标锁定列表中移除。结果是,当订阅者登录到关联的域时,此目标立即可供考虑。
要从目标锁定列表中移除目标:
指定要解锁的目标的名称。
user@host> request services l2tp destination unlock destination-name
配置 L2TP 清空
出于管理目的,您可以将 L2TP 目标或隧道的状态设置为清空。这可以防止在 L2TP LAC 和 LNS 上创建新的会话、隧道和目标。
您可以在全局级别或针对特定目标或隧道配置 L2TP 清空。如果在全局 L2TP 级别配置该功能,则无法创建新的目标、隧道或会话。如果为特定目标配置了该功能,则无法在该目标上创建新的隧道或会话。同样,如果为特定隧道配置了该功能,则无法为该隧道分配新会话,但可以创建新的目标和隧道。
配置此功能后,show services l2tp destination
、、的命令show services l2tp tunnel
输出show services l2tp summary
将 L2TP 会话、目标和隧道的状态显示为 Drain
。
使用相同的 L2TP 隧道进行 IP 数据包的注入和复制
您可以将用于订阅者安全策略镜像的同一 L2TP 隧道配置为用于数据包复制。复制的数据包用于向客户或网络注入流量。所有订阅者访问模式都支持数据包注入或传输。单个 L2TP 隧道可用于数据包的传输和数据包的复制。在 L2TP 隧道的一端配置为复制数据包的端口或接口将连接到另一个隧道端点。隧道的另一端点可以使用 L2TP 隧道将 IP 数据包发送到配置为数据包复制的端口或接口,在该接口接收的 IP 数据包可以转发给客户,也可以像从客户那里收到一样发送。
远程隧道端点发送有效负载中包含以太网 MAC 地址的 IP 隧道数据包。如果有效负载数据包的目标 MAC 地址包含路由器的 MAC 地址,则以太网数据包将沿传出方向向网络发送,并像在客户端口上接收一样进行处理和转发。如果有效负载数据包的源 MAC 地址包含路由器的 MAC 地址,则以太网数据包将沿传出方向向客户端口传输。如果隧道中未包含配置的 receive-cookie,则不会进行数据包注入。在这种情况下,任何收到的隧道数据包的计数和丢弃方式与计算和丢弃带有错误 Cookie 的数据包的方式相同。
要配置要复制的数据包并发送到客户或网络(基于以太网有效负载中的 MAC 地址),请在[edit firewall family family-name filter filter-name term term-name then]
层次结构级别包含语decapsulate l2tp output-interface interface-name cookie l2tpv3-cookie
句。您还可以通过在[edit firewall family family-name filter filter-name term term-name then]
层次结构级别包含count counter-name
语句,为重复或解封装的 L2TP 数据包配置计数器