Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

用于第 3 层 VPN 的 GRE 隧道

为第 3 层 VPN 配置 GRE 隧道

Junos OS 允许您在第 3 层 VPN 的 PE 和 CE 路由器之间配置通用路由封装 (GRE) 隧道。GRE 隧道可以有一个或多个跃点。您可以配置从 PE 路由器到本地 CE 路由器(如图 1 所示)或远程 CE 路由器(如图 2 所示)的隧道。

图 1:在本地 CE 路由器和 PE GRE Tunnel Configured Between the Local CE Router and the PE Router 路由器之间配置的 GRE 隧道
图 2:在远程 CE 路由器和 PE 路由器之间配置的 GRE 隧道 GRE Tunnel Configured Between the Remote CE Router and the PE Router

有关如何配置隧道接口的更多信息,请参阅 路由设备的 Junos OS 服务接口库

您可以手动配置 GRE 隧道,也可以配置 Junos OS 以动态实例化 GRE 隧道。

以下部分介绍如何手动动态配置 GRE 隧道:

在 PE 和 CE 路由器之间手动配置 GRE 隧道

您可以为第 3 层 VPN 在本地 CE 路由器或远程 CE 路由器之间手动配置 GRE 隧道,如下节所述:

在 PE 路由器上配置 GRE 隧道接口

您可以将 GRE 隧道配置为 PE 路由器上的逻辑接口。要配置 GRE 隧道接口,请添加 unit 以下语句:

您可以在以下层级包含此语句:

  • [edit interfaces interface-name]

  • [edit logical-systems logical-system-name interfaces interface-name]

作为 GRE 隧道接口配置的一部分,您需要包含以下语句:

  • source source-address- 指定 GRE 隧道的源或源,通常为 PE 路由器。

  • destination destination-address- 指定 GRE 隧道的目标或端点。目标可以是提供商路由器、本地 CE 路由器或远程 CE 路由器。

默认情况下,隧道目标地址被假定在默认的互联网路由表 inet.0 中。如果隧道目标地址不在 inet.0 中,则需要通过配置语句来指定要搜索隧道目标地址的 routing-instance 路由表。如果隧道封装接口也配置在路由实例下,则属于这种情况。

  • destinationrouting-instance-name- 在 PE 路由器上配置 GRE 隧道接口时,请指定路由实例的名称。

要完成 GRE 隧道接口配置,请将 GRE 接口的 interface 语句包含在相应的路由实例下:

您可以在以下层级包含此语句:

  • [edit routing-instances routing-instance-name]

  • [edit logical-systems logical-system-name routing-instances routing-instance-name]

在 CE 路由器上配置 GRE 隧道接口

您可以将本地或远程 CE 路由器配置为 GRE 隧道的端点。

要配置 CE 路由器上的 GRE 隧道接口,请添加 unit 以下语句:

您可以在以下层级包含此语句:

  • [edit interfaces interface-name]

  • [edit logical-systems logical-system-name interfaces interface-name]

动态配置 GRE 隧道

当路由器收到到 BGP 下一跃点地址的 VPN 路由,但没有可用的 MPLS 路径时,可以动态生成 GRE 隧道,以在 BGP 网络中传输 VPN 流量。生成 GRE 隧道,然后将其路由信息复制到 inet.3 路由表中。IPv4 路由是动态 GRE 隧道支持的唯一路由类型。此外,路由平台必须具有隧道 PIC。

注意:

将动态 GRE 隧道配置为远程 CE 路由器时,请勿通过隧道接口配置 OSPF。它会创建一个路由环路,迫使路由器关闭 GRE 隧道。路由器尝试重新建立 GRE 隧道,但当 OSPF 在隧道接口上处于活动状态并发现到隧道端点的路由时,路由器将被迫再次关闭 GRE 隧道。将静态 GRE 隧道配置到远程 CE 路由器时,这不是问题。

要动态生成 GRE 隧道,请添加 dynamic-tunnels 以下语句:

您可以在以下层级包含此语句:

  • [edit routing-options]

  • [edit routing-instances routing-instance-name routing-options]

  • [edit logical-systems logical-system-name routing-options]

  • [edit logical-systems logical-system-name routing-instances routing-instance-name routing-options ]

通过包含 destination-networks 语句,指定目标网络的 IPv4 前缀范围(例如 10/8 或 11.1/16)。仅允许启动指定 IPv4 前缀范围内的隧道。

您可以在以下层级包含此语句:

  • [edit routing-options]

  • [edit routing-instances routing-instance-name routing-options]

  • [edit logical-systems logical-system-name routing-options]

  • [edit logical-systems logical-system-name routing-instances routing-instance-name routing-options ]

