Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

通用路由封装 (GRE)

了解 GRE、GRE 隧道、封装和解封装以及 GRE 的配置。

通用路由封装 (GRE) 是一种虚拟点对点链路,可在隧道中封装数据流量。以下主题讨论GRE的隧道、封装和解封装过程、配置GRE和验证GRE的工作原理。

GRE 概述

GRE 通过封装(或隧道传输)数据包,提供专用路径,用于通过其他公共网络传输数据包。

GRE 对数据包进行封装,并将其重定向到设备,该设备对数据包进行解封并路由到最终目的地。这使得源交换机和目标交换机能够像彼此之间建立虚拟点对点连接一样运行(因为 GRE 应用的外部报头对封装的有效负载数据包是透明的)。例如,GRE 隧道允许 RIP 和 OSPF 等路由协议通过互联网将数据包从一台交换机转发到另一台交换机。此外,GRE 隧道可以封装组播数据流,以便在互联网上传输。

GRE 在 RFC 2784 中进行了描述(早期的 RFC 1701 和 1702 已过时)。交换机支持 RFC 2784,但不完全支持。

作为 隧道源路由器,交换机封装有效负载数据包,以便通过隧道传输到目标网络。有效负载数据包首先封装在 GRE 数据包中,然后将 GRE 数据包封装在交付协议中。执行 隧道远程路由器 角色的交换机提取隧道数据包,并将数据包转发到其目标。请注意,您可以使用一个防火墙术语来终止 QFX5100 交换机上的多个 GRE 隧道。

查看 特定于平台的 GRE 行为 部分,了解与您的模板相关的注释。

GRE 隧道

系统通过路由表中建立的路由将数据路由到 GRE 端点。(这些路由可以通过 RIP 或 OSPF 等路由协议进行静态配置或动态学习。)GRE 端点收到数据包时,该数据包将被解封并再次路由到其目标地址。

GRE 隧道是 无状态的,也就是说,隧道的端点不包含有关远程隧道端点的状态或可用性的信息。因此,如果远程端点无法访问,作为隧道源运行的交换机路由器无法将 GRE 隧道接口的状态更改为故障。

有关 GRE 隧道的详细信息,请参阅:

交换机上的封装和解封装

封装 — 作为隧道源路由器运行的交换机封装和转发 GRE 数据包,如下所示:

  1. 当交换机收到要通过隧道传输的数据包(有效负载)时,会将数据包发送至隧道接口。

  2. 隧道接口将数据封装在 GRE 数据包中,并添加一个外部 IP 报头。

  3. IP 数据包根据外部 IP 报头中的目的地址进行转发。

解封装 — 作为隧道远程路由器运行的交换机处理 GRE 数据包,如下所示:

  1. 当目标交换机从隧道接口收到 IP 数据包时,外部 IP 报头和 GRE 报头将被移除。

  2. 数据包会根据内部 IP 报头进行路由。

GRE 隧道服务等级

当网络遇到拥塞和延迟时,某些数据包可能会被丢弃。Junos OS 服务等级 (CoS) 将流量划分为多个类,当发生拥塞时,您可以向这些类应用不同级别的吞吐量和数据包丢失,从而设置数据包丢失规则。有关 CoS 的详细信息,请参阅适用于 EX 系列交换机的 Junos OS CoS 概述

作为 GRE 隧道源路由器或 GRE 隧道远程路由器运行的交换机上提供了以下 CoS 组件:

  • 在 GRE 隧道源 — 在作为隧道源路由器运行的交换机上,您可以在 入口端口 GRE 端口上应用 CoS 分类器,在隧道数据包上的 CoS 组件支持上得到以下结果:

    • 仅限调度程序 — 根据入口端口上的 CoS 分类,您可以在交换机的 GRE 端口上应用 CoS 调度程序来定义输出队列,并在 GRE 封装后控制通过隧道传输的数据包。但是,您无法将 CoS 重写规则 应用于这些数据包。

    • 调度程序和重写规则 — 根据 GRE 端口上的 CoS 分类,您可以将调度程序和重写规则应用于通过隧道传输的封装数据包。

    无法在接口上 gr- 配置 BA 分类器。您必须使用防火墙过滤器(多域分类器)对接口上的 gr- 流量进行分类。

  • 在 GRE 隧道端点 — 当交换机是隧道远程路由器时,您可以在 GRE 端口和调度器上应用 CoS 分类器。您还可以重写出口端口上的规则,以控制从出口端口传出解封装的 GRE 数据包的传输。

对 GRE 流量应用防火墙过滤器

防火墙过滤器提供的规则用于定义是允许、拒绝还是转发在交换机上的接口中传输的数据包。(有关详细信息,请参阅 EX 系列交换机的防火墙过滤器概述。)由于 GRE 会执行封装和解封装,因此您在应用防火墙过滤器过滤隧道数据包的位置以及哪个报头将受到影响方面受到限制。 表 1 确定了这些约束。

表 1:隧道数据包的防火墙过滤器应用点
端点类型 入口接口 出口接口

源(封装)

内部报头

外部标头

远程(解封装)

无法过滤入口接口上的数据包

内部报头

使用防火墙过滤器对 GRE 流量进行解封装

您还可以使用防火墙过滤器对交换机上的 GRE 流量进行解封装。此功能在可扩展性、性能和灵活性方面具有显著优势,因为您无需创建隧道接口即可执行解封装。例如,您可以使用一个防火墙术语终止来自多个源 IP 地址的多个隧道。有关如何为此目的配置防火墙过滤器的信息,请参阅配置 防火墙过滤器以解封装 GRE 流量

