Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

用于 3 层 VPN 的基于下一跳的隧道

本主题介绍如何配置动态通用路由封装 (GRE) 隧道和动态 MPLS-over-UDP 隧道以支持隧道复合下一跃点。它还提供了有关配置反向路径转发以防止反欺骗的信息。

配置基于下一跃点的 MPLS-over-GRE 动态隧道

基于下一跳的 MPLS-over-GRE 隧道可创建隧道复合下一跳、间接下一跳和转发下一跃点,以解析隧道目标路由。您可以配置基于下一跃点的 MPLS-over-GRE 隧道以及基于防火墙过滤器的隧道解封装。

在 ACX 系列上,从 Junos OS 演化版 24.2R1 开始,可以通过在 [edit routing-options dynamic-tunnels] 层次结构中包含gre next-hop-based-tunnel语句来配置基于动态 GRE 下一跃点的隧道。

您可以通过在 [edit firewall family family-name filter filter-name term term-name then decapsulate] 层次结构级别包含gre语句来配置基于 MPLS-over-GRE 防火墙过滤器的解封装。防火墙过滤器规则中仅支持解封装作。MPLS-over-GRE 防火墙基于过滤器的解封装仅适用于家族 inet。

您可以通过在 [edit routing-options dynamic-tunnels statistics] 层级使用interval语句配置特定时间间隔来检索封装隧道统计信息。您也可使用show dynamic-tunnels database statistics命令查看统计信息。

为动态下一跳隧道配置封装

要为动态下一跃点隧道配置封装,您需要在 [edit routing-options dynamic-tunnels] 层级包含gre next-hop-based-tunnel语句。

以下是 MPLS-over-GRE 封装的示例配置:

配置防火墙过滤器以进行解封装

在以下配置中,我们将 SIP、DIP 协议进行匹配以匹配隧道数据包。需要将防火墙过滤器映射到默认路由实例。

通过该作,PFE 对路由器进行编程,以去除隧道标头,并继续基于内部标头进行处理。

启用封装统计信息

PFE 能够提供数据包和字节计数级别的封装统计信息。字节计数值包括封装标头。默认情况下,不会为隧道封装启用统计信息,因为用于统计信息的计数器是共享资源。因此,您需要通过配置 encap-stats-enable CLI 语句来启用计数器分配。

要启用封装统计信息,请配置以下 CLI:

局限性

以下是在 ACX 系列上配置下一个基于跃点的 MPLS-over-GRE 动态隧道时的限制:

  • 不支持基于动态下一跳的隧道的 TTL 传播。

  • 不支持服务等级和 MTU。

  • 不支持 IPv4 和 IPv6 封装的路径 MTU 发现,因为在隧道始发节点上不会为封装的数据包维护流缓存。

  • 不支持内部源 IP 的隧道解封装时的反欺骗。

  • 在防火墙过滤器规则中,仅 decapsulate mpls-in-udp 支持隧道 decapsulate gre 解封装。由于数据路径限制,不支持对传入核心接口的其他防火墙过滤器规则。

  • 防火墙过滤器解封装规则仅支持默认 VRF。

  • 不支持每个隧道复合下一跳级别的隧道统计信息。

  • 统计计数器分配以先到先得 (FCFS) 的方式进行。在系统重新启动或 evo-pefmand 重新启动时,某些计数器在重新启动后可能具有非零值,并且计数器可能不会递增。

  • IPv4 的前缀掩码为 /32,IPv6 的前缀掩码为 /128,仅在基于解封装的筛选规则中受支持。不支持基于解封装的过滤器规则中的防火墙过滤器前缀列表。

  • 不支持灵活 VLAN 标记。

  • 不支持基于接口的动态下一跳 GRE 隧道。

  • 配置 set chassis loopback-dynamic-tunnel 语句不适用于 ACX 平台,因为支持线速隧道封装和解封装。

  • 不支持 IPv6 核心。

示例:配置基于下一跃点的动态 GRE 隧道

此示例说明如何配置包含隧道复合下一跃点 (CNH) 而不是接口下一跃点的动态通用路由封装 (GRE) 隧道。与基于接口的动态 GRE 隧道相比,基于下一跳的动态 GRE 隧道具有扩展优势。

要求

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

  • 五台带 MPC 和 MIC 的 MX 系列路由器。

  • 在 PE 路由器上运行的 Junos OS 16.2 或更高版本。

开始之前:

  1. 配置设备接口,包括环路接口。

  2. 配置设备的路由器 ID 和自治系统编号。

  3. 建立与远程 PE 设备的内部 BGP (IBGP) 会话。

  4. 在设备之间建立 OSPF 对等互连。

概述

从 Junos OS 16.2 版开始,动态通用路由封装 (GRE) 隧道支持为配置的每个 GRE 隧道创建隧道复合下一跃点。

