Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

分发 VPN 路由

本主题介绍如何配置路由器以处理 BGP、MPLS 信令和策略中的路由信息。

启用 VPN 的路由信息交换

要使第 2 层 VPN、第 3 层 VPN、虚拟路由器路由实例、VPLS、EVPN 和第 2 层电路正常运行,服务提供商的 PE 和 P 路由器必须能够交换路由信息。为此,您必须在这些路由器上配置 IGP(例如 OSPF 或 IS-IS)或静态路由。您可以在层级的路由协议进程 [edit protocols] 的主实例上配置 IGP,而非在用于 VPN 的路由实例内(即,不在 [edit routing-instances] 层次结构级别上)。

配置 PE 路由器时,请勿在区域边界配置任何 PE 路由器环路地址汇总。每个 PE 路由器的环路地址都应显示为单独的路由。

在 VPN 中配置 PE 路由器之间的 IBGP 会话

您必须在 PE 路由器之间配置 IBGP 会话,以允许 PE 路由器交换有关在 VPN 中始发和终止的路由的信息。PE 路由器依靠这些信息来确定哪些标签用于发往远程站点的流量。

为 VPN 配置 IBGP 会话,如下所示:

语句中的 local-address IP 地址是本地 PE 路由器上的环路接口地址。VPN 的 IBGP 会话通过环路地址运行。(您还必须在 [edit interfaces] 层次结构级别配置环路接口。)

语句中的 neighbor IP 地址是相邻 PE 路由器的环路地址。如果使用 RSVP 信令,则此 IP 地址与您在配置 MPLS LSP 时在 to 层次结构级别的语句 [edit mpls label-switched-path lsp-path-name] 中指定的地址相同。

family 语句允许您为第 2 层 VPN、VPLS、EVPN 或第 3 层 VPN 配置 IBGP 会话。

  • 要为第 2 层 VPN 和 VPLS 配置 IBGP 会话,请在[edit protocols bgp group group-name family l2vpn]层次结构级别包含以下signaling语句:

  • 要为 EVPN 配置 IBGP 会话,请在[edit protocols bgp group group-name family evpn]层次结构级别包含以下signaling语句:

  • 要为第 3 层 VPN 配置 IPv4 IBGP 会话,请在[edit protocols bgp group group-name family inet-vpn]层级配置unicast语句:

  • 要为第 3 层 VPN 配置 IPv6 IBGP 会话,请在[edit protocols bgp group group-name family inet6-vpn]层级配置unicast语句:

注意:

您可以在同一对等组中同时family inet配置和family inet-vpn/或两者family inet6family inet6-vpn。这允许您启用对 IPv4 和 IPv4 VPN 路由的支持,或者对同一对等组中的 IPv6 和 IPv6 VPN 路由。

为 VPN 配置聚合标签

VPN 聚合标签允许瞻博网络路由平台将一组传入标签(从对等路由器接收的标签)聚合到从传入标签集中选择的单个转发标签中。单个转发标签对应于该组标签的下一个跃点。标签聚合减少了路由器必须检查的 VPN 标签数量。

对于要共享聚合转发标签的一组标签,它们必须属于相同的转发等效类 (FEC)。标记的数据包必须具有相同的目标出口接口。

community community-name将语句与语句一起包含在语aggregate-label句中,允许您指定具有公共源社区的前缀。这些前缀由对等 PE 上的策略设置,表示对等 PE 路由器上的 FEC。

谨慎:

如果错误地设置了目标社区而不是源社区,则可能会导致出口 PE 出现转发问题。来自对等方 PE 的所有前缀都将显示在同一 FEC 中,从而为同一 VPN 中给定 PE 后面的所有 CE 路由器显示一个内部标签。

要在第 3 层 VPN 网络中使用路由反射器,瞻博网络 M10i 路由器仅在以下情况下聚合一组传入标签:

  • 从同一对等路由器接收

  • 具有相同的源点社区

  • 具有相同的下一跃点

下一跃点要求很重要,因为路由反射器将路由从不同的 BGP 对等方转发到另一个 BGP 对等体,而不会更改这些路由的下一跃点。

要为 VPN 配置聚合标签,请添加 aggregate-label 语句:

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

有关如何配置社区的信息,请参阅 了解 BGP 社区、扩展社区和大型社区作为路由策略匹配条件

为 VPN 配置信令协议和 LSP