配置通用路由封装 (GRE) 隧道

通用路由封装 (GRE) 通过封装(或隧道传输)数据包,提供专用路径,用于通过其他公共网络传输数据包。GRE 隧道通过封装或解封装流量的隧道端点来完成。

使用 GRE 确认对特定功能的平台和版本支持。

您还可以使用防火墙过滤器对 GRE 流量进行解封装。此功能在可扩展性、性能和灵活性方面具有显著优势,因为您无需创建隧道接口即可执行解封装。例如,您可以使用一个防火墙术语终止来自多个源 IP 地址的多个隧道。有关此功能的更多信息,请参阅 配置防火墙过滤器以解封装 GRE 流量

要在交换机上配置 GRE 隧道端口:

  1. 确定交换机上要转换为 GRE 隧道端口的网络端口或上行链路端口。

  2. 将端口配置为 GRE 隧道服务的隧道端口:

对于 QFX10000,默认情况下会创建 gr-0/0/0 接口。此外,您无需配置该 set fpc slot pic pic-number tunnel-port port-number tunnel-services语句。

本主题将介绍如下内容:

配置 GRE 隧道

要配置 GRE 隧道接口,请执行以下作:

  1. 使用单元号和地址创建 GRE 接口:

    接口的基本名称必须为 gr-0/0/0

    这是一个伪接口,您指定的地址可以是任意 IP 地址。路由表必须指定 gr-0/0/0.x 为将要通过隧道传输的任何数据包的传出接口。

    如果在属于虚拟机箱成员的 QFX5100 交换机上配置 GRE 接口,随后更改交换机的虚拟机箱成员编号,则 GRE 接口的名称不会以任何方式更改(因为它是伪接口)。例如,如果将成员编号 0 从 更改为 5,GRE 接口名称 不会gr-0/0/0.x gr-5/0/0.x更改为 。

  2. 指定逻辑接口的隧道源地址:
  3. 指定目标地址:

    目标地址必须能够通过静态或动态路由访问。如果使用静态路由,则必须先获取目标 MAC 地址(例如,通过 ping使用 ),然后才能通过隧道转发用户流量。

在 QFX10002 和 QFX10008 交换机上,如果使用底层 ECMP 下一跃点(而非单播下一跃点)配置 GRE 隧道,则 GRE 隧道封装将失败,网络流量将被丢弃。

QFX10000 交换机的 GRE 实施中目前不支持间接出口下一跃点。

验证通用路由封装隧道是否工作正常

目的

验证通用路由封装 (GRE) 接口是否正在发送隧道流量。

行动

使用命令 show interfaces 显示有关指定 GRE 接口的状态信息。

意义

输出指示 GRE 接口 gr-0/0/0 已开启。输出显示物理接口的名称以及此接口的流量统计信息---物理接口上接收和传输输入和输出字节和数据包的数量和速率。

特定于平台的 GRE 行为

使用 通用路由封装 (GRE) 来确认平台和版本对特定功能的支持。

使用下表查看平台的特定于平台的行为:

平台 差异
QFX 系列交换机
  • 在支持 GRE 的 QFX10002、QFX10008 和 QFX5K 系列交换机上,如果使用底层 ECMP 下一跃点(而非单播下一跃点)配置 GRE 隧道,则 GRE 隧道封装将会失败。这会导致网络流量中断。

  • 支持 GRE 的 QFX 系列交换机不会在单独的路由实例中配置 GRE 接口和隧道源接口。尝试此设置会导致提交错误。

  • 支持 GRE 的 QFX5100 系列交换机总共可容纳 512 条隧道,包括使用防火墙过滤器创建的隧道。通过 GRE 传输 IPv4 或 IPv6 有效负载数据包的交换机之间。如果除了使用 IPv4 和 IPv6 之外的乘客协议,则交换机之间最多可配置 333 个 GRE 隧道。

  • 支持 GRE 的 QFX 系列交换机不支持以下功能:

    • 通过 GRE 隧道的 MPLS

    • GRE 激活

    • GRE 密钥、有效负载数据包分段以及分段数据包的序列号

    • BGP 动态隧道

    • 外部 IP 地址必须为 IPv4

EX 系列交换机

支持 GRE 的 EX 系列交换机:

  • 交换机之间可容纳多达 500 个 GRE 隧道,通过 GRE 传输 IPv4 或 IPv6 有效负载数据包。如果除了使用 IPv4 和 IPv6 之外的乘客协议,则交换机之间最多可配置 333 个 GRE 隧道。
  • 最多可配置 20 个隧道源 IP 地址,每个隧道源 IP 可在第二台交换机上配置最多 20 个目标 IP 地址。因此,连接的两台交换机最多可拥有 400 个 GRE 隧道。如果第一台交换机也连接到第三台交换机,则可能的最大隧道数为 500。

  • 不支持以下功能:

    • 通过 GRE 隧道的 MPLS

    • GRE 激活

    • GRE 密钥、有效负载数据包分段以及分段数据包的序列号

    • BGP 动态隧道

    • 外部 IP 地址必须为 IPv4

    • 基于 GRE 分布式模式的双向转发检测 (BFD) 协议

    • OSPF 限制 — 在 GRE 接口上启用 OSPF 会创建两个到目标的等价路由:一个通过以太网网络或上行链路接口,另一个通过隧道接口。如果通过隧道接口路由数据,则隧道可能会失败。为了保持接口正常运行,建议使用静态路由,在隧道接口上禁用 OSPF,或者将对等方配置为不通过隧道接口播发隧道目标。