Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

第 3 层 VPN 中的路由实例

本主题讨论如何在 3 层 VPN 中配置路由实例

第 3 层 VPN 中的路由实例

路由实例是路由表、接口和路由协议参数的集合。接口组属于路由表,路由协议参数控制路由表中的信息。每个路由实例都有一个唯一的名称和对应的 IP 单播表。

要在 JUNOS 软件中实施第 3 层 VPN,请为每个 VPN 配置一个路由实例。只能在 PE 路由器上配置路由实例。每个 VPN 路由实例都由以下组件组成:

  • VRF 表 — 在每个 PE 路由器上,您可为每个 VPN 配置一个 VRF 表。

  • 使用 VRF 表的接口集 — 每个直接连接的 CE 路由器的 逻辑接口 必须与 VRF 表相关联。如果 VPN 中有多个 CE 路由器直接连接到 PE 路由器,则可以将多个接口与同一个 VRF 表进行关联。

  • 策略规则 — 这些规则控制将路由导入到 VRF 表中以及从 VRF 表导出路由。

  • 将 CE 路由器路由安装到 VRF 表中的一个或多个路由协议 — 您可以使用 BGP、OSPF 和 RIP 路由协议,也可以使用静态路由。

在环路接口上为第 3 层 VPN 中的路由实例配置逻辑单元

对于第 3 层 VPN(VRF 路由实例),您可以在环路接口上将逻辑单元配置到您在路由器上配置的每个 VRF 路由实例中。通过将 VRF 路由实例与环路接口上的逻辑单元相关联,可以轻松识别 VRF 路由实例。

执行此作对于故障排除很有用:

您还可以在环路接口上为逻辑单元配置防火墙过滤器;通过此配置,可以过滤与其关联的 VRF 路由实例的流量。

注意:

在 EX 系列 交换机(EX9200 系列交换机除外)和 QFX5000 系列交换机上,不支持每个 VRF 的环路过滤。即使我们在环路上为每个 IFL 配置不同的滤波器,它们也会作为一个整体应用于环路接口,而不是每个 VRF 单独应用。

下面介绍防火墙过滤器如何影响 VRF 路由实例,具体取决于它们是在默认环路接口、VRF 路由实例上配置的,还是两者的某种组合上配置的。“默认环路接口”是指 lo0.0 (与默认路由表关联),“VRF 环路接口”是指 lo0.n,它在 VRF 路由实例中配置。

  • 如果在默认环路接口上配置过滤器 A,在 VRF 环路接口上配置过滤器 B,则 VRF 路由实例将使用过滤器 B。

  • 如果在默认环路接口上配置过滤器 A,但未在 VRF 环路接口上配置过滤器,则 VRF 路由实例不会使用过滤器。

  • 如果在默认环路接口上配置过滤器 A,但未配置 VRF 环路接口,则 VRF 路由实例将使用过滤器 A。对于 MX80 设备,行为略有不同: 如果在默认环路接口上配置过滤器,但未配置 VRF 环路接口,则 VRF 路由实例仅使用分配给默认环路的输入过滤器(不使用默认环路的输出过滤器)。

对于某些ACX 系列通用城域网路由器(ACX1000、ACX2000、ACX4000 和 ACX5000),默认环路滤波器必须与其过滤的入口流量位于同一路由或虚拟路由和转发 (VRF) 实例中。也就是说,在这些设备上,默认环路滤波器不能用于遍历属于不同路由实例的接口的流量。

要在环路接口上配置逻辑单元,请添加 unit 语句:

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

  • [edit interfaces lo0]

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

要将防火墙过滤器与环路接口上的逻辑单元进行关联,请添加以下 filter 语句:

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

  • [edit interfaces lo0 unit unit-number family inet]

  • [edit logical-systems logical-system-name interfaces lo0 unit unit-number family inet]

要在 VRF 路由实例的配置中包含 lo0.n 接口(其中 n 指定逻辑单元),请包含以下语句:

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

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

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

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