要使 VPN 正常运行,您必须启用信令协议,即提供商边缘 (PE) 路由器和提供商 (P) 路由器上的 LDP 或 RSVP。您还需要在入口和出口路由器之间配置标签交换路径 (LSP)。在典型的 VPN 配置中,您需要以全网状形式配置从每个 PE 路由器到参与 VPN 的所有其他 PE 路由器的 LSP。

注意:

与任何涉及 MPLS 的配置一样,您无法在密集快速以太网 PIC 上的 PE 路由器上配置任何面向核心的接口。

要启用信令协议,请执行以下部分之一中的步骤:

使用 LDP 进行 VPN 信令

要使用 LDP 进行 VPN 信令,请在 PE 和提供商 (P) 路由器上执行以下步骤:

  1. 通过在[edit protocols]层次结构级别包含ldp语句,在服务提供商网络核心的接口上配置 LDP。

    您只需在 PE 路由器之间或者 PE 和 P 路由器之间的接口上配置 LDP。您可以将这些接口视为“面向核心”的接口。无需在 PE 和客户边缘 (CE) 路由器之间的接口上配置 LDP。

  2. 通过在[edit interfaces type-fpc/pic/port unit logical-unit-number]层次结构级别包含family mpls语句,在启用了 LDP 的接口(在步骤 1 中配置的接口)上配置 MPLS 地址族。

  3. 在每个 PE 和 P 路由器上配置 OSPF 或 IS-IS。

    您可以在路由协议的主实例上配置这些协议,而非在用于 VPN 的路由实例中配置这些协议。

    • 要配置 OSPF,请在[edit protocols]层次结构级别包含ospf语句。您必须至少在一个路由器接口上配置一个主干区域。

    • 要配置 IS-IS,请在[edit protocols]层次结构级别包含isis语句,并在[edit interfaces]层次结构级别配置环路接口和国际标准组织 (ISO) 家族。至少必须在路由器上启用 IS-IS,在路由器的一个接口(最好是环路接口 lo0)上配置网络实体标题 (NET),并在希望运行 IS-IS 的所有接口上配置 ISO 家族。启用 IS-IS 时,默认情况下会启用级别 1 和级别 2。以下是最低 IS-IS 配置。address在语句中,address是 NET。

使用 RSVP 进行 VPN 信令

要使用 RSVP 进行 VPN 信令,请执行以下步骤:

  1. 在每个 PE 路由器上,配置流量工程。

    为此,您必须配置支持流量工程(IS-IS 或 OSPF)的内部网关协议 (IGP),并为该协议启用流量工程支持。

    要启用 OSPF 流量工程支持,请在[edit protocols ospf]层次结构级别包含语traffic-engineering句:

    对于 IS-IS,默认情况下启用流量工程支持。

  2. 在每个 PE 和 P 路由器上,在参与标签交换路径 (LSP) 的接口上启用 RSVP。

    在 PE 路由器上,这些接口是 LSP 的入口和出口点。在 P 路由器上,这些接口连接 PE 路由器之间的 LSP。请勿在 PE 和 CE 路由器之间的接口上启用 RSVP,因为此接口不是 LSP 的一部分。

    要在 PE 和 P 路由器上配置 RSVP,请在[edit protocols rsvp]层次结构级别包含interface语句。为要启用 RSVP 的每个接口包含一条interface语句。

  3. 在每台 PE 路由器上,为 PE 路由器(即 LSP 的出口点)配置一个 MPLS LSP。

    为此,请在[edit protocols mpls]层次结构级别包含interfacelabel-switched-path 语句:

    to 语句中,指定 LSP 出口点的地址,即远程 PE 路由器上的地址。

    interface在语句中,指定接口的名称(物理部分和逻辑部分)。为与 LSP 关联的接口添加一条interface语句。

    [edit interfaces] 层次结构级别配置同一接口的逻辑部分时,还必须配置 family inetfamily mpls 语句:

  4. 在所有加入 LSP 的 P 路由器上,通过在[edit mpls]层次结构级别包含interface语句来启用 MPLS。

    为与 LSP 的每个连接包含一条 interface 语句。

  5. 通过在[edit mpls]层次结构级别包含interface语句,在 PE 和 CE 路由器之间的接口上启用 MPLS。

    这样做后,PE 路由器可以为进入 LSP 的流量分配 MPLS 标签,或者从退出 LSP 的流量中移除标签。

    有关配置 MPLS 的信息,请参阅 为 MPLS 信号 LSP 配置入口路由器