默认情况下,对于配置的每个新的动态 GRE 隧道,系统都会创建一个相应的逻辑隧道接口。这称为基于接口的动态隧道,是创建动态隧道的默认模式。在基于接口的动态隧道中,设备上可配置的隧道数取决于设备上支持的接口总数。基于下一跃点的动态 GRE 隧道消除了对物理接口的依赖性,并且 GRE 隧道封装作为下一跳指令实现,而无需创建逻辑隧道接口。这为可在设备上创建的动态隧道数量提供了扩展优势。

从 Junos OS 17.1 版开始,在带有 MPC 和 MIC 的 MX 系列路由器上,基于下一跃点的动态 GRE 隧道的扩展限制将会增加。扩展值的增加有利于数据中心网络,其中需要网关路由器才能通过 IP 基础架构与多个服务器进行通信;例如,在 Contrail 网络中。

在给定时间点,设备上可以存在基于下一跃点的动态隧道或默认的基于接口的动态 GRE 隧道。从一个隧道模式切换到另一个隧道模式会删除现有隧道,并根据支持的扩展限制在新隧道模式中创建新隧道。同样,在给定时间点,对于同一隧道目标,基于下一跃点的隧道封装类型可以是 GRE 或 UDP。

要启用基于下一跃点的动态 GRE 隧道,请在[edit routing-options dynamic-tunnels gre]层次结构级别包含next-hop-based-tunnel语句。

现有的动态隧道功能需要完整的静态配置。目前,从播发路由中的对等设备接收的隧道信息将被忽略。从 Junos OS 17.4R1 版开始,在 MX 系列路由器上,基于下一跃点的动态 GRE 隧道使用 BGP 封装扩展社区发出信号。BGP 导出策略用于指定隧道类型、通告发送方隧道信息以及解析和传送接收方隧道信息。根据接收到的隧道类型创建隧道社区。

BGP 支持多隧道封装。接收到多项功能后,系统会根据配置的 BGP 策略和隧道优先级创建基于下一跳的动态隧道。对于要建立的隧道,隧道优先级应在隧道的两端保持一致。默认情况下,MPLS-over-UDP (MPLSoUDP) 隧道优先于 GRE 隧道。如果存在动态隧道配置,则该配置优先于接收到的隧道社区。

配置基于下一跃点的动态 GRE 隧道时,请注意以下注意事项:

  • 在 IBGP 协议下一跃点解析过程中会触发动态隧道创建。

  • 允许从基于下一跳的隧道模式切换到基于接口的隧道模式(反之亦然),这可能会根据每种模式中支持的 IP 隧道扩展值来影响网络性能。

  • 基于下一跳的动态隧道配置不支持 RSVP 自动网状隧道。

  • 此功能支持基于新的 IPv4-mapped-IPv6 下一跃点创建动态 GRE 隧道。

  • 基于下一跃点的动态 GRE 隧道配置不支持以下功能:

    • RSVP 自动网格

    • 逻辑系统

    • 发送方(MX 系列)端的每隧道流量统计信息收集

    • 在隧道接口实施 QoS,如监管和整形。

    • 路径最大传输单元发现

    • GRE 关键功能

    • GRE 激活消息的 GRE作、管理和维护 (OAM)。

拓扑学

图 1 展示了通过动态 GRE 隧道实现的第 3 层 VPN 方案。客户边缘 (CE) 设备 CE1 和 CE2 分别连接到提供商边缘 (PE) 设备 PE1 和 PE2。PE 设备连接到提供商设备(设备 P1),内部 BGP (IBGP) 会话使两个 PE 设备互连。PE 设备之间配置了两个动态 GRE 隧道。设备 PE1 到设备 PE2 的动态隧道基于下一跳隧道模式,设备 PE2 到设备 PE1 的动态隧道基于接口隧道模式。

图 1:通过动态 GRE 隧道 Network topology with dynamic GRE tunnels: Next hop-based (green dashed) and Interface-based (gray dashed). CE1, CE2, PE1, PE2, and P1 devices connected. IBGP session (blue dashed) between PE1 and PE2.的第 3 层 VPN

基于下一跃点的动态 GRE 隧道的处理方式如下:

  1. 配置基于下一跃点的动态 GRE 隧道后,将为 inet.3 路由表中的协议下一跃点创建带有隧道 CNH 的隧道目标掩码路由。仅当删除动态隧道配置时,才会撤回此 IP 隧道路由。

    隧道 CNH 属性包括:

    • 禁用第 3 层 VPN CNH 时 - 源和目标地址、封装字符串和 VPN 标签。

    • 启用第 3 层 VPN CNH 和按前缀 VPN 标签分配时 - 源地址、目标地址和封装字符串。

    • 当启用第 3 层 VPN CNH 并禁用按前缀 VPN 标签分配时 - 源地址、目标地址和封装字符串。在这种情况下,路由将添加到另一个具有辅助路由的虚拟路由和转发实例表中。

  2. PE 设备使用 IBGP 会话进行互连。到远程 BGP 邻接方的 IBGP 路由下一跃点即为协议下一跃点,使用隧道掩码路由与隧道下一跃点进行解析。

  3. 通过隧道复合下一跃点解析下一跃点后,将创建具有转发下一跃点的间接下一跃点。

  4. 隧道 CNH 用于转发间接下一跳的下一跃点。

配置

CLI 快速配置

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

CE1

CE2 认证

PE1

小一

PE2

程序

分步过程

下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器

要配置设备 PE1,请执行以下作:

  1. 配置设备接口,包括设备的环路接口。

  2. 为来自设备 PE1 的路由配置静态路由,并将设备 P1 作为下一跳目标。

  3. 配置设备 PE1 的路由器 ID 和自治系统编号。

  4. 配置 PE 设备之间的 IBGP 对等互连。

  5. 在设备 PE1 的所有接口上配置 OSPF,管理接口除外。

  6. 在设备 PE1 上启用基于下一跃点的动态 GRE 隧道配置。

  7. 配置从设备 PE1 到设备 PE2 的动态 GRE 隧道参数。

  8. 将负载均衡策略导出到转转发表。

  9. 在设备 PE1 上配置 VRF 路由实例和其他路由实例参数。

  10. 在路由实例配置中启用 BGP,以便与设备 CE1 对等。

结果

在配置模式下,输入show interfacesshow routing-optionsshow protocols、和show routing-instances命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

验证 PE 设备之间的连接

目的

验证设备 PE1 和设备 PE2 之间的 BGP 对等状态,以及从设备 PE2 接收的 BGP 路由。

行动

在作模式下,运行 show bgp summaryshow route receive-protocol bgp ip-address table bgp.l3vpn.0 命令。

意义
  • 在第一个输出中,BGP 会话状态为 Establ,表示会话已启动且 PE 设备处于对等状态。

  • 在第二个输出中,设备 PE1 从设备 PE2 获知了两条 BGP 路由。

验证设备 PE1 上的动态隧道路由

目的

验证 inet.3 路由表中的路由以及设备 PE1 上的动态隧道数据库信息。

行动

在作模式下,运行 show route table inet.3show dynamic-tunnels database terse 命令。

意义
  • 在第一个输出中,由于设备 PE1 配置了基于下一跃点的动态 GRE 隧道,因此会为 inet.3 路由表路由条目创建隧道复合路由。

  • 在第二个输出中,从设备 PE1 到设备 PE2 创建的动态 GRE 隧道已启动,并为其分配了下一跃点 ID,而不是下一跳接口。

验证设备 PE2 上的动态隧道路由

目的

验证 inet.3 路由表中的路由以及设备 PE2 上的动态隧道数据库信息。

行动

在作模式下,运行 show route table inet.3show dynamic-tunnels database terse 命令。

意义
  • 在第一个输出中,由于设备 PE2 具有默认的基于接口的动态 GRE 隧道配置,因此将为 inet.3 路由表路由条目创建一个新接口。

  • 在第二个输出中,从设备 PE2 到设备 PE1 创建的动态 GRE 隧道已启动,并为其分配了新创建的接口名称。

验证路由是否具有预期的间接下一跃点标志

目的

验证设备 PE1 和设备 PE2 是否配置为在数据包转发引擎转发表上维护到转发的间接下一跃点绑定。

行动

在作模式下,对设备 PE1 和设备 PE2 运行 show krt indirect-next-hop 命令。

意义
  • 在第一个输出中,设备 PE1 具有通向设备 PE2 的基于下一跃点的动态 GRE 隧道。

  • 在第二个输出中,设备 PE2 具有通向设备 PE1 的基于接口的动态 GRE 隧道。

故障 排除

要排除基于下一跳的动态隧道故障,请参阅:

故障排除命令

问题

基于下一跃点的动态 GRE 隧道配置未生效。

溶液

要对基于下一跃点的 GRE 隧道配置进行故障排除,请在[edit routing-options dynamic-tunnels]语句层次结构中使用以下traceoptions命令:

  • traceoptions file file-name

  • traceoptions file size file-size

  • traceoptions flag all

例如:

示例:配置基于下一跳的 MPLS-over-UDP 动态隧道

此示例说明如何配置包含隧道复合下一跃点的动态 MPLS-over-UDP 隧道。MPLS-over-UDP 功能在设备支持的 IP 隧道数量上提供了扩展优势。

从 Junos OS 18.3R1 版开始,PTX 系列路由器和 QFX 系列交换机支持 MPLS-over-UDP 隧道。对于在 PTX 路由器或 QFX 交换机上配置的每个动态隧道,将创建一个隧道复合下一跃点、一个间接下一跃点和一个转发下一跃点,以解析隧道目标路由。您还可以通过在[edit routing-options dynamic-tunnels]层次结构级别包含 forwarding-rib 配置语句,使用策略控制来解析基于所选前缀的动态隧道问题。

要求

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

  • 五台带 MPC 和 MIC 的 MX 系列路由器。

  • 在提供商边缘 (PE) 路由器上运行的 Junos OS 16.2 或更高版本。

开始之前:

  1. 配置设备接口,包括环路接口。

  2. 配置设备的路由器 ID 和自治系统编号。

  3. 建立与远程 PE 设备的内部 BGP (IBGP) 会话。

  4. 在设备之间建立 OSPF 对等互连。

概述

从 Junos OS 16.2 版开始,动态 UDP 隧道支持为配置的每个 UDP 隧道创建隧道复合下一跃点。这些基于下一跳的动态 UDP 隧道称为 MPLS-over-UDP 隧道。默认情况下,为 MPLS-over-UDP 隧道启用隧道复合下一跃点。

MPLS-over-UDP 隧道可以是双向的,也可以是单向的。

  • 双向 — 当 PE 设备通过 MPLS-over-UDP 隧道双向连接时,称为双向 MPLS-over-UDP 隧道。

  • 单向 — 当两个 PE 设备在一个方向上通过 MPLS-over-UDP 隧道连接,并通过 MPLS/IGP 在另一个方向上连接时,称为单向 MPLS-over-UDP 隧道。

    单向 MPLS-over-UDP 隧道可用于迁移场景,或者两个 PE 设备通过两个不相交网络提供相互连接的情况。由于单向 MPLS-over-UDP 隧道不存在反向隧道,因此您必须在远程 PE 设备上配置基于过滤器的 MPLS-over-UDP 解封装,以便转发流量。

从 Junos OS 版本 18.2R1 开始,在采用单向 MPLS-over-UDP 隧道的 PTX 系列路由器和QFX10000上,您必须为远程 PE 设备配置一个用于 MPLS-over-UDP 数据包的输入过滤器,以及一个用于解封 IP 和 UDP 标头的作,以便以反向隧道方向转发数据包。

例如,在远程 PE 设备设备 PE2 上,单向 MPLS-over-UDP 隧道需要以下配置:

PE2

在上面的示例配置中, Decap_Filter 是用于 MPLS-over-UDP 解封装的防火墙过滤器的名称。术语 udp_decap 是输入过滤器,用于在设备 PE2 面向核心的接口上接受 UDP 数据包,然后将 MPLS-over-UDP 数据包解封装为 MPLS-over-IP 数据包进行转发。

您可以使用现有的防火墙作模式命令,例如 show firewall filter 查看基于过滤器的 MPLS-over-UDP 解封装。

例如:

注意:

对于单向 MPLS-over-UDP 隧道:

  • 仅支持将 IPv4 地址作为外部标头。基于过滤器的 MPLS-over-UDP 解封装不支持外部标头中的 IPv6 地址。

  • 解封装后仅支持默认路由实例。

从 Junos OS 17.1 版开始,在带有 MPC 和 MIC 的 MX 系列路由器上,MPLS-over-UDP 隧道的扩展限制将会增加。

从 Junos 19.2R1 版开始,在具有 MPC 和 MIC 的 MX 系列路由器上,运营商支持运营商 (CSC) 架构可以部署在 MPLS-over-UDP 隧道中,通过在支持运营商的 PE 设备之间建立的动态 IPv4 UDP 隧道来传输 MPLS 流量。通过此增强功能,MPLS-over-UDP 隧道提供的扩展优势将进一步增强。IPv6 UDP 隧道不支持对 MPLS-over-UDP 隧道的 CSC 支持。

现有的动态隧道功能需要完整的静态配置。目前,从播发路由中的对等设备接收的隧道信息将被忽略。从 Junos OS 17.4R1 版开始,在 MX 系列路由器上,基于下一跃点的动态 MPLS-over-UDP 隧道使用 BGP 封装扩展社区发出信号。BGP 导出策略用于指定隧道类型、通告发送方隧道信息以及解析和传送接收方隧道信息。根据接收到的隧道类型创建隧道社区。

BGP 支持多隧道封装。接收到多项功能后,系统会根据配置的 BGP 策略和隧道优先级创建基于下一跳的动态隧道。对于要建立的隧道,隧道优先级应在隧道的两端保持一致。默认情况下,MPLS-over-UDP 隧道优先于 GRE 隧道。如果存在动态隧道配置,则该配置优先于接收到的隧道社区。

配置基于下一跃点的动态 MPLS-over-UDP 隧道时,请注意以下注意事项:

  • 必须在 PE 设备之间配置 IBGP 会话。

  • 允许在基于下一跳的动态隧道封装(UDP 和 GRE)之间切换,这可能会根据每种模式下支持的 IP 隧道扩展值来影响网络性能。

  • 对同一隧道目标同时使用 GRE 和 UDP 基于下一跃点的动态隧道封装类型会导致提交失败。

  • 对于单向 MPLS-over-UDP 隧道,您必须在远程 PE 设备上为要转发的数据包显式配置基于过滤器的 MPLS-over-UDP 解封装。

  • MPLS-over-UDP 支持平滑路由引擎切换 (GRES),并且 MPLS-over-UDP 隧道类型标志统一符合 ISSU 和 NSR。

  • 精简模式下的虚拟 MX (vMX) 支持 MPLS-over-UDP 隧道。

  • MPLS-over-UDP 隧道支持基于新的 IPv4 映射 IPv6 下一跃点创建动态 GRE 隧道。

  • 在与 Contrail 的互作性中支持 MPLS-over-UDP 隧道,其中从 Contrail vRouter 到 MX 网关创建 MPLS-over-UDP 隧道。为此,需要在从 MX 系列路由器到 Contrail vRouter 的路由中播发以下社区:

    在给定的时间点,Contrail vRouter 仅支持一种隧道类型:基于下一跳的动态 GRE 隧道、MPLS-over-UDP 隧道或 VXLAN。

  • 基于下一跃点的动态 MPLS-over-UDP 隧道配置不支持以下功能:

    • RSVP 自动网格

    • 普通 IPV6、GRE 和 UDP 隧道配置

    • 逻辑系统

拓扑学

图 2 展示了动态 MPLS-over-UDP 隧道上的第 3 层 VPN 场景。客户边缘 (CE) 设备 CE1 和 CE2 分别连接到提供商边缘 (PE) 设备 PE1 和 PE2。PE 设备连接到提供商设备(设备 P1),两个 PE 设备通过内部 BGP (IBGP) 会话互连。PE 设备之间会配置一个基于动态下一跳的双向 MPL-over-UDP 隧道。

图 2:动态 MPLS-over-UDP 隧道 Dynamic MPLS-over-UDP Tunnels

MPLS-over-UDP 隧道的处理方式如下:

  1. 配置 MPLS-over-UDP 隧道后,将为 inet.3 路由表中的隧道创建带有隧道复合下一跃点的隧道目标掩码路由。仅当删除动态隧道配置时,才会撤回此 IP 隧道路由。

    隧道复合下一跃点属性包括:

    • 禁用第 3 层 VPN 复合下一跃点时 - 源和目标地址、封装字符串和 VPN 标签。

    • 启用第 3 层 VPN 复合下一跃点和按前缀 VPN 标签分配时 - 源地址、目标地址和封装字符串。

    • 当启用第 3 层 VPN 复合下一跃点并禁用按前缀 VPN 标签分配时 - 源地址、目标地址和封装字符串。在这种情况下,路由将添加到另一个具有辅助路由的虚拟路由和转发实例表中。

  2. PE 设备使用 IBGP 会话进行互连。到远程 BGP 邻接方的 IBGP 路由下一跃点即为协议下一跃点,使用隧道掩码路由与隧道下一跃点进行解析。

  3. 通过隧道复合下一跳解析协议下一跃点后,将创建具有转发下一跃点的间接下一跃点。

  4. 隧道复合下一跳用于转发间接下一跃点的下一跃点。

配置

CLI 快速配置

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

CE1

CE2 认证

PE1型

小一

PE2

程序

分步过程

下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器

要配置设备 PE1,请执行以下作:

  1. 配置设备接口,包括设备的环路接口。

  2. 为来自设备 PE1 的路由配置静态路由,并将设备 P1 作为下一跳目标。

  3. 配置设备 PE1 的路由器 ID 和自治系统编号。

  4. (仅限 PTX 系列)配置策略控制以解析基于选定前缀的 MPLS-over-UDP 动态隧道路由。

  5. (仅限 PTX 系列)配置 inet-import 策略,以便通过 解析动态隧道目标路由。

  6. 配置 PE 设备之间的 IBGP 对等互连。

  7. 在设备 PE1 的所有接口上配置 OSPF,管理接口除外。

  8. 在设备 PE1 上启用基于下一跃点的动态 GRE 隧道配置。

    注意:

    仅需要此步骤来说明基于下一跃点的动态 GRE 隧道和 MPLS-over-UDP 隧道之间的实现差异。

  9. 配置从设备 PE1 到设备 PE2 的 MPLS-over-UDP 隧道参数。

  10. 在设备 PE1 上配置 VRF 路由实例和其他路由实例参数。

  11. 在路由实例配置中启用 BGP,以便与设备 CE1 对等。

结果

在配置模式下,输入show interfacesshow routing-optionsshow protocols、和show routing-instances命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

验证 PE 设备之间的连接

目的

验证设备 PE1 和设备 PE2 之间的 BGP 对等状态,以及从设备 PE2 接收的 BGP 路由。

行动

在作模式下,运行 show bgp summaryshow route receive-protocol bgp ip-address table bgp.l3vpn.0 命令。

意义
  • 在第一个输出中,BGP 会话状态为 Establ,表示会话已启动且 PE 设备处于对等状态。

  • 在第二个输出中,设备 PE1 已从设备 PE2 获知 BGP 路由。

验证设备 PE1 上的动态隧道路由

目的

验证 inet.3 路由表中的路由以及设备 PE1 上的动态隧道数据库信息。

行动

在作模式下,运行show route table inet.3show dynamic-tunnels database terseshow dynamic-tunnels database、和show dynamic-tunnels database summary命令。

意义
  • 在第一个输出中,由于设备 PE1 配置了 MPLS-over-UDP 隧道,因此会为 inet.3 路由表路由条目创建隧道复合路由。

  • 在其余输出中,将显示 MPLS-over-UDP 隧道,其中包含隧道封装类型、隧道下一跳参数和隧道状态。

验证设备 PE2 上的动态隧道路由

目的

验证 inet.3 路由表中的路由以及设备 PE2 上的动态隧道数据库信息。

行动

在作模式下,运行 show route table inet.3show dynamic-tunnels database terse 命令。

意义

输出显示 MPLS-over-UDP 隧道的创建以及分配给下一跳接口的下一跃点 ID,类似于设备 PE1。

验证路由是否具有预期的间接下一跃点标志

目的

验证设备 PE1 和设备 PE2 是否配置为在数据包转发引擎转发表上维护到转发的间接下一跃点绑定。

行动

在作模式下,对设备 PE1 和设备 PE2 运行 show krt indirect-next-hop 命令。

意义

输出显示,已在 PE 设备之间创建了一个基于下一跃点的动态 MPLS-over-UDP 隧道。

故障 排除

要排除基于下一跳的动态隧道故障,请参阅:

故障排除命令

问题

基于下一跃点的动态 MPLS-over-UDP 隧道配置未生效。

溶液

要对基于下一跃点的 MPLS-over-UDP 隧道配置进行故障排除,请在[edit routing-options dynamic-tunnels]语句层次结构中使用以下traceroute命令:

  • traceoptions file file-name

  • traceoptions file size file-size

  • traceoptions flag all

例如:

基于下一跳的动态隧道的反欺骗保护概述

随着在数据中心部署大规模 IP 隧道的次数增加,用户需要增加安全措施,以限制来自受损虚拟机 (VM) 的恶意流量。一种可能的攻击是通过网关路由器将流量从受攻击的服务器注入到任意客户 VPN。在这种情况下,对 IP 隧道的反欺骗检查可确保只有合法来源才能从其指定的 IP 隧道将流量注入数据中心。

基于下一跳的动态 IP 隧道会为设备上创建的每个动态隧道创建一个隧道复合下一跳。由于基于下一跃点的动态隧道消除了配置的每个新动态隧道对物理接口的依赖性,因此配置基于下一跃点的动态隧道可提供相对于设备上可创建的动态隧道数量的扩展优势。从 Junos OS 17.1 版开始,为基于下一跳的动态隧道提供了基于下一跳的动态 IP 隧道的反欺骗功能。借助此增强功能,将实施安全措施以防止通过网关路由器将流量从受感染的服务器注入到任意客户 VPN。

反欺骗是通过在数据包转发引擎中使用反向路径转发检查来实现的。将对通过隧道到达路由实例的流量实施检查。目前,当网关路由器从隧道接收流量时,我们只会完成目标查找,并相应地转发数据包。启用反欺骗保护后,除了隧道目标查找外,网关路由器还会对 VPN 中的封装数据包 IP 标头进行源地址查找。这可以确保合法来源通过其指定的 IP 隧道注入流量。因此,反欺骗保护可确保从指定隧道上的合法来源接收隧道流量。

图 3 显示了一个示例拓扑,其中包含反欺骗保护的要求。

图 3:基于下一跳的动态隧道 Anti-Spoofing Protection for Next-Hop-Based Dynamic Tunnels的反欺骗保护

在此示例中,网关路由器为路由器 G。路由器 G 有两个 VPN:绿色和蓝色。服务器 A 和服务器 B 两台服务器分别可以通过基于下一跳的动态隧道 T1 和 T2 到达路由器 G 上的绿色和蓝色 VPN。连接到服务器的多个主机和虚拟机(P、Q、R、S 和 T)可以通过网关路由器路由器 G 访问 VPN。路由器 G 具有绿色和蓝色 VPN 的虚拟路由和转发 (VRF) 表,每个表都填充了这些 VPN 中虚拟机的可访问性信息。

例如,在 VPN Green 中,路由器 G 使用隧道 T1 到达主机 P,使用隧道 T2 到达主机 R 和 S,并在隧道 T1 和 T2 之间进行负载平衡以到达多宿主主机 Q。在 VPN Blue 中,路由器 G 使用隧道 T1 访问主机 P 和 R,并使用隧道 T2 访问主机 Q 和 T。

在以下情况下,反向路径转发检查通过:

  • 数据包来自其指定隧道上的合法来源。

    VPN 绿色中的主机 P 使用隧道 T1 向主机 X 发送数据包。由于路由器 G 可以通过隧道 T1 到达主机 P,因此允许数据包通过并将数据包转发至主机 X。

  • 数据包来自其指定隧道上的多宿主源。

    VPN Green 中的主机 Q 在服务器 A 和 B 上多宿主,可以通过隧道 T1 和 T2 到达路由器 G。主机 Q 使用隧道 T1 向主机 Y 发送数据包,并使用隧道 T2 向主机 X 发送数据包。由于路由器 G 可以通过隧道 T1 和 T2 到达主机 Q,因此允许数据包传递并分别转发至主机 Y 和 X。

默认情况下,第 3 层 VPN 不会启用反欺骗保护。要为基于下一跃点的动态隧道启用反欺骗,请在[edit routing-instances routing-instance-name routing-options forwarding-table]层次结构级别包含ip-tunnel-rpf-check语句。反向路径转发检查仅应用于 VRF 路由实例。默认模式设置为 strict,其中来自非指定隧道上源的数据包未通过检查。该ip-tunnel-rpf-check模式可以设置为 loose,当数据包来自不存在的源时,反向路径转发检查将失败。可以在语句下ip-tunnel-rpf-check配置可选的防火墙过滤器,以计算和记录未通过反向路径转发检查的数据包。

以下示例输出显示了反欺骗配置:

为基于下一跃点的动态隧道配置反欺骗保护时,请遵循以下准则:

  • 只能为 IPv4 隧道和 IPv4 数据流量启用反欺骗保护。IPv6 隧道和 IPv6 数据流量不支持反欺骗功能。

  • 基于下一跃点的动态隧道的反欺骗可以检测并防止遭到入侵的虚拟机(内部源反向路径转发检查),但不能检测并阻止遭到入侵的服务器进行标签欺骗。

  • 基于下一跃点的 IP 隧道可以在 inet.0 路由表上发起和终止。

  • 当 VRF 路由实例具有标签交换接口 (LSI)(使用 vrf-table-label)或虚拟隧道 (VT) 接口时,反欺骗保护将有效。在 VRF 路由实例上使用 per-next-hop 标签时,不支持反欺骗保护。

  • rpf fail-filter 适用于内部 IP 数据包。

  • 启用反欺骗检查不会影响设备上基于下一跳的动态隧道的扩展限制。

  • 为 VRF 路由实例启用了反欺骗保护的系统资源利用率略高于未启用反欺骗保护的基于下一跳的动态隧道的利用率。

  • 反欺骗保护需要额外的源 IP 地址检查,这对网络性能的影响最小。

  • 平滑路由引擎切换 (GRES) 和不中断服务的软件升级 (ISSU) 具有反欺骗保护功能。

示例:为基于下一跳的动态隧道配置反欺骗保护

此示例说明如何为虚拟路由和转发 (VRF) 路由实例配置反向路径转发检查,以便为基于下一跃点的动态隧道启用反欺骗保护。这些检查可确保合法来源通过其指定的 IP 隧道注入流量。

要求

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

  • 三台带 MIC 的 MX 系列路由器,每个连接到一台主机设备。

  • 在一台或所有路由器上运行的 Junos OS 17.1 或更高版本。

开始之前:

  • 在灵活 PIC 集中器上启用通道服务配置。

  • 配置路由器接口。

  • 配置路由器 ID 并为路由器分配一个自治系统编号。

  • 建立与隧道端点的内部 BGP (IBGP) 会话。

  • 在所有路由器上配置 RSVP。

  • 在所有路由器上配置 OSPF 或任何其他内部网关协议。

  • 在两台路由器之间配置两个基于下一跳的动态 IP 隧道。

  • 为每个路由器到主机连接配置一个 VRF 路由实例。

概述

从 Junos OS 17.1 版开始,该功能已添加到基于下一跳的动态 IP 隧道中,其中使用数据包转发引擎中的反向路径转发,对通过隧道到达路由实例的流量进行检查。

目前,当网关路由器从隧道接收流量时,仅在转发前进行目标地址查找。借助反欺骗保护,网关路由器可以对 VPN 中的封装数据包 IP 报头进行源地址查找,以确保合法来源通过其指定的 IP 隧道注入流量。这称为严格模式,是反欺骗保护的默认行为。要从非指定隧道传递流量,将在丢失模式下启用反向路径转发检查。对于从不存在的源接收的流量,严格模式和松散模式的反向路径转发检查都会失败。

VRF 路由实例支持反欺骗。要为动态隧道启用反欺骗,请在[edit routing-instances routing-instance-name routing-options forwarding-table]层次结构级别包含ip-tunnel-rpf-check语句。

拓扑学

图 4 显示了启用了反欺骗保护的网络拓扑示例。路由器 R0、R1 和 R2 分别连接到主机 Host0、Host1 和 Host2。两个基于下一跳的通用路由封装 (GRE) 动态隧道(隧道 1 和隧道 2)分别将路由器 R0 与路由器 R1 和 R2 连接起来。VRF 路由实例在每个路由器及其连接的主机设备之间运行。

图 4:基于下一跳的动态隧道 Anti-Spoofing Protection for Next-Hop-Based Dynamic Tunnels的反欺骗保护

例如,路由器 0 通过基于下一跳的动态 GRE 隧道(隧道 2)从路由器 R2 接收三个数据包(数据包 A、B 和 C)。这些数据包的源 IP 地址为 172.17.0.2(数据包 A)、172.18.0.2(数据包 B)和 172.20.0.2(数据包 C)。

数据包 A 和 B 的源 IP 地址分别属于主机 2 和主机 1。数据包 C 是不存在的源隧道。此示例中的指定隧道为隧道 2,非指定隧道为隧道 1。因此,数据包的处理方式如下:

  • Packet A— 由于源来自指定的隧道(隧道 2),因此数据包 A 通过反向路径转发检查,并经过处理以通过隧道 2 进行转发。

  • Packet B— 由于源来自隧道 1,这是一个非指定隧道,因此默认情况下,数据包 B 在严格模式下无法通过反向路径转发检查。如果启用了松散模式,则允许转发数据包 B。

  • Packet C—由于源是不存在的隧道源,数据包 C 未通过反向路径转发检查,因此数据包未被转发。

配置

CLI 快速配置

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

路由器 R0

路由器 R1

R2

程序

分步过程

下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器

要配置路由器 R0:

  1. 配置路由器 R0 的接口,包括环路接口。

  2. 为路由器 R0 分配路由器 ID 和自治系统编号。

  3. 配置路由器之间的 IBGP 对等互连。

  4. 在路由器 R0 的所有接口上配置 OSPF,管理接口除外。

  5. 在路由器 R0 的所有接口上配置 RSVP,管理接口除外。

  6. 在路由器 R0 上启用基于下一跃点的动态 GRE 隧道配置。

  7. 配置从路由器 R0 到路由器 R1 的动态 GRE 隧道参数。

  8. 配置从路由器 R0 到路由器 R2 的动态 GRE 隧道参数。

  9. 在路由器 R0 上配置虚拟路由和转发 (VRF) 路由实例,并将连接到主机 1 的接口分配给 VRF 实例。

  10. 为 VRF 路由实例配置与主机 1 的外部 BGP 会话。

  11. 为路由器 R0 上的 VRF 路由实例配置反欺骗保护。这将对路由器 0 上基于下一跃点的动态隧道 T1 和 T2 启用反向路径转发检查。

结果

在配置模式下,输入show interfacesshow routing-optionsshow protocols、和show routing-options命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

验证

确认配置工作正常。

验证基本配置

目的

验证路由器 R0 与路由器 R1 和 R2 之间的 OSPF 和 BGP 对等状态。

行动

在作模式下,运行 show ospf neighborshow bgp summary命令。

意义

OSPF 和 BGP 会话已在路由器 R0、R1 和 R2 之间启动并运行。

验证动态隧道配置

目的

验证路由器 R0 与路由器 R1 和 R2 之间基于下一跃点的动态 GRE 隧道的状态。

行动

在作模式下,运行 show route table inet.3show dynamic-tunnels database terse 命令。

意义

两个基于下一跃点的动态 GRE 隧道(隧道 1 和隧道 2)已启动。

验证反欺骗保护配置

目的

验证是否已在路由器 R0 上的 VRF 路由实例上启用反向路径转发检查。

行动

在作模式下,运行 show krt table VPN1.inet.0 detail.

意义

配置的反向路径转发检查会在严格模式下的 VRF 路由实例上启用。

变更历史表

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

释放
描述
19.2R1
从 Junos 19.2R1 版开始,在具有 MPC 和 MIC 的 MX 系列路由器上,运营商支持运营商 (CSC) 架构可以部署在 MPLS-over-UDP 隧道中,通过在支持运营商的 PE 设备之间建立的动态 IPv4 UDP 隧道来传输 MPLS 流量。
18.3R1
从 Junos OS 18.3R1 版开始,PTX 系列路由器和 QFX 系列交换机支持 MPLS-over-UDP 隧道。
18.2R1
从 Junos OS 版本 18.2R1 开始,在采用单向 MPLS-over-UDP 隧道的 PTX 系列路由器和QFX10000上,您必须为远程 PE 设备配置一个用于 MPLS-over-UDP 数据包的输入过滤器,以及一个用于解封 IP 和 UDP 标头的作,以便以反向隧道方向转发数据包。
17.4R1
从 Junos OS 17.4R1 版开始,在 MX 系列路由器上,基于下一跃点的动态 GRE 隧道使用 BGP 封装扩展社区发出信号。
17.4R1
从 Junos OS 17.4R1 版开始,在 MX 系列路由器上,基于下一跃点的动态 MPLS-over-UDP 隧道使用 BGP 封装扩展社区发出信号。
17.1R1
从 Junos OS 17.1 版开始,在带有 MPC 和 MIC 的 MX 系列路由器上,基于下一跃点的动态 GRE 隧道的扩展限制将会增加。
17.1R1
从 Junos OS 17.1 版开始,在带有 MPC 和 MIC 的 MX 系列路由器上,MPLS-over-UDP 隧道的扩展限制将会增加。