• 文章搜索:
  • 目录

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    MPLS TE FRR技术分析

    作者:  |  上传时间:2015-10-09  |  关键字:MPLS TE FRR技术分析

     

    /苏艳梅

    1      MPLS TE FRR技术概述

    FRR是快速重路由(Fast ReRoute)的简称,TE FRRMPLS TE网络中实现局部修复的一种技术。在使能MPLS TE FRR功能之后,当被保护的LSP经过的某条链路或者某个节点失效时,流量会被PLR切换到保护隧道上,流量转发不中断或者仅有少量丢包。RFC 4090详细介绍了MPLS TE FRR技术。本文结合H3C设备实现,介绍了MPLS TE FRR的原理。在详细介绍MPLS TE FRR实现原理之前,先介绍几个MPLS TE FRR技术中涉及的术语。

    LSP:被保护的LSP

    Bypass LSP:旁路LSP,保护主LSPLSP

    PLRPoint of Local Repair,本地修复节点):Bypass LSP的头节点,必须在主LSP的路径上,并且不能是主LSP的尾节点。

    MPMerge Point,汇聚点):Bypass LSP的尾节点,必须在主LSP的路径上,并且不能是主LSP的头节点。

    2      MPLS TE FRR实现原理

    2.1      MPLS TE FRR的实现方式

    MPLS TE FRR包括两种方式,一种是One-to-One方式,另一种是Facility方式。

    One-to-One方式的FRR是指PLR节点为每一条主LSP都创建一条旁路LSP,是一对一的保护方式。当有多条主LSP通过PLR节点时,会创建多条旁路LSP分别保护每条主LSP

    Facility方式的FRR是指PLR节点为多条主LSP只创建一条旁路LSP,是一对多的保护方式。H3C的设备默认采用Facility的实现方式。

    1 Facility方式FRR说明图

    Facility方式MPLS TE FRR举例说明如下:

    假设有三条LSP通过节点R2,分别是

    Protected LSP 1:  [R1->R2->R3->R4->R5]

                    Protected LSP 2:  [R8->R2->R3->R4]

                    Protected LSP 3:  [R2->R3->R4->R5]

    在节点R2(也就是PLR节点)上建立旁路LSP[ R2->R6->R7->R4]隧道,用来保护主LSP1LSP2LSP3三条隧道,当节点R3或者链路[R2->R3]出现故障时,通过主LSP转发的流量会切换到旁路LSP隧道内转发。

    Facility方式的MPLS TE FRR有两种实现方式,一种是手工方式,就是在PLR节点上主LSP对应的出接口上配置保护隧道;另一种是自动方式,如果主LSP使能了FRR能力,且在PLR节点上配置TE Auto FRR能力,PLR节点会自动建立保护隧道。本文主要介绍了手工方式的MPLS TE FRR实现原理。

    2.2      Facility 方式RSVP TE FRR实现原理

    2.2.1  Facility 方式的RSVP TE FRR用到的标志位

    RSVP-TE协议是RSVPResource Reservation Protocol)协议的扩展,用于TE隧道的建立和维护。RSVP-TE的工作是通告和维护网络中的保留资源。RSVP-TE协议通过不同类型消息对象来实现不同的功能。而实现TE FRR功能用到了SESSION_ATTRIBUTE对象、RRO对象中的标志位。头节点使能FRR之后,SESSION_ATTRIBUTE对象中的Local Protection desiredlabel recording desiredSE Style desired标志位都要置1RSVP消息SESSION_ATTRIBUTE对象具体格式如下:

    2 RSVP消息SESSION_ATTRIBUTE对象

    PLR节点FRR生效绑定成功之后,PathResv消息中的RRO对象对应的IPv4子对象以及Label子对象中的标志位也会相应置位,IPv4子对象中报文格式如下:

    3 IPv4子对象报文格式

    4 Label子对象

    2.2.2  Facility 方式TE FRR协议流程

    Facility方式的TE FRR实现主要是由头节点、PLR节点、MP节点完成的。FRR能力实现可以分为两个阶段,第一阶段是FRR切换之前,第二阶段是FRR切换之后。

    FRR切换之前,头节点、PLR节点、MP节点各需要完成那些工作?

    FRR能力是由LSP头节点决定的。在使能FRR能力时,必须使能Label record能力,同时资源预留样式必须是SE类型。头节点在使能FRR之后,其后续发送Path消息,SESSION_ATTRIBUTE对象中Local Protection desiredlabel recording desiredSE Style desired标志位都要置位。

    LSP经过的所有LSR节点(尾节点除外)都可能成为PLR节点,根据网络规划,最后由用户配置决定PLR节点的位置。PLR节点通过SESSION_ATTRIBUTE对象中的Flag标志位来确定LSP是否需要本地保护,如果是需要本地保护的LSPPLR节点需要查找符合条件的Bypass LSP,如果能够找合适的Bypass LSP,向上游节点发送Resv消息以及向下游节点发送Path消息时,其RRO对象中的Label子对象、IPv4子对象中的Local protection available标志位置1;同时生成主LSPBypass LSP的保护关系,并下刷LSP表项以及MPLS转发表项。这时候,PLR才算正式具备了FRR能力。

    MP节点是主LSPBypass LSP的汇聚点,一定是Bypass LSP的尾节点,当然也可以是主LSP的尾节点。在FRR切换之前,MP节点和普通节点功能相同,不需要做特殊处理。

        FRR切换之后,头节点、PLR节点、MP节点各需要完成那些工作?

    FRR切换之后,头节点在收到PLR节点发送的Path Error消息之后,重新进行CSPF计算,建立新隧道LSP。在新的LSP建立之前,老的LSP不会删除。当新的LSP建立之后,头节点发送Path Tear消息拆除老的LSP。如果新的LSP和旧的LSP部分路径相同,则在这些路径上需要重复为新旧CRLSP预留带宽,造成带宽资源的浪费。为此提出了make-before-break机制,它是一种在尽可能不丢失数据,也不占用额外带宽的前提下改变MPLS TE隧道的机制。RSVP-TE协议在建立LSP隧道时,有两种资源预留方式。一种是为每个发送者单独预留资源,同一会话中的不同发送者不能共享资源,该资源预留方式称为Fixed-Filter。另外一种方式是为同一个会话中的不同发送者预留同一个资源,不同发送者之间可以共享资源,该资源预留方式称为Shared-Explicitmake-before-break机制就是通过Shared-Explicit资源预留方式实现的。

    FRR切换之后,PLR要做协议层、转发层两方面的工作。PLR检测链路或者节点故障后进行FRR切换,首先会通知MPLS转发层面,把数据流量切换到Bypass隧道上,协议报文也要通过Bypass隧道转发到MP节点。接着通知协议层向上游节点发送Path Error消息,通知头节点重新建立新隧道LSP,同时更新LSP对应的PSBRSB信息,Path消息中的Local Protection In Use标志位置位。当新的主LSP建立之后,PLR节点才把数据流量以及协议报文重新切换到主LSP隧道上,并且清除相应的标志位。

    FRR切换之后,MP节点收到Path消息的入接口和Hop地址发生了变化,直接更新本地PSB中的Hop地址和入接口,Hop地址为PLR发送Path消息的出接口地址。

    2.2.3  举例说明

    举例说明:

    5 TE FRR 举例组网图

    如上组网图中建立两条隧道:

    主隧道路径为R1->R2->R3

    保护隧道路径为R2->R4->R3,其中R2PLR节点,R3MP节点

    R1_RouterID1.1.1.1          R2_RouterID1.1.1.2         

    R4_RouterID1.1.1.4        R3_RouterID1.1.1.3

    PLR节点是TE FRR功能的关键节点,大部分工作是由PLR节点完成的。

    Ø  在主备隧道绑定之后,FRR切换之前,PLR节点发送的协议报文

    PLR节点向上游节点R1发送Resv消息,其RRO对象中的Label子对象以及IPv4子对象中的Local Protection Available标志位置1。具体信息如下:

    6 FRR切换之前,Resv消息中的RRO对象

    PLR节点向下游节点R3发送Path消息,其RRO对象中的IPv4子对象以及Label子对象中的Local Protection Available标志位置1。具体信息如下:

    7 FRR切换之前,Path消息中的RRO对象

        PLR节点上,Bypass LSP和普通LSP一样,不需要特殊处理。

    Ø  FRR切换之后,PLR节点的FRR处理过程

    R2R3之间发生链路路障时,PLR节点就会响应FRR切换事件,把数据流量,协议报文切换到旁路LSP上,同时向PLR节点向上游节点发送Path Error消息,通知头节点重新建立新隧道LSPPLR节点会继续向下游节点发送Path消息,Path消息是通过Bypass LSP 标签转发到MP节点,其RRO对象中IPv4子对象中的Local Protection In Use标志位置1PLR节点向下游节点发送的Path消息报文如下:

    8 FRR切换之后,PLR节点向下游节点发送的Path消息

    PLR节点上,对比FRR切换前后LSP信息,Bypass In Use标志位由Not Used变为In Use

    9 PLR节点上,FRR切换前后LSP详细信息对比图

    PLR节点上,对比FRR切换前后PSB信息块,Next Hop地址、出接口发生了变化。Next Hop地址变为实际发送物理接口地址,出接口变为Bypass隧道,同时增加了PLR In used信息。

    10 PLR节点上,FRR切换前后PSB信息对比图

    PLR节点上,对比FRR切换前后RSB信息块,只有RRO-IPAddress地址发生了变化。

    11 PLR节点上,FRR切换前后RSB信息对比图

    MP节点上,对比FRR切换前后PSB信息块,其Previous Hop、入接口发生了变化。

    12 MP节点上,FRR切换前后PSB信息对比图

    头节点收到Path Error消息之后,重新进行CSPF计算,建立新隧道LSP,在新的LSP建立之前,老的LSP不会删除。这段期间,头节点会发送分别对应新老LSP的两条Path消息,同样下游节点会逐跳向上游节点发送Resv消息,由于新、老LSP其实是一个隧道,就用一条Resv消息回应两条Path消息,具体内容如下:

    13 FRR切换之后,PLR节点发送的Resv消息

    LSP ID等于5对应的是老LSPLSP ID等于6对应的是新LSP。头节点当新的LSP建立之后,数据报文就通过新的LSP隧道进行转发,同时发送Path Tear消息删除老LSPPLR节点从新LSP隧道收到的数据报文从新LSP隧道转发,从老的LSP隧道收到的数据报文从备份隧道转发。PLR节点收到Path Tear消息之后,先通过备份LSP向下游发送Path Tear消息,然后去绑定老LSP和备份LSP之间的绑定关系,同时拆除老的LSP,后续不再通过备份LSP隧道转发数据,TE FRR回切过程完成。

    2.3      链路保护和节点保护

    TE FRR根据保护对象不同又可以分为链路保护和节点保护。

    如下图所示,当PLR节点和MP节点之间有直接链路连接,当这条链路失效之后,PLR节点把流量切换到备份LSP,这种组网方式称为链路保护。

    14 链路保护

    如下图所示,当PLR节点和MP节点之间有一台设备连接,当该设备失效时,PLR节点把流量切换到备份LSP,这种组网方式称为节点保护。

    15 节点保护

    在头节点使能FRR能力之后,下游节点向上游节点发送的RESV消息中的RRO对象中包含所有下游节点对应的Label子对象,其Local Protection Available标志位置1。图16是图15PLR节点收到的下游节点1.1.1.11发送的RRO对象,从该RRO对象可知,PLR节点的直连节点是1.1.1.11,出标签是69249,非直连的下一跳节点是1.1.1.10,出标签是2287。当在PLR节点上主LSP经过的出接口上配置备份隧道时,PLR节点根据备份隧道的目的地址来确定MP节点,再根据MP节点找到FRR切换后的内层标签。如果MP节点是1.1.1.11,即直连下一跳节点,FRR切换需使用的内层标签是其分配的标签69249,这种情况属于链路保护;如果MP节点是1.1.1.10,是非直连下一跳节点,FRR切换需使用的内层标签是其分配的标签2287,这种情况属于节点保护。最后,在PLR节点上,主备LSP形成绑定关系,下刷控制平面和数据平面,为主LSP链路故障或者节点故障进行TE FRR切换做好了准备工作。

    16 RRO对象

        我们可以将链路保护看成一种特殊的节点保护,所以不管节点保护还是链路保护,它们的实现原理是一样的,而在PLR节点上的配置也没有区别,就是在PLR节点主LSP出接口上手工配置保护隧道。主隧道和保护隧道能否形成主备关系,还需要判断保护隧道可用带宽,如果保护隧道的可用带宽大于等于主隧道带宽,主隧道和保护隧道形成主备关系,否则主隧道和保护隧道不能形成主备关系。

    2.4      TE FRR切换之后,新LSP建立之前数据转发过程

        TE FRR不管是链路保护还是节点保护都需要结合BFD检测机制或者RSVP Hello机制对主LSP进行故障检测,来达到TE FRR的快速切换。PLR节点检测到主LSP发生故障之后,会直接把流量切换到备份隧道转发,尽可能的减少数据丢包。

        TE FRR节点保护方式举例说明TE FRR切换之后,新LSP建立之前的数据转发过程。

    17 TE FRR切换之后,新LSP建立之前的数据转发过程

    FRR切换之前,数据报文通过主LSP进行转发,转发路径是5.5.5.5->1.1.1.12->1.1.1.11->1.1.1.10。在PLR节点上,出方向的数据报文只需封装一层MPLS标签,标签值就是下游节点1.1.1.11向上游PLR节点分配的标签1060。当BFD或者RSVP Hello机制检测到节点故障后,PLR节点进入TE FRR节点保护流程,把主LSP上的MPLS数据报文以及协议报文在BypassSP隧道内转发。如图17所示,主备LSP会合节点即MP节点是PLR节点的非直连下一跳节点是节点保护方式,此时,PLR节点转发报文有两层标签,其内层标签是MP节点1.1.1.10向上游节点1.1.1.11分配的标签1040,外层标签是备份LSP对应的出标签1142

    从头节点5.5.5.5上指定源地址7.1.1.1 Ping MP节点上的loopback地址58.4.0.1FRR切换之后,PLR节点在出接口G0/1转发的报文截图如下:

    18 FRR切换之后,PLR节点转发的报文截图

    3      MPLS TE FRR小结

        本文详细讲解了Facility方式的TE FRR实现细节,再重新总结一下PLR节点在FRR切换前后的主要变化:

        主备LSP绑定之后,FRR切换前:

        PLR节点上,主备LSP已经形成了绑定关系,并在控制平面,数据平面下刷主备LSP绑定关系以及相关数据信息。此时,PLR节点发送数据报文通过主LSP发送,封装一层MPLS标签。

        当链路故障或者节点故障导致FRR切换后:

    PLR节点上,主LSP控制平面信息保持不变,只是其Path消息走Bypass LSP进行转发,同时Path消息中Hop地址变为实际发送的物理接口地址,且RRO本地出接口HOPFlagLocal Protection in use位置1。此时,PLR节点通过备份隧道发送数据报文,封装双层MPLS标签,其内层标签是主LSP对应的出标签,外层标签是Bypass LSP对应的出标签。