Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

IPv4 网络中基于防火墙过滤器的 L2TP 隧道概述

第 2 层隧道协议 (L2TP) 是一种客户端-服务器协议,允许点对点协议 (PPP) 在网络上建立隧道。L2TP 封装第 2 层数据包(如 PPP),以便通过网络传输。在接入设备上配置的 L2TP 接入集中器 (LAC) 接收来自远程客户端的数据包,并将其转发到远程网络上的 L2TP 网络服务器 (LNS)。L2TPv3 定义了用于在两个 IPv6 节点之间建立多个第 2 层连接的基本控制协议和封装。L2TPv2 和 L2TPv3 之间的显著区别包括:

  • 分离所有与 PPP 相关的 AVP 和参考,从而可以包含特定于 PPP 需求的 L2TP 数据标头的一部分。

  • 分别从 16 位会话 ID 和隧道 ID 转换为 32 位会话 ID 和控制连接 ID。

  • 扩展隧道身份验证机制以覆盖整个控制消息,而不仅仅是某些消息的一部分。

  • L2TPv3 仅支持 IPv6。

  • 对于防火墙过滤器,仅支持数据平面 L2TPv3 封装/解封装。

L2TP由两种类型的消息组成,控制消息和数据消息(有时分别称为控制数据包和数据包)。控制消息用于建立、维护和清除控制连接和会话。这些消息利用 L2TP 中的可靠控制通道来保证传递。数据消息用于封装通过 L2TP 会话传输的 L2 流量。

您可以将 IPv4 网络配置为使用由两个标准防火墙过滤器操作启动的 GRE 隧道协议机制来传输 IPv4、IPv6 或 MPLS 传输流量。逻辑系统也支持此功能。使用防火墙过滤器配置 L2TP 隧道时,无需在隧道服务物理接口卡 (PIC) 或 MPC3E 模块化端口集中器 (MPC) 上创建隧道接口。相反,数据包转发引擎为 MX 系列 5G 通用路由平台中的模块化接口卡 (MIC) 或 MPC 上托管的以太网逻辑接口或聚合以太网接口提供隧道服务。

作为提供商边缘 (PE) 路由器安装的两个 MX 系列路由器提供与两个不相交网络上的客户边缘 (CE) 路由器的连接。PE 路由器上的 MIC 或 MPC 接口执行有效负载的 L2TP IPv4 封装和解封装。解封装后,数据包将根据 L2TP 标头的协议字段发送到操作中指定的路由表的本地接口,或发送到默认路由表。但是,可以选择使用等于输出接口索引的令牌跨交换矩阵发送 L2TP 数据包,以执行第 2 层交叉连接。您可以通过在层次结构级别包含 decapsulate l2tp output-interface interface-name cookie l2tpv3-cookie 语句 [edit firewall family family-name filter filter-name term term-name then] 来指定要发送的 L2TP 数据包的输出接口说明符。

在解封装期间,对于 L2TP 隧道,内部标头必须是以太网。默认情况下,转发类在防火墙之前应用,并且不会为解封装的数据包保留转发类(通过在层次结构级别使用该forwarding-class class-name[edit firewall family family-name]语句,这是一种非终止过滤器操作)。但是,通过在层次结构级别使用decapsulate l2tp forwarding-class class-name[edit firewall family family-name filter filter-name term term-name then]语句包括已解封装数据包的过滤器操作,可以指定必须针对数据包进行分类的转发类。

