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 查看您使用的平台是否支持某项功能。