为 VPN 中的 PE 路由器上的 VRF 表配置策略
在每个 PE 路由器上,您必须定义如何将路由导入路由器的 VRF 表以及从的 VRF 表导出路由。在这些策略中,您必须定义路由目标,并且可以选择性地定义路由来源。
要为 VRF 表配置策略,请执行以下部分中的步骤:
配置路由目标
作为 VPN 路由表策略配置的一部分,您必须定义一个路由目标,用于定义路由所属的 VPN。在同一 PE 路由器上配置不同类型的 VPN 服务(第 2 层 VPN、第 3 层 VPN、EVPN 或 VPLS)时,请务必分配唯一的路由目标值,以避免将路由和信令信息添加到错误的 VPN 路由表中。
要配置路由目标,请在语句中community包含该target选项:
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 到 65535。我们建议使用 IANA 分配的非专用 AS 编号,最好是 ISP 自己的或客户自己的 AS 编号。社区值可以是 0 到 4,294,967,295 (232 – 1) 范围内的数字。ip-address:number,其中ip-address是 IPv4 地址(4 字节值),是number2 字节社区值。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内:origincommunity 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 到 65535。我们建议使用 IANA 分配的非专用 AS 编号,最好是 ISP 自己的或客户自己的 AS 编号。社区值可以是 0 到 4,294,967,295 (232 – 1) 范围内的数字。ip-address:number,其中ip-address是 IPv4 地址(4 字节值),是number2 字节社区值。IP 地址可以是任何全球唯一单播地址。我们建议使用在语句中router-id配置的地址,即分配的前缀范围内的非专用地址。社区值可以是 1 到 65,535 范围内的数字。
通过在层次结构级别使用
[edit policy-options policy-statement import-policy-name term import-term-name from]步骤 1 中定义的community-id标识符配置community语句,将社区包含在 PE 路由器的 VRF 表的导入策略中。请参阅为 PE 路由器的 VRF 表配置导入策略。如果策略的
from子句未指定社区条件,vrf-import则无法提交应用策略的语句。Junos OS 提交作未通过验证检查。通过在层次结构级别使用
[edit policy-options policy-statement export-policy-name term export-term-name then]步骤 1 中定义的community-id标识符配置community语句,将社区包含在 PE 路由器的 VRF 表的导出策略中。请参阅为 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 导入策略的社区。
例如,您可以在层次结构级别使用
[edit policy-options policy-statement policy-statement-name]语community句配置以下内容:[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 路由器的路由。导出策略必须评估通过与客户边缘路由器的路由协议会话接收的所有路由。(此会话可以使用 BGP、OSPF、路由信息协议 [RIP] 路由协议或静态路由。)如果路由与条件匹配,则会将指定的社区目标(即路由目标)添加到路由中,并将其导出到远程 PE 路由器。导出策略必须包含拒绝所有其他路由的第二个术语。
在 VPN 路由实例中定义的导出策略是唯一适用于 VRF 表的导出策略。您在 PE 路由器之间的 IBGP 会话上定义的任何导出策略都不会影响 VRF 表。您可以配置多个导出策略。
要为 PE 路由器的 VRF 表配置导出策略,请执行以下步骤:
对于所有 PE 路由器,导出策略必须根据您在路由实例中的 客户边缘 路由器和 PE 路由器之间配置的路由协议类型,将 VPN 路由分配进出于连接的 客户边缘 路由器。
要定义导出策略,请包含该
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 链路出口处的路由器可能会断开连接。注意:在配置在源特定模式下运行的草绘组播 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策略评估通过与客户边缘路由器的路由协议会话接收的所有路由。(此会话可以使用 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 导出策略
应用 VRF 导出策略时,如 为 PE 路由器的 VRF 表配置导出策略中所述,来自 VPN 路由实例的路由将根据此策略播发至其他 PE 路由器,而 BGP 导出策略将被忽略。
如果在 BGP 配置中包含该 vpn-apply-export 语句,则会同时应用 VRF 导出和 BGP 组或邻接方导出策略(首先是 VRF,然后是 BGP),然后才能在 VPN 路由表中将路由播发至其他 PE 路由器。
当 PE 设备同时充当运营商转载或AS间 VPN 中的路由反射器 (RR) 或自治系统边界路由器 (ASBR) 时,VRF 导出策略中的下一跃点作将被忽略。
包含该 vpn-apply-export 语句时,请注意以下事项:
导入到 bgp.l3vpn.0 路由表中的路由将保留原始路由的属性(例如,即使 OSPF 路由存储在 bgp.l3vpn.0 路由表中,它仍然是 OSPF 路由)。为 IBGP PE 路由器与 PE 路由器、路由反射器与 PE 路由器或AS边界路由器 (ASBR) 对等路由器之间的连接配置导出策略时,应注意这一点。
默认情况下,bgp.l3vpn.0 路由表中的所有路由都将导出到 IBGP 对等方。如果导出策略的最后一个语句是 deny all,并且导出策略在 bgp.l3vpn.0 路由表上的路由上没有特别匹配,则不会导出任何路由。
要将 VRF 导出和 BGP 导出策略都应用于 VPN 路由,请添加以下 vpn-apply-export 语句:
vpn-apply-export;
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
配置 VRF 目标
在 VRF 目标社区的配置中包含该 vrf-target 语句将生成默认 VRF 导入和导出策略,以接受具有指定目标社区的路由并对其进行标记。您仍然可以通过显式配置 VRF 导入和导出策略来创建更复杂的策略。这些策略覆盖配置语句时生成的 vrf-target 默认策略。
如果未配置import语vrf-target句的 and export 选项,则指定的社区字符串将双向应用。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;
要使用 和 import options 配置vrf-targetexport语句,请包含以下语句:
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]