定义以下字段定义以用于所有 L2TP 会话标头封装。

  • 会话 ID 字段是一个 32 位字段,其中包含会话的非零标识符。L2TP 会话仅由具有本地意义的标识符命名。在会话的生命周期内,控制连接的每一端将为同一逻辑会话提供不同的会话 ID。当 L2TP 控制连接用于会话建立时,在创建会话期间,将选择会话 ID 并将其交换为本地会话 ID AVP。会话 ID 本身就为所有进一步的数据包处理提供必要的上下文,包括 Cookie 的存在、大小和值、特定于 L2 的子层的类型以及正在隧道传输的有效负载的类型。

  • 可选的 Cookie 字段包含一个可变长度值(最多 64 位),用于检查接收的数据消息与会话 ID 标识的会话的关联。Cookie 字段必须为此会话配置或发出信号的随机值。Cookie 提供了额外的保证级别,即数据消息已通过会话 ID 定向到正确的会话。选择得当的 Cookie 可以防止具有最近重复使用的会话 ID 的随机数据包或易受数据包损坏影响的会话 ID 的无意中误导。Cookie 还可以针对某些特定的恶意数据包插入攻击提供保护。当 L2TP 控制连接用于会话建立时,在会话创建期间,将选择随机 Cookie 值并将其交换为分配的 Cookie AVP。

会话是在远程系统和 LNS 之间建立端到端 PPP 连接时在 LAC 和 LNS 之间创建的逻辑连接。已建立的 L2TP 会话与其关联的 PPP 连接之间存在一对一的关系。隧道是一个或多个 L2TP 会话的聚合。

从 Junos OS 15.1 版开始,对于通过 L2TP 隧道发送的具有标准防火墙过滤器匹配条件和指定操作的 IP 数据包,将使用第 3 层查找来执行解封装。在 Junos OS 14.2 及更低版本中,使用第 2 层接口属性对配置了防火墙过滤器操作的 L2TP 隧道上的流量解封装执行。

单向隧道

跨 IPv4 网络的基于过滤器的 L2TP 隧道是单向的。它们仅传输传输数据包,不需要隧道接口。尽管您可以将防火墙过滤器应用于环路地址,但路由器环路接口不支持 GRE 封装和解封装防火墙过滤器操作。L2TP 数据包的过滤器启动的封装和解封装操作在数据包转发引擎上执行,用于以太网逻辑接口和聚合以太网接口。与使用隧道接口的 GRE 隧道相比,此设计可以更有效地使用数据包转发引擎带宽。不能在基于防火墙的隧道之上配置路由协议会话。

隧道安全

跨 IPv4 网络的基于过滤器的隧道未加密。如果需要安全隧道,则必须使用 IP 安全 (IPsec) 加密,MIC 或 MPC 接口不支持这种加密。但是,MX240、MX480 和 MX960 路由器上的多服务 DPC (MS-DPC) 接口支持 IPsec 工具,用于配置手动或动态安全关联 (SA),以加密数据流量以及发往路由引擎或源自路由引擎的流量。

转发性能

与使用隧道接口的 L2TP 隧道相比,跨 IPv4 网络的基于过滤器的隧道可以更有效地使用数据包转发引擎带宽。封装、解封装和路由查找是数据包标头处理活动,对于基于防火墙过滤器的隧道,这些活动在基于 Junos Trio 芯片组的数据包转发引擎上执行。因此,封装器永远不需要将有效负载数据包发送到单独的隧道接口(该接口可能驻留在与接收有效负载数据包的接口不同的插槽中的 PIC 上)。

转发可扩展性

使用隧道接口转发 L2TP 流量需要将流量发送到托管隧道接口的插槽。使用隧道接口转发 GRE 流量时,此要求会限制每个 GRE 隧道目标地址可以转发的流量。例如,假设您要将 100 Gbps 的 L2TP 流量从路由器 A 发送到路由器 B,而您只有 10 Gbps 接口。要确保您的配置不会封装通向同一 10 Gbps 接口的同一板上的所有流量,您必须跨多个封装点分配流量。

变更历史表

是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。

版本
说明
15.1
从 Junos OS 15.1 版开始,对于通过 L2TP 隧道发送的具有标准防火墙过滤器匹配条件和指定操作的 IP 数据包,将使用第 3 层查找来执行解封装。
14.2
在 Junos OS 14.2 及更低版本中,使用第 2 层接口属性对配置了防火墙过滤器操作的 L2TP 隧道上的流量解封装执行。