概述
产生背景
MPLS TE网络中一般都需要实施快速重路由保护,这主要是由 MPLS TE自身的特点决定的。对于纯 IP网络,当局部失效出现的时候,如果到同一个目的地的还有其他路由可以使用,报文会按 照这些路由进行转发。在失效引起的路由变化扩散到全网之前,仅靠这种机制就可以比较快速地在 局部实现失效保护。
在没有布署 TE的 MPLS网络,现在应用比较多的是 LDP按照 DU方式建立 LSP。当局部失效出现 时,如果还有其他路由可用,LDP 会向上游节点发起 LSP 的建立。由于没有考虑到带宽、优先级 和链路属性等 TE有关的需求,这个 LSP建立成功的机会相对较大,因此从失效到恢复的过程也相 对较短。
在 MPLS TE网络中,LSP的建立一般是通过 RSVP协议按照 DoD的方式完成的。在头节点,CSPF 利用域内所有路由信息计算出一条满足约束条件的路径,RSVP按照这个路径建立 LSP。当网络中 有局部失效时,需要重建整条 LSP。而在失效引起的路由改变扩散到头节点之前,CSPF无法算出 有效的路径。另外,局部失效可能会引起网络中多条 LSP的重建。这样一来,利用新计算出来的路 径建立 LSP 的过程中,出现带宽不够等问题的机会比较大。因此,与纯 IP 网络和没有布署 TE 的 MPLS网络比较而言,MPLS TE网络从局部失效中恢复的时间可能会更长,更需要一种能快速响应 失效的机制。
MPLS TE快速重路由通过预先建立备份路径,实现对TE隧道的快速保护倒换,从而减少数据丢失。
技术优点
MPLS TE快速重路由是 MPLS TE中用于保护链路和节点的机制,在 MPLS TE网络中扮演了重要角色。MPLS TE快速重路由事先建立本地备份路径,保护 LSP不会受链路/节点故障的影响。当故 障发生时,检测到链路/节点故障的设备就可以快速将业务从故障链路切换到备份路径上,从而减少 数据丢失。
快速响应、及时切换是 MPLS TE快速重路由的特点,它可以将业务中断的时间控制在一个很小的 时间段,保证业务数据的平滑过渡。同时,LSP的头节点会尝试寻找新的路径来重新建立 LSP,并 将数据切换到新路径上。在新的 LSP建立成功之前,业务数据会一直通过保护路径转发。由于需要预先建立备份路径,MPLS TE 快速重路由会占用额外的带宽。在网络带宽余量不多的情 况下,建议只对关键的接口进行快速重路由保护,这一点是部署 MPLS TE快速重路由时需要注意的。
MPLS TE快速重路由技术实现方案
概念介绍
- 主 LSP:被保护的 LSP。
- 保护 LSP:用来保护主 LSP的 LSP。
- Detour LSP:为每一条需要保护的 LSP创建一条保护路径,该保护路径称为 Detour LSP。
- Bypass LSP:用一条保护路径保护多条 LSP,该保护路径称为 Bypass LSP。
- PLR:Detour LSP或 Bypass LSP的头节点,它必须在主 LSP的路径上,且不能是尾节点。
- MP:Detour LSP或 Bypass LSP的尾节点,必须在主 LSP的路径上,且不能是头节点。
- 链路保护:PLR和 MP之间由直接链路连接,主 LSP经过这条链路。当这条链路失效的时候, 可以切换到 Detour LSP或 Bypass LSP上。
- 节点保护:PLR和 MP之间通过一个 LSR设备连接,主 LSP经过这个 LSR设备。当这个 LSR 设备失效时,可以切换到 Detour LSP或 Bypass LSP上。
FRR的基本原理
MPLS TE 快速重路由的基本原理是用一条预先建立的 LSP 来保护一条或多条 LSP。预先建立的 LSP称为保护LSP,被保护的LSP称为主LSP。MPLS TE快速重路由的最终目的就是利用保护LSP 绕过故障的链路或者节点,从而达到保护主 LSP的目的。
FRR的保护对象
根据保护的对象不同,FRR分为两类:
- 链路保护:PLR和 MP之间由直连链路连接,主 LSP经过这条链路。当这条链路失效时,流 量可以切换到保护 LSP上。如图1所示,主 LSP是 Device A→Device B→Device C→Device D,保护 LSP是 Device B→Device F→Device C。
图1 FRR链路保护示意图
- 节点保护:PLR和 MP之间通过一台设备连接,主 LSP经过这台设备。当这台设备失效时, 流量可以切换到保护LSP上。如图2所示,主LSP是Device A→Device B→Device C→Device D→Device E,保护 LSP是 Device B→Device F→Device D,Device C是被保护的设备。
图2 FRR节点保护示意图
FRR的实现方式
实现快速重路由有两种方式:
- Detour方式:One-to-one Backup,分别为每一条被保护 LSP提供保护,即为每一条被保护 LSP创建一条保护路径,该保护路径称为 Detour LSP。
- Bypass方式:Facility Backup,用一条保护路径保护多条 LSP,该保护路径称为 Bypass LSP。
Detour方式实现了每条 LSP的单独保护,但需要的开销相对较大。在实际使用中,Bypass方式被 更广泛使用。目前,Comware只支持 Bypass方式。
图3 Bypass方式快速重路由
Bypass方式快速重路由如图3所示,Device A→Device B→Device C→Device D→Device E为主 LSP,Device B→Device F→Device D为 Bypass LSP。当 Device B到 Device C的链路失效或节 点Device C失效时,主LSP上的数据会切换到Bypass LSP上。Device B发送报文时先压入Device D为 Device C分配的标签,再压入 Bypass LSP的标签,即 Device F为 Device B分配的标签。也 就是,在 Device B→Device F→Device D这条路径上,LSP使用两层标签。Device D收到报文后, 弹出 Device D为 Device F分配的标签以后(如果 Bypass LSP的 Device D为 Device F分配的标 签是隐式空标签,那么 Device F弹出标签,Device D收到的报文只有 Device D为 Device C分配 的标签),继续用 Device D为 Device C分配的标签进行转发。
Bypass方式的详细介绍
MPLS TE快速重路由基于 RSVP-TE建立保护 LSP。为了实现快速重路由功能,需要扩展 RSVP消息中SESSION_ATTRIBUT和 RECORD_ROUTE对象的几个标志位:
- PATH 消息的 SESSION_ATTRIBUT对象中,使用标志位指明该 LSP是否需要局部保护、是 否记录标签、是否为 SE风格、是否有要保护带宽。
- RESV消息的 RECORD_ROUTE对象中,使用标志位指明该 LSP是否已经被保护、是否已 经切换、是否被保护了带宽、是否是被节点保护。
被保护 LSP建立与普通 LSP建立的区别就在于这几个标志位的处理。
下面将结合图3从以下几个方面详细介绍 Bypass方式快速重路由:
- 主 LSP的建立
- Bypass LSP的建立
- 绑定计算
- 失效检测
- 切换过程
- 切换后 LSP的维护
- 重优化
主 LSP的建立
主 LSP的建立过程与普通 LSP基本相同,只是增加了绑定计算,并在 PATH 和 RESV消息中增加 了几个相关标记和子对象。
RSVP从头节点(图 3中的 Device A)逐跳向下游发送 PATH 消息(经过 Device A→Device B→ Device C→Device D→Device E),从尾节点(图3中的 Device E)逐跳向上游发送 RESV消息。在处理 RESV消息时分配标签,预留资源,建立 LSP。
主 LSP的建立是通过在头节点(Device A)手工配置隧道来触发的。在建立主 LSP前,如果通过 命令指定该 LSP具有快速重路由属性,RSVP就会在 PATH 消息的 SESSION_ATTRIBUTE对象中 增加局部保护标记、记录标签标记、SE风格标记。如果还为该 LSP指定了带宽,则还会增加带宽 保护的标记。下游节点在收到 PATH 消息以后,通过局部保护标记,就能分辨出该 LSP是一条需要 快速重路由保护的 LSP。
对需要快速重路由保护的 LSP(根据先前的 PATH 消息中的标记判断),各个节点向上游发送 RESV 消息时,会在 RRO中记录 RESV消息的出接口、LSR ID和标签。这些信息被逐跳累计传递到各个上游节点。
各节点第一次收到RESV消息时,根据RRO中记录的这些信息,为该LSP选择合适的Bypass LSP。为主 LSP选择合适的 Bypass LSP的过程称为绑定。
Bypass LSP的建立
当一个没有快速重路由属性的隧道被指定保护一个接口以后,它所对应的LSP就成为Bypass LSP。Bypass LSP(Device B上的 Tunnel2)的建立是通过在 PLR(Device B)手工配置触发的。Bypass LSP可以被指定保护多个接口,但不能保护它自己的出接口。它的配置与普通 LSP的区别为:
- 不能为Bypass LSP配置快速重路由属性。也就是说,Bypass LSP不能同时是主LSP,LSP 不能被嵌套保护。
- 除了 Bypass LSP的带宽之外,还需要配置保护带宽。 绑定计算 绑定计算是为一条主 LSP绑定 Bypass LSP的过程。绑定计算是为了获取切换时转发所需要的必要 数据,如 Bypass 隧道接口、Bypass LSP的 NHLFE、MP分配的标签等。计算结果将保存下来, 当发生局部失效的时候可以立即使用,这也是 MPLS TE快速重路由可以迅速响应失效的原因。绑 定计算必须在切换之前完成,如果绑定计算成功,RESV会向上游节点通告该主 LSP已经被保护。
当有多条 Bypass LSP保护同一条主 LSP时,按下面的规则选择 Bypass LSP:
- 节点保护优先于链路保护。
- 优先选择剩余带宽大于等于主 LSP带宽的 Bypass LSP。
失效检测
失效检测的目标是尽快发现链路和节点失效并触发切换,缩短流量中断的时间。
可以通过三种方法检测链路或节点失效:
- 链路层协议检测:链路层发现失效的速度跟接口类型直接相关。
- RSVP的 hello机制:为每个需要保护的物理接口使能 hello,当对端接口也使能了 hello,就 会在两个 LSR设备之间定时发送 hello消息和回应。当链路或节点失效的时候,hello消息或 回应消息会丢失,如果连续三次丢失消息,认为链路或节点失效。hello机制检测失效的速度 相对比较慢。
- 利用 BFD检测邻居连通性:BFD是一种快速检测机制,利用 BFD可以迅速检测到链路或节点失效。
切换过程
切换是指启用 Bypass LSP,主 LSP的流量和 RSVP协议消息都不再通过失效链路或节点转发。转发的数据首先切换到 Bypass LSP。在进行绑定计算时,数据转发所需要的内层标签 2001(MP 分配的标签)已经存放在 NHLFE中,这时只要标记该 LSP已经切换,数据就可以通过 Bypass隧 道进行转发了。
切换后 LSP的维护
切换以后,原有链路不再可用。为使LSP不被超时删掉,RSVP需要在PLR(Device B)和 MP (Device D)之间维持消息刷新。
PATH 消息经过修改以后通过 Bypass隧道( Device B的 Tunnel2)发给 MP。MP收到 PATH 消息, 确认自己是 MP节点,RESV消息也经过修改以后经过多跳 IP转发(经过 Device D→Device F→ Device B),发送给 PLR节点。
切换以后,主 LSP 的 PathTEAR、ResvERR、RescTEAR 和 PathERR 消息的发送路径也相应变化。
在节点保护切换以后,被保护的节点(Device C)可能会因为 PATH 消息超时而向下游发送 PATHTEAR 消息,MP(Device D)节点会忽略这个消息。另外,MP切换的时候会在原来的 LSP 入接口(Device D的 Interface D1)上发 ResvTear消息,这样可以让被保护的节点(Device C) 尽快释放相应的资源。
重优化
重优化是指按照配置的时间间隔定时对已经建成的 LSP 进行路径计算,LSR 设备按照计算出来的 路径发起新的 LSP建立过程。新的 LSP建立成功以后会删除原来的 LSP,LSP隧道的转发切换到 新的 LSP。
每条 LSP隧道都可以配置重优化,当 LSP建成以后,重优化就会启动。
对快速重路由来说,重优化的另一个作用是让被 Bypass保护的主隧道(Device A的 Tunnel1)恢 复到正常状态。因为快速重路由保护主要用于临时性保护,所以一般需要为有快速重路由属性的隧 道配置重优化。当主 LSP还没有切换时,只有重优化计算出来的路径与原有路径不同时才会建立新 的 LSP;当主 LSP发生了切换,即使重优化计算出来的路径与原有路径相同也会建立新的 LSP。
典型应用组网
在网络中的关键节点上配置 FRR保护,可以实现对通过该节点流量的保护。
图4 MPLS FRR组网
如图4所示,运营商对用户提供了带宽批发业务,使用 MPLS TE隧道接入用户的连接,使异地的 用户网络通过运营商网络连接。因为承载业务为重要的业务,因此需要对主 LSP Tunnel1经过的路径进行保护。利用 MPLS TE FRR,可以实现通过保护路径 Tunnel2、Tunnel3、Tunnel4和 Tunnel5 分别保护主 LSP路径上的 Device B、Device C、Device D和 Device E。