在 VPN 中的 PE 路由器上配置路由实例
您需要为参与 VPN 的每台 PE 路由器上的每个 VPN 配置一个路由实例。本节中概述的配置过程适用于第 2 层 VPN、第 3 层 VPN 和 VPLS。其他配置章节中的相应部分介绍了每种 VPN 类型的配置过程。
要为 VPN 配置路由实例,请添加以下语句:
description text; instance-type type; interface interface-name; route-distinguisher (as-number:number | ip-address:number); vrf-import [ policy-names ]; vrf-export [ policy-names ]; vrf-target { export community-name; import community-name; }
您可以在以下层次结构级别包括这些语句:
[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
语句指定路由实例名称:
routing-instance routing-instance-name {...}
您可以在以下层级包含此语句:
[edit]
[edit logical-systems logical-system-name]
配置说明
要提供路由实例的文本说明,请包括语句 description
。如果文本包含一个或多个空格,请用引号 (“ ”) 括起来。您包括的任何描述性文本都显示在命令的输出中 show route instance detail
,不会影响路由实例的操作。
要配置文本说明,请添加 description
以下语句:
description text;
您可以在以下层级包含此语句:
[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
:instance-type l2vpn;
要启用 PE 路由器上的 VPLS 路由,请添加语句
instance-type
并指定值vpls
:instance-type vpls;
第 3 层 VPN 要求每个 PE 路由器都有一个 VPN 路由和转发 (VRF) 表,用于在 VPN 内分配路由。要创建 PE 路由器上的 VRF 表,请包括语句
instance-type
并指定值vrf
:instance-type vrf;
注意:VRF 路由实例不支持基于路由引擎的采样。
要启用虚拟路由器路由实例,请包括语句
instance-type
并指定值virtual-router
: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
语句:
interface interface-name;
您可以在以下层级包含此语句:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
指定接口名称的物理部分和逻辑部分,格式如下:
physical.logical
例如,in 是at-1/2/1.2
at-1/2/1
接口名称的物理部分,2
也是逻辑部分。如果未指定接口名称的逻辑部分,则默认设置值0
。
一个逻辑接口只能与一个路由实例相关联。如果在层次结构级别配置主协议实例[edit protocols]
时指定,interfaces all
在所有实例上启用路由协议,并且如果您在层次结构级别或[edit logical-systems logical-system-name routing-instances routing-instance-name]
层次结构级别上为 VPN 路由[edit routing-instances routing-instance-name]
配置特定接口,则后一个接口语句将优先,并且接口将专用于 VPN。
如果在层级和[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
层级或层级显式配置相同的接口名称[edit protocols]
,则提交配置的尝试将失败。
为 3 层 VPN 配置接口
在层级配置第 3 层 VPN 接口 [edit interfaces]
时,还必须在 family inet
配置逻辑接口时进行配置:
[edit interfaces] interface-name { unit logical-unit-number { family inet; } }
为运营商级 VPN 配置接口
配置载波至载波 VPN 时,除了 PE 和 CE 路由器之间接口的family inet
语句外,还需要配置family mpls
语句。对于载波到运营商的 VPN,请按如下配置逻辑接口:
[edit interfaces] interface-name { unit logical-unit-number { family inet; family mpls; } }
如果在逻辑接口上配置 family mpls
,然后为非运营商的运营商路由实例配置此接口,则 family mpls
语句会自动从逻辑接口的配置中移除,因为不需要该语句。
在 VPN 接口上配置单播 RPF
对于承载 IP 版本 4 或版本 6(IPv4 或 IPv6) 流量的 VPN 接口,可以通过配置单播反向路径转发 (RPF) 来减少拒绝服务 (DoS) 攻击的影响。单播 RPF 有助于确定攻击来源,并在启用了单播 RPF 的接口上拒绝来自意外源地址的数据包。
通过在接口上启用单播 RPF 并在层级包含语句[edit routing-instances routing-instance-name]
,interface
您可以在 VPN 接口上配置单播 RPF。
您不能在面向核心的接口上配置单播 RPF。只能在 PE 路由器上的 CE 路由器到 PE 路由器接口上配置单播 RPF。但是,对于虚拟路由器路由实例,您在路由实例中指定的所有接口均支持单播 RPF。
有关如何在 VPN 接口上配置单播 RPF 的信息,请参阅 了解单播 RPF(路由器)。
配置路由识别器
您在 PE 路由器上配置的每个路由实例都必须有与之关联的唯一路由识别符。VPN 路由实例需要路由识别器,以帮助 BGP 区分从不同 VPN 接收的潜在相同的网络层可访问性信息 (NLRI) 消息。如果使用相同的路由识别器配置不同的 VPN 路由实例,则提交失败。
对于第 2 层 VPN 和 VPN,如果配置了语句 l2vpn-use-bgp-rules
,则必须为参与特定路由实例的每台 PE 路由器配置一个唯一的路由识别符。
对于其他类型的 VPN,我们建议为参与路由实例的每台 PE 路由器使用唯一的路由识别符。尽管您可以在所有 PE 路由器上为同一 VPN 路由实例(第 2 层 VPN 和 VPLS 除外)使用相同的路由识别符,但如果使用唯一路由识别符,则可以确定路由源自 VPN 的 CE 路由器。
要配置 PE 路由器上的路由识别符,请添加以下 route-distinguisher
语句:
route-distinguisher (as-number:number | ip-address:number);
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
路由识别器是一个 6 字节值,您可以使用以下格式之一进行指定:
as-number
:number
,其中as-number
为自治系统 (AS) 编号(2 字节值),也是number
任意 4 字节值。AS 编号的范围可以是 1 到 65,535。我们建议您使用互联网编号分配机构 (IANA) 分配的非专用 AS 编号,最好是互联网服务提供商 (ISP) 自己的或客户自己的 AS 编号。ip-address
:number
,其中ip-address
是 IP 地址(4 字节值),也是number
任何 2 字节值。IP 地址可以是任何全局唯一的单播地址。我们建议您使用在语句中router-id
配置的地址,该地址是您分配的前缀范围内的非专用地址。
配置自动路由识别符
如果在层次结构级别配置route-distinguisher-id
语句[edit routing-options]
,则路由识别器会自动分配给路由实例。如果除了配置语句外还配置route-distinguisher
语句,则为route-distinguisher
配置的值将取代从route-distinguisher-id
生成的route-distinguisher-id
值。
要自动分配路由识别器,请添加 route-distinguisher-id
以下语句:
route-distinguisher-id ip-address;
您可以在以下层级包含此语句:
[edit routing-options]
[edit logical-systems logical-system-name routing-options]
格式会自动为路由实例 ip-address:number
分配 1 类路由识别器。IP 地址由 route-distinguisher-id
语句指定,编号对于路由实例是唯一的。