Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例:通过 IPsec 分段和重组配置 GRE 上的 MPLS

此示例基于当 WAN 提供商不提供巨型 MTU 选项时,需要支持标准的 1,500 字节 MTU 到由 GRE over IPsec 隧道支持的虚拟专用网络 (VPN) 客户端。通过 1500 字节 WAN 链路转发的流量可能会被丢弃,因为协议封装开销(第 2 层、MPLS、GRE 和 IPsec)会导致帧超出 WAN 链路 MTU。

与 MTU 相关的丢弃主要是无法分段的流量的问题。例如,标记为“不分段”的 IP 流量或第 2 层 VPN/VPLS 流量,就其性质而言,它们不能分段。出于性能原因,许多 IPsec 配置会阻止加密后分段,从而导致丢包。

本文档通过向您展示如何配置 IPsec 隧道以对原本无法分段的流量执行分段后,提供了此问题的解决方案。在这种情况下,您可以通过强制分段后来牺牲加密性能,而不必减少 VPN 客户端的 MTU 以防止与 MTU 相关的丢弃。

此示例说明如何使用单个路由实例(默认实例)配置选择性数据包服务模式,以将 VPN 流量处理成数据包模式。在数据包模式下,将绕过安全区域。这意味着第 2 层和第 3 层 VRF 接口不会放置在安全区域中,也不需要策略来允许它们通过互联网区域进行通信。

使用此示例中的步骤,您可以在发送设备的传出物理接口上执行 IPsec 封装的数据包分段,并在 IPsec 解密之前在接收设备上进行重组。

注意:

分段数据包的重组会使用大量设备资源,并且设备的性能将比非分段流量慢。如果可能,您应该在 WAN 接口上配置巨型 MTU,以避免分段。此示例说明如何向客户端设备提供标准的 1,500 字节 MTU,以便在通过不提供巨型支持的 WAN 连接使用 IPsec 时阻止分段。

本主题包括以下部分:

要求

此示例使用以下硬件和软件组件:

  • 两个 SRX 系列服务网关

  • Junos OS 11.4 或更高版本

    • 此示例已在 Junos OS 20.3R1 版上重新验证

注意:

要使此示例按文档所述工作,您必须确保您的 SRX 配置没有任何已启用的 family ethernet-switching 接口。使用可将 family ethernet-switching SRX 设备置于混合模式操作。此示例基于路由操作模式。有关路由和混合操作模式的详细信息 ,请参阅了解安全设备上的第 2 层接口。此外,我们使用层次结构的 edit protocols l2-learning 出厂默认设置测试了此示例。

概述和拓扑

此示例包括以下配置:

  • 为适当的协议封装和最大传输单元 (MTU) 值配置接口。

  • 在 ge-0/0/0.10 接口上应用防火墙过滤器以设置数据包模式。使用 1,524 字节 MTU 配置面向 WAN 的接口 ge-0/0/1.0。

  • 为 GRE 和 IPsec 逻辑接口设置较大的 MTU 值,以避免逻辑接口上出现 IPsec 分段。GRE 封装的流量在 IPsec 内部通过隧道传输。

  • 将 MPLS 系列添加到 GRE 接口 gr-0/0/0,并应用防火墙过滤器以启用数据包模式。

  • 使用 IPsec VPN 配置中的选项在设备上配置 IPsec 隧道,以允许在 df-bit clear 传出 ge-0/0/1.0 接口上对超大 IPsec 数据包进行分段。此设置允许 SRX 设备对标有不分段 (DNF) 位的 VPN 客户端流量执行分段后 IPsec 加密。未标记为 DNF 的 VPN 客户端流量在 IPsec 加密之前会分段以提高性能。

  • 在名为“Internet”的单个安全区域中配置所有不面向客户的接口,例如 ge-0/0/1.0、gr-0/0/0.0、lo0.0 和 st0.0。此示例使用单个安全区域来关注 MPLS over GRE over IPSec 的分段问题。通过将设备置于 MPLS 流模式,然后将面向客户的接口放入区域中,可以增强安全性。进入区域后,安全策略可以控制通信,并唤起 IDP 和应用程序识别等高级功能。有关详细信息 ,请参阅安全区域

  • 配置策略以允许所有(区域内)流量。

  • 配置 OSPF 用于 lo0.0 地址分配,LDP 用于标签分配/MPLS 传输,并将 IBGP inet-vpn 与 和 l2vpn 族配置 以支持 VPN 客户端。

  • 配置两个路由实例,一个用于第 3 层 VPN,另一个用于第 2 层 VPLS 服务。

图 1 显示了此示例的拓扑。

图 1:基于 IPsec 隧道的 GRE MPLS 拓扑示例 MPLS Over GRE Over IPsec Tunnels Example Topology

此示例重点介绍 IPsec 隧道上的 VPLS 和第 3 层 VPN。还支持第 2 层电路。对于第 2 层电路,您需要同时配置一个系列 MPLS 过滤器和一个系列 CCC 过滤器。过滤器用于唤起数据包模式处理,以支持通过 IPsec 进行分段。

拓扑

