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 隧道以支持隧道复合下一跃点。它还提供有关配置反向路径转发以防止反欺骗的信息。

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

此示例说明如何配置动态通用路由封装 (GRE) 隧道,该隧道包含隧道复合下一跃点 (CNH),而不是接口下一跃点。与基于接口的动态 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 隧道,请在层次结构级别包含 next-hop-based-tunnel 语句 [edit routing-options dynamic-tunnels gre]

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

BGP 支持多个隧道封装。收到多种功能后,将根据配置的 BGP 策略和隧道首选项创建基于下一跃点的动态隧道。对于要设置的隧道,隧道两端的隧道优先级应一致。默认情况下,MPLS-over-UDP (MPLSoUDP) 隧道优先于 GRE 隧道。如果存在动态隧道配置,则它优先于收到的隧道社区。

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

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

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

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

  • 此功能支持基于新的 IPv4 映射 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 隧道 Layer 3 VPN over Dynamic GRE Tunnels上的第 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 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit] 中,然后从配置模式进入 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 protocolsshow 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 是否配置为在数据包转发引擎转发表上维护到转发下一跃点的间接下一跃点绑定。

行动

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

意义
  • 在第一个输出中,设备 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 交换机上配置的每个动态隧道,将创建一个隧道复合下一跃点、一个间接下一跃点和一个转发下一跃点来解析隧道目标路由。您还可以使用策略控制通过在层次结构级别包含 forwarding-rib 配置语句 [edit routing-options dynamic-tunnels] 来解析选定前缀上的动态隧道。

要求

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

  • 五个带有 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 版开始,在 PTX 系列路由器和具有单向 MPLS-over-UDP 隧道的 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 解封装。

例如:

注意:

对于基于 UDP 的单向 MPLS 隧道:

  • 仅支持 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 隧道,通过动态 IPv4 UDP 隧道传输 MPLS 流量,这些隧道在支持运营商的 PE 设备之间建立。通过此增强功能,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 隧道。

  • MPLS-over-UDP 隧道在与 contrail 的互操作性中受支持,其中 MPLS-over-UDP 隧道是从 contrail vRouter 创建的到 MX 网关。要启用此功能,需要在从 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),内部 BGP (IBGP) 会话互连两个 PE 设备。在 PE 设备之间配置了基于下一跃点的动态双向 MPL over UDP 隧道。

图 2:基于 UDP 的动态 MPLS 隧道 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 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit] 中,然后从配置模式进入 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 隧道与基于 UDP 的 MPLS 隧道之间的实现差异。

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

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

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

结果

在配置模式下,输入 show interfacesshow routing-optionsshow protocolsshow 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 databaseshow dynamic-tunnels database summary 命令。

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

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

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

目的

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

行动

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

意义

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

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

目的

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

行动

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

意义

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

故障 排除

要对基于下一跃点的动态隧道进行故障排除,请参阅:

命令疑难解答

问题

基于下一跳的动态 MPLS 基于 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 Green 中的主机 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 未启用反欺骗保护。要为基于下一跃点的动态隧道启用反欺骗,请在层次结构级别包含 ip-tunnel-rpf-check 语句 [edit routing-instances routing-instance-name routing-options forwarding-table] 。反向路径转发检查仅适用于 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 路由实例支持反欺骗。要为动态隧道启用反欺骗,请在层次结构级别包含 ip-tunnel-rpf-check 语句 [edit routing-instances routing-instance-name routing-options forwarding-table]

拓扑

图 4 展示了一个启用了反欺骗保护的示例网络拓扑。路由器 R0、R1 和 R2 分别连接到主机 Host0、Host1 和主机 2。两个基于下一跃点的通用路由封装 (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 快速配置

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

路由器 R0

路由器 R1

R 2

程序

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 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 protocolsshow 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.3和命令 show 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 隧道,通过动态 IPv4 UDP 隧道传输 MPLS 流量,这些隧道在支持运营商的 PE 设备之间建立。
18.3R1
从 Junos OS 18.3R1 版开始,PTX 系列路由器和 QFX 系列交换机支持 MPLS over UDP 隧道。
18.2R1
从 Junos OS 18.2R1 版开始,在 PTX 系列路由器和具有单向 MPLS-over-UDP 隧道的 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 隧道的扩展限制将会提高。