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


有关如何配置隧道接口的更多信息,请参阅 路由设备的 Junos OS 服务接口库。
您可以手动配置 GRE 隧道,也可以配置 Junos OS 以动态实例化 GRE 隧道。
以下部分介绍如何手动动态配置 GRE 隧道:
在 PE 和 CE 路由器之间手动配置 GRE 隧道
您可以为第 3 层 VPN 在本地 CE 路由器或远程 CE 路由器之间手动配置 GRE 隧道,如下节所述:
在 PE 路由器上配置 GRE 隧道接口
您可以将 GRE 隧道配置为 PE 路由器上的逻辑接口。要配置 GRE 隧道接口,请添加 unit
以下语句:
unit logical-unit-number { tunnel { source source-address; destination destination-address; routing-instance { destination routing-instance-name; } } family inet { address address; } }
您可以在以下层级包含此语句:
[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
路由表。如果隧道封装接口也配置在路由实例下,则属于这种情况。
destination
routing-instance-name
- 在 PE 路由器上配置 GRE 隧道接口时,请指定路由实例的名称。
要完成 GRE 隧道接口配置,请将 GRE 接口的 interface
语句包含在相应的路由实例下:
interface interface-name;
您可以在以下层级包含此语句:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
在 CE 路由器上配置 GRE 隧道接口
您可以将本地或远程 CE 路由器配置为 GRE 隧道的端点。
要配置 CE 路由器上的 GRE 隧道接口,请添加 unit
以下语句:
unit logical-unit-number { tunnel { source address; destination address; } family inet { address address; } }
您可以在以下层级包含此语句:
[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
以下语句:
dynamic-tunnels tunnel-name { destination-networks prefix; source-address address; }
您可以在以下层级包含此语句:
[edit routing-options]
[edit logical-systems logical-system-name routing-options]
通过包含 destination-networks
语句,指定目标网络的 IPv4 前缀范围(例如 10/8 或 11.1/16)。仅允许启动指定 IPv4 前缀范围内的隧道。
destination-networks prefix;
您可以在以下层级包含此语句:
[edit routing-options dynamic-tunnels tunnel-name]
[edit logical-systems logical-system-name routing-options dynamic-tunnels tunnel-name]
通过包括语句来指定 GRE 隧道的 source-address
源地址。源地址指定用作本地隧道端点源的地址。可以是路由器上的任何本地地址(通常为路由器 ID 或环路地址)。
source-address address;
您可以在以下层级包含此语句:
[edit routing-options dynamic-tunnels tunnel-name]
[edit logical-systems logical-system-name routing-options dynamic-tunnels tunnel-name]