表 1 汇总了此拓扑中用于 PE1 器件的参数。您可以调整 PE2 设备的参数,或使用下面提供的 PE2 快速配置。

表 1:拓扑的组件

组件

描述

PE1

PE1 SRX 系列防火墙:

ge-0/0/0.10:

  • IP 地址: 192.168.0.1/24

  • 面向客户的 L3VPN 接口

  • input packet-mode-inet:分组模式下的 Inet 系列

  • MTU:4k

ge-0/0/2.11:

  • 面向客户的 VPLS 接口

  • vlan-vpls:VPLS 封装

  • MTU: 1,522

ge-0/0/1.0:

  • 传出接口

  • IP 地址: 172.16.13.1/30

  • MTU: 1,514

gr-0/0/0:

  • 连接到 MPLS 的核心接口

  • IP 地址: 172.16.255.1/30

  • input packet-mode:分组模式下的 MPLS 系列

  • Inet MTU:9k

lo0:

  • 逻辑接口

  • IP 地址: 10.255.255.1/32

st0.0:

  • 隧道接口

  • IP 地址: 172.16.0.1/30

  • Inet MTU:9,178

  • df-bit clear — 此选项清除传出数据包标头中的不分段 (DF) 位

  • L3VPN— 第 3 层 VPN 应用程序的路由实例

  • VPLS— VPLS 应用程序的路由实例

配置

程序

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit] 中,然后从配置模式进入 commit

SRX1 (PE1) 设备的配置:

SRX2 (PE2) 设备的配置:

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 Junos OS CLI 用户指南中的在配置模式下使用 CLI 编辑器

要对 MPLS 帧进行分段并重组数据包:

  1. 配置物理接口。

  2. 配置逻辑接口。

  3. 配置用于配置接口以使用数据包模式的防火墙过滤器。

    注意:

    如果要配置第 2 层电路,还必须在系列 CCC 下面向 CE 的接口上添加过滤器以唤起数据包模式:

  4. 配置 IKE 和 IPsec 策略。

    注意:

    为了关注 IPsec 上的分段,我们在此示例中使用默认密码 (3DES-CBC)。为了提高性能和安全性,请考虑使用更新的密码,例如AES-GCM-256。请参阅 加密算法(安全 IKE)

  5. 在单个安全区域中配置所有不面向客户的接口,并使用一个策略来允许所有(区域内)流量。

  6. 配置 OSPF 协议以进行 lo0.0 地址分配,使用 inet-vpn 和 l2vpn 系列配置 IBGP。同时配置 MPLS 和 LDP 信令。

  7. 配置路由器 ID 和到 WAN 链路远程端的静态路由。

  8. 配置两个路由实例,一个用于第 3 层 VPN,另一个用于 VPLS 应用程序。

结果

显示配置结果:

验证

确认配置工作正常。

验证物理接口和逻辑接口是否已启动

目的

验证设备上的物理接口和逻辑接口是否已启动。

行动

在 SRX 系列服务网关的操作模式下,输入 show interfaces terse 命令。

意义

命令 show interfaces terse 输出显示此配置中使用的所有物理和逻辑接口均可运行。

验证 IPsec 安全关联

目的

验证设备上的 IKE 和 IPsec 安全关联是否已启动。

行动

在 SRX 系列服务网关的操作模式下,输入 show security ike security-associationshow security ipsec security-association 命令。

意义

输出显示 IKE 会话的预期 Up 状态,以及已成功建立 IPsec 隧道。

验证 OSPF 和 BGP

目的

验证 OSPF 和 BGP 是否在 GRE 隧道上正常运行。回想一下,GRE 隧道依次通过上一步中验证的 IPsec 隧道进行路由。在此示例中,正确的 OSPF/BGP 操作会间接验证流量是否能够通过 GRE(然后是 IPsec)隧道。如果需要,可以对 GRE 端点执行 ping 操作以添加验证。

行动

在 SRX 系列服务网关的操作模式下,输入 show ospf neighborshow bgp summary 命令。

意义

输出确认预期的 OSPF 邻居状态 full。此 OSPF 邻接方通过 GRE 接口进行隔离。鉴于 OSPF 正常运行,您期望本地 SRX 已获知到远程 SRX 环路地址的路由。此路由允许(通过 GRE 隧道)建立基于环回的 IBGP 对等会话。命令 show bgp summary 输出确认 BGP 会话处于建立状态,并且正在交换 L3VPN 和 L2VPN 路由。

验证 LDP 操作

目的

验证 LDP 是否在 GRE 隧道上正常运行。在此示例中,LDP 用作 MPLS 信令协议。

行动

在 SRX 系列服务网关的操作模式下,输入 show ldp neighborshow ldp session 命令。

意义

输出确认通过 GRE 接口的预期 LDP 邻居关系。命令 show ldp session 输出确认成功建立到远程 SRX 设备的环路地址的会话。这允许 LDP 交换传输标签,进而支持 VPN 客户端的 MPLS 转发。

验证 VPLS 连接

目的

验证 VPLS 连接是否处于启动状态。

行动

在 SRX 系列服务网关的操作模式下,输入 show vpls connections 命令。

