使用 VRF 表创建唯一 VPN 路由
了解虚拟路由和转表
为了将 VPN 的路由与公共互联网或其他 VPN 中的路由分开,PE 路由器会为每个 VPN 创建单独的路由表,称为 VPN 路由和转发 (VRF) 表。PE 路由器为每个与路由器有连接的 VPN 创建一个 VRF 表客户边缘表。属于 VPN 的任何客户或站点只能访问该 VPN 的 VRF 表中路由。
图 1 说明了在 PE 路由器上创建的 VRF 表。三个 PE 路由器与两客户边缘 VPN 中的路由器有连接,因此每个 PE 路由器会创建两个 VRF 表,每个 VPN 一个。
每个 VRF 表均从从与该 VRF 路由实例相关联的直接连接的 客户边缘 站点以及从通过 BGP 社区过滤并在同一 VPN 中接收的其他 PE 路由器接收的路由填充。
每个 PE 路由器还维护一个全局路由表 (inet.0),以到达该提供商核心网络内外的其他路由器。
每个客户连接(即每个 逻辑接口)都与一个 VRF 表相关联。对于来自该站点的数据包,仅会咨询与客户站点关联的 VRF 表。
您可以配置路由器,以便如果 VRF 表中未找到目标的下一跳跃,路由器可在全局路由表中执行查找(用于 Internet 访问)。
该Junos OS对 VPN 使用以下路由表:
bgp.l3vpn.0—存储从其他 PE 路由器学到的路由。如果 PE 路由器中具有匹配的 VRF 导入策略,则 bgp.l3vpn.0 路由表中的路由将复制到第 3 层 VRF 中。此表仅在 PE 路由器上存在,并且不会存储从直接连接路由器客户边缘的路由。
当 PE 路由器收到其他 PE 路由器的路由时,它将路由放入其bgp.l3vpn.0路由表中。路由使用inet.3路由表中的信息解析。结果路由将转换为 IPv4 格式,并重新分配至 PE 路由器上的所有 routing-instance-name .inet.0路由表(如果与 VRF 导入策略匹配)。
bgp.l3vpn.0表还可用于解析通过连接 PE 路由器MPLS隧道中的路由。这些路由存储在inet.3路由表中。PE 到 PE 路由器连接必须存在于inet.3中(不仅仅是inet.0中),VPN 路由必须可以正确解析。
当路由器播发非本地 VPN-IPv4 单播路由,并且路由器是路由反射器或执行外部对等互连时,VPN-IPv4 单播路由会自动导出到 VPN 路由表 (bgp.l3vpn.0)。这使得路由器能够执行路径选择,并通告 bgp.l3vpn.0 路由表。
要确定是否将路由添加至 bgp.l3vpn.0 路由表,Junos OS将针对 PE 路由器上配置的所有 VPN 检查其 VRF 实例导入策略。如果 VPN-IPv4 路由与其中一个策略匹配,则添加到 bgp.l3vpn.0 路由表中。要显示 bgp.l3vpn.0 路由表中的路由,请使用 show route table bgp.l3vpn.0 命令。
routing-instance-name .inet.0—将直接从路由实例(即单个 VPN)中的 客户边缘 路由器接收的所有单播 IPv4 路由存储在路由实例中,以及路由实例中所有显式配置的静态路由。这是 VRF 表,仅存在于 PE 路由器上。例如,对于名为VPN-A的路由实例,该实例的路由表名为VPN-A.inet.0。
当 客户边缘 路由器通告至 PE 路由器时,PE 路由器将路由放入相应的 routing-instance-name .inet.0路由表中,并通告路由至其他 PE 路由器(如果通过 VRF 导出策略)。除了其他方面,此策略使用与路由所属的 VPN 站点对应的路由识别器(路由目标)标记 客户边缘路由。标签也会随路由一起分配和分配。此过程中未涉及bgp.l3vpn.0路由表。
routing-instance-name .inet.0表还存储远程 PE 路由器所宣布的与该 VPN 的 VRF 导入策略匹配的路由。PE 路由器从bgp.l3vpn.0 表中重新分配这些路由。
路由不会从 routing-instance-name .inet.0 表重新分配至bgp.l3vpn.0表;它们直接通告给其他 PE 路由器。
对于每个 routing-instance-name .inet.0路由表,路由器的路由表中都维护一个转数据包转发引擎。除与路由器的 inet.0和mpls.0路由表对应的转转表之外,此表也保持此表。与inet.0和mpls.0路由表一样, routing-instance-name 来自 .inet.0路由表中的最佳路由将放入转发表中。
要显示 routing-instance-name .inet.0表中的路由,请使用show route table routing-instance-name .inet.0命令。
inet.3— 存储从 LDP 和 RSVP 为 VPN 信息流执行MPLS的所有路由。路由表仅在信息MPLS 工程 bgp-igp 选项 未启用时存储所有路由。
要正确解析 VPN 路由 ,inet.3 表必须包含到 VPN 中所有 PE 路由器的路由。
要显示 inet.3 表中的 路由,请使用 show route table inet.3 命令。
inet.0—存储通过 PE 路由器之间的 IBGP 会话所学习的路由。要提供 VPN 网站的互联网访问,请配置 routing-instance-name .inet.0路由表,以包含到inet.0路由表的默认路由。
要显示 inet.0 表中的路由,请使用 show route table inet.0 命令。
以下在 VRF 导入和导出语句中定义的路由策略特定于 VRF 表。
导入策略 — 应用于从另一个 PE 路由器学习的 VPN-IPv4 路由,确定是否应将路由添加到 PE 路由器 的 bgp.l3vpn.0 路由表中。PE 路由器上的每个路由实例都有一个 VRF 导入策略。
导出策略 — 应用于向其他 PE 路由器宣布的 VPN-IPv4 路由。VPN-IPv4 路由是由本地连接路由器宣布的 IPv4 客户边缘路由。
VPN 路由处理从一BGP与常规路由处理不同。另外BGP导入策略未显式拒绝路由,则接受路由。但是,由于预期会有更多的 VPN 路由,Junos OS接受(因此存储)VPN 路由,除非路由至少与一个 VRF 导入策略匹配。如果没有 VRF 导入策略明确接受路由,则它将被丢弃,甚至不会存储在 bgp.l3vpn.0 表中。因此,如果 PE 路由器上发生 VPN 更改(如添加新 VRF 表或更改 VRF 导入策略),PE 路由器将 BGP 路由刷新消息发送到其他 PE 路由器(或路由反射器(如果这是 VPN 拓扑的一部分),以便检索所有 VPN 路由,以便可以重新评估它们以确定应该保留还是丢弃它们。
另请参阅
了解 3 层 VPN 中的 VRF 本地化
在 3 层 VPN 中,为了将 VPN 的路由与公共互联网或其他 VPN 中的路由分开,PE 路由器会为每个 VPN 创建一个单独的路由表,称为虚拟路由和转发 (VRF) 表。每个 VRF 都使用路由识别器和路由目标来区分其他 VPN,使每个 VRF 在公共网络中实现 VPN。PE 路由器为每个与路由器有连接的 VPN 创建一个 VRF 表客户边缘表。属于 VPN 的任何客户或站点只能访问该 VPN 的 VRF 表中路由。
第 3 层 VPN 部署中的 PE 路由器有两种类型的线卡,托管以下接口:
客户边缘向接口
面向核心的接口
FPC 可以是面向核心的,客户边缘面向。
这些线卡上存在 VRF,而Junos OS 年,所有 VRF 的路由都存在于所有线卡上,以及所有FPC 上的链式复合下一跳跃。这会占用每个线卡中的内存。由于来自 客户边缘 接口的流量仅通过对应的面向 客户边缘 的FPC 进入,因此所有路由和下一跃点无需存在于所有线卡上。VRF 本地化提供了将 VRF 路由定位至特定线卡的机制,以帮助最大化路由器可以处理的路由数。客户边缘接口将实例类型 VRF 的所有路由本地化为特定线卡。如果客户边缘接口是 AE、RLSQ 或 IRB 等逻辑接口,则必须配置线卡编号以将路由本地化。面向核心的线卡存储所有 VRF 路由。这些卡必须配置为面向 VPN 核心的默认卡或仅面向 VPN 核心的配置。面向核心的线卡存储所有 VRF 的路由,它们具有以下类型:
面向 vpn 核心的默认 — 面向核心的 FPC 安装 VRF 路由的所有路由和下一跳跃。
vpn-core-only — 面向核心的 FPC 安装所有路由,不会存储 VRF 路由的下一跳跃。
面向核心的FPC可配置为面向核心的默认或仅面向核心。
使用 VRF 本地化实现 3 层 VPN 最大化 VPN 路由
虚拟路由和转发 (VRF) 本地化提供了一种将 VRF 路由定位到特定线卡的机制,以帮助最大化路由器可以处理的路由数。客户边缘接口将实例类型 VRF 的所有路由本地化为特定线卡。如果面向客户边缘是 AE/RLSQ/IRB 等逻辑接口,则线卡必须配置为本地化路由。面向核心的线卡存储所有 VRF 路由。这些卡必须配置为仅面向 VPN 核心或面向 VPN 核心的默认设置。要配置 VRF 本地化,请配置 层级的 语句,在 层次结构 localized-fib
[edit routing-instances instance-name routing-options]
vpn-localization
级别配置 [edit chassis fpc fpc-slot]
语句。 show route vpn-localization
命令显示系统中所有 VRF 的本地化信息。
开始对 VRF 表进行本地化之前:
配置接口。
配置路由和信号协议。
要配置 VRF 本地化:
示例:通过 3 层 VPN 的 VRF 本地化提高可扩展性
此示例演示如何在 MX 系列路由器上配置 VRF 本地化,从而使您能够提高 MX 系列路由器上的 VPN 可扩展性。
要求
此示例具有以下硬件和软件组件:
五个 MX 系列 5G 通用路由平台
Junos OS 14.2 或更高版本在所有设备上运行
开始之前:
配置设备接口。
配置BGP协议。
概述
从 Junos OS 14.2 版开始,VRF 本地化提供了一种将 VRF 路由定位到特定线卡的机制,有助于最大化路由器可以处理的路由数。客户边缘接口将实例类型 VRF 的所有路由本地化为特定线卡。如果面向客户边缘接口是 AE、RLSQ 或 IRB 等逻辑接口,则线卡必须配置为本地化路由。面向核心的线卡存储所有 VRF 路由。这些卡必须配置为仅面向 VPN 核心或面向 VPN 核心的默认设置。要配置 VRF 本地化,请配置 层级的配置 localized-fib
[edit routing-instances instance-name routing-options]
语句,在 vpn-localization
层次结构级别 [edit chassis fpc fpc-slot]
配置 。 show route vpn-localization
命令显示系统中所有 VRF 的本地化信息。
配置
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit]
commit
CE1
set interfaces ge-4/0/0 unit 0 family inet address 192.0.2.2/24 set interfaces ge-4/0/0 unit 0 family inet6 address abcd:a:a:a:1::2/126 set protocols bgp group vpn1 type external set protocols bgp group vpn1 export direct set protocols bgp group vpn1 peer-as 10 set protocols bgp group vpn1 neighbor 192.0.2.1 family inet unicast set protocols bgp group vpn1 neighbor abcd:a:a:a:1::1 family inet6 unicast set policy-options policy-statement direct from protocol direct set policy-options policy-statement direct then accept set policy-options policy-statement load-balancing-policy then load-balance per-packet set routing-options autonomous-system 100 set routing-options forwarding-table export load-balancing-policy
PE1
set chassis redundancy graceful-switchover set chassis aggregated-devices ethernet device-count 16 set chassis fpc 8 vpn-localization vpn-core-facing-only set chassis network-services enhanced-ip set interfaces ge-2/0/0 unit 0 family inet address 192.0.2.1/24 set interfaces ge-2/0/0 unit 0 family inet6 address abcd:a:a:a:1::1/126 set interfaces ge-8/1/0 gigether-options 802.3ad ae0 set interfaces ge-8/1/9 gigether-options 802.3ad ae0 set interfaces ae0 unit 0 family inet address 192.0.2.3/24 set interfaces ae0 unit 0 family iso set interfaces ae0 unit 0 family mpls set interfaces lo0 unit 1 family inet address 10.255.19.254/24 set interfaces lo0 unit 1 family inet6 address abcd::10:0:1:1/128 set policy-options policy-statement direct from protocol direct set policy-options policy-statement direct then accept set policy-options policy-statement load-balancing-policy then load-balance per-packet set protocols rsvp interface ae0.0 set protocols mpls ipv6-tunneling set protocols mpls icmp-tunneling set protocols mpls label-switched-path pe1-pe2-p2mp-1 from 10.255.19.254 set protocols mpls label-switched-path pe1-pe2-p2mp-1 to 10.255.19.251 set protocols mpls label-switched-path pe1-pe2-p2mp-1 link-protection set protocols mpls label-switched-path pe1-pe2-p2mp-1 p2mp vpn1-p2mp set protocols mpls label-switched-path pe1-pe3-p2mp-1 from 10.255.19.254 set protocols mpls label-switched-path pe1-pe3-p2mp-1 to 10.255.19.203 set protocols mpls label-switched-path pe1-pe3-p2mp-1 link-protection set protocols mpls label-switched-path pe1-pe3-p2mp-1 p2mp vpn1-p2mp set protocols mpls interface ae0.0 set protocols bgp group mpbg type internal set protocols bgp group mpbg local-address 10.255.19.254 set protocols bgp group mpbg family inet unicast set protocols bgp group mpbg family inet-vpn unicast set protocols bgp group mpbg family inet6 unicast set protocols bgp group mpbg family inet6-vpn unicast set protocols bgp group mpbg family inet-mvpn signaling set protocols bgp group mpbg family inet6-mvpn signaling set protocols bgp group mpbg neighbor 10.255.19.253 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface ae0.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ldp interface ae0.0 set routing-instances vpn1 instance-type vrf set routing-instances vpn1 interface ge-2/0/0.0 set routing-instances vpn1 interface lo0.1 set routing-instances vpn1 route-distinguisher 1:1 set routing-instances vpn1 provider-tunnel rsvp-te static-lsp vpn1-p2mp set routing-instances vpn1 vrf-target target:1:1 set routing-instances vpn1 vrf-table-label set routing-instances vpn1 routing-options multipath set routing-instances vpn1 routing-options localized-fib set routing-instances vpn1 protocols bgp group grp1 type external set routing-instances vpn1 protocols bgp group grp1 export direct set routing-instances vpn1 protocols bgp group grp1 peer-as 100 set routing-instances vpn1 protocols bgp group grp1 neighbor 192.0.2.2 family inet unicast set routing-instances vpn1 protocols bgp group grp1 neighbor abcd:a:a:a:1::2 family inet6 unicast set routing-instances vpn1 protocols mvpn set routing-options nonstop-routing set routing-options autonomous-system 10 set routing-options forwarding-table export load-balancing-policy set routing-options forwarding-table chained-composite-next-hop ingress l3vpn extended-space
P
set chassis aggregated-devices ethernet device-count 16 set interfaces ge-1/0/1 gigether-options 802.3ad ae0 set interfaces ge-1/0/3 gigether-options 802.3ad ae0 set interfaces ge-1/1/1 gigether-options 802.3ad ae1 set interfaces ae0 unit 0 family inet address 192.0.2.4/24 set interfaces ae0 unit 0 family iso set interfaces ae0 unit 0 family mpls set interfaces ae1 unit 0 family inet address 198.51.100.2/24 set interfaces ae1 unit 0 family iso set interfaces ae1 unit 0 family mpls set routing-options autonomous-system 10 set routing-options forwarding-table export load-balancing-policy set protocols rsvp interface ae0.0 set protocols rsvp interface ae1.0 set protocols mpls ipv6-tunneling set protocols mpls icmp-tunneling set protocols mpls interface ae0.0 set protocols mpls interface ae1.0 set protocols bgp group mpbg type internal set protocols bgp group mpbg local-address 10.255.19.253 set protocols bgp group mpbg family inet unicast set protocols bgp group mpbg family inet-vpn unicast set protocols bgp group mpbg family inet6 unicast set protocols bgp group mpbg family inet6-vpn unicast set protocols bgp group mpbg family inet-mvpn signaling set protocols bgp group mpbg family inet6-mvpn signaling set protocols bgp group mpbg cluster 10.255.19.253 set protocols bgp group mpbg neighbor 10.255.19.254 set protocols bgp group mpbg neighbor 10.255.19.251 set protocols bgp group mpbg neighbor 10.255.19.203 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface ae0.0 set protocols ospf area 0.0.0.0 interface ae1.0 set protocols ldp interface ae0.0 set protocols ldp interface ae1.0 set policy-options policy-statement load-balancing-policy then load-balance per-packet
PE2
set chassis redundancy graceful-switchover set chassis aggregated-devices ethernet device-count 16 set interfaces ge-4/2/1 gigether-options 802.3ad ae1 set interfaces ge-4/2/5 unit 0 family inet address 198.51.100.3/24 set interfaces ge-4/2/5 unit 0 family inet6 address abcd:a:a:a:2::1/126 set interfaces ae1 unit 0 family inet address 198.51.100.1/24 set interfaces ae1 unit 0 family iso set interfaces ae1 unit 0 family mpls set interfaces lo0 unit 2 family inet address 10.255.19.251/24 set interfaces lo0 unit 2 family inet6 address abcd::203:0:113:2/128 set policy-options policy-statement direct from protocol direct set policy-options policy-statement direct then accept set policy-options policy-statement load-balancing-policy then load-balance per-packet set protocols rsvp interface ae1.0 set protocols mpls ipv6-tunneling set protocols mpls icmp-tunneling set protocols mpls label-switched-path pe2-pe1-p2mp-1 from 10.255.19.251 set protocols mpls label-switched-path pe2-pe1-p2mp-1 to 10.255.19.254 set protocols mpls label-switched-path pe2-pe1-p2mp-1 link-protection set protocols mpls label-switched-path pe2-pe1-p2mp-1 p2mp vpn1-p2mp set protocols mpls label-switched-path pe2-pe3-p2mp-1 from 10.255.19.251 set protocols mpls label-switched-path pe2-pe3-p2mp-1 to 10.255.19.203 set protocols mpls label-switched-path pe2-pe3-p2mp-1 link-protection set protocols mpls label-switched-path pe2-pe3-p2mp-1 p2mp vpn1-p2mp set protocols mpls interface ae1.0 set protocols bgp group mpbg type internal set protocols bgp group mpbg local-address 10.255.19.251 set protocols bgp group mpbg family inet unicast set protocols bgp group mpbg family inet-vpn unicast per-prefix-label set protocols bgp group mpbg family inet6 unicast set protocols bgp group mpbg family inet6-vpn unicast per-prefix-label set protocols bgp group mpbg family inet-mvpn signaling set protocols bgp group mpbg family inet6-mvpn signaling set protocols bgp group mpbg neighbor 10.255.19.253 set protocols ospf traffic-engineering set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface ae1.0 set protocols ldp interface ae1.0 set routing-instances vpn1 instance-type vrf set routing-instances vpn1 interface ge-4/2/5.0 set routing-instances vpn1 route-distinguisher 1:1 set routing-instances vpn1 provider-tunnel rsvp-te static-lsp vpn1-p2mp set routing-instances vpn1 vrf-target target:1:1 set routing-instances vpn1 vrf-table-label set routing-instances vpn1 routing-options multipath set routing-instances vpn1 protocols bgp group grp1 type external set routing-instances vpn1 protocols bgp group grp1 export direct set routing-instances vpn1 protocols bgp group grp1 peer-as 200 set routing-instances vpn1 protocols bgp group grp1 neighbor 198.51.100.4 family inet unicast set routing-instances vpn1 protocols bgp group grp1 neighbor abcd:a:a:a:2::2 family inet6 unicast set routing-instances vpn1 protocols mvpn set routing-options nonstop-routing set routing-options autonomous-system 10 set routing-options forwarding-table export load-balancing-policy
CE2
set interfaces ge-0/0/5 unit 0 family inet address 198.51.100.4/24 set interfaces ge-0/0/5 unit 0 family inet6 address abcd:a:a:a:2::2/126 set protocols bgp group vpn1 type external set protocols bgp group vpn1 export direct set protocols bgp group vpn1 export vpn1 set protocols bgp group vpn1 peer-as 10 set protocols bgp group vpn1 neighbor 198.51.100.3 family inet unicast set protocols bgp group vpn1 neighbor abcd:a:a:a:2::1 family inet6 unicast set policy-options policy-statement direct from protocol direct set policy-options policy-statement direct then accept set policy-options policy-statement load-balancing-policy then load-balance per-packet set routing-options autonomous-system 200 set routing-options forwarding-table export load-balancing-policy
配置设备 PE1
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航应用程序CLI,请参阅 在CLI 模式下使用 CLI编辑器。
要配置设备 PE1:
指定要创建的聚合以太网接口数量,将 PC 配置为仅面向 vpn 核心,并启用增强型 IP 网络服务。
[edit chassis] user@PE1# set redundancy graceful-switchover user@PE1# set aggregated-devices ethernet device-count 16 user@PE1# set fpc 8 vpn-localization vpn-core-facing-only user@PE1# set network-services enhanced-ip
配置接口。
[edit interfaces] user@PE1# set ge-2/0/0 unit 0 family inet address 192.0.2.1/24 user@PE1# set ge-2/0/0 unit 0 family inet6 address abcd:a:a:a:1::1/126 user@PE1# set ge-8/1/0 gigether-options 802.3ad ae0 user@PE1# set ge-8/1/9 gigether-options 802.3ad ae0 user@PE1# set ae0 unit 0 family inet address 192.0.2.3/24 user@PE1# set ae0 unit 0 family iso user@PE1# set ae0 unit 0 family mpls user@PE1# set lo0 unit 1 family inet address 10.255.19.254/24 user@PE1# set lo0 unit 1 family inet6 address abcd::10:0:1:1/128
配置策略选项以均衡数据包负载。
[edit policy-options policy-statement] user@PE1# set direct from protocol direct user@PE1# set direct then accept user@PE1# set load-balancing-policy then load-balance per-packet
在接口上配置 RSVP 协议。
[edit protocols rsvp] user@PE1# set interface ae0.0
配置MPLS协议。
[edit protocols mpls] user@PE1# set ipv6-tunneling user@PE1# set icmp-tunneling user@PE1# set label-switched-path pe1-pe2-p2mp-1 from 10.255.19.254 user@PE1# set label-switched-path pe1-pe2-p2mp-1 to 10.255.19.251 user@PE1# set label-switched-path pe1-pe2-p2mp-1 link-protection user@PE1# set label-switched-path pe1-pe2-p2mp-1 p2mp vpn1-p2mp user@PE1# set label-switched-path pe1-pe3-p2mp-1 from 10.255.19.254 user@PE1# set label-switched-path pe1-pe3-p2mp-1 to 10.255.19.203 user@PE1# set label-switched-path pe1-pe3-p2mp-1 link-protection user@PE1# set label-switched-path pe1-pe3-p2mp-1 p2mp vpn1-p2mp user@PE1# set interface ae0.0
配置 mpbg BGP协议。
[edit protocols bgp group mpbg] user@PE1# set type internal user@PE1# set local-address 10.255.19.254 user@PE1# set family inet unicast user@PE1# set family inet-vpn unicast user@PE1# set family inet6 unicast user@PE1# set family inet6-vpn unicast user@PE1# set family inet-mvpn signaling user@PE1# set family inet6-mvpn signaling user@PE1# set neighbor 10.255.19.253
配置OSPF协议。
[edit protocols ospf] user@PE1# set traffic-engineering user@PE1# set area 0.0.0.0 interface ae0.0 user@PE1# set area 0.0.0.0 interface lo0.0 passive
在接口上配置 LDP 协议。
[edit protocols] user@PE1# set ldp interface ae0.0
创建实例类型,然后配置接口上的路由实例。
[edit routing-instances vpn1] user@PE1# set instance-type vrf user@PE1# set interface ge-2/0/0.0 user@PE1# set interface lo0.1
配置路由识别器,并配置提供商隧道 RSVP-流量工程 的静态 LSP。
[edit routing-instances vpn1] user@PE1# set route-distinguisher 1:1 user@PE1# set provider-tunnel rsvp-te static-lsp vpn1-p2mp
配置路由实例的 VRF 目标和 VRF 目标标签。
[edit routing-instances vpn1] user@PE1# set vrf-target target:1:1 user@PE1# set vrf-table-label
配置路由实例的多路径路由选项,并配置路由实例的本地化 fib 路由选项。
[edit routing-instances vpn1 routing-options] user@PE1# set multipath user@PE1# set localized-fib
为路由实例BGP组协议。
[edit routing-instances vpn1 protocols bgp group grp1] user@PE1# set type external user@PE1# set export direct user@PE1# set peer-as 100 user@PE1# set neighbor 192.0.2.2 family inet unicast user@PE1# set neighbor abcd:a:a:a:1::2 family inet6 unicast
配置 MVPN 协议。
[edit routing-instances vpn1] user@PE1# set protocols mvpn
为路由选项配置不间断活动路由和自治系统编号。
[edit routing-options] user@PE1# set nonstop-routing user@PE1# set autonomous-system 10
为转转表配置负载平衡策略,为转转表 L3VPN 的链复合下一跳跃扩展空间。
[edit routing-options] user@PE1# set forwarding-table export load-balancing-policy user@PE1# set forwarding-table chained-composite-next-hop ingress l3vpn extended-space
结果
在配置模式下,输入 、 、 、 和 命令, show chassis
show interfaces
show policy-options
show protocols
show routing-instances
以确认您的 show routing-options
配置。如果输出未显示预期的配置,请重复此示例中的说明,以更正配置。
user@PE1# show chassis redundancy { graceful-switchover; } aggregated-devices { ethernet { device-count 16; } } fpc 8 { vpn-localization vpn-core-facing-only; } network-services enhanced-ip;
user@PE1# show interfaces ge-2/0/0 { unit 0 { family inet { address 192.0.2.1/24; } family inet6 { address abcd:a:a:a:1::1/126; } } } ge-8/1/0 { gigether-options { 802.3ad ae0; } } ge-8/1/9 { gigether-options { 802.3ad ae0; } } ae0 { unit 0 { family inet { address 192.0.2.3/24; } family iso; family mpls; } } lo0 { unit 1 { family inet { address 10.255.19.254/24; } family inet6 { address abcd::10:0:1:1/128; } } }
user@PE1# show policy-options policy-statement direct { from protocol direct; then accept; } policy-statement load-balancing-policy { then { load-balance per-packet; } }
user@PE1# show routing-options nonstop-routing; autonomous-system 10; forwarding-table { export load-balancing-policy; chained-composite-next-hop { ingress { l3vpn extended-space; } } }
user@PE1# show routing-instances vpn1 { instance-type vrf; interface ge-2/0/0.0; interface lo0.1; route-distinguisher 1:1; provider-tunnel { rsvp-te { static-lsp vpn1-p2mp; } } vrf-target target:1:1; vrf-table-label; routing-options { multipath; localized-fib; } protocols { bgp { group grp1 { type external; export direct; peer-as 100; neighbor 192.0.2.2 { family inet { unicast; } } neighbor abcd:a:a:a:1::2 { family inet6 { unicast; } } } } mvpn; } }
user@PE1# show protocols rsvp { interface ae0.0; } mpls { ipv6-tunneling; icmp-tunneling; label-switched-path pe1-pe2-p2mp-1 { from 10.255.19.254; to 10.255.19.251; link-protection; p2mp vpn1-p2mp; } label-switched-path pe1-pe3-p2mp-1 { from 10.255.19.254; to 10.255.19.203; link-protection; p2mp vpn1-p2mp; } interface ae0.0; } bgp { group mpbg { type internal; local-address 10.255.19.254; family inet { unicast; } family inet-vpn { unicast; } family inet6 { unicast; } family inet6-vpn { unicast; } family inet-mvpn { signaling; } family inet6-mvpn { signaling; } neighbor 10.255.19.253; } } ospf { traffic-engineering; area 0.0.0.0 { interface ae0.0; interface lo0.0 { passive; } } } ldp { interface ae0.0; }
如果完成设备配置,请从配置 commit
模式输入 。
验证
确认配置工作正常。
验证 VRF 本地化
目的
验证 VRF 在 3 层 VPN 中的本地化。
行动
在操作模式下,运行 show route vpn-localization
设备 PE1 命令。
user@PE1> show route vpn-localization
Routing table: vpn1.inet, Localized
Index: 7, Address Family: inet, Localization status: Complete
Local FPC's: 2 8
Routing table: vpn1.inet6, Localized
Index: 7, Address Family: inet6, Localization status: Complete
Local FPC's: 2 8
Routing table: vpn2.inet, Non-localized
Index: 8, Address Family: inet, Localization status: Complete
Local FPC's: All
Routing table: vpn2.inet6, Non-localized
Index: 8, Address Family: inet6, Localization status: Complete
Local FPC's: All
意义
输出显示所有 VRF 的本地化信息。
验证 VPN 的 VRF 本地化
目的
验证 VPN 的 VRF 本地化。
行动
在操作模式下,运行 show route vpn-localization vpn-name vpn-name
命令。
user@PE1> show route vpn-localization vpn-name vpn1
Routing table: vpn1.inet, Localized
Index: 7, Address Family: inet, Localization status: Complete
Local FPC's: 2 8
Routing table: vpn1.inet6, Localized
Index: 7, Address Family: inet6, Localization status: Complete
Local FPC's: 2 8
意义
输出显示 VPN 的 VPN 本地化。
基于 IP 报头过滤第 3 层 VPN 中的数据包
包括路由实例配置中的语句使得将内部标签映射至特定 VRF 路由表成为可能;此类映射允许检查出口 VPN 路由器的封装 vrf-table-label
IP 报头。您可能需要启用此功能,以便可以执行以下任一操作:
共享介质中将 PE-路由器至 客户边缘 设备接口上的流量转发,其中 客户边缘 设备是不带 IP 功能第 2 层交换机(例如,城域以太网交换机)。
第一次查找在 VPN 标签上完成,以确定要指的 VRF 表,第二次查找在 IP 报头上执行,以确定如何将数据包转发至共享介质上的正确终端主机。
在出口 PE 路由器上执行出口过滤。
VPN 标签上的第一个查找是确定要指的 VRF 路由表,而第二查找则对 IP 报头执行,以确定如何过滤和转发数据包。您可以通过在 VRF 接口上配置输出过滤器来启用此功能。
在 VRF 路由表的配置中包括 语句时,将创建标签交换接口 (LSI) 逻辑接口标签并映射到
vrf-table-label
VRF 路由表。此类 VRF 路由表中的任何路由均与分配给 VRF 路由表的 LSI 逻辑接口标签一起通告。当此 VPN 的数据包到达面向核心的接口时,这些数据包将视为已包含在内 IP 数据包到达 LSI 接口,然后根据正确的表进行转发和过滤。
要基于 IP 报头过滤流量,请包含 vrf-table-label
以下语句:
vrf-table-label { source-class-usage; }
您可以在以下层次结构级别中包括 语句:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
您可以为 vrf-table-label
IPv4 和 IPv6 第 3 层 VPN 添加 语句。如果包括双栈 VRF 路由表(同时支持 IPv4 和 IPv6 路由)的语句,则该语句适用于 IPv4 和 IPv6 路由,并且两组路由播发的相同标签。
您还可以通过同时包含 选项来配置使用 语句配置的 3 层 VPN 的 SCU vrf-table-label
source-class-usage
核算。在 source-class-usage
层次结构级别 [edit routing-instances routing-instance-name vrf-table-label]
中包括 语句。此 source-class-usage
层级中的语句仅支持用于实例类型(第 vrf
3 层 VPN)。该语句不支持 vrf-table-label
DCU。有关详细信息,请参阅 启用源类和目标类用法。
以下部分将基于 IP 报头提供有关流量过滤更多信息:
- 出口过滤选项
- 对聚合和 VLAN 接口的支持(用于基于 IP 的过滤)
- 支持用于基于 IP 的过滤的 ATM 和帧中继接口
- 支持以太网、SONET/SDH 和 T1/T3/E3 接口,实现基于 IP 的过滤
- 支持用于基于 IP 的过滤的 SONET/SDH 和 DS3/E3 通道化增强型智能排队接口
- 支持多链路 PPP 和多链路帧中继接口,实现基于 IP 的过滤
- 支持使用空顶标签进行基于 IP 的数据包过滤
- 基于 IP 的过滤的常规限制
出口过滤选项
您可以通过在 层次结构级别添加 语句,启用出口过滤(允许出口第 3 层 VPN PE 路由器同时对 VPN 标签和 IP 报头执行查找 vrf-table-label
[edit routing-instances instance-name]
)。对于路由器到 PE-路由器客户边缘,包括此语句没有限制,但是其他接口类型存在一些限制,如本主题后续章节中所述。
您还可以在配有通道服务物理接口卡 (PIC) 的路由平台上配置 VPN 隧道 (VT) 接口,以启用出口过滤。如此启用出口过滤时,对所使用面向核心的接口的类型没有限制。使用的路由器到 PE 客户边缘类型也无限制。
对聚合和 VLAN 接口的支持(用于基于 IP 的过滤)
表 1 中汇总的路由器上提供了对通过聚合和 VLAN 接口的语句 vrf-table-label
的支持。
接口 |
M Series增强型 FPC 的路由器 |
M Series增强型 FPC 的路由器 |
M320路由器 |
T Series路由器 |
---|---|---|---|---|
聚合 |
不 |
是的 |
是的 |
是的 |
VLAN |
不 |
是的 |
是的 |
是的 |
对于路由器上的聚合千兆以太网、10 千兆位以太网和 vrf-table-label
VLAN 物理接口,该语句M120。
支持用于基于 IP 的过滤的 ATM 和帧中继接口
在表 2 汇总的路由器上提供了对异步传输模式 vrf-table-label
(ATM) 和帧中继接口语句 的支持。
接口 |
M Series增强型 FPC 的路由器 |
M Series增强型 FPC 的路由器 |
M320路由器 |
T Series路由器 |
---|---|---|---|---|
ATM1 |
不 |
不 |
不 |
不 |
ATM2 智能排队 (IQ) |
不 |
是的 |
是的 |
是的 |
帧中继 |
不 |
是的 |
是的 |
是的 |
通道化 |
不 |
不 |
不 |
不 |
当包含 语句时,请注意 ATM 或帧中继 vrf-table-label
接口存在以下限制:
ATM
vrf-table-label
接口上支持 语句,但存在以下限制:ATM 接口可在路由器和 M320 路由器T Series上配置,也可在M Series增强型 FPC 的路由器上配置。
该接口只能是接收 P 路由器信息流 PE 路由器接口。
路由器必须具有 ATM2 IQ PIC。
该
vrf-table-label
语句在封装的帧中继接口上也受支持,但存在以下限制:帧中继接口可在路由器和 M320 路由器T Series上配置,也可在M Series增强型 FPC 的路由器上配置。
该接口只能是接收 P 路由器信息流 PE 路由器接口。
支持以太网、SONET/SDH 和 T1/T3/E3 接口,实现基于 IP 的过滤
表 3 汇总的路由器上提供了对以太网 vrf-table-label
、SONET/SDH 和 T1/T3/E3 接口语句 的支持。
接口 |
M Series增强型 FPC 的路由器 |
M Series增强型 FPC 的路由器 |
M320路由器 |
T Series路由器 |
---|---|---|---|---|
以太网 |
是的 |
是的 |
是的 |
是的 |
SONET/SDH |
是的 |
是的 |
是的 |
是的 |
T1/T3/E3 |
是的 |
是的 |
是的 |
是的 |
没有增强型 FPC 的路由器 vrf-table-label
上M Series以下以太网PC 支持该语句:
1 端口千兆位以太网
2 端口千兆位以太网
4 端口快速以太网
支持用于基于 IP 的过滤的 SONET/SDH 和 DS3/E3 通道化增强型智能排队接口
对于指定的通道化 IQE 接口语句的支持仅适用于带增强型 III M120 M320 的路由器上,如表 vrf-table-label
4 汇总。
接口 |
M120 增强型 IIIFPC 的路由器 |
M320 增强型 IIIFPC 的路由器 |
---|---|---|
OC12 |
是的 |
是的 |
STM4 |
是的 |
是的 |
OC3 |
是的 |
是的 |
STM1 |
是的 |
是的 |
DS3 |
是的 |
是的 |
E3 |
是的 |
是的 |
支持以下 IQE 1 类PC:
带 SFP 的 1 端口 OC12/STM4 IQE
带 SFP 的 4 端口 OC3/STM1 IQE
带 BNC 的 4 端口 DS3/E3 IQE
带 SFP 的双端口通道化 OC3/STM1 IQE,无 SONET 分区
带 SFP 的 1 端口通道化 OC12/STM4 IQE,无 SONET 分区
以下约束适用于利用逻辑系统的路由器配置:
多端口 IQE PIC 接口约束 — 在多端口 IQE PIC(如带 SFP 的 2 端口通道化 OC3/STM1 IQE)中,如果端口 1 接口配置为一个逻辑系统,并且端口 1 接口配置有其自己的路由实例,则端口 2 接口会配置为另一个逻辑系统,并且该路由实例在端口 1 和端口 2 上都有面向核心的逻辑接口, 然后,您不能在
vrf-table-label
两个逻辑系统中配置路由实例上的语句仅支持一组 LSI 标签;已提交配置语句vrf-table-label
的最后一个路由实例。跨逻辑系统约束的帧中继封装和逻辑接口 — 与逻辑系统的多端口 PIC 类似,如果您尝试在一个逻辑系统中配置一个以帧中继封装的 IQE PIC 逻辑接口,并配置第二个逻辑系统中同一 IQE PIC 上的另一个逻辑接口,则配置不会适用于所有已配置语句的实例。
vrf-table-label
它仅适用于在一个逻辑系统中配置的实例。
由于路由器配置按逻辑系统维护一个 LSI 树(数据包转发引擎流中都通用,因此存在以上两种约束。随后,流通道表查找被调整为指向 LSI 树。对于多端口类型 1 IQE PIC,所有物理接口共享同一流。因此,逻辑接口(多端口或非多端口)显然会共享同一个流。因此,LSI 绑定处于流级别。因此,不支持在调配为面向核心的相同流下调配逻辑接口,并且使用 语句支持不同的 vrf-table-label
路由实例集。
支持多链路 PPP 和多链路帧中继接口,实现基于 IP 的过滤
在表 5 汇总的路由器上提供了对多链路点到点协议 (MLPPP) 和多链路帧中继 vrf-table-label
(MLFR) 接口语句 的支持。
接口 |
M Series增强型 FPC 的路由器 |
M Series增强型 FPC 的路由器 |
M320 |
T Series路由器 |
MX 系列路由器 |
---|---|---|---|---|---|
MLPPP |
不 |
是的 |
不 |
不 |
不 |
端到端 MLFR (FRF.15) |
不 |
是的 |
不 |
不 |
不 |
UNI/NNI MLFR (FRF.16) |
不 |
不 |
不 |
不 |
不 |
M Series路由器必须具有一个AS PIC 以支持 vrf-table-label
通过 MLPPP 和 MLFR 接口的声明。路由器 vrf-table-label
上不支持通过 MLPPP 接口M120语句。
支持使用空顶标签进行基于 IP 的数据包过滤
您可以在配置中包括语句,用于接收包含空顶MPLS(可能由某些供应商的设备进行传输)的数据包面向核心的 vrf-table-label
接口。这些数据包只能在 M320路由器、M10i路由器和T Series路由器上接收,这些路由器使用以下一个 PIC:
带 SFP 的 1 端口千兆位以太网
带 SFP 的 2 端口千兆位以太网
带 SFP 的四端口千兆位以太网
带 SFP 的 10 端口千兆位以太网
1 端口 SONET STM4
四端口 SONET STM4
1 端口 SONET STM16
1 端口 SONET STM16(非 SFP)
四端口 SONET STM16
1 端口 SONET STM64
以下 FPC 可以使用空顶部标签接收数据包,但仅当安装到 M120 路由器或M320增强型 III FPC 的路由器中时:
1 端口 10 千兆位以太网
1 端口 10 千兆位以太网 IQ2
基于 IP 的过滤的常规限制
如果包含 语句,请遵循以下 vrf-table-label
限制:
防火墙过滤器不能应用于您配置语句的路由实例中包含的
vrf-table-label
接口。MPLS 标头中的实时 (TTL) 值不会复制到从 PE 路由器发送至 客户边缘 路由器的数据包的 IP 标头。
您不能在还包括虚拟回环通道接口的路由实例配置中包含该语句;在这种情况下,
vrf-table-label
提交操作失败。包括语句时,如果面向核心的接口为以下任何一项,则MPLS具有标签交换接口 (LSI) 标签的数据包在面向核心的接口上时不会计算在逻辑接口级别:
ATM
帧中继
使用 VLAN 配置的以太网
使用 VLAN 配置的聚合以太网
对于基于 LMNR、Stoli 和 I-Chip 的数据包转发引擎,如果 PE-路由器至 P-路由器接口为以下任何接口,则您不能在 VRF 路由实例的配置中包括语句:
注意:当 PE-路由器至 P-路由器接口是基于 Trio 的路由器上的Junos通道接口时,支持
vrf-table-label
该数据包转发引擎,因此没有限制。聚合 SONET/SDH 接口
通道化接口
隧道接口(例如,通用路由封装 [GRE] 或 IP 安全 [IPsec])
电路交叉连接 (CCC) 或转换交叉连接 (TCC) 封装接口
逻辑隧道接口
虚拟专用 LAN 服务 (VPLS) 封装接口
注意:支持所有客户边缘路由器到 PE-路由器和 PE-路由器客户边缘路由器接口。
如果 PE-路由器到 P-路由器 PIC 是以下 PIC 之一,则您不能将 语句包括到 VRF 路由实例
vrf-table-label
的配置中:10 端口 E1
8 端口快速以太网
12 端口快速以太网
48 端口快速以太网
ATM PIC 而不是 ATM2 IQ
M Series 路由器上的智能排队 2 (IQ2)、增强型 IQ (IQE) 和增强型 IQ2 (IQ2E) PIC 不支持标签交换接口 (LSI) 信息流统计。
另请参阅
为 VPN 配置标签分配和替代策略
您可以控制每个入口和MPLS路由器 (ASB) AS广告。标签可以在下一跳跃上(默认)或按表分配(通过配置 vrf-table-label 语句)。此选项会影响给定路由实例的所有路由。您也可配置一个策略,通过指定标签分配策略来按路由生成标签。
要为路由实例指定标签分配策略,请配置 语句,然后使用分配选项 label
指定 标签分配 策略:
label { allocation label-allocation-policy; }
您可以在以下层次结构级别中配置此语句:
[edit routing-instances routing-instance-name routing-options]
[edit logical-systems logical-system-name routing-instances routing-instance-name routing-options]
[edit logical-systems]
层次结构级别不适用于 ACX 系列路由器。
要配置标签分配策略,请包含 label-allocation
层级的 [edit policy-options policy-statement policy-statement-name term term-name then]
语句。您可以将标签分配模式配置为 per-nexthop 或 per-table。
对于 VPN 选项 B ASBR,传输路由的标签取代本地虚拟隧道标签或 vrf 表标签标签。在 ASBR 上配置 VRF 表时(对于选项 B 模型,此配置类型很少见),ASBR 不会为传输路由生成 MPLS交换或交换和推送状态。相反,ASBR 将重新播发本地虚拟隧道或 vrf 表标签标签,并基于 IP 转转表转发传输流量。标签替代有助于保留路由器上的瞻博网络。
但是,这种类型的标签替代会有效地中断 MPLS转发路径,当使用 LSP ping MPLS OAM 命令时,该路径变得可见。您可以指定标签替代策略,以按路由配置替代标签的方式。
要为路由实例指定标签替代策略,请配置 语句,然后使用替代选项 label
指定 标签替代 策略:
label { substitution label-substitution-policy; }
您可以在以下层次结构级别中配置此语句:
[edit routing-instances routing-instance-name routing-options]
[edit logical-systems logical-system-name routing-instances routing-instance-name routing-options]
[edit logical-systems]
层次结构级别不适用于 ACX 系列路由器。
标签替代策略用于确定是否应在 ASBR 路由器上替换标签。策略操作的结果可能是接受(执行标签替代)还是拒绝(不执行标签替代)。默认行为是接受。以下 set 命令示例说明了如何配置拒绝标签替代策略: set policy-options policy-statement no-label-substitution term default then reject
。