为 VPN 中 PE 路由器上的 VRF 表配置策略

在每台 PE 路由器上,都必须定义如何将路由导入和导出路由器 VRF 表的策略。在这些策略中,您必须定义路由目标,并且可以选择定义路由原点。

要为 VRF 表配置策略,请执行以下部分中的步骤:

配置路由目标

作为 VPN 路由表策略配置的一部分,您必须定义路由目标,用于定义路由属于哪个 VPN。在同一 PE 路由器上配置不同类型的 VPN 服务(第 2 层 VPN、第 3 层 VPN、EVPN 或 VPLS)时,请务必分配唯一的路由目标值,以避免将路由和信令信息添加到错误的 VPN 路由表。

要配置路由目标,请在语句中community包含该target选项:

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

  • [edit policy-options]

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

name 是社区的名称。

community-id 是社区的标识符。按以下格式之一指定:

  • as-numbernumber,其中 as-number 是 AS 编号(2 字节值), number 是 4 字节社区值。AS 编号的范围是 1 到 65,535。我们建议使用 IANA 分配的非专用 AS 编号,最好是 ISP 自己的 AS 编号或客户自己的 AS 编号。社区值可以是 0 到 4,294,967,295 (232 – 1) 范围内的数字。

  • ip-addressnumber,其中 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 站点。