通过包括语句来指定 GRE 隧道的 source-address 源地址。源地址指定用作本地隧道端点源的地址。可以是路由器上的任何本地地址(通常为路由器 ID 或环路地址)。

您可以在以下层级包含此语句:

  • [edit routing-options]

  • [edit routing-instances routing-instance-name routing-options]

  • [edit logical-systems logical-system-name routing-options]

  • [edit logical-systems logical-system-name routing-instances routing-instance-name routing-options ]

配置 PE 路由器之间的 GRE 隧道接口

此示例说明如何在 PE 路由器之间配置通用路由封装 (GRE) 隧道接口以提供 VPN 连接。您可以使用此配置通过非 MPLS 核心网络建立 VPN 流量隧道。此示例中使用的网络拓扑如图 3 所示。图中所示的 P 路由器不运行 MPLS。

图 3:通过 GRE 隧道接口 PE Routers A and D Connected by a GRE Tunnel Interface连接的 PE 路由器 A 和 D

有关配置信息,请参阅以下部分:

在路由器 A 上配置路由实例

在路由器 A 上配置路由实例:

在路由器 D 上配置路由实例

在路由器 D 上配置路由实例:

在路由器 A 上配置 MPLS、BGP 和 OSPF

虽然您不需要在本例中的 P 路由器上配置 MPLS,但在 PE 和 CE 路由器之间的接口以及链路 PE 路由器(路由器 A 和路由器 D)的 GRE 接口 (gr-1/1/0.0) 上都需要配置 MPLS。在路由器 A 上配置 MPLS、BGP 和 OSPF:

在路由器 D 上配置 MPLS、BGP 和 OSPF

虽然您不需要在本例中的 P 路由器上配置 MPLS,但在 PE 和 CE 路由器之间的接口以及链路 PE 路由器(路由器 D 和路由器 A)的 GRE 接口 (gr-1/1/0.0) 上都需要配置 MPLS。在路由器 D 上配置 MPLS、BGP 和 OSPF:

在路由器 A 上配置隧道接口

配置路由器 A 上的隧道接口(隧道未编号):

在路由器 D 上配置隧道接口

在路由器 D 上配置隧道接口(隧道未编号):

配置路由器 A 上的路由选项

作为路由器 A 的路由选项配置的一部分,您需要配置路由表组,以在 inet.3 路由表中启用 VPN 路由解析。

配置路由器 A 上的路由选项:

在路由器 D 上配置路由选项

作为路由器 D 的路由选项配置的一部分,您需要配置路由表组,以在 inet.3 路由表中启用 VPN 路由解析。

配置路由器 D 上的路由选项:

路由器 A 的配置摘要

配置路由实例

配置 MPLS

配置 BGP

配置 OSPF

配置隧道接口

配置路由选项

路由器 D 的配置摘要

配置路由实例

配置 MPLS

配置 BGP

配置 OSPF

配置隧道接口

配置路由选项

在 PE 和 CE 路由器之间配置 GRE 隧道接口

此示例说明如何在 PE 路由器和 CE 路由器之间配置 GRE 隧道接口。您可以使用此配置通过非 MPLS 核心网络建立 VPN 流量隧道。此示例中使用的网络拓扑如图 4 所示。

图 4:CE 路由器和 PE 路由器之间的 GRE 隧道 GRE Tunnel Between the CE Router and the PE Router

对于此示例,请完成以下部分中介绍的过程:

配置不带封装接口的路由实例

您可以配置路由实例,无论使用或不使用封装接口。以下部分介绍如何配置不使用它的路由实例:

在路由器 PE1 上配置路由实例

在路由器 PE1 上配置路由实例:

在路由器 PE1 上配置 GRE 隧道接口

配置路由器 PE1 上的 GRE 隧道接口:

在此示例中,接口 t3-0/1/3 充当 GRE 隧道的封装接口。

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

例如:

在路由器 PE1 上配置封装接口

配置路由器 PE1 上的封装接口:

使用封装接口配置路由实例

如果同时在路由实例下配置了隧道封装接口 t3-0/1/3,则需要在接口定义下指定该路由实例的名称。系统使用此路由实例搜索隧道目标地址。

要配置带有封装接口的路由实例,请执行以下部分中的步骤:

在路由器 PE1 上配置路由实例

如果在路由实例下配置隧道封装接口,则在路由器 PE1 上配置路由实例:

在路由器 PE1 上配置 GRE 隧道接口

配置路由器 PE1 上的 GRE 隧道接口:

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

例如:

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

例如:

在路由器 PE1 上配置封装接口

配置路由器 PE1 上的封装接口:

在路由器 CE1 上配置 GRE 隧道接口

在路由器 CE1 上配置 GRE 隧道接口: