VPN FRR技术

VPN FRR技术

一、基本概念

VPN实例(即VRF):用于区分同一PE上的面向CE侧的不同路由进程。VRF实际上只具有本地意义,由本地不重复的RD进行唯一标示,用RT属性进行互通和隔离控制;

VPNV4地址:当PE将本地VRF中的路由引入到MP-BGP时,为了区分不同VRF的路由前缀,将路由标识符RD结合IPv4地址前缀形成了VPNV4路由。(路由传递过程中不可以对VPNV4路由的RD属性进行修改)

RD(route distinguisher):64bits,用于在MP-BGP运载VPN前缀时,确保这些前缀的唯一性。但是RD并不会说明该前缀属于哪一个VRF(需要搭配RT),RD的功能并不是VPN标示符,因为在一些复杂的VPN环境中,可能一个VPN存在多个RD。RD的最重要的两个功能:

  1. 与32bits的IPv4前缀一起构成96bits的VPNv4前缀;
  2. 如果不同的VPN客户,存在相同的IPv4地址空间,那么可以通过设置不同的RD值从而保证前缀的唯一性。

VPN Target(即RT):L3VPN利用RT来控制VPN路由信息的发布和引入,每个VRF可关联一个或多个VPN Target属性。(路由传递过程中可以修改增加RT属性)

  • VRF >> MP-BGP (export) – 对对应VPNV4路由添加export RT属性;
  • MP-BGP >> VRF (import) –当此属性与PE上某个VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例的路由表(实际上就是路由交叉)。

路由交叉:PE检查私网路由的Export Target属性。当此属性与PE上某个VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例的路由表。

二、基本介绍

VPN FRR是在CE双归属的VPN网络环境中,当PE设备发生故障时使VPN业务快速切换的技术。

VPN FRR利用基于VPN的私网路由快速切换技术,通过预先在远端PE中设置指向主用PE和备用PE的主备用转发项,并结合PE故障快速探测,在VPN路由收敛完成之前,先将VPN流量切换到备份路径上。这样,解决了PE节点故障恢复时间与其承载的私网路由的数量相关的问题。

图1 VPN FRR典型组网图

如上图,假设正常情况下CE1访问CE2的路径为Link A,当PE2发生故障后,CE1访问CE2的路径倒换为Link B。

按照传统的BGP/MPLS VPN技术,PE2和PE3都会向PE1发布指向CE2的路由,并分配私网标签,PE1根据策略优选一个MP-BGP邻居发送的VPNv4路由,在这个例子中,优选的是PE2发布的路由,并且只把PE2发布的路由信息(包括转发前缀、内层标签、选中的LSP隧道)填写在转发引擎使用的转发项中,指导转发。

当PE2节点故障时,PE1感知到PE2的故障(BGP邻居Down或者外层LSP隧道不可用),重新优选PE3发布的路由,并重新下发转发项,完成业务的端到端收敛。在PE1重新下发PE3发布的路由对应的转发项之前,由于转发引擎的转发项指向的外层LSP隧道的终点是PE2,而PE2节点故障,因此,在一段时间内,CE1是无法访问CE2的,端到端业务中断。

VPN FRR技术对传统技术进行了改进:支持PE1设备将最优的PE2发布的路由信息和次优的PE3发布的路由信息都填写在转发项中,其中最优的路由用于指导业务流量转发,而次优路由用于作为备份路由。

当PE2节点故障时,PE1通过BFD技术感知到PE1与PE2之间的外层隧道不可用,便将LSP隧道状态表中的对应标志设置为不可用并下发到转发引擎中,转发引擎命中一个转发项之后,检查该转发项对应的LSP隧道状态,如果为不可用,则使用本转发项中携带的次优路由的转发信息进行转发。这样,报文就会被打上PE3分配的内层标签,沿着PE1与PE3之间的外层LSP隧道交换到PE3,再转发给CE2,从而恢复CE1到CE2的业务,实现PE2节点故障情况下的端到端业务的快速收敛。

BGP就是纯事件触发,也就是只要感知下一跳不可达立马触发路由计算。 迭代Tunnel时,才每5秒钟查询一次隧道状态。

使用VPN FRR,不仅使端到端业务收敛故障恢复时间与私网路由的规模无关,而且简单可靠,部署方便。当L3VPN中承载了大量的路由时,按照传统的收敛技术,当远端PE出现故障时,所有这些VPN路由都需要重新迭代到新的隧道上,端到端业务故障收敛的时间与VPN路由的数量相关,VPN路由数量越大,收敛时间越长。而对于VPN FRR技术,只需要检测并修改外层隧道的状态,无论转发流量命中的是哪条VPN路由,流量都会切换到VPN FRR的备份路径上,其收敛时间只取决于远端PE故障的检测并修改对应隧道状态的时间,而与VPN路由的数量无关。

VPN FRR技术面向内层标签的快速倒换,在外层隧道的选择方面,可以是LDP LSP,可以是RSVP TE,转发引擎在报文转发的时候感知到外层隧道的状态为不可用就可以进行快速的基于内层标签的倒换。VPN FRR本质上是L3VPN私网标签保护技术,而且是单向的保护技术,与远端是否华为产品无关。

VPNv6 FRR实现了在CE双归属的IPv6 VPN网络中,IPv6私网路由的快速切换。其实现原理与VPN FRR相同。

三、VPNv4路由交叉规则

V5平台VPNv4路由交叉规则:

  • 如果VPNV4路由的RD和本地VRF的RD相同,VPNV4路由表中此RD的所有路由都会加入到VRF的路由表中(此时不优选)。

  • 如果VPNV4路由的RD和本地VRF的RD不同,先在VPNV4路由表中选出最优路由(RD + x.x.x.x 唯一标识一条路由),只有最优的VPNV4路由才进行交叉。这样就导致了远端多个NHP的RD相同,但和本地同一VRF的RD不同时,本地PE交叉后的VPNV4路由仅有一条最优路由,无次优路由作为备份路由计算。(此时需要考虑vpn-route cross multipath,后面会介绍 )

V8平台VPNv4路由交叉规则:
要有best路由才能交叉。不管RD是否相同,每个RD默认情况交叉的路由数量是负载分担数量+1。

说明:V5和V8两个版本可以交叉的VPN路由数量不相同(V8非负载分担是2条,V5可以达到5条)

四、形成VPN FRR条件

以下内容以V5平台为例,V8平台类似。

形成VPN FRR条件包含以下3点,缺一不可:

  • 至少收到2条BGP-VPNv4路由
  • RT、RD检查后可将路由接收下来
  • 不同路由可以区分出优劣

1、两条BGP-VPNv4路由的形成条件

形成VPN FRR的前提是有两条BGP-VPNv4路由。

在PE多归属组网中,如果本端PE上与远端多个PE上的VPN实例的RD值不同,则无法形成VPN FRR。
如下图,PE2和PE3的RD相同,但与PE1的RD不同。

原因:V6R5及以下版本,BGP独立选路之后,与本地相同RD的VPNv4路由全部交叉到VPN路由表,而与本地不同RD的VPNv4路由只交叉该RD下最优路由到VPN路由表,这样PE1上从PE2和PE3收来的VPNv4路由在选路之后,只把优选的VPNv4路由交叉到VPN路由表里,所以PE1上只有一条路由。

双平面组网时,形成VPN FRR条件为以下几条,只要满足其中之一即可形成VPN FRR的路由前提条件:

(1) 对于特定VPN,整网采用相同的唯一RD值;这样远端PE发送的路由与本地RD值相同,直接交叉进入BGP VPN路由表;需要注意:在反射器上设置路由策略,确保A、B平面发布的RD相同路由均能被反射出来;

(2)对于特定VPN,A平面采用一个RD值,B平面采用另一个RD值;这样,本地A平面PE收到路由后,对于远端A平面路由RD值匹配,直接交叉进入BGP VPN;对于B平面RD值不匹配,基于RD优选后交叉进入BGP VPN;

(3) 对于特定VPN,每个站点两台PE采用相同的RD,不同站点采用不同的RD;由于远端PE发布的路由与本地RD不一致,先基于RD选路,在将优选的路由交叉进入BGP VPN,此时由于同站点两台PE RD相同,只有1条路由交叉进入了BGP VPN,无法形成VPN FRR;此时需要配置 VPN-route cross multipath 命令,将2条或多条VPN 路由交叉到VPN路由表。也需要注意在反射器上设置路由策略,确保A、B平面路由均能被反射。

2、关于vpn-route cross multipath命令

缺省情况下,在PE多归属组网中,如果本端PE上与远端多个PE上的VPN实例的RD值不同,则本端PE在从各个远端PE收到目的地址相同的VPNv4/VPNv6路由后,则只会将一条最优路由交叉到VPN实例里。这样将导致在这种组网中配置负载分担或VPN FRR不生效。因此在这种情况下,为了可以使能负载分担或VPN FRR功能,可以在本端PE上配置vpn-route cross multipath命令。

配置影响:

配置vpn-route cross multipath命令后,PE可以将多条与VPN实例的RD值不同的VPNv4/VPNv6路由交叉至VPN实例中,具体交叉路由的数量为:

  • 如果未配置负载分担功能,则PE上最多可以交叉2条VPNv4/VPNv6路由。
  • 如果使用命令maximum load-balancing配置了负载分担功能,其中配置的负载分担的等价路由的最大条数为n,则PE上最多可以交叉n条VPNv4/VPNv6路由。
  • 如果使用命令maximum load-balancingauto-frr配置了负载分担功能和VPN FRR功能,其中配置的负载分担的等价路由的最大条数为n,则PE上最多可以交叉n+1条VPNv4/VPNv6路由。
# 配置VPNv4路由和VPN实例的RD值不同时,多条VPNv4路由可以交叉至该VPN实例中。
<HUAWEI> system-view
[HUAWEI] bgp 100
[HUAWEI-bgp] ipv4-family vpn-instance vrf1
[HUAWEI-bgp-vrf1] vpn-route cross multipath

# 配置VPNv6路由和VPN实例的RD值不同时,多条VPNv6路由可以交叉至该VPN实例中。
<HUAWEI> system-view
[HUAWEI] bgp 100
[HUAWEI-bgp] ipv6-family vpn-instance vrf1
[HUAWEI-bgp-vrf1] vpn-route cross multipath

五、VPN FRR“有效部署”

这里说的“有效部署”≠ enable ”auto-frr”!!!“有效部署”应是能够满足L3VPN业务的50~200ms级的保护诉求。

如果让VPN FRR真正达到规划的应有效果,须满足两个层面的要求:一是能够在PE上形成到对端PE VRF路由的主备下一跳;二是能够对节点或者链路故障做到快速检测与感知。其基本要求是:

  1. 形成VPN FRR的基本条件必须满足:必须保证VPNV4地址族有两条路由可交叉,从而形成VPN FRR主备下一跳。

  2. VPN FRR主备下一跳途径的LSP路径要求尽量不重合,否则如果是重合节点(或链路)发生故障,VPN FRR主备下一跳所途径的LSP都会发生重新收敛,从而影响倒换速度。

    (1)规则双平面LDP场景通过weight控制

    (2)非规则组网需要借助于TE显式路径控制;

  3. 需要配置BFD等快速检测技术,要让启用了VPN FRR的网元能够快速(毫秒级)感知节点或链路故障。

    (1)BFD可以实现ms级的快速检测,各场景推荐如下:

技术 场景 检测时间考虑 机制 限制
物理层故障感知+IGP FC/BFD for RSVP All non-determined 触发LDP场景下IGP收敛; 触发TE场景下path err; 故障检测时间较长,链路过传输不是很可控,不推荐
多跳BFD for IP All 150ms,建议考虑IGP和LDP收敛时间 利用BFD快速检测下一跳是否可达 LDP场景下推荐,TE场景考虑HSB/TE FRR保护故不推荐
BFD for LDP LSP LDP 150ms,建议考虑IGP和LDP收敛时间 利用BFD检测LSP可达,本质上还是基于IGP收敛 检测效果和BFD for IP相同,优势不明显
BFD for TE TE >TE LSP切换时间即可(~50ms) 检测TE LSP可达性 TE场景下推荐

(2)VPN FRR最为高级保护技术,在和其他低层级保护技术的配合时应避免不必要的切换,也就是其他低级别保护技术先倒换,低级别保护无法实现保护时才轮到VPN FRR出场。

  • Eth-trunk场景下,或者到达同一NHP多条LSP负载分担场景;

  • LDP场景下,仅考虑链路故障下,IGP收敛速度引发的BFD down;

  • TE场景下,HSB以及TE FRR的路径保护技术考虑。

以TE场景使用HSB保护为例,建议BFD for LSP为3*10ms,BFD for TE为3*10ms,当工作的主用LSP的链路中断时,50ms内触发HSB保护,业务切换至备用LSP;当对端PE设备故障时,主备用LSP均为down状态,BFD for TE检测到TE隧道down,此时触发VPN FRR保护。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xumeng32@126.com

文章标题:VPN FRR技术

文章字数:3.5k

本文作者:F_numen

发布时间:2020-02-10, 23:56:09

最后更新:2020-02-14, 11:31:21

原始链接:https://netheroone.cn/archives/bf228259.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
/*baidu统计*/