要配置路由原点,请完成以下步骤:

  1. 将语句与origin选项包括community在内:

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

    • [edit policy-options]

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

    name 是社区的名称。

    community-id 是社区的标识符。按以下格式之一指定:

    • as-numbernumber,其中 as-number 是 AS 编号(2 字节值), number 是 4 字节社区值。AS 编号的范围是 1 到 65,535。我们建议使用 IANA 分配的非专用 AS 编号,最好是 ISP 自己的 AS 编号或客户自己的 AS 编号。社区值可以是 0 到 4,294,967,295 (232 – 1) 范围内的数字。

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

  2. 使用步骤 1 中定义的[edit policy-options policy-statement import-policy-name term import-term-name from]标识符在层次结构级别上配置语句community-id,将community社区包含在 PE 路由器的 VRF 表的导入策略中。请参阅为 PE 路由器的 VRF 表配置导入策略

    如果策略的 from 子句未指定社区条件,则 vrf-import 无法提交应用策略的语句。Junos OS 提交操作未通过验证检查。

  3. 通过在[edit policy-options policy-statement export-policy-name term export-term-name then]层次结构级别上使用community-id步骤 1 中定义的标识符配置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 表配置导入策略,请执行以下步骤:

  1. 要定义导入策略,请包含语 policy-statement 句。对于所有 PE 路由器,导入策略必须始终至少包含以下 policy-statement 语句:

    您可以在以下层级包含 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 表中。策略中的第二个术语拒绝所有其他路由。

    有关创建策略的详细信息,请参阅 《路由策略、防火墙过滤器和流量监管器用户指南》。

  2. 您可以选择使用正则表达式来定义一组要用于 VRF 导入策略的社区。

    例如, community 您可以在层次结构级别使用语句 [edit policy-options policy-statement policy-statement-name] 进行以下配置:

    请注意,不能将正则表达式配置为路由目标扩展社区的一部分。有关如何为社区配置正则表达式的详细信息,请参阅 如何在路由策略匹配条件中评估 BGP 社区和扩展社区

  3. 要配置导入策略,请包含以下 vrf-import 语句:

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

    • [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 表配置导出策略,请执行以下步骤:

  1. 对于所有 PE 路由器,导出策略必须根据您在路由实例中的 CE 路由器和 PE 路由器之间配置的路由协议类型,将 VPN 路由分配到连接的 CE 路由器以及从连接的 CE 路由器进行分配。

    要定义导出策略,请包含 policy-statement 语句。导出策略必须始终至少包含以下 policy-statement 语句:

    注意:

    community add配置语句是第 2 层 VPN VRF 导出策略的要求。如果将community add语句更改为语community set句,则位于第 2 层 VPN 链路出口处的路由器可能会断开连接。

    注意:

    配置在源特定模式 vrf-export 下运行的 draft-rosen 组播 VPN 并使用语句指定导出策略时,策略必须具有接受来自 vrf-name.mdt.0 路由表的路由的术语。此术语可确保使用 inet-mdt 地址族进行正确的 PE 自动发现。

    配置在源特定模式下运行的 draft-rosen 组播 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 路由器。策略中的第二个术语拒绝所有其他路由。

    有关创建策略的详细信息,请参阅 《路由策略、防火墙过滤器和流量监管器用户指南》。

  2. 要应用策略,请包含以下 vrf-export 语句:

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

    • [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 语句,则在 VPN 路由表中将路由播发至其他 PE 路由器之前,将同时应用 VRF 导出和 BGP 组或邻接方导出策略(先应用 VRF,再应用 BGP)。

注意:

当 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 语句:

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

配置 VRF 目标

在 VRF 目标社区的配置中包含该 vrf-target 语句将导致生成默认的 VRF 导入和导出策略,这些策略接受并标记具有指定目标社区的路由。您仍然可以通过显式配置 VRF 导入和导出策略来创建更复杂的策略。这些策略将覆盖配置语句时生成的 vrf-target 默认策略。

如果未配置语句的 importexport 选项 vrf-target ,则指定的社区字符串将沿两个方向应用。 importexport 关键字为您提供了更大的灵活性,允许您为每个方向指定不同的社区。

VRF 目标社区的语法不是名称。您必须以 target:x:y格式 指定它。无法指定公共组名称,因为这还需要您使用语 policy-options 句为该社区配置社区成员。如果定义了 policy-options 语句,则可以像往常一样配置 VRF 导入和导出策略。该 vrf-target 语句的目的是允许您在 [edit routing-instances] 层次结构级别配置大多数语句,从而简化配置。

要配置 VRF 目标,请包含以下 vrf-target 语句:

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

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

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

如何配置 vrf-target 语句的示例如下:

要使用exportimport选项配置vrf-target语句,请包含以下语句:

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

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

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

配置 VPN 的路由来源

您可以使用路由源来防止从标有源社区的一个客户边缘 (CE) 路由器获知的路由从同一 AS 中的另一台 CE 路由器播发给该路由器。

在此示例中,路由源用于防止从 CE 路由器 A 获知的标有源社区的路由通过 AS 200 将播发回 CE 路由器 E。示例拓扑如 图 1 所示。

图 1:起源站点的网络拓扑示例 Network Topology of Site of Origin Example

在此拓扑中,CE 路由器 A 和 CE 路由器 E 在同一 AS (AS200) 中。它们使用 EBGP 与各自的提供商边缘 (PE) 路由器(PE 路由器 B 和 PE 路由器 D)交换路由。两台 CE 路由器具有反向连接。

以下部分介绍如何为一组 VPN 配置路由源:

在 CE 路由器 A 上配置源站社区

以下部分介绍如何配置 CE 路由器 A,以便将带有源站社区的路由通告到 PE 路由器 B。

注意:

在此示例中,直接路由配置为播发,但可以配置任何路由。

配置策略以在 CE 路由器 A 上通过 my-soo 社区通告路由,如下所示:

在 CE 路由器 A 上配置社区

在 CE 路由器 A 上配置 my-soo 社区,如下所示:

在 CE 路由器 A 上应用策略声明

将导出到我的 ISP 策略语句作为导出策略应用于 CE 路由器 A 上的 EBGP 对等连接,如下所示:

发出 show route receive-protocol bgp detail 命令时,应会看到以下源自 PE 路由器 B 和社区 my-soo 的路由:

在 PE 路由器 D 上配置策略

在 PE 路由器 D 上配置一个策略,防止带有 my-soo CE 路由器 A 标记的社区的路由播发到 CE 路由器 E,如下所示:

在 PE 路由器 D 上配置社区

在 PE 路由器 D 上配置社区,如下所示:

在 PE 路由器 D 上应用策略

要防止从 CE 路由器 A 获知的路由播发至 CE 路由器 E(两台路由器可以直接传送这些路由),请将 soo-ce1-policy 策略语句作为导出策略应用于 PE 路由器 D 和 CE 路由器 E EBGP 会话 vpn_blue

使用 show routing-instances 命令查看 PE 路由器 D 上的 EBGP 会话。

将策略语句作为导出策略应用于 soo-ce1-policy PE 路由器 D 和 CE 路由器 E EBGP 会话 vpn_blue ,如下所示: