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 隧道允许 RIP 和 OSPF 等路由协议通过互联网将数据包从一个路由器转发到另一个路由器。此外,GRE 隧道可以封装组播数据流,以便在互联网上传输。

GRE 在 RFC 2784 中有描述(过时的早期 RFC 1701 和 1702)。路由器支持 RFC 2784,但不完全支持。(有关限制的列表,请参阅 配置限制

作为 隧道源路由器,路由器封装有效负载数据包,以便通过隧道传输到目标网络。有效负载数据包首先封装在 GRE 数据包中,然后 GRE 数据包封装在传递协议中。执行 隧道远程路由器 角色的路由器提取隧道数据包并将数据包转发到其目标。

注意:

不支持 ACX1100-AC 和 ACX500 路由器上的 GRE、NAT 和 IPSec 服务的服务链。

注意:

ACX2200路由器不支持 GRE 第 2 层。

在 WAN 接口上配置 GRE 隧道时,ACX 路由器支持 OSPF 路由协议。

GRE 隧道

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

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

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

路由器上的封装和解封装

封装 — 作为隧道源路由器运行的路由器按如下方式封装和转发 GRE 数据包:

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

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

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

解封装 — 作为隧道远程路由器运行的路由器按如下方式处理 GRE 数据包:

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

  2. 数据包基于内部 IP 标头进行路由。

路由器上允许的源隧道和目标隧道数

ACX 路由器在通过 GRE 传输 IPv4 或 IPv6 有效负载数据包的路由器之间支持多达 64 个 GRE 隧道。

配置限制

某些 GRE 隧道功能目前在 ACX 系列路由器上不可用。在 ACX 路由器上配置 GRE 时,请注意以下限制:

  • 不支持的功能 — ACX 路由器上的 GRE 不支持 以下功能:

    • 通过 GRE 的虚拟路由

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

    • GRE 隧道上的 MPLS

    • GRE 激活

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

    • BGP 动态隧道

    • RFC 1701 和 RFC 1702

    • RFC 2890 - GRE 的密钥和序列号扩展

    • IPv6 作为递送头

    • GRE 路径 MTU 发现

    • NNI 为 ECMP 时的负载平衡

    • GRE 接口上的接口统计信息

    • GRE 隧道上的服务等级和防火墙

  • 路由协议 — ACX 路由器不支持 GRE 接口上的路由协议。您需要在 [编辑协议] 层次结构下的 GRE 接口上禁用路由。例如

    注意:

    此限制适用于所有路由协议(如 OSPF、ISIS)。

配置通用路由封装隧道

隧道通过将数据包封装在称为 IP 封装协议的传输协议中,为通过其他公共网络传输数据包提供了专用、安全的路径。通用路由封装 (GRE) 是一种 IP 封装协议,用于通过网络传输数据包。信息通过 GRE 隧道从一个网络发送到另一个网络。

GRE 隧道是通过在现有物理端点和其他逻辑端点上运行的可路由隧道端点实现的。GRE 隧道将一个端点连接到另一个端点,并在它们之间提供清晰的数据路径。

本主题介绍:

配置 GRE 隧道端口

要在路由器上配置 GRE 隧道,请将路由器上的网络端口或上行链路端口转换为用于隧道服务的 GRE 隧道端口。每个名为 gr-fpc/pic/port 的物理隧道端口都可以有一个或多个逻辑接口,每个接口都是一个 GRE 隧道。

转换为 GRE 隧道端口后,物理端口不能用于网络流量。

要在路由器上配置 GRE 隧道端口,您需要创建逻辑隧道接口和带宽(以每秒千兆位为单位)预留给隧道服务。在 tunnel-services bandwidth (1g | 10g) [edit chassis fpc slot-number pic number] 层次结构级别包含语句。

要配置 GRE 隧道端口 ,请使用路由器上任何未使用的物理端口创建逻辑隧道接口,如下所示:

这也创建了一个gr-接口。

配置隧道以使用通用路由封装

通常,GRE 隧道端口会在配置后立即启动,只要存在有效的隧道源地址或接口正在运行,它就会一直保持启动状态。您在端口上配置的每个逻辑接口都可以配置为 GRE 隧道的源或端点。

要将隧道端口配置为使用 GRE,请执行以下操作:

  1. 使用逻辑接口名称和地址配置物理 GRE 端口:
    • 对于 GRE 上的 IPv4,请指定协议族 inet

    • 对于 GRE 上的 IPv6,请指定协议族 inet6

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

GRE 激活时间概述

通用路由封装 (GRE) 隧道接口没有用于检测隧道何时关闭的内置机制。您可以启用激活消息作为检测机制。

为激活消息启用 GRE 隧道接口时,该接口会定期向远程端点发送激活请求数据包。如果 GRE 隧道的数据路径转发在所有点都正常工作,则激活响应数据包将返回给发起方。这些激活消息由路由引擎处理。

您可以在物理或逻辑 GRE 隧道接口上配置激活消息。如果在物理接口上配置,则会在属于物理接口的所有逻辑接口上发送激活消息。如果在单个逻辑接口上配置,则仅在该逻辑接口上发送激活。

您可以配置发送激活消息的频率,以及在将隧道标记为操作关闭之前接口等待激活响应的时间长度。

激活请求数据包如图 1 所示。

图 1:激活请求数据包 Keepalive Request Packet

激活有效负载包含的信息可确保激活响应正确传递到负责 GRE 激活过程的应用程序。

外部 GRE 标头包括:

  • 源 IP 地址 — 启动激活请求的端点的 IP 地址

  • 目标 IP 地址 — 接收激活请求的端点的 IP 地址

  • GRE 协议 ID — IP

内部 GRE 标头包括:

  • 源 IP 地址 — 接收激活请求的端点的 IP 地址

  • 目标 IP 地址 — 启动激活请求的端点的 IP 地址

  • GRE 协议 ID — 数据包转发引擎识别为 GRE 激活数据包的值

注意:

从 Junos OS 17.3R1 版开始,您可以在 MX 系列路由器上配置 IPv6 通用路由封装 (GRE) 隧道接口。这样,您就可以在 IPv6 网络上运行 GRE 隧道。可封装在 IPv6 GRE 隧道内的数据包有效负载系列包括 IPv4、IPv6、MPLS 和 ISO。不支持对 IPv6 传送数据包进行分段和重组。

要配置 IPv6 GRE 隧道接口,请在层次结构级别指定 IPv6 地址 source destination [interfaces gr-0/0/0 unit 0 tunnel]

GRE IPv6 不支持激活。

配置 GRE 激活时间

配置 GRE 隧道接口的激活时间和保持时间

通过在层次结构级别包含keepalive-time[edit protocols oam gre-tunnel interface interface-name]语句和hold-time语句,可以在通用路由封装 (GRE) 隧道接口上配置激活。

注意:

为了在 GRE 接口上正确操作激活,还必须在[edit interfaces interface-name unit unit]层次结构级别包含family inet该语句。如果未包含此语句,则接口将标记为关闭。

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

  1. 在层次结构级别配置 [edit interfaces interface-name unit unit-number] GRE 隧道接口,其中接口名称为 gr-x/y/z,族设置为 inet
  2. 按照 在 PE 和客户边缘路由器之间配置 GRE 隧道接口 或根据需要在 PE 路由器之间配置 GRE 隧道接口 中所述,配置 GRE 隧道接口的其余部分。

要为 GRE 隧道接口配置激活时间,请执行以下操作:

  1. 在 GRE 隧道接口的层次结构级别配置 [edit protocols] 操作、管理和维护 (OAM) 协议。

  2. 为 OAM 协议配置 GRE 隧道接口选项。

  3. 为 GRE 隧道接口配置 1 到 50 秒的激活时间。

  4. 配置 5 到 250 秒的保持时间。请注意,保持时间必须至少是激活时间的两倍。

显示 GRE 激活时间配置

目的

在 GRE 隧道接口上,将配置的激活时间值显示为 10,并将时间值保持为 30(例如,gr-1/1/10.1)。

行动

要在 GRE 隧道接口上显示配置的值,请在层次结构级别运行 show oam gre-tunnel 命令 [edit protocols]

在 GRE 隧道接口上显示激活时间信息

目的

当 GRE 隧道接口上配置了激活时间和保持时间参数以及保留时间到期时,显示该接口的当前状态信息。

行动

要验证 GRE 隧道接口上的当前状态信息(例如 gr-3/3/0.3),请运行 show interfaces gr-3/3/0.3 terseshow interfaces gr-3/3/0.3 extensive 操作命令。

显示接口 gr-3/3/0.3 简洁

显示接口 GR-3/3/0.3 广泛

注意:

当保留时间到期时:

  • 即使接口无法发送或接收流量,GRE 隧道也会保持运行。

  • Link状态将是 UpGre keepalives adjacency state Down将是 。

意义

保留时间到期时,具有激活时间和保留时间参数的 GRE 隧道接口的当前状态信息将按预期显示。

在 GRE 隧道上启用分段

要在通用路由封装 (GRE) 隧道中启用 IPv4 数据包分段,请将隧道的语句和最大传输单元 (MTU) 设置作为 clear-dont-fragment-bit 层次结构级别现有 [edit interfaces] GRE 配置的一部分:

此语句清除数据包标头中的不分段 (DF) 位,而不考虑数据包大小。如果数据包大小超过隧道 MTU 值,则数据包在封装之前将被分段。可在 AS 或多服务 PIC 上配置的最大 MTU 大小为 9192 字节。

注意:

clear-dont-fragment-bit 语句仅在 MX 系列路由器和除 M320 路由器之外的所有 M 系列路由器上受支持。

注意:

在 SRX 平台上,仅当设备处于数据包或选择性数据包模式时,才支持清除 GRE 隧道上的 DF 位;此功能在流模式下不受支持。因此,在流模式下,尽管已在 GRE 接口上配置了 DF clear-dont-fragment-bit 位,但如果数据包已设置为,但如果已设置了 DF 位,则会丢弃该数据包。

只有在封装在基于 IPv4 的 GRE 隧道中的 IPv4 数据包上才会启用分段。

注意:

此配置仅在 AS 或多服务接口上的 GRE 隧道上受支持。如果在标准隧道 PIC 接口上以 gre-fragmentation 封装类型提交,则在 PIC 联机时将显示以下控制台日志消息:

数据包转发引擎更新 GRE 封装数据包的外部 IP 标头中的 IP 标识字段,以便在分段后可以重组数据包。以前要求您使用该 clear-dont-fragment-bit 语句配置 allow-fragmentation 语句或隧道密钥的 CLI 约束检查不再强制执行。

在启用了 MPLS 协议家族的接口上配置 clear-dont-fragment-bit 语句时,必须指定 MTU 值。此 MTU 值不得大于支持的最大值 (9192)。