为 VPN 中的 PE 路由器上的 VRF 表配置策略
在每台 PE 路由器上,您必须定义如何将路由导入路由器的 VRF 表以及从路由器的 VRF 表中导出路由的策略。在这些策略中,您必须定义路由目标,并可以选择定义路由源。
要为 VRF 表配置策略,请执行以下部分中的步骤:
配置路由目标
作为 VPN 路由表策略配置的一部分,您必须定义一个路由目标,该路由属于哪个 VPN。当在同一 PE 路由器上配置不同类型的 VPN 服务(第 2 层 VPN、第 3 层 VPN、EVPN 或 VPLS)时,请务必分配唯一的路由目标值,以避免向错误的 VPN 路由表添加路由和信令信息的可能性。
要配置路由目标,请在 target
语句中包含 community
选项:
community name members target:community-id;
您可以在以下层级包含此语句:
[edit policy-options]
[edit logical-systems logical-system-name policy-options]
name
是社区的名称。
community-id
是社区的标识符。请以以下格式之一指定:
as-number
:number
,其中as-number
为 AS 编号(2 字节值),number
是 4 字节社区值。AS 编号的范围可以是 1 到 65,535。我们建议使用 IANA 分配的非专用 AS 编号,最好是 ISP 自己的或客户自己的 AS 编号。社区值可以是 0 到 4,294,967,295 (232 – 1) 范围内的数字。ip-address
:number
,其中ip-address
为 IPv4 地址(4 字节值),是number
2 字节社区值。IP 地址可以是任何全局唯一的单播地址。我们建议您使用在语句中router-id
配置的地址,该地址是您分配的前缀范围内的非专用地址。社区值可以是 1 到 65,535 范围内的数字。
配置路由源
在 PE 路由器 VRF 表的导入和导出策略中,您可以使用应用于发送至其他 PE 路由器的多协议外部 BGP (MP-EBGP) VPN IPv4 路由更新的 VRF 导出策略,选择性地为 PE 路由器的 VRF 路由分配路由源(也称为起源站点)。
在接收 PE 的 VRF 导入策略中,对分配的路由源属性进行匹配有助于确保从一个 PE 的 MP-EBGP 更新获知的 VPN-IPv4 路由不会从连接到同一站点的不同 PE 重新导入同一 VPN 站点。
要配置路由源,请完成以下步骤:
将
community
语句与选项一origin
起包括:community name members origin:community-id;
您可以在以下层级包含此语句:
[edit policy-options]
[edit logical-systems logical-system-name policy-options]
name
是社区的名称。community-id
是社区的标识符。请以以下格式之一指定:as-number
:number
,其中as-number
为 AS 编号(2 字节值),number
是 4 字节社区值。AS 编号的范围可以是 1 到 65,535。我们建议使用 IANA 分配的非专用 AS 编号,最好是 ISP 自己的或客户自己的 AS 编号。社区值可以是 0 到 4,294,967,295 (232 – 1) 范围内的数字。ip-address
:number
,其中ip-address
为 IPv4 地址(4 字节值),是number
2 字节社区值。IP 地址可以是任何全局唯一的单播地址。我们建议您使用在语句中router-id
配置的地址,该地址是您分配的前缀范围内的非专用地址。社区值可以是 1 到 65,535 范围内的数字。
通过将语句配置为
community
community-id
在层级的步骤 1 中定义的标识符,将社区包含在 PE 路由器 VRF 表的导入策略中[edit policy-options policy-statement import-policy-name term import-term-name from]
。请参阅为 PE 路由器的 VRF 表配置导入策略。如果策略的
from
语句未指定社区条件,vrf-import
则无法提交应用策略的语句。Junos OS 提交操作无法通过验证检查。通过将语句配置为
community-id
在层级的步骤 1 中定义的标识符,community
将社区包含在 PE 路由器 VRF 表的导出策略中[edit policy-options policy-statement export-policy-name term export-term-name then]
。请参阅为 PE 路由器的 VRF 表配置导出策略。
有关 配置示例,请参阅为 VPN 配置路由源 。
为 PE 路由器的 VRF 表配置导入策略
每个 VPN 都可以有一个策略,用于定义如何将路由导入 PE 路由器的 VRF 表中。导入策略应用于从 VPN 中的其他 PE 路由器接收的路由。策略必须评估使用对等 PE 路由器通过 IBGP 会话接收的所有路由。如果路由符合条件,则路由将安装在 PE 路由器的 routing-instance-name.inet.0
VRF 表中。导入策略必须包含拒绝所有其他路由的第二个术语。
除非导入策略仅包含语句 then reject
,否则它必须包含对社区的引用。否则,当您尝试提交配置时,提交会失败。您可以配置多个导入策略。
导入策略根据通过 IBGP 从远程 PE 路由器获悉的 VPN 路由,确定要导入到指定 VRF 表的内容。IBGP 会话在[edit protocols bgp]
层次结构级别上配置。如果同时在[edit protocols bgp]
层次结构级别配置导入策略,则层次结构级别和[edit protocols bgp]
层次结构级别的导入策略[edit policy-options]
将通过逻辑 AND 操作组合在一起。这允许您将流量过滤为一个组。
要为 PE 路由器的 VRF 表配置导入策略,请执行以下步骤:
要定义导入策略,请包含语句
policy-statement
。对于所有 PE 路由器,导入策略必须始终包含语句policy-statement
,至少:policy-statement import-policy-name { term import-term-name { from { protocol bgp; community community-id; } then accept; } term term-name { then reject; } }
您可以在以下层级包含语句
policy-statement
:[edit policy-options]
[edit logical-systems logical-system-name policy-options]
该
import-policy-name
策略会评估与其他 PE 路由器通过 IBGP 会话接收的所有路由。如果路由与语句中的from
条件匹配,则路由将安装在 PE 路由器的 routing-instance-name.inet.0 VRF 表中。策略中的第二个术语会拒绝所有其他路由。有关创建策略的更多信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
您可以选择使用正则表达式来定义一组用于 VRF 导入策略的社区。
例如,您可以在层级使用
community
语句[edit policy-options policy-statement policy-statement-name]
配置以下内容:[edit policy-options vrf-import-policy-sample] community high-priority members *:50
请注意,您不能将正则表达式配置为路由目标扩展社区的一部分。有关如何为社区配置正则表达式的更多信息,请参阅 了解如何定义 BGP 社区和扩展社区 。
要配置导入策略,请添加
vrf-import
语句:vrf-import import-policy-name;
您可以在以下层级包含此语句:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
为 PE 路由器的 VRF 表配置导出策略
每个 VPN 都可以有一个策略,用于定义如何从 PE 路由器的 VRF 表导出路由。导出策略应用于发送至 VPN 中其他 PE 路由器的路由。导出策略必须评估通过 CE 路由器的路由协议会话接收的所有路由。(此会话可以使用 BGP、OSPF 或路由信息协议 [RIP] 路由协议或静态路由。)如果路由与条件匹配,则指定的社区目标(即路由目标)将被添加到其中,并将它们导出到远程 PE 路由器。导出策略必须包含拒绝所有其他路由的第二个术语。
在 VPN 路由实例中定义的导出策略是唯一应用于 VRF 表的导出策略。在 PE 路由器之间的 IBGP 会话上定义的任何导出策略都不会影响 VRF 表。您可以配置多个导出策略。
要为 PE 路由器的 VRF 表配置导出策略,请执行以下步骤:
对于所有 PE 路由器,导出策略必须按照您在路由实例内的 CE 和 PE 路由器之间配置的路由协议类型,将 VPN 路由分发到连接的 CE 路由器。
要定义导出策略,请包括语句
policy-statement
。导出策略必须始终包含语句policy-statement
,至少:policy-statement export-policy-name { term export-term-name { from protocol (bgp | ospf | rip | static); then { community add community-id; accept; } } term term-name { then reject; } }
注意:配置
community add
语句是第 2 层 VPN VRF 导出策略的要求。如果将语句更改为community add
语句community set
,则位于第 2 层 VPN 链路出口的路由器可能会断开连接。注意:配置在源特定模式下运行的 draft-rosen 组播 VPN 并使用
vrf-export
语句指定导出策略时,策略必须具有接受 vrf-name.mdt.0 路由表中路由的术语。术语可确保使用inet-mdt
地址族正确发现 PE 自动发现。配置在源特定模式下运行的草案玫瑰组播 VPN 并使用
vrf-target
语句时,VRF 导出策略将自动生成并自动接受来自 vrf-name.mdt.0 路由表的路由。您可以在以下层级包含语句
policy-statement
:[edit policy-options]
[edit logical-systems logical-system-name policy-options]
该
export-policy-name
策略评估通过 CE 路由器的路由协议会话接收的所有路由。(此会话可以使用 BGP、OSPF、RIP 路由协议或静态路由。)如果路由与语句中的from
条件匹配,则语句中then community add
指定的社区目标将被添加到其中,并将它们导出到远程 PE 路由器。策略中的第二个术语会拒绝所有其他路由。有关创建策略的更多信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
要应用策略,请包括以下
vrf-export
语句:vrf-export export-policy-name;
您可以在以下层级包含此语句:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
同时应用 VRF 导出和 BGP 导出策略
按照 为 PE 路由器的 VRF 表配置导出策略中的说明应用 VRF 导出策略时,来自 VPN 路由实例的路由会基于此策略播发到其他 PE 路由器,而 BGP 导出策略将被忽略。
如果在 vpn-apply-export
BGP 配置中包含语句,则先应用 VRF 导出和 BGP 组或邻接方导出策略(首先 VRF,然后是 BGP),然后是 VPN 路由表中的路由播发至其他 PE 路由器。
当 PE 设备也充当运营商上运营商或 AS 间 VPN 中的路由反射器 (RR) 或自治系统边界路由器 (ASBR),将忽略 vrf 导出策略中的下一跳操作。
包括语句时 vpn-apply-export
,请注意以下事项:
导入 bgp.l3vpn.0 路由表中的路由会保留原始路由的属性(例如,OSPF 路由仍保留 OSPF 路由,即使它存储在 bgp.l3vpn.0 路由表中)。当您为 IBGP PE 路由器和 PE 路由器、路由反射器与 PE 路由器或 AS 边界路由器 (ASBR) 对等路由器之间的连接配置导出策略时,应注意这一点。
默认情况下,bgp.l3vpn.0 路由表中的所有路由都会导出到 IBGP 对等方。如果导出策略的最后一个语句是“拒绝所有”,并且导出策略未特别匹配 bgp.l3vpn.0 路由表中的路由,则不会导出任何路由。
要同时将 VRF 导出策略和 BGP 导出策略应用于 VPN 路由,请包括以下 vpn-apply-export
语句:
vpn-apply-export;
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
配置 VRF 目标
在 vrf-target
VRF 目标社区的配置中包括该语句将导致生成默认 VRF 导入和导出策略,以接受具有指定目标社区的路由并标记路由。您仍然可以通过显式配置 VRF 导入和导出策略来创建更复杂的策略。这些策略将覆盖配置 vrf-target
语句时生成的默认策略。
如果未配置语句和import
export
选项vrf-target
,则指定的社区字符串将双向应用。和import
export
关键词为您提供了更大的灵活性,允许您为每个方向指定不同的社区。
VRF 目标社区的语法不是名称。必须按格式 target:x:y
指定。无法指定社区名称,因为这还要求您使用 policy-options
语句为该社区配置社区成员。如果定义了 policy-options
语句,则可以像往常一样配置 VRF 导入和导出策略。语句的目的是 vrf-target
通过允许您在层次结构级别配置大多数语句 [edit routing-instances]
来简化配置。
要配置 VRF 目标,请 vrf-target
添加以下语句:
vrf-target community;
您可以在以下层级包含此语句:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
您可以举一个配置 vrf-target
语句的示例如下:
[edit routing-instances sample] vrf-target target:69:102;
要配置vrf-target
带有和 选项的export
import
语句,请添加以下语句:
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]