意义

输出显示 VPLS 连接的预期 Up 状态。连接正常运行后,VPN 客户端设备应该能够传递流量。

验证设置了 DNF 的大型数据包的端到端 VPLS 连接

目的

验证第 2 层 VPLS 客户端设备是否能够发送设置了 DNF 位的 1500 字节帧。由于这是第 2 层服务,因此无法进行分段。因此,DNF 位以端到端方式运行。回想一下,对于此示例中的配置,此类设置会导致入口 SRX 设备在流量加密后(分段 后)对 IPsec 数据包进行分段。当流量从面向 WAN 的 ge-0/0/1 接口出口时,会发生分段后的情况。

分段后会强制远程 SRX 设备在执行解密之前重新组装数据包,这可能会影响加密流量的转发性能。这是使用该选项时的 df-bit clear 预期行为。演示此行为是此 NHE 的原因。其他 df-bit 选项(即 df-bit copydf-bit set)会导致在 VPN 客户端设置 DNF 位时,对于超过 WAN MTU 的 VPN 数据包,会导致数据包丢弃并生成 ICMP 错误消息。

行动

在 VPLS Host1 上的操作模式下,以生成设置了 DNF 位的 1500 字节 IP 数据包的方式对 VPLS Host2 执行 ping 操作。当此流量添加了 MPLS、GRE 和 IPsec 开销时,它将超过传出 WAN 接口的 MTU。鉴于作为第 2 层服务(或者在 L3VPN 客户端的情况下,通过设置 DNF 位)阻止了分片前,此类数据包会根据选项的 df-bit clear 设置强制分片后

VPN 客户端设备的配置和操作超出了此示例的范围。为了进行测试,MX 路由器用作 VPN 客户端。因此,演示的 ping 命令基于 Junos CLI。

意义

输出显示 ping 成功。添加 20 字节 IP 报头时,1480 字节的回显流量将生成 1500 字节的 IP 数据包。因此,结果证实 VPLS 客户端设备可以通过 WAN 链路与 1500 字节 MTU 交换 1,500 字节数据包,尽管存在封装开销。回想一下,由于这是第 2 层服务,因此不可能进行分段,并且 DNF 位端到端运行。但是,在测试 L3VPN 客户端时,使用 DNF 位非常重要,因为 PE 设备能够对 IP 流量进行分段。

验证传出接口上的 IP 分段

目的

验证超过 WAN MTU 的 VPLS 客户端流量是否在传出 ge-0/0/1.0 接口上分段。在此步骤中,计时非常重要,因为后台 OSPF、LDP 和 BGP 流量会导致 ge-0/0/0.0 接口计数器递增。目标是从 VPLS 主机生成 100 个 1,500 字节的数据包,然后快速比较 IPsec 和接口统计信息,以确认传出 WAN 接口上看到的数据包数大约是 IPsec 隧道上的计数的两倍。

行动

在 SRX 系列服务网关的操作模式下,使用 和 clear interfaces statistics all clear security ipsec statistics 命令清除 IPsec 和接口统计信息。然后在 VPLS 端点之间生成 100 个数据包大小为 1,500 字节的快速 ping。ping 完成后,使用 and show interfaces ge-0/0/1 detail show security ipsec statistics 命令显示 IPsec 隧道和 ge-0/0/1 接口的数据包计数。

在 VPLS 端点之间生成 100 次数据包大小为 1,500 字节的快速 ping。为简洁起见,不显示此内容。请参阅上一步中的命令。为简洁起见,此处未显示。

意义

命令 show interfaces ge-0/0/1.0 detail 的输出显示已发送和接收超过 200 个数据包。相比之下,IPsec 统计信息确认了大约 100 个数据包的计数。这确认了 VPLS 客户端发送的每个数据包都在面向 WAN 的 ge-0/0/1.0 接口上进行了分段。

验证 L3VPN

目的

验证 L3VPN 操作。

行动

在 SRX 系列服务网关的操作模式下,使用命令显示 show route 到远程 L3VPN 子网的路由。然后生成到远程 L3VPN 端点的 ping 以验证连接性。

测试从本地 SRX 到远程 VPN 端点的连接:

注意:

在此配置中,从本地 SRX 到本地 L3VPN 客户端的 ping 操作不会成功。这与分组模式的使用和 VPN 接口缺少安全区域有关。如上所示,您可以从本地 SRX ping到远程 L3VPN 目标。尽管未显示,但从本地 L3VPN 客户端到本地 PE VRF 接口生成的 ping 操作预计会成功。

测试 L3VPN 的端到端连接。在 L3VPN 客户端端点之间生成巨型 ping。回想一下,在本例中,L3VPN 客户端配置了 4k MTU。我们再次使用 MX 路由器来填充 L3VPN 客户端,因此使用了 Junos ping 语法:

意义

输出显示到远程 L3VPN 客户端的路由是通过 BGP 正确获知的,并且它指向具有 MPLS 标签操作的 GRE 接口。ping 测试的结果确认了 L3VPN 的预期连接,即使发送 3,000 + 字节 ping 并设置了 DNF 位也是如此。