Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

配置 PE 和 CE 路由器之间的路由

本主题提供有关如何在第 3 层 VPN 中的 PE 和 CE 路由器上配置路由的信息。

在第 3 层 VPN 中配置 PE 和 CE 路由器之间的路由

要使 PE 路由器将与 VPN 相关的路由分发到连接的 CE 路由器或从连接的 CE 路由器分发,您必须在 VPN 路由实例中配置路由。您可以配置路由协议(BGP、OSPF 或 RIP),也可以配置静态路由。对于与每台 CE 路由器的连接,您通常配置一种路由类型,但在某些情况下,您可以同时包括静态路由和路由协议配置。

以下章节说明如何在 PE 和 CE 路由器之间配置 VPN 路由:

在 PE 和 CE 路由器之间配置 BGP

要将 BGP 配置为 PE 和 CE 路由器之间的路由协议,请添加以下 bgp语句:

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

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

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

    注意:

    [edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

    请注意为路由实例配置 BGP 的以下限制:

    • 在 VRF 路由实例中,请勿使用单独的 VRF 路由实例中的远程 BGP 对等体已在使用的 AS 编号来配置本地自治系统 (AS) 编号。这样做会创建一个自治系统环路,其中从此远程 BGP 对等体接收的所有路由都将被隐藏。

      您可以在层次结构级别使用语句[edit routing-instances routing-instance-name routing-options]local-as在以下任一层次结构级别使用autonomous-system语句来配置本地 AS 编号:

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

      • [edit routing-instances routing-instance-name protocols bgp group group-name]

      • [edit routing-instances routing-instance-name protocols bgp group group-name neighbor address]

      您可以使用 peer-as 语句在 [edit routing-instances routing-instance-name protocols bgp group group-name] 层次结构级别配置 BGP 对等体的 AS 编号。

在 PE 和 CE 路由器之间配置 OSPF

您可以配置 OSPF(版本 2 或版本 3)在 PE 和 CE 路由器之间分配 VPN 相关路由。

以下章节介绍如何将 OSPF 配置为 PE 和 CE 路由器之间的路由协议:

在 PE 和 CE 路由器之间配置 OSPF 版本 2

要将 OSPF 版本 2 配置为 PE 和 CE 路由器之间的路由协议,请添加以下 ospf 语句:

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

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

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

    注意:

    [edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

在 PE 和 CE 路由器之间配置 OSPF 版本 3

要将 OSPF 版本 3 配置为 PE 和 CE 路由器之间的路由协议,请添加以下 ospf3 语句:

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

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

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

    注意:

    [edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

为第 3 层 VPN 配置 OSPF 假链路

在第 3 层 VPN 的 PE 和 CE 路由器之间配置 OSPF 时,您还可以配置 OSPF 假链路来补偿与 OSPF 区域内链路相关的问题。

以下部分介绍了 OSPF 假链路及其配置方法:

OSPF 伪装链路概述

图 1 说明了何时可以配置 OSPF 假链路。路由器 CE1 和路由器 CE2 位于同一个 OSPF 区域。这些 CE 路由器通过路由器 PE1 和路由器 PE2 上的第 3 层 VPN 连接在一起。此外,路由器 CE1 和路由器 CE2 通过用作备份的区域内链路连接。

OSPF 将通过第 3 层 VPN 的链路视为区域间链路。默认情况下,OSPF 优先选择区域内链路而不是区域间链路,因此 OSPF 选择备份区域内链路作为活动路径。如果区域内链路不是 CE 路由器之间流量的预期主路径,则这是不可接受的。

OSPF 假链路也是一种区域内链路,不同之处在于它是在 PE 路由器之间配置的,如 图 1 所示。您可以配置假链路指标,以确保第 3 层 VPN 上的路径优先于连接 CE 路由器的区域内链路上的备用路径。

图 1:OSPF 假链路 OSPF Sham Link

在以下情况下,应配置 OSPF 假链路:

  • 两台 CE 路由器通过第 3 层 VPN 连接在一起。

  • 这些 CE 路由器位于同一 OSPF 区域中。

  • 在两台 CE 路由器之间配置区域内链路。

如果 CE 路由器之间没有区域内链路,则无需配置 OSPF 假链路。

有关 OSPF 假链路的详细信息,请参阅互联网draft-ietf-l3vpn-ospf-2547-01.txt草案, OSPF 作为 BGP/MPLS VPN 中的 PE/CE 协议

配置 OSPF 假链路

假链路是一种未编号的点对点区域内链路,通过 1 类链路状态通告 (LSA) 进行播发。伪装链路仅对路由实例和 OSPF 版本 2 有效。

每个假链路都由本地和远程假链路端点地址及其所属的 OSPF 区域组合来识别。伪装链路必须手动配置。您可以在两个 PE 路由器之间配置假链路,这两个路由器都位于同一个 VRF 路由实例中。

您需要指定假链路本地端点的地址。此地址被用作假链路数据包的源,也被远程 PE 路由器用作假链路远程端点。

必须使用本地 VPN 的环路地址指定 OSPF 假链路的本地地址。到此地址的路由必须由 BGP 传播。使用 sham-link 语句的 local 选项指定本地端点的地址:

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

  • [编辑路由实例 routing-instance-name 协议 OSPF]

  • [编辑逻辑系统 logical-system-name 路由实例 routing-instance-name 协议 OSPF]

必须使用远程 VPN 的环路地址指定 OSPF 假链路的远程地址。到此地址的路由必须由 BGP 传播。要指定远程端点的地址,请包含 sham-link-remote 语句:

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

  • [编辑路由实例 routing-instance-name 协议 OSPF 区域 area-id]

  • [编辑逻辑系统 logical-system-name 路由实例 routing-instance-name 协议 OSPF 区域 area-id]

或者,您可以包含 衡量指标 选项来为远程端点设置衡量指标值。指标值指定使用链路的成本。总路径指标较低的路由优先于路径指标较高的路由。

可以配置一个介于 1 到 65,535 之间的值。默认值为 1。

OSPF 伪装链路示例

此示例说明如何在 PE 路由器上启用 OSPF 假链路。

以下是 PE 路由器上的环路接口配置。配置的地址用于 OSPF 假链路的本地端点:

以下是 PE 路由器上的路由实例配置,包括 OSPF 假链路的配置。 sham-link local 语句配置了本地环路接口的地址:

配置 OSPF 域 ID

对于大多数涉及第 3 层 VPN 的 OSPF 配置,无需配置 OSPF 域 ID。但是,对于连接多个 OSPF 域的第 3 层 VPN,配置 OSPF 域 ID 可以帮助您控制 OSPF 域和后门路径之间的 LSA 转换(对于 3 类和 5 类 LSA)。在与 OSPF 实例关联的 PE 路由器中,每个 VPN 路由和转发 (VRF) 表都配置了相同的 OSPF 域 ID。默认 OSPF 域 ID 为 null 值 0.0.0.0。如 表 1 所示,域 ID 为空的路由与没有任何域 ID 的路由的处理方式不同。

表 1:PE 路由器如何重新分配和通告路由

路由接收

接收的路由的域 ID

接收路由器上的域 ID

路由重新分发并播发为

类型 3 路由

A.B.C.D.公司

A.B.C.D.公司

3 类 LSA

类型 3 路由

A.B.C.D.公司

E.F.G.H(英语:E.F.G.H)

5 类 LSA

类型 3 路由

0.0.0.0

0.0.0.0

3 类 LSA

类型 3 路由

0.0.0.0

3 类 LSA

类型 3 路由

3 类 LSA

类型 3 路由

0.0.0.0

3 类 LSA

类型 3 路由

A.B.C.D.公司

5 类 LSA

类型 3 路由

A.B.C.D.公司

3 类 LSA

Type 5 路由

不適用

不適用

5 类 LSA

您可以为 OSPF 的版本 2 和版本 3 配置 OSPF 域 ID。配置中的唯一区别是,对于 OSPF 版本 2,您可以在 [edit routing-instances protocols ospf] 层次结构级别包含语句,对于 OSPF 版本 3,您可以在 [edit routing-instances routing-instance-name routing-instance-name protocols ospf3] 层次结构级别包含语句。以下配置说明仅提供 OSPF 版本 2 语句。但是,子语句对于 OSPF 版本 3 也有效。

要配置 OSPF 域 ID,请包含 domain-id 语句:

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

  • [编辑路由实例 routing-instance-name 协议 OSPF]

  • [编辑逻辑系统 logical-system-name 路由实例 routing-instance-name 协议 OSPF]

您可以为 PE 路由器生成的 OSPF 外部路由设置 VPN 标记,以防止环路。默认情况下,此标记是自动计算的,无需配置。但是,您可以通过包含 domain-vpn-tag 语句来显式配置 5 类 LSA 的域 VPN 标记:

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

  • [编辑路由实例 routing-instance-name 协议 OSPF]

  • [编辑逻辑系统 logical-system-name 路由实例 routing-instance-name 协议 OSPF]

范围为 1 到 4,294,967,295 (232 – 1)。如果手动设置 VPN 标记,则必须为 VPN 中的所有 PE 路由器设置相同的值。

有关此类配置的示例,请参阅 为第 3 层 VPN 配置 OSPF 域 ID

中心辐射型 3 层 VPN 和 OSPF 域 ID

当路由未聚合时,OSPF 域 ID 的默认行为会导致中心 PE 路由器和中心 CE 路由器之间配置了 OSPF 的中心辐射型第 3 层 VPN 出现一些问题。中心辐射型配置具有一个中心 PE 路由器,该路由器可与中心 CE 路由器直接链接。中心 PE 路由器从其他远程分支 PE 路由器接收第 3 层 BGP 更新,并将这些更新导入到分支路由实例中。OSPF LSA 从分支路由实例发出并发送至中枢 CE 路由器。

中枢 CE 路由器通常会聚合这些路由,然后将这些新发起的 LSA 发送回中枢 PE 路由器。中心 PE 路由器将 BGP 更新导出到包含聚合前缀的远程分支 PE 路由器。但是,如果存在非聚合的 3 类汇总 LSA 或外部 LSA,则会出现两个问题:中心 PE 路由器如何向中心 CE 路由器发起 LSA 并将其发送至中心 CE 路由器,以及中心 PE 路由器如何处理从中心 CE 路由器接收的 LSA:

  • 默认情况下,由分支路由实例中的中心 PE 路由器发起的所有 LSA 都设置了 DN 位。此外,所有外部源自 LSA 都设置了 VPN 路由标记。设置 DN 位和 VPN 路由标记有助于防止路由环路。对于 3 类汇总 LSA,无需考虑路由环路,因为中枢 CE 路由器作为区域边界路由器 (ABR),会在 DN 位清除的情况下重新生成 LSA,并将其发送回中枢 PE 路由器。但是,集线器 CE 路由器不会重新发起外部 LSA,因为它们具有 AS 泛洪范围。

    通过更改中枢 PE 路由器的路由实例配置,您可以在 DN 位清除且 VPN 路由标记设置为 0 的情况下发起外部 LSA(在将其发送到中枢 CE 路由器之前)。要在 PE 路由器发出的外部 LSA 上清除 DN 位并将 VPN 路由标记设置为零,请在层次结构级别为 domain-vpn-tag 语句配置 0routing-instance-name。您应将此配置包含在面向发送 LSA 的中心 CE 路由器的中枢 PE 路由器上的路由实例中。当中枢 CE 路由器从中枢 PE 路由器接收外部 LSA,然后将其转发回中枢 PE 路由器时,中枢 PE 路由器可以在其 OSPF 路由计算中使用这些 LSA。

  • 当被中枢 CE 路由器淹没的 LSA 到达中枢 PE 路由器的路由实例时,作为 ABR 的中枢 PE 路由器不会在其 OSPF 路由计算中考虑这些 LSA,即使 LSA 没有设置 DN 位,并且外部 LSA 没有设置 VPN 路由标记。假定 LSA 来自不相交的主干区域。

    您可以通过在 [edit routing-instances routing-instance-name protocols ospf domain-id] 层次结构级别包含 disable 语句来更改 PE 路由器路由实例的配置,使 PE 路由器充当非 ABR。您可以对从中枢 CE 路由器接收 LSA 的中心 PE 路由器进行此配置更改。

    通过更改此配置,PE 路由器的路由实例将充当非 ABR。然后,PE 路由器会将从中枢 CE 路由器到达的 LSA 视为来自连续非主干区域的 LSA。

在 PE 和 CE 路由器之间配置 RIP

对于第 3 层 VPN,您可以在 PE 路由器上配置 RIP,以学习 CE 路由器的路由或将 PE 路由器的路由传播到 CE 路由器。从任何 [edit routing-instances] 层级配置的邻接方获知的 RIP 路由都会添加到路由实例 inet 的表 (instance_name.inet.0) 中。

要将 RIP 配置为 PE 和 CE 路由器之间的路由协议,请添加以下 rip 语句:

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

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

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

    注意:

    [edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

默认情况下,RIP 不会播发它收到的路由。要将从 PE 路由器通告路由到 CE 路由器,您需要在 PE 路由器上配置 RIP 导出策略。有关如何为 RIP 定义策略的信息,请参阅 RIP 导入策略

要为 RIP 指定导出策略,请包含以下 export 语句:

您可以在以下层次结构级别为 RIP 包含以下语句:

  • [edit routing-instances routing-instance-name protocols rip group group-name]

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

    注意:

    [edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

要将从 RIP 路由实例获知的路由安装到多个路由表中,请包括 rib-groupgroup 语句:

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

  • [edit protocols rip]

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

  • [edit logical-systems logical-system-name protocols rip]

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

注意:

[edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

要配置路由表组,请包含以下 rib-groups 语句:

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

  • [edit routing-options]

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

注意:

[edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

要将路由表添加到路由表组,请包含 import-rib 语句。语句下 import-rib 指定的第一个路由表名称必须是正在配置的路由表的名称。有关如何配置路由表和路由表组的详细信息,请参阅 Junos OS 路由协议库

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

  • [edit routing-options rib-groups group-name]

  • [edit logical-systems logical-system-name routing-options rib-groups group-name]

注意:

[edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

RIP 实例仅支持 VRF 实例类型。您可以配置多个 RIP 实例,仅支持 VPN。您可以在客户边缘提供商边缘 (CE-PE) 环境中使用 RIP,从 CE 路由器学习路由,并在 CE 路由器中传播 PE 路由器的实例路由。

从在任何实例层次结构下配置的邻接方获知的 RIP 路由将添加到实例的路由表 instance-name.inet.0

RIP 不支持路由表组;因此,它无法像 OSPF 或 OSPFv3 协议那样将路由导入到多个表中。

配置 PE 和 CE 路由器之间的静态路由

您可以在 VPN 路由实例的 PE 和 CE 路由器之间配置静态(不变)路由。要为 VPN 配置静态路由,您需要在层次结构级别的 VPN 路由实例配置 [edit routing-instances routing-instance-name routing-options] 中对其进行配置。

要在 PE 和 CE 路由器之间配置静态路由,请添加 static 语句:

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

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

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

注意:

[edit logical-systems]层次结构级别不适用于 ACX 系列路由器。

有关配置路由协议和静态路由的详细信息,请参阅 Junos OS 路由协议库

为第 3 层 VPN 配置 OSPF 域 ID

此示例说明如何将 OSPF 用作 PE 和 CE 路由器之间的路由协议,为 VPN 配置 OSPF 域 ID。来自 OSPF 域的路由在 BGP 中作为具有多个 OSPF 域的 VPN 中的 VPN-IPv4 路由分布时,需要 OSPF 域 ID。在连接多个 OSPF 域的 VPN 中,来自一个域的路由可能会与另一个域的路由重叠。

路由实例中配置的域 ID 用于标识 OSPF 域,用于标识路由起源。在社区策略上配置的域 ID 用于设置导出的路由。

有关 OSPF 域 ID 和第 3 层 VPN 的详细信息,请参阅 在第 3 层 VPN 中配置 PE 和 CE 路由器之间的路由

图 2 显示了此示例的配置拓扑。仅提供路由器 PE1 的配置。路由器 PE2 的配置可以与路由器 PE1 的配置类似。CE 路由器没有特殊的配置要求。

图 2:使用 OSPF 域 ID Network topology diagram of MPLS VPN with OSPF routing showing CE1 and CE2 in VPN-A at San Francisco and Chicago connected to PE1 and PE2, respectively. 的配置示例

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

在路由器 PE1 上配置接口

您需要为路由器 PE1 配置两个接口: so-0/0/0 流向路由器 CE1(旧金山) so-0/0/1 的流量接口和流向服务提供商网络中 P 路由器的流量接口。

配置路由器 PE1 的接口:

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

[edit routing-options] 层次结构级别,您需要配置 router-idautonomous-system 语句。该 router-id 语句标识路由器 PE1。

配置路由器 PE1 的路由选项:

在路由器 PE1 上配置协议

在路由器 PE1 上,您需要在 [edit protocols] 层次结构级别配置 MPLS、BGP、OSPF 和 LDP:

在路由器 PE1 上配置策略选项

在路由器 PE1 上,您需要在 [edit policy-options] 层次结构级别配置策略。这些策略可确保第 3 层 VPN 中的 CE 路由器交换路由信息。在此示例中,旧金山的路由器 CE1 与芝加哥的路由器 CE2 交换路由信息。

在 PE1 路由器上配置策略选项:

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

您需要在路由器 PE1 上配置第 3 层 VPN 路由实例。要指示路由实例用于第 3 层 VPN,请在[edit routing-instance routing-instance-name]层次结构级别添加instance-type vrf语句。

domain-id语句在[edit routing-instances routing-options protocols ospf]层次结构级别上配置。如图 2 所示,路由器 PE2 上的路由实例必须与路由器 PE1 上的相应路由实例共享相同的域 ID,以便从路由器 CE1 到路由器 CE2(反之亦然)的路由作为 3 类 LSA 分布。如果在路由器 PE1 和路由器 PE2 的路由实例中配置不同的 OSPF 域 ID,则来自每个 CE 路由器的路由将分发为 5 类 LSA。

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

路由器 PE1 的配置摘要

配置接口

配置路由选项

配置协议

配置 VPN 策略

第 3 层 VPN 的路由实例

在第 3 层 VPN 中配置 PE 和 CE 路由器之间的 EBGP 多跳会话

您可以在第 3 层 VPN 的 PE 和 CE 路由器之间配置 EBGP 或 IBGP 多跳会话。这允许您在 PE 路由器和 CE 路由器之间拥有一个或多个路由器。在 PE 和 CE 路由器之间使用 IBGP 不需要配置任何其他语句。但是,在 PE 和 CE 路由器之间使用 EBGP 需要配置 multihop 语句。

要为 PE 和 CE 路由器之间的连接配置外部 BGP 多跳会话,请在 PE 路由器上包含该 multihop 语句。为了帮助防止路由环路,您必须为多跳会话配置生存时间 (TTL) 值:

有关可配置此语句的层次结构级别列表,请参阅此语句的摘要部分。

配置 LDP-over-RSVP VPN 拓扑

此示例说明如何设置 VPN 拓扑,在该拓扑中,LDP 数据包通过 RSVP LSP 通过隧道传输。此配置由以下组件组成(参见 图 5):

  • 一个 VPN (VPN-A)

  • 两个 PE 路由器

  • LDP 作为 PE 路由器与其相邻 P 路由器之间的信令协议

  • 两个 P 路由器之间的 RSVP LSP,LDP 通过隧道传输

图 5:LDP-over-RSVP VPN 拓扑示例 Network topology diagram of a service provider MPLS network showing CE and PE routers, core P routers, and MPLS LSP. CE1 uses RIP with PE1, CE2 uses OSPF with PE2. Core uses RSVP-TE for MPLS LSP.

以下步骤介绍如何建立此拓扑以及如何将数据包从 CE 路由器 CE2 发送到 CE 路由器 CE1:

  1. P 路由器 P1 和 P3 在彼此之间建立 RSVP LSP,并在其 inet.3 路由表中安装其环路地址。

  2. PE 路由器 PE1 通过接口 so-1/0/0.0与路由器 P1 建立 LDP 会话。

  3. 路由器 P1 使用路由器 P3 的环路地址建立 LDP 会话,可使用 RSVP LSP 访问该地址。

  4. 路由器 P1 将其标签绑定(包括用于到达路由器 PE1 的标签)发送到路由器 P3。这些标签绑定允许路由器 P3 将 LDP 数据包定向到路由器 PE1。

  5. 路由器 P3 通过接口 so0-0/0/0.0 与路由器 PE2 建立 LDP 会话,并使用路由器 P1 的环路地址建立 LDP 会话。

  6. 路由器 P3 将其标签绑定(包括用于到达路由器 PE2 的标签)发送到路由器 P1。这些标签绑定允许路由器 P1 将 LDP 数据包定向到路由器 PE2 的环路地址。

  7. 路由器 PE1 和 PE2 相互建立 IBGP 会话。

  8. 当路由器 PE1 向路由器 PE2 通告它从路由器 CE1 获知的路由时,将包含其 VPN 标签。(PE 路由器创建 VPN 标签并将其绑定到 PE 和 CE 路由器之间的接口。同样,当路由器 PE2 通告从路由器 CE2 获知的路由时,它会将其 VPN 标签发送至路由器 PE1。

当路由器 PE2 想要将数据包转发到路由器 CE1 时,它会将两个标签推送到数据包的标签堆栈上:首先是绑定到路由器 PE1 和路由器 CE1 之间接口的 VPN 标签,然后是用于到达路由器 PE1 的 LDP 标签。然后,它通过接口 so-0/0/1.0将数据包转发给路由器 P3。

  1. 当路由器 P3 收到来自路由器 PE2 的数据包时,它会交换堆栈顶部的 LDP 标签(根据其 LDP 数据库),并将 RSVP 标签推送到堆栈顶部,以便现在可以由 RSVP LSP 交换数据包。此时,堆栈上有三个标签:内部(底部)标签是 VPN 标签,中间是 LDP 标签,外部(顶部)是 RSVP 标签。

  2. 路由器 P2 接收数据包,并通过交换 RSVP 标签将其切换到路由器 P1。在此拓扑中,由于路由器 P2 是 LSP 中的倒数第二跳路由器,因此会弹出 RSVP 标签,并通过接口 so-1/1/0.0 将数据包转发至路由器 P1。此时,堆栈上有两个标签:内部标签是 VPN 标签,外部标签是 LDP 标签。

  3. 当路由器 P1 收到数据包时,它会弹出外部标签(LDP 标签),并使用接口 so-1/0/0.0将数据包转发给路由器 PE1。在此拓扑中,路由器 PE1 是出口 LDP 路由器,因此路由器 P1 会弹出 LDP 标签,而不是将其换成其他标签。此时,堆栈上只有一个标签,即 VPN 标签。

  4. 当路由器 PE1 收到数据包时,它会弹出 VPN 标签,并通过接口 ge-1/1/0.0将数据包作为 IPv4 数据包转发给路由器 CE1。

对于从路由器 CE1 发送的发往路由器 CE2 的数据包,也会进行一组类似的作。

以下列表说明了对于从路由器 CE2 发送到路由器 CE1 的数据包,各个路由器如何通告 LDP、RSVP 和 VPN 标签。这些步骤包括标签值的示例( 如图 6 所示)。

  • LDP 标签

    • 路由器 PE1 向路由器 P1 通告自身的 LDP 标签 3。

    • 路由器 P1 宣布路由器 PE1 到路由器 P3 的 LDP 标签 100,001。

    • 路由器 P3 宣布路由器 PE1 到路由器 PE2 的 LDP 标签 100,002。

  • RSVP 标签

    • 路由器 P1 向路由器 P2 通告 RSVP 标签 3。

    • 路由器 P2 向路由器 P3 通告 RSVP 标签 100,003。

  • VPN 标签

    • 路由器 PE1 宣布将 VPN 标签 100,004 转发到路由器 PE2,用于从路由器 CE1 到路由器 CE2 的路由。

图 6:标签推送和弹出 Illustration of MPLS data flow: IP packet with MPLS label stack traverses CE, PE, and P routers. Labels are added, swapped, or removed per MPLS rules.

对于从 图 6 中的主机 B 发送到主机 A 的数据包,数据包标头和标签会随着数据包传输到其目的地而变化:

  1. 源自主机 B 的数据包的标头中有源地址 B,目标地址 A。

  2. 路由器 CE2 将下一跃点接口 so-1/0/0添加到数据包中。

  3. 路由器 PE2 交换接口的下一跃点 so-1/0/0 ,并将其替换为下一跃点 PE1。它还添加了两个用于到达路由器 PE1 的标签,首先是 VPN 标签 (100,004),然后是 LDP 标签 (100,002)。因此,VPN 标签是堆栈上的内部(底部)标签,而 LDP 标签是外部标签。

  4. 路由器 P3 会换掉路由器 PE2 添加的 LDP 标签 (100,002),并将其替换为其 LDP 标签,以便到达路由器 PE1 (100,001)。它还添加了用于到达路由器 P2 (100,003) 的 RSVP 标签。

  5. 路由器 P2 移除 RSVP 标签 (100,003),因为它是 MPLS LSP 中的倒数第二个跃点。

  6. 路由器 P1 移除了 LDP 标签 (100,001),因为它是倒数第二个 LDP 路由器。它还会换出 PE1 的下一跃点,并将其替换为下一跳接口 so-1/0/0

  7. 路由器 PE1 将移除 VPN 标签 (100,004)。它还会换出 的 so-1/0/0 下一跃点接口,并将其替换为其下一跃点接口 ge-1/1/0

  8. 路由器 CE1 移除了 的 ge-1/1/0下一跳接口,数据包标头现在只包含源地址 B 和目标地址 A。

此示例的最后一部分整合了在 图 5 所示的每台服务 P 路由器上配置 VPN 功能所需的语句。

注意:

在此示例中,专用 AS 编号用于路由识别符和路由目标。此数字仅用于说明。配置 VPN 时,应使用分配的 AS 编号。

以下章节介绍如何在 PE 和 P 路由器上配置 VPN 功能。CE 路由器没有关于 VPN 的任何信息,因此您可以正常配置它们。

在 PE 和 P 路由器上启用 IGP

要允许 PE 和 P 路由器在它们之间交换路由信息,必须在所有这些路由器上配置 IGP,或者必须配置静态路由。您可以在路由协议进程 (rpd) 的主实例上(即在 [edit protocols] 层次结构级别)上配置 IGP,而不在 VPN 路由实例内(即,不在 [edit routing-instances] 层次结构级别上)。

以标准方式配置 IGP。此配置示例不包括此部分配置。

在 PE 和 P 路由器上启用 LDP

在此配置示例中,LDP 是 PE 路由器之间的信令协议。要让 VPN 正常运行,您必须在两台 PE 路由器和连接到 PE 路由器的 P 路由器上配置 LDP。您只需在服务提供商网络核心的接口上配置 LDP;也就是 PE 和 P 路由器之间以及 P 路由器之间。无需在 PE 和 CE 路由器之间的接口上配置 LDP。

在此配置示例中,您在 P 路由器的环路接口上配置 LDP,因为这些接口上配置了 MPLS LSP。

在 PE 路由器上,还必须在配置逻辑接口时进行配置 family inet

在路由器 PE1 上,配置 LDP:

在路由器 PE2 上,配置 LDP:

在路由器 P1 上,配置 LDP:

在路由器 P3 上,配置 LDP:

在路由器 P2 上,尽管您不需要配置 LDP,但您可以选择性地将其配置为在 RSVP LSP 无法运行时提供回退 LDP 路径:

在 P 路由器上启用 RSVP 和 MPLS

在 P 路由器 P2 上,必须配置 RSVP 和 MPLS,因为此路由器位于 P 路由器 P1 和 P3 之间的 MPLS LSP 路径上:

配置 P 路由器之间的 MPLS LSP 隧道

在此配置示例中,LDP 通过 RSVP LSP 建立隧道。因此,除了配置 RSVP 之外,还必须在 IGP 中启用流量工程支持,并且必须创建 MPLS LSP 以通过隧道传输 LDP 流量。

在路由器 P1 上,启用 RSVP 并配置 MPLS LSP 隧道的一端。在此示例中,将为 OSPF 启用流量工程支持,并在 LSP 和路由器 PE1 的接口上配置 MPLS。在 to 语句中,指定路由器 P3 的环路地址。

在路由器 P3 上,启用 RSVP 并配置 MPLS LSP 隧道的另一端。同样,会为 OSPF 启用流量工程支持,并在 LSP 和路由器 PE2 的接口上配置 MPLS。在 to 语句中,指定路由器 P1 的环路地址。

在 PE 路由器上配置 IBGP

在 PE 路由器上,使用以下属性配置 IBGP 会话:

  • VPN 家族 - 要指示 IBGP 会话用于 VPN,请添加 family inet-vpn 语句。

  • 环路地址 — 包括local-address语句,用于指定本地 PE 路由器的环路地址。VPN 的 IBGP 会话通过环路地址运行。您还必须在[edit interfaces]层次结构级别配置lo0接口。该示例不包括路由器配置的这一部分。

  • 邻接方地址 — 包括 neighbor 语句,指定相邻 PE 路由器的 IP 地址,即其环路 (lo0) 地址。

在路由器 PE1 上,配置 IBGP:

在路由器 PE2 上,配置 IBGP:

在 PE 路由器上配置 VPN 的路由实例

两款 PE 路由器都提供 VPN-A 服务,因此您必须在每台路由器上为您定义以下内容的 VPN 配置一个路由实例:

  • 路由识别符,对于 PE 路由器上的每个路由实例,它必须是唯一的。它用于区分一个 VPN 中的地址和另一个 VPN 中的地址。

  • 的实例类型 vrf,用于在 PE 路由器上创建 VRF 表。

  • 连接到 CE 路由器的接口。

  • VRF 导入和导出策略,在为同一 VPN 提供服务的每台 PE 路由器上,这些策略必须相同。除非导入策略仅包含语 then reject 句,否则它必须包含对社区的引用。否则,当您尝试提交配置时,提交将失败。

    注意:

    在此示例中,专用 AS 编号用于路由识别符。此数字仅用于说明。配置 VPN 时,应使用分配的 AS 编号。

  • PE 和 CE 路由器之间的路由,这是 PE 路由器将 VPN 相关路由分发到连接的 CE 路由器和从连接的 CE 路由器分发 VPN 相关路由所必需的。您可以配置路由协议(BGP、OSPF 或 RIP),也可以配置静态路由。

在路由器 PE1 上,为 VPN-A 配置以下路由实例。在此示例中,路由器 PE1 使用 RIP 分配与其连接的 CE 路由器之间的路由。

在路由器 PE2 上,为 VPN-A 配置以下路由实例。在此示例中,路由器 PE2 使用 OSPF 分配与其连接的 CE 路由器之间的路由。

在 PE 路由器上配置 VPN 策略

您必须在每台 PE 路由器上配置 VPN 导入和导出策略,以便它们在其 VRF 表中安装相应的路由,以便用于在 VPN 中转发数据包。对于 VPN-A,VRF 表为 VPN-A.inet.0。

在 VPN 策略中,您还可以配置 VPN 目标社区。

注意:

在此示例中,专用 AS 编号用于路由目标。此数字仅用于说明。配置 VPN 时,应使用分配的 AS 编号。

在路由器 PE1 上,配置以下 VPN 导入和导出策略:

注意:

此示例中显示的策略限定符只是 VPN 正常运行所需的限定符。您可以根据需要为您配置的任何策略配置其他限定符。

在路由器 PE2 上,配置以下 VPN 导入和导出策略:

要在路由器上应用 VPN 策略,请在 PE 路由器上配置路由实例时加入 vrf-exportvrf-import 语句。VRF 导入和导出策略处理在 PE 路由器之间运行的 IBGP 会话中的路由分布。

按路由器汇总的 LDP-over-RSVP VPN 配置

路由器 PE1

VPN-A 的路由实例

实例路由协议

接口

主协议实例

启用 LDP

启用 MPLS

配置 IBGP

配置 VPN 策略

路由器 P1

主协议实例

启用 RSVP

启用 LDP

启用 MPLS

配置 OSPF 以支持流量工程

路由器 P2

主协议实例

启用 RSVP

启用 MPLS

路由器 P3

主协议实例

启用 RSVP

启用 LDP

启用 MPLS

配置 OSPF 以支持流量工程

路由器 PE2

VPN-A 的路由实例

实例路由协议

接口

主协议实例

启用 LDP

启用 MPLS

配置 IBGP

配置 VPN 策略

配置基于应用的第 3 层 VPN 拓扑

此示例说明了将流量转发到第 3 层 VPN 的基于应用的机制。通常,通过将一个或多个接口包含在 VPN 路由实例的配置中,一个或多个接口与 VPN 关联或绑定到 VPN。通过将接口绑定到 VPN,VPN 的 VRF 表将用于为该接口上的任何传入流量做出转发决策。绑定接口还包括 VRF 表中的接口本地路由,该表为 VRF 路由提供下一跃点分辨率。

在此示例中,防火墙过滤器用于定义通过标准路由表 inet.0 转发接口上的哪些传入流量,以及通过 VRF 表转发哪些传入流量。您可以扩展此示例,以便将接口上的传入流量重定向到一个或多个 VPN。例如,您可以定义一种配置来支持 VPN,该 VPN 基于源地址转发流量、转发超文本传输协议 (HTTP) 流量或仅转发流媒体。

要使此配置正常工作,必须满足以下条件:

  • 使用基于过滤器的转发的接口不得绑定到 VPN。

  • 必须将静态路由用作路由方式。

  • 您必须定义一个在 inet.0 和 VRF 表之间共享的接口路由表组,以便提供到 VRF 表的本地路由。

此示例由两个客户端主机(客户端 D 和客户端 E)组成,它们位于两个不同的 VPN 中,并且希望在 VPN 内和向 Internet 发送流量。路径定义如下:

  • 客户端 A 通过 VPN A 向客户端 E 发送流量,其返回路径也使用 VPN A(使用 VPN 的 VRF 表)。

  • 客户端 B 通过 VPN B 向客户端 D 发送流量,返回路径使用基于目标的标准路由(使用 inet.0 路由表)。

  • 客户端 B 和 C 使用标准路由(使用 inet.0 路由表)将流量发送到 Internet,返回路径也使用标准路由。

此示例说明在配置基于应用程序的第 3 层 VPN 拓扑时有多种选项。这种灵活性适用于许多需要在受限路由环境中转发特定流量的网络实施。

此配置示例仅显示基于过滤器的转发、路由实例和策略的配置部分。它没有说明如何配置第 3 层 VPN。

图 7 说明了此示例中使用的网络拓扑。

图 7:基于应用的第 3 层 VPN 配置示例 Network topology diagram showing connectivity among clients 192.168.1.1, 192.168.1.2, 192.168.1.3, VPN A, VPN B, PE Routers A and F, P Routers B, C, D, E, and internet access.

路由器 A 上的配置

在路由器 A 上,您将接口配置为客户端 A、B 和 C。该配置将评估传入流量,以确定是通过 VPN 还是基于目标的标准路由转发该流量。

首先,应用入站过滤器并配置接口:

由于使用基于过滤器的转发的接口不得绑定到 VPN,因此您必须配置另一种方法来提供到 VRF 表的下一跃点路由。为此,您可以定义一个接口路由表组,并在所有路由表之间共享此组:

将以下过滤器应用于接口 fe-1/1/0.0上的传入流量。第一个术语匹配来自客户端 A 的流量,并将其转发到 VPN A 的路由实例。第二个术语匹配来自客户端 B 的发往客户端 D 的流量,并将其转发到 VPN B 的路由实例。第三个项匹配所有其他流量,根据 inet.0 中的路由,通常通过基于目标的转发方式进行转发。

然后,为 VPN A 和 VPN B 配置路由实例。请注意,这些语句包含定义第 3 层 VPN 所需的所有语句(语句除外 interface )。

路由器 E 上的配置

在路由器 E 上,配置到达 Internet 的默认路由。您应将此路由注入到本地 IBGP 网格中,以提供网络的出口点。

配置客户端 E 的接口,以便接口 fe-1/1/1.0 上与 VPN 策略匹配的所有传入流量都通过 VPN A 转发:

路由器 F 上的配置

同样,由于使用基于过滤器的转发的接口不得绑定到 VPN,因此您可以配置另一种方法,通过定义接口路由表组并在所有路由表之间共享此组来提供到 VRF 表的下一跃点路由。要为正常 inet.0 路由提供返回客户端的路由,请定义要包含在 inet.0 中的静态路由,并将静态路由重新分发到 BGP 中:

要将流量从 VPN B 定向到客户端 D,请在路由器 F 上为 VPN B 配置路由实例。接口上来自客户端 D so-3/3/3.0 的所有传入流量都通过基于 inet.0 中路由的目标地址正常转发。