您需要为参与 VPN 的每台 PE 路由器上的每个 VPN 配置路由实例。本节中概述的配置过程适用于第 2 层 VPN、第 3 层 VPN 和 VPLS。其他配置章节的相应章节中介绍了特定于每种类型 VPN 的配置过程。

要为 VPN 配置路由实例,请包含以下语句:

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

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

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

要配置 VPN 路由实例,请执行以下部分中的步骤:

配置 VPN 的路由实例名称

VPN 的路由实例名称最多为 128 个字符,可以包含字母、数字和连字符。在 Junos OS 9.0 及更高版本中,无法再指定 default 为实际的路由实例名称。您也不能使用任何特殊字符 (! @ # $ % ^ & * , +< > : ;)在路由实例的名称中。

注意:

在 Junos OS 9.6 及更高版本中,仅当未配置逻辑系统时,才能在路由实例名称中包含斜杠 (/)。也就是说,如果显式配置了除默认值之外的逻辑系统,则不能在路由实例名称中包含斜杠字符。

使用 routing-instance 语句指定路由实例名称:

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

  • [edit]

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

配置描述

要为路由实例提供文本说明,请包含语 description 句。如果文本包含一个或多个空格,请用引号 (“ ”) 将其括起来。您包含的任何描述性文本都将显示在命令的输出 show route instance detail 中,对路由实例的作没有影响。

要配置文本描述,请包含以下 description 语句:

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

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

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

配置实例类型

您配置的实例类型会有所不同,具体取决于您配置的是第 2 层 VPN、第 3 层 VPN、VPLS 还是虚拟路由器。通过包含 instance-type 语句来指定实例类型:

  • 要在 PE 路由器上启用第 2 层 VPN 路由,请添加 instance-type 语句并指定值l2vpn

  • 要在 PE 路由器上启用 VPLS 路由,请添加 instance-type 语句并指定值vpls

  • 第 3 层 VPN 要求每个 PE 路由器都有一个 VPN 路由和转发 (VRF) 表,用于在 VPN 内分配路由。要在 PE 路由器上创建 VRF 表,请包含语 instance-type 句并指定值 vrf

    注意:

    VRF 路由实例不支持基于路由引擎的采样。

  • 要启用虚拟路由器路由实例,请包含语 instance-type 句并指定值 virtual-router

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

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

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

配置 VPN 路由接口

在每台 PE 路由器上,都必须配置一个接口,VPN 流量通过该接口在 PE 和 CE 路由器之间传输。

以下部分介绍如何为 VPN 配置接口:

VPN 路由的常规配置

本部分所述的配置适用于所有类型的 VPN。对于第 3 层 VPN 和载波至载波 VPN,请先完成本节所述的配置,然后再继续执行特定于这些主题的接口配置部分。

要为 VPN 路由配置接口,请添加 interface 语句:

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

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

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

采用以下格式指定接口名称的物理和逻辑部分:

例如, at-1/2/1 in at-1/2/1.2是接口名称的物理部分,也是2逻辑部分。如果未指定接口名称的逻辑部分,则默认情况下会设置该值0

一个逻辑接口只能与一个路由实例相关联。如果通过指定 interfaces all[edit protocols] 层次结构级别配置协议的主实例时在所有实例上启用路由协议,并且在 [edit routing-instances routing-instance-name] 层次结构级别或层次 [edit logical-systems logical-system-name routing-instances routing-instance-name] 结构级别为 VPN 路由配置特定接口,则后一个接口语句优先,并且该接口专门用于 VPN。

如果在 [edit protocols] 层次结构级别和 [edit routing-instances routing-instance-name][edit logical-systems logical-system-name routing-instances routing-instance-name] 层次结构级别显式配置相同的接口名称,则尝试提交配置将失败。

配置第 3 层 VPN 的接口

[edit interfaces] 层次结构级别配置第 3 层 VPN 接口时,还必须在配置逻辑接口时进行配置 family inet

为载波至载波 VPN 配置接口

配置载波至载波 VPN 时,除了为 PE 和 CE 路由器之间的接口配置语句之外,family inet还需要配置family mpls语句。对于载波至载波 VPN,请按如下方式配置逻辑接口:

如果在逻辑接口上配置 family mpls ,然后为非载波至载波路由实例配置此接口, family mpls 则语句会自动从逻辑接口的配置中移除,因为不需要该语句。

在 VPN 接口上配置单播 RPF

对于承载 IP 版本 4 或版本 6(IPv4 或 IPv6)流量的 VPN 接口,您可以通过配置单播反向路径转发 (RPF) 来减少拒绝服务 (DoS) 攻击的影响。单播 RPF 有助于确定攻击源,并拒绝启用了单播 RPF 的接口上来自意外源地址的数据包。

您可以通过在接口上启用单播 RPF 并在层次结构级别包含语句[edit routing-instances routing-instance-name],在 VPN 接口上配置interface单播 RPF。

无法在面向核心的接口上配置单播 RPF。您只能在 PE 路由器上的 CE 路由器到 PE 路由器接口上配置单播 RPF。但是,对于虚拟路由器路由实例,您在路由实例中指定的所有接口都支持单播 RPF。

有关如何在 VPN 接口上配置单播 RPF 的信息,请参阅了解单播 RPF(路由器)。

配置路由识别符

您在 PE 路由器上配置的每个路由实例都必须具有与之关联的唯一路由识别符。VPN 路由实例需要路由识别符来帮助 BGP 区分从不同 VPN 接收的可能相同的网络层可达性信息 (NLRI) 消息。如果使用相同的路由识别符配置不同的 VPN 路由实例,则提交将失败。

对于第 2 层 VPN 和 VPLS,如果已配置语 l2vpn-use-bgp-rules 句,则必须为参与特定路由实例的每台 PE 路由器配置唯一的路由识别符。

对于其他类型的 VPN,我们建议您为参与路由实例的每台 PE 路由器使用唯一的路由识别符。虽然您可以在所有 PE 路由器上对同一个 VPN 路由实例使用相同的路由识别符(第 2 层 VPN 和 VPLS 除外),但如果使用唯一路由识别符,则可以确定路由源自 VPN 的 CE 路由器。

要在 PE 路由器上配置路由识别符,请添加 route-distinguisher 以下语句:

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

路由识别符是一个 6 字节值,您可以采用以下格式之一指定该值:

  • as-numbernumber,是 as-number 自治系统 (AS) 编号(2 字节值),也是 number 任意 4 字节值。AS 编号的范围是 1 到 65,535。我们建议使用互联网编号分配机构 (IANA) 分配的非专用 AS 编号,最好是互联网服务提供商 (ISP) 自己的 AS 编号或客户自己的 AS 编号。

  • ip-addressnumber,其中 ip-address 是 IP 地址(4 字节值), number 也是任意 2 字节值。IP 地址可以是任何全局唯一的单播地址。建议使用在语句中 router-id 配置的地址,即分配的前缀范围内的非专用地址。

配置自动路由识别符

如果在[edit routing-options]层次结构级别配置route-distinguisher-id语句,则会自动为路由实例分配路由识别符。如果除了语句之外route-distinguisher-id还配置了route-distinguisher语句,则配置的route-distinguisher值将取代从 route-distinguisher-id生成的值。

要自动分配路由识别符,请包含以下 route-distinguisher-id 语句:

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

  • [edit routing-options]

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

类型 1 路由识别符会使用以下格式 ip-address:number自动分配给路由实例。IP 地址由 route-distinguisher-id 语句指定,路由实例的编号是唯一的。

在 VPN 中配置虚拟路由器路由实例

虚拟路由器路由实例(如 VRF 路由实例)为每个实例维护单独的路由和转发表。但是,虚拟路由器路由实例不需要 VRF 路由实例所需的许多配置步骤。具体而言,您无需在服务提供商路由器之间配置路由识别符、路由表策略(、vrf-exportvrf-importroute-distinguisher语句)或 MPLS。

通过包含以下语句来配置虚拟路由器路由实例:

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

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

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

以下章节说明如何配置虚拟路由器路由实例:

在服务提供商路由器之间配置路由协议

服务提供商路由器需要能够交换路由信息。您可以在[edit routing-instances routing-instance-name]层次结构级别为虚拟路由器路由实例protocols语句配置配置以下协议:

  • 边界网关协议

  • IS-IS

  • 自民党

  • OSPF

  • 协议无关组播 (PIM)

您还可以配置静态路由。

虚拟路由器路由实例不支持 IBGP 路由反射。

如果在虚拟路由器实例下配置 LDP,则默认情况下,LDP 路由会放置在路由实例的 inet.0 和 inet.3 路由表中(例如 sample.inet.0 和 sample.inet.3)。要将 LDP 路由限制为仅路由实例的 inet.3 表,请包含以下 no-forwarding 语句:

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

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

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

如果将 LDP 路由限制为仅 inet.3 路由表,则可以将 inet.0 路由表中的相应 IGP 路由重新分发并播发到其他路由协议中。

有关路由表的信息,请参阅 了解 Junos OS 路由表

在参与的路由器之间配置逻辑接口

您必须为参与路由实例的每台客户路由器和参与路由实例的每台 P 路由器配置一个接口。每个虚拟路由器路由实例都需要与参与该实例的所有 P 路由器建立自己单独的逻辑接口。要为虚拟路由器实例配置接口,请添加 interface 语句:

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

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

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

采用以下格式指定接口名称的物理和逻辑部分:

例如, at-1/2/1 in at-1/2/1.2是接口名称的物理部分,也是2逻辑部分。如果未指定接口名称的逻辑部分,0则默认设置。

您还必须在 [edit interfaces] 层次结构级别配置接口。

在提供商路由器之间提供此逻辑接口的一种方法是在它们之间配置隧道。您可以在提供商路由器之间配置 IP 安全 (IPsec)、通用路由封装 (GRE) 或 IP-IP 隧道,在虚拟路由器实例上终止隧道。

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

为 VPN 路由实例配置路径 MTU 检查

默认情况下,VPN 路由实例的最大传输单元 (MTU) 检查在 M Series 路由器(M320 路由器除外)上处于禁用状态,而在 M320 路由器上则处于启用状态。在 M Series 路由器上,您可以为 VRF 路由实例和虚拟路由器路由实例上路由的单播流量在传出接口上配置路径 MTU 检查。

启用 MTU 检查后,当遍历路由实例的数据包超过 MTU 大小并设置了 do-not-fragment 位时,路由平台将发送互联网控制消息协议 (ICMP) 消息。ICMP 消息使用 VRF 本地地址作为其源地址。

要使 MTU 检查在路由实例中正常工作,您必须在层次结构级别包含 vrf-mtu-check 语句 [edit chassis] ,并为路由实例分配至少一个包含 IP 地址的接口。

有关路径 MTU 检查的详细信息,请参阅 路由设备的 Junos OS 管理库

要配置路径 MTU 检查,请执行以下部分中介绍的任务:

为 VPN 路由实例启用路径 MTU 检查

要在传出接口上对 VRF 或虚拟路由器路由实例上路由的单播流量启用路径检查,请在[edit chassis]层次结构级别包含以下vrf-mtu-check语句:

为 VPN 路由实例分配 IP 地址

为确保路径 MTU 检查正常工作,必须至少有一个 IP 地址与每个 VRF 或虚拟路由器路由实例相关联。如果 IP 地址未与路由实例关联,则无法发送 ICMP 回复消息。

通常,VRF 或虚拟路由器路由实例 IP 地址是从与为该路由实例配置的接口关联的 IP 地址中抽取的。如果与 VRF 或虚拟路由器路由实例关联的接口均未配置 IP 地址,则需要使用 IP 地址显式配置逻辑环路接口。然后,此接口必须与路由实例相关联。有关详细信息,请参阅为 第 3 层 VPN 中的路由实例在环路接口上配置逻辑单元