CN101562575B - Mpls te frr快速切换的方法和装置 - Google Patents
Mpls te frr快速切换的方法和装置 Download PDFInfo
- Publication number
- CN101562575B CN101562575B CN2009101435705A CN200910143570A CN101562575B CN 101562575 B CN101562575 B CN 101562575B CN 2009101435705 A CN2009101435705 A CN 2009101435705A CN 200910143570 A CN200910143570 A CN 200910143570A CN 101562575 B CN101562575 B CN 101562575B
- Authority
- CN
- China
- Prior art keywords
- list item
- software list
- item
- point
- hardware table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种MPLS TE FRR快速切换的方法和装置,该方法包括以下步骤:所述本地修复节点创建与硬件表项对应的软件表项,所述软件表项为所述硬件表项的映像;所述本地修复节点根据所述硬件表项通过所述主隧道发送消息;当所述主隧道发生故障时,所述本地修复节点根据所述备份隧道的属性对所述软件表项进行修改,将所述修改后的软件表项通过直接内存访问DMA方式写入所述硬件表项在硬件中的存储空间,替换所述硬件表项;所述本地修复节点根据所述替换后的硬件表项切换到所述备份隧道,通过所述备份隧道继续发送消息,实现MPLS TE FRR的快速切换。本发明中,通过在本地修复节点中增加软件表项,实现MPLS TE FRR快速切换,避免业务流量丢失。
Description
技术领域
本发明涉及通信领域,尤其涉及一种MPLS TE FRR快速切换的方法和装置。
背景技术
传统的路由器选择最短的路径作为路由,不考虑带宽等因素,这样,即使某条路径发生拥塞,路由器也不会将流量切换到其他的路径上,在网络流量大的情况下,将会导致网络流量的严重阻塞、以及网络通信的长时间中断。
MPLS(Multiprotocol Label Switching,多协议标签交换)TE(TrafficEngineering,流量工程)通过将流量工程技术与MPLS技术相结合,可以根据MPLS TE网络中网络资源的分布,提供网络设备到达目的网络设备的LSP(Label Switching Path,标签交换路径)隧道,该LSP隧道包括若干LSP路径。具体的,在网络资源紧张的情况下,MPLS TE可以通过对网络带宽等网络资源的判断,建立最短路径以外的路径,避免通过最短路径发送消息时产生的网络阻塞。
网络设备利用MPLS TE建立LSP隧道需要四个部分:A、搜集网络信息,现有技术中网络设备利用MPLS TE建立LSP隧道时,使用OSPF(OpenShortest Path First,开放式最短路径优先)TE获取网络信息;B、计算LSP隧道通过的路径,本部分可以通过CSPF根据A中搜集的网络信息计算获得;C、建立LSP隧道,本部分可以利用RSVP(Resource reServation Protocol,资源预留协议)TE来实现;D、通过上述建立的LSP隧道发送报文。
但是,MPLS TE在使用过程中也存在一些问题,例如:对于传统的IP网络,当局部路由失效的时候,如果到同一个目的地还有其他路由可以使用,报文会按照这些路由进行转发,在失效引起的路由变化扩散到全网之前,仅靠这种机制就可以比较快速地在局部实现失效保护;而对于MPLS TE网络, LSP隧道的建立一般是通过RSVP协议按照DOD的方式完成的,在LSP隧道的头节点,CSPF利用路由信息计算出域内的所有路由,RSVP按照这个路径建立LSP隧道,当网络中有局部失效时,需要重建整条LSP隧道。而在失效引起的路由改变扩散到头节点之前,CSPF无法重新计算出有效的路径;另外,局部失效可能会引起网络中多条LSP隧道的重建,这样一来,利用重新计算出来的路径建立LSP隧道的过程中,出现带宽不够等问题的机会比较大,因此,MPLS TE网络从局部失效中恢复的时间会比较长,更需要一种能快速响应失效的机制。
为了解决上述问题,使MPLS TE网络可以迅速从局部失效中恢复,引入了FRR(Fast ReRoute,快速重路由)。MPLS TE FRR是MPLS TE中用于链路保护和节点保护的机制,当LSP隧道中的LSP或者节点发生故障时,PLR(Point ofLocal Repair,本地修复节点)可以将流量从保护链路绕过发生故障的链路或者节点继续发送,使LSP隧道头节点向尾节点发送的数据不至于中断,同时LSP隧道的头节点还可以在数据传输不受影响的同时发起主LSP隧道的重建。
MPLS TE FRR的基本原理是用一条预先建立的LSP来保护一条或多条LSP以及LSP节点。预先建立的LSP称为快速重路由LSP或者备份LSP,被保护的LSP称为主LSP,备份LSP所在的LSP隧道可以称为备份LSP隧道。MPLS TE FRR的最终目的就是利用快速重路由LSP绕过发生故障的链路或者节点,从而达到保护主路径的功能。
MPLS TE实现快速重路由有两种方式:
Detour(绕路)方式:分别为每一条被保护LSP提供保护,为每一条被保护LSP创建一条保护路径,该保护路径称为Detour LSP。
Bypass(绕过)方式:用一条保护路径保护多条LSP,该保护路径称为Bypass LSP。
Detour方式实现了每条LSP的保护,相对于Bypass方式需要更大的开销,在实际使用中,Bypass方式被更广泛使用。Bypass方式的快速重路由如图1所示,实线为主LSP,虚线为Bypass LSP,当链路RTB-RTC失效或节点RTC 失效时,主LSP上的数据会切换到Bypass LSP上。
但是,当前的MPLS TE网络中,LSP隧道中的各节点不支持通过硬件同时建立主隧道、备用隧道,不支持MPLS TE FRR的硬件实现。
现有技术中,本地修复节点在ASIC(Application Specific IntegratedCircuit,专用集成电路)芯片中存储有下一跳转发硬件表项,简称为硬件表项,该硬件表项中包括很多硬件参数组,每一硬件参数组中包括链路的出端口DPORT(出端口)信息、出VLAN(Virtual Local Area Network,虚拟局域网)信息、转发后的DMAC(目的MAC)地址以及SMAC(源MAC)地址信息。当LSP头节点到LSP尾节点的主LSP隧道中出现局部失效时,例如某条LSP或某个LSP节点故障时,本地修复节点只能通过逐条改写硬件表项的方式进行FRR切换。具体的,硬件表项中包括很多条硬件参数组,例如可以为16k条,每一条硬件参数组包括该本地修复节点的出端口DPORT信息、出VLAN信息、转发后的DMAC以及SMAC信息。本地修复节点接收上一跳节点发送的消息后,需要根据该消息对硬件表项中的所有硬件参数组逐条修改,然后根据修改后的硬件参数组切换到备份LSP。
基于上述内容,发明人认为现有技术中进行MPLS TE FRR的过程中,存在下述问题:
当本地修复节点需要执行MPLS TE FRR时,本地修复节点逐条改写硬件表项的硬件参数组,导致MPLS TE FRR切换的时间很长,进而导致LSP头节点到LSP尾节点的业务流量长时间中断,业务流量丢失,不能保护业务流量在LSP头节点与LSP尾节点之间的正常发送,给用户造成很大的影响。
发明内容
本发明提供了一种MPLS TE FRR快速切换的方法和装置,使用DMA的方式修改硬件,实现FRR的快速切换。
本发明提供一种MPLS TE FRR快速切换的方法,应用于LSP隧道的本地修复节点,所述LSP隧道作为主隧道具有相应的备份隧道,所述本地修复节点用于控制所述主隧道向所述备份隧道的切换,所述本地修复节点内包括硬件表项,用于存储向下一跳LSP节点发送消息需要的路由信息,包括以下 步骤:
所述本地修复节点创建与所述硬件表项对应的软件表项,所述软件表项为所述硬件表项的映像;所述本地修复节点根据所述硬件表项通过所述主隧道发送消息;
当所述主隧道发生故障时,所述本地修复节点根据所述备份隧道的属性对所述软件表项进行修改,将所述修改后的软件表项通过直接内存访问DMA方式写入所述硬件表项在硬件中的存储空间,替换所述硬件表项;
所述本地修复节点根据所述替换后的硬件表项切换到所述备份隧道,通过所述备份隧道继续发送消息,实现MPLS TE FRR的快速切换。
所述软件表项具有自动模式与非自动模式;所述本地修复节点创建与硬件表项对应的软件表项之后,还包括:
所述本地修复节点设置根据所述软件表项的模式修改所述硬件表项的策略,包括:
获取所述软件表项的模式,当所述软件表项为自动模式时,所述本地修复节点首先修改所述硬件表项,并根据对所述硬件表项的修改对所述软件表项进行相同的修改,保持所述软件表项与所述硬件表项的一致;
获取所述软件表项的模式,当所述软件表项为非自动模式时,所述本地修复节点首先根据所述备份隧道的属性修改所述软件表项,当所述软件表项修改完毕后,所述本地修复节点使用所述修改后的软件表项替换所述硬件表项。
所述本地修复节点创建与硬件表项对应的软件表项之后,将所述软件表项初始化为自动模式;
当所述主隧道发生故障时,所述本地修复节点将所述软件表项的模式修改为非自动模式。
当所述主隧道发生故障时,所述本地修复节点根据所述备份隧道的属性对所述软件表项进行修改之前,还包括:
所述本地修复节点对所述软件表项加锁,使所述软件表项只接受所述本地修复节点根据所述备份隧道的属性对所述软件表项进行的修改;
当所述本地修复节点对所述软件表项的修改完成之后,所述本地修复节点对所述软件表项解锁,使所述软件表项可以接受所述本地修复节点对所述软件表项的其他修改。
所述将修改后的软件表项DMA到所述硬件表项在硬件中的存储空间之前还包括:
所述本地修复节点对所述DMA进程加锁,使所述软件表项替换所述硬件表项的过程不被中断直至所述DMA进程结束。
当所述软件表项为自动模式时,所述本地修复节点首先修改所述硬件表项,并根据对所述硬件表项的修改对所述软件表项进行相同的修改具体为:
所述本地修复节点保存在硬件表项中进行修改的参数的标识,根据所述标识在软件表项中找到相应的参数进行相同的修改。
所述本地修复节点设置根据所述软件表项的模式修改所述硬件表项的策略,当所述软件表项为自动模式时,还可以为:
所述本地修复节点首先修改所述软件表项,并根据对所述软件表项的修改对所述硬件表项进行相同的修改,保持所述软件表项与所述硬件表项的一致。
本发明提供一种MPLS TE FRR快速切换的装置,应用于LSP隧道的本地修复节点,所述LSP隧道作为主隧道具有相应的备份隧道,所述装置用于控制所述主隧道向所述备份隧道的切换,所述装置内包括硬件表项,用于存储向下一跳节点发送消息需要的路由信息,包括:
软件表项创建单元,用于创建与所述硬件表项对应的软件表项,所述软件表项为所述硬件表项的映像;所述本地修复节点根据所述硬件表项通过所述主隧道发送消息;
替换单元,与所述软件表项创建单元连接,用于当所述主隧道发生故障时,根据所述备份隧道的属性对所述软件表项创建单元创建的软件表项进行修改,将所述修改后的软件表项通过直接内存访问DMA方式写入所述硬件表项在硬件中的存储空间,替换所述硬件表项;
FRR切换单元,与所述替换单元连接,用于根据所述替换单元替换后的 硬件表项切换到所述备份隧道,通过所述备份隧道继续发送消息,实现MPLSTE FRR的快速切换。
所述软件表项具有自动模式与非自动模式;
所述软件表项创建单元还用于设置根据所述软件表项的模式修改所述硬件表项的策略,包括:
获取所述软件表项的模式,当所述软件表项为自动模式时,首先修改所述硬件表项,并根据对所述硬件表项的修改对所述软件表项进行相同的修改,保持所述软件表项与所述硬件表项的一致;
获取所述软件表项的模式,当所述软件表项为非自动模式时,首先根据所述备份隧道的属性修改所述软件表项,当所述软件表项修改完毕后,使用所述修改后的软件表项替换所述硬件表项。
所述软件表项创建单元还用于创建与硬件表项对应的软件表项之后,将所述软件表项初始化为自动模式;
所述替换单元还用于:当所述主隧道发生故障时,将所述软件表项的模式修改为非自动模式。
本发明提供的装置,还包括:
加锁单元,与所述替换单元连接,用于当所述主隧道发生故障时,所述替换单元根据所述备份隧道的属性对所述软件表项进行修改之前,对所述软件表项加锁,使所述软件表项只接受所述本地修复节点根据所述备份隧道的属性对所述软件表项进行的修改;
解锁单元,与所述替换单元和加锁单元连接,用于当所述替换单元对所述软件表项的修改完成之后,对所述软件表项解锁,使所述软件表项可以接受所述本地修复节点对所述软件表项的其他修改。
所述加锁单元还用于:在所述替换单元将修改后的软件表项DMA到所述硬件表项在硬件中的存储空间之前,对所述DMA进程加锁,使所述软件表项替换所述硬件表项的过程不被中断,直至所述DMA进程结束。
与现有技术相比,本发明至少具有以下优点:
本发明中,在MPLS TE网络中LSP隧道的本地修复节点中增加一个与硬件表项相应的软件表项,在本地修复节点进行FRR切换时,首先修改该软件表项中的相关配置,然后将该软件表项DMA到硬件表项,实现硬件表项的快速修改,进而根据硬件表项进行FRR切换,从而实现MPLS TE FRR快速切换,避免业务流量丢失。
附图说明
图1是现有技术中快速重路由的应用示意图;
图2为本发明提供的MPLS TE FRR快速切换的方法的流程示意图;
图3为发明一应用场景提供的MPLS TE FRR快速切换的方法的流程示意图;
图4为在图3所示的应用场景提供的方法中,本地修复节点执行FRR切换的流程示意图;
图5为本发明一应用场景中提供的快速重路由的应用示意图;
图6为在图5所示的应用场景提供的方法中,利用DMA实现MPLS TEFRR快速切换的流程示意图;
图7为本发明提供的MPLS TE FRR快速切换的装置的结构示意图;
图8为本发明提供的MPLS TE FRR快速切换的装置的另一结构示意图。
具体实施方式
本发明的核心思想是:LSP隧道中的本地修复节点建立软件表项,该软件表项为本地修复节点转发LSP头节点向LSP尾节点发送的消息所需要的硬件表项的映像,即该软件表项与硬件表项的结构、内容完全一致。本地修复节点通过LSP头节点与LSP尾节点之间的LSP隧道转发消息,当MPLS TE网络出现局部失效时,本地修复节点与下一跳节点之间的LSP或者下一跳节点发生故障,导致LSP头节点通过主LSP隧道向LSP尾节点的报文发送失败;此时,本地修复节点进行MPLS TE FRR切换,根据预先建立的备份LSP修改软件表项。当软件表项修改完成后,本地修复节点将软件表项DMA(DirectMemory Access,直接内存访问)到硬件表项,替换原来的硬件表项,迅速完 成硬件表项进行FRR切换需要的修改,然后,本地修复节点根据该硬件表项的修改切换到备用LSP,通过备用LSP继续发送报文,在通过该备用LSP发送报文的同时,本地修复节点向LSP头节点发送报文,通知LSP头节点主LSP隧道故障,LSP头节点进行主LSP隧道的重新建立。
具体的,本发明提供一种MPLS TE FRR快速切换的方法,应用于LSP隧道的本地修复节点,所述LSP隧道作为主隧道具有相应的备份隧道,所述本地修复节点用于控制所述主隧道向所述备份隧道的切换,所述本地修复节点内包括硬件表项,用于存储向下一跳LSP节点发送消息需要的路由信息,如图2所示,包括以下步骤:
步骤s201,所述本地修复节点创建与硬件表项对应的软件表项,所述软件表项为所述硬件表项的映像;所述本地修复节点根据所述硬件表项通过所述主隧道发送消息;
步骤s202,当所述主隧道发生故障时,所述本地修复节点根据所述备份隧道的属性对所述软件表项进行修改,将所述修改后的软件表项通过直接内存访问DMA方式写入所述到所述硬件表项在硬件中的存储空间,替换所述硬件表项;
步骤s203,所述本地修复节点根据所述替换后的硬件表项切换到所述备份隧道,通过所述备份隧道继续发送消息,实现MPLS TE FRR的快速切换。
通过采用本发明提供的方法,在MPLS TE网络中LSP隧道的本地修复节点中增加一个与硬件表项相应的软件表项,在本地修复节点进行FRR切换时,首先修改该软件表项中的相关配置,然后将该软件表项DMA到硬件表项,实现硬件表项的快速修改,进而根据硬件表项进行FRR切换,从而实现MPLS TEFRR快速切换,避免业务流量丢失。
下面结合具体应用场景详细介绍本发明提供的MPLS TE FRR快速切换的方法,该方法应用于连接LSP头节点与LSP尾节点的LSP隧道中的本地修复节点,如图3所示,包括以下步骤:
步骤s301,本地修复节点根据硬件表项通过LSP头节点与LSP尾节点之 间的主LSP隧道向LSP尾节点发送消息。
LSP头节点与LSP尾节点之间可以包括多个中间节点,其中包括本地修复节点,在主LSP隧道中,本地修复节点与下一跳LSP节点之间具有主LSP,本地修复节点同时还在备份LSP隧道中,并与备份LSP隧道中的下一跳LSP节点之间具有备份LSP。
正常情况下,本地修复节点通过主LSP向下一跳LSP节点发送消息,具体的,本地修复节点通过主LSP接收上一跳LSP节点发送的消息后,根据该消息中的DIP(Destination IP,目的IP)查找预设的路由表,如表1所示,不同的DIP可以对应相同的或不同的索引INDEX,每一INDEX对应一硬件参数组。本地修复节点根据该路由表获取相应的索引,该索引指向ASIC芯片中的硬件表项中的一条硬件参数组,本地修复节点根据该硬件参数组中的DMAC信息、SMAC信息以及VLAN信息修改从上一跳LSP节点接收到的消息中的DMAC信息、SMAC信息以及VLAN信息,并根据该硬件参数组中的DPORT信息将修改后的消息向下一跳LSP节点发送,该消息中携带DIP信息以及上述修改后的DMAC信息、SMAC信息以及VLAN信息,下一跳LSP节点根据接收的消息中携带的各信息继续向下一跳LSP节点发送消息,直至到达LSP尾节点。
表1
步骤s302,本地修复节点在系统初始化时,为硬件表项建立相应的软件表项。
本地修复节点在系统初始化时,在内存中为硬件表项建立相应的软件表 项,该软件表项的结构与硬件表项的结构完全相同,包括硬件表项的所有参数信息,例如链路的出端口DPORT信息、出VLAN信息、转发后的DMAC、SMAC信息等。与硬件表项存储于ASIC芯片不同,本地修复节点将软件表项存储于内存中。
本地修复节点还设置软件表项与硬件表项之间的读写关系,具体的,本地修复节点中设置表项监测功能与表项修改功能,当监测到硬件表项中的参数信息的改变时,本地修复节点可以根据硬件表项的参数信息的改变,在软件表项中进行相同的修改,使硬件表项与软件表项中的参数信息保持一致。
本地修复节点还可以设置软件表项的模式为自动模式和非自动模式:自动模式下,本地修复节点监测到硬件表项中的参数信息的改变时,在软件表项中进行相同的修改;非自动模式下,本地修复节点不监测硬件表项中的参数信息的改变,只修改软件表项。
本应用场景中,软件表项与硬件表项之间的读写关系还可以为:本地修复节点中设置表项监测功能与表项修改功能,当监测到软件表项中的参数信息的改变时,本地修复节点可以根据软件表项的参数信息的改变,在硬件表项中进行相同的修改,使硬件表项与软件表项中的参数信息保持一致。
步骤s303,本地修复节点需要对硬件表项进行修改时,首先判断软件表项的模式是否为自动模式;若判断结果为软件表项的模式为非自动模式,则执行步骤s304;否则,执行步骤s305。
步骤s304,本地修复节点只对软件表项进行修改,流程结束。
由于此时软件表项的模式为非自动模式,因此,本地修复节点不需要根据软件表项的修改对硬件表项进行相同的修改。
软件表项的模式只有在需要进行FRR切换时才被配置为非自动模式,如步骤s306中的描述,在FRR切换时,将软件表项直接DMA到ASIC芯片中硬件表项所在的存储空间,替换原硬件表项,从而保持软件表项与硬件表项的一致性。
步骤s305,本地修复节点对硬件表项进行修改,并根据硬件表项的修改对软件表项进行相同的修改,保持软件表项与硬件表项的一致性。
具体的,本地修复节点获取硬件表项需要修改的参数,在硬件表项中进行相应的修改,并保存进行修改的参数的INDEX,然后根据步骤s302中软件表项与硬件表项之间的读写关系、以及上述INDEX,在软件表项中修改相应的参数。
本应用场景中,以本地修复节点首先对硬件表项进行修改后,根据预设的读写关系对软件表项进行相同的修改为例,说明硬件表项与软件表项之间的一致性;本地修复节点还可以首先对软件表项进行修改,获取软件表项中被修改的参数的INDEX,然后根据预设的读写关系以及该INDEX修改硬件表项中相应的参数。
步骤s306,当LSP头节点与LSP尾节点之间的主LSP隧道发生故障时,本地修复节点执行FRR切换,切换到备份LSP继续发送消息。
当本地修复节点执行FRR切换时,本地修复节点将软件表项的模式修改为非自动模式,根据备份LSP的DPORT信息、出VLAN信息、转发后的DMAC、SMAC信息等修改软件表项中相应的参数。当上述修改完毕后,本地修复节点将软件表项DMA到硬件表项在ASIC芯片中的存储空间,替换原来的硬件表项。由于软件表项与硬件表项的一致性,采用这种方式修改后的硬件表项与原来的硬件表项在结构上完全一致,只是修改了原硬件表项中的DPORT信息、出VLAN信息、DMAC信息以及SMAC信息等,不会对网络的使用产生其它副作用。本地修复节点根据修改后的硬件表项中的参数信息切换到备份LSP,通过备份LSP继续发送报文。
具体的,当LSP头节点与LSP尾节点之间的主LSP隧道发生故障时,本地修复节点执行FRR切换的过程如图4所示,包括以下步骤:
步骤s3061,当LSP头节点与LSP尾节点之间的主LSP隧道发生故障时,本地修复节点将软件表项设置为非自动模式。
根据本地修复节点对软件表项的模式设置,本地修复节点在非自动模式下对软件表项进行修改时,不需要根据修改的结果对硬件表项进行同样的修改。
步骤s3062,本地修复节点对软件表项进行加锁,根据备份LSP修改软件表项中相应的参数。
由于本地修复节点根据备份LSP对软件表项进行参数修改的过程中,本地修复节点中的其他功能有可能同时也需要对软件表项进行修改,为了避免软件表项同时接收多个进程进行的修改,在进行FRR切换时,本地修复节点对软件表项进行加锁,然后再对软件表项进行修改,该修改完成之前,软件表项不接受其它进程进行的修改,例如对于软件表项中端口信息的修改等,从而保证软件表项中与FRR切换相应的表项修改的成功;该修改完成之后,本地修复节点对软件表项解锁,软件表项可以接受其它进程进行的修改。
本应用场景中,本地修复节点对软件表项的加锁可以采用多种方式,例如可以采用信号量的方式。信号量是用来控制多个进程对共享资源使用的计数器,具体的过程为:进程Process 1,创建一个全局变量g_semphore,初始值为0,本地修复节点对软件表项Shadow进行修改操作时,对g_semphore进行加加操作,即g_semphore加1,g_semphore=1;进程process 2,本地修复节点期望对软件表项进行其它操作时,首先判断g_semphore的值,判断g_semphore是否为0,如果不为0(g_semphore=1)则等待,并反复检查g_semphore的值;process 1,本地修复节点完成对软件表项的修改操作,对g_semphore进行减减操作,g_semphore减1,g_semphore=0;然后,当process2本地修复节点期望对软件表项进行其它操作时,例如修改软件表项中的一端口值,process 2检查到g_semphore=0,则对g_semphore进行加加操作,g_semphore=1,并对软件表项进行相应操作;在process 2的操作完成之前,g_semphore=1,其它进程对软件表项的操作需要等待,本次操作完成后,process 2将g_semphore进行减减操作,重新变为g_semphore=0,有利于其它进程对软件表项进行其它操作。
步骤s3063,本地修复节点将软件表项DMA到硬件表项,替换ASIC芯片中存储的硬件表项。
具体的,本地修复节点从内存中获取软件表项,根据硬件表项在ASIC芯片中的存储位置,将软件表项存储到该存储位置,覆盖原来的硬件表项,由 于软件表项与硬件表项在结构、大小等方面的一致性,这种覆盖不会影响ASIC芯片中的其它配置。覆盖完成以后,本地修复节点的硬件表项变为根据步骤s3062已完成修改的软件表项。
本应用场景中,本地修复节点对软件表项到ASIC芯片的DMA进程进行加锁,防止DMA进程中对软件表项或硬件表项的其他操作影响DMA进程,保证软件表项完全替换原来的硬件表项。若DMA进程发生中断,则会导致MPLS TE FRR的切换过程没有完成,可能会导致用户的业务流量一部分是通过主隧道转发,一部分通过备用隧道转发;当非法中断DMA进程发生时,造成了软件表项和硬件表项信息不一致,后续对硬件表项进行的操作可能会导致硬件系统崩溃。在本地修复节点将软件表项DMA到硬件表项的存储空间,替换原来的硬件表项后,本地修复节点对DMA进程进行解锁。
步骤s3064,本地修复节点将软件表项重新配置为自动模式。
本地修复节点将软件表项DMA到硬件表项所在的ASIC芯片中的存储空间后,将软件表项重新配置为自动模式,以保证后续软件表项与硬件表项在结构、内容等方面的一致性,为下一次FRR切换做准备。
步骤s3065,本地修复节点根据修改后的硬件表项切换到备份LSP,通过备份LSP继续发送消息,向LSP尾节点转发LSP头节点发送的消息,实现FRR切换。
步骤s3066,本地修复节点向LSP头节点发送消息,通知LSP头节点主LSP隧道发生故障,需要重新计算主LSP隧道。
本应用场景中,本地修复节点向LSP头节点发送消息通知LSP头节点主LSP隧道发生故障可以但并不限于发生在FRR切换以后,也可以在本地修复节点发现LSP头节点到LSP尾节点的主LSP隧道发生故障时,本地修复节点立刻向LSP头节点发送消息通知LSP头节点重新计算主LSP隧道。
步骤s307,LSP头节点重新计算主LSP隧道。
LSP头节点接收到本地修复节点发送的消息后,获知到达LSP尾节点的主LSP隧道发生故障,然后,LSP头节点重新计算主LSP隧道,计算成功后, LSP头节点将向LSP尾节点发送的消息通过重新计算得到的主LSP隧道发送,并向原主LSP隧道的各节点发送隧道拆除命令,拆除原主LSP隧道。
LSP头节点重新计算获得的主LSP隧道中配置新的本地修复节点,在新的主LSP隧道发生故障时,通过新的本地修复节点继续向LSP尾节点发送消息。
下面通过一具体应用场景介绍本发明提供的MPLS TE FRR快速切换的方法,如图5所示,本应用场景中,本地修复节点实现快速重路由的方式以Bypass方式为例,LSP头节点RTA到LSP尾节点RTD的LSP隧道中,RTB节点作为本地修复节点,通过与RTE之间的连接RTB-RTE-RTC,对LSP链路RTB-RTC进行保护。MPLS TE FRR切换之前,RTB通过主LSP隧道向RTD发送消息,具体的,如图6所示,包括以下步骤:
步骤s601,RTB在系统初始化时,为硬件表项建立相应的软件表项。
RTB在ASIC芯片中存储硬件表项,在内存中存储该硬件表项的shadow(映像),即与该硬件表项完全相同的软件表项。RTB设置该软件表项的模式为自动模式与非自动模式,当软件表项在自动模式时,RTB在对硬件表项进行修改后,对软件表项进行同样的修改;当软件表项为非自动模式时,RTB只修改软件表项。
其中,软件表项为非自动模式时,RTB对软件表项进行修改需要对软件表项加锁,即同时只允许一个进程对软件表项进行修改,保证软件表项与硬件表项的一致性。
步骤s602,当LSP链路RTB-RTC发生故障时,RTB执行FRR切换,切换到备份链路RTB-RTE-RTC继续发送消息。
RTB对软件表项进行加锁,根据RTE的VLAN信息、MAC信息等修改软件表项中相应的参数。修改完毕后,RTB将软件表项DMA到ASIC芯片中硬件表项所在的存储空间,覆盖原来的硬件表项,即修改后的软件表项作为新的硬件表项。RTB根据该新的硬件表项获取相应的DEPORT信息等向RTE发送消息,切换到备份链路RTB-RTE-RTC,实现FRR切换。
在RTB将该软件表项DMA到ASIC芯片的过程中,有可能会有其他更高优先级的进程出现,从而中断该DMA进程,为了防止这种情况,RTB对该软件表项的DMA进程进行加锁,即只有该DMA进程执行完毕后,使用同一资源的其他进程(例如对软件表项进行的其他修改)才能执行。
步骤s603,RTB向RTA发送消息,通知RTA重新计算主LSP隧道。
RTA接收RTB发送的消息后,获知主LSP隧道发生故障,重新计算主LSP隧道,计算成功后,通过新的主LSP隧道向RTD发送消息,拆除原主LSP隧道,并在新的主LSP隧道中配置新的本地修复节点。
本发明提供一种MPLS TE FRR快速切换的装置,应用于LSP隧道的本地修复节点,所述LSP隧道作为主隧道具有相应的备份隧道,所述装置用于控制所述主隧道向所述备份隧道的切换,所述装置内包括硬件表项,用于存储向下一跳节点发送消息需要的路由信息,如图7所示,包括:
软件表项创建单元11,用于创建与硬件表项对应的软件表项,所述软件表项为所述硬件表项的映像;所述本地修复节点根据所述硬件表项通过所述主隧道发送消息。
所述软件表项创建单元11创建的软件表项具有自动模式与非自动模式;该软件表项创建单元11还用于设置根据所述软件表项的模式修改所述硬件表项的策略,包括:
获取所述软件表项的模式,当所述软件表项为自动模式时,首先修改所述硬件表项,并根据对所述硬件表项的修改对所述软件表项进行相同的修改,保持所述软件表项与所述硬件表项的一致;
获取所述软件表项的模式,当所述软件表项为非自动模式时,首先修改所述软件表项,然后使用所述修改后的软件表项实时替换所述硬件表项。
在创建与硬件表项对应的软件表项之后,所述软件表项创建单元11将所述软件表项初始化为自动模式。
替换单元12,与所述软件表项创建单元11连接,用于当所述主隧道发生故障时,根据所述备份隧道的属性对所述软件表项创建单元11创建的软件表 项进行修改,将所述修改后的软件表项通过直接内存访问DMA方式写入所述硬件表项在硬件中的存储空间,替换所述硬件表项。
当所述主隧道发生故障时,所述替换单元12将所述软件表项的模式修改为非自动模式,然后根据上述软件表项创建单元11创建的策略首先根据所述备份隧道的属性修改所述软件表项,当所述软件表项修改完毕后,使用所述修改后的软件表项替换所述硬件表项。具体的,该替换单元12可以获取硬件表项在硬件中,例如ASIC芯片中的存储空间,将软件表项写入该存储空间,替换原来的硬件表项。
FRR切换单元13,与所述替换单元12连接,用于根据所述替换单元12替换后的硬件表项切换到所述备份隧道,通过所述备份隧道继续发送消息,实现MPLS TE FRR的快速切换。硬件表项中包括链路的出端口DPORT信息、出VLAN信息、转发后的DMAC地址以及SMAC地址信息等,FRR切换单元13根据LSP隧道的尾节点的地址信息选择相应的出端口DPORT通过备份隧道继续发送消息。
本发明提供的装置中,如图8所示,还可以包括:
加锁单元14,与所述替换单元12连接,用于当所述主隧道发生故障时,所述替换单元12根据所述备份隧道的属性对所述软件表项进行修改之前,对所述软件表项加锁,控制所述软件表项只接受所述本地修复节点根据所述备份隧道的属性对所述软件表项进行的修改;
解锁单元15,与所述替换单元12和加锁单元14连接,用于当所述替换单元12对所述软件表项的修改完成之后,对所述软件表项解锁,使所述软件表项可以接受所述本地修复节点对所述软件表项的其他修改。
所述加锁单元14还用于在所述替换单元12将修改后的软件表项DMA到所述硬件表项在硬件中的存储空间之前,对所述DMA过程加锁,控制所述软件表项替换所述硬件表项的过程不被中断,所述DMA过程结束时,由所述解锁单元15再对所述DMA过程解锁。
本应用场景中,对软件表项的加锁和对DMA过程的加锁可以但不限于使用同一个加锁单元,例如也可以使用两个加锁单元分别对软件表项和DMA过 程进行加锁;对于软件表项的解锁和对DMA过程的解锁相同,也可以采用两个解锁单元分别进行处理。
通过采用本发明提供的装置,在MPLS TE网络中LSP隧道的本地修复节点中增加一个与硬件表项相应的软件表项,在本地修复节点进行FRR切换时,首先修改该软件表项中的相关配置,然后将该软件表项DMA到硬件表项,实现硬件表项的快速修改,进而根据硬件表项进行FRR切换,从而实现MPLS TEFRR快速切换,避免业务流量丢失。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (12)
1.一种MPLS TE FRR快速切换的方法,应用于LSP隧道的本地修复节点,所述LSP隧道作为主隧道具有相应的备份隧道,所述本地修复节点用于控制所述主隧道向所述备份隧道的切换,所述本地修复节点内包括硬件表项,用于存储向下一跳LSP节点发送消息需要的路由信息,其特征在于,包括以下步骤:
所述本地修复节点创建与所述硬件表项对应的软件表项,所述软件表项为所述硬件表项的映像;所述本地修复节点根据所述硬件表项通过所述主隧道发送消息;
当所述主隧道发生故障时,所述本地修复节点根据所述备份隧道的属性对所述软件表项进行修改,将所述修改后的软件表项通过直接内存访问DMA方式写入所述硬件表项在硬件中的存储空间,替换所述硬件表项;
所述本地修复节点根据所述替换后的硬件表项切换到所述备份隧道,通过所述备份隧道继续发送消息,实现MPLS TE FRR的快速切换。
2.如权利要求1所述的方法,其特征在于,所述软件表项具有自动模式与非自动模式;所述本地修复节点创建与硬件表项对应的软件表项之后,还包括:
所述本地修复节点设置根据所述软件表项的模式修改所述硬件表项的策略,包括:
获取所述软件表项的模式,当所述软件表项为自动模式时,所述本地修复节点首先修改所述硬件表项,并根据对所述硬件表项的修改对所述软件表项进行相同的修改,保持所述软件表项与所述硬件表项的一致;
获取所述软件表项的模式,当所述软件表项为非自动模式时,所述本地修复节点首先根据所述备份隧道的属性修改所述软件表项,当所述软件表项修改完毕后,所述本地修复节点使用所述修改后的软件表项替换所述硬件表项。
3.如权利要求2所述的方法,其特征在于,所述本地修复节点创建与硬件表项对应的软件表项之后,将所述软件表项初始化为自动模式;
当所述主隧道发生故障时,所述本地修复节点将所述软件表项的模式修改为非自动模式。
4.如权利要求1所述的方法,其特征在于,当所述主隧道发生故障时,所述本地修复节点根据所述备份隧道的属性对所述软件表项进行修改之前,还包括:
所述本地修复节点对所述软件表项加锁,使所述软件表项只接受所述本地修复节点根据所述备份隧道的属性对所述软件表项进行的修改;
当所述本地修复节点对所述软件表项的修改完成之后,所述本地修复节点对所述软件表项解锁,使所述软件表项可以接受所述本地修复节点对所述软件表项的其他修改。
5.如权利要求1所述的方法,其特征在于,所述将修改后的软件表项通过直接内存访问DMA方式写入所述硬件表项在硬件中的存储空间之前还包括:
所述本地修复节点对DMA进程加锁,使所述软件表项替换所述硬件表项的过程不被中断直至所述DMA进程结束。
6.如权利要求2所述的方法,其特征在于,当所述软件表项为自动模式时,所述本地修复节点首先修改所述硬件表项,并根据对所述硬件表项的修改对所述软件表项进行相同的修改具体为:
所述本地修复节点保存在硬件表项中进行修改的参数的标识,根据所述标识在软件表项中找到相应的参数进行相同的修改。
7.如权利要求2所述的方法,其特征在于,所述本地修复节点设置根据所述软件表项的模式修改所述硬件表项的策略,可替换为,当所述软件表项为自动模式时,所述本地修复节点首先修改所述软件表项,并根据对所述软件表项的修改对所述硬件表项进行相同的修改,保持所述软件表项与所述硬件表项的一致;当所述软件表项为非自动模式时,所述本地修复节点首先根据所述备份隧道的属性修改所述软件表项,当所述软件表项修改完毕后,所述本地修复节点使用所述修改后的软件表项替换所述硬件表项。
8.一种MPLS TE FRR快速切换的装置,应用于LSP隧道的本地修复节点,所述LSP隧道作为主隧道具有相应的备份隧道,所述装置用于控制所述主隧道向所述备份隧道的切换,所述装置内包括硬件表项,用于存储向下一跳节点发送消息需要的路由信息,其特征在于,包括:
软件表项创建单元,用于创建与所述硬件表项对应的软件表项,所述软件表项为所述硬件表项的映像;所述本地修复节点根据所述硬件表项通过所述主隧道发送消息;
替换单元,与所述软件表项创建单元连接,用于当所述主隧道发生故障时,根据所述备份隧道的属性对所述软件表项创建单元创建的软件表项进行修改,将所述修改后的软件表项通过直接内存访问DMA方式写入所述硬件表项在硬件中的存储空间,替换所述硬件表项;
FRR切换单元,与所述替换单元连接,用于根据所述替换单元替换后的硬件表项切换到所述备份隧道,通过所述备份隧道继续发送消息,实现MPLSTE FRR的快速切换。
9.如权利要求8所述的装置,其特征在于,所述软件表项具有自动模式与非自动模式;
所述软件表项创建单元还用于设置根据所述软件表项的模式修改所述硬件表项的策略,包括:
获取所述软件表项的模式,当所述软件表项为自动模式时,首先修改所述硬件表项,并根据对所述硬件表项的修改对所述软件表项进行相同的修改,保持所述软件表项与所述硬件表项的一致;
获取所述软件表项的模式,当所述软件表项为非自动模式时,首先根据所述备份隧道的属性修改所述软件表项,当所述软件表项修改完毕后,使用所述修改后的软件表项替换所述硬件表项。
10.如权利要求9所述的装置,其特征在于,所述软件表项创建单元还用于创建与硬件表项对应的软件表项之后,将所述软件表项初始化为自动模式;
所述替换单元还用于:当所述主隧道发生故障时,将所述软件表项的模式修改为非自动模式。
11.如权利要求8所述的装置,其特征在于,还包括:
加锁单元,与所述替换单元连接,用于当所述主隧道发生故障时,所述 替换单元根据所述备份隧道的属性对所述软件表项进行修改之前,对所述软件表项加锁,使所述软件表项只接受所述本地修复节点根据所述备份隧道的属性对所述软件表项进行的修改;
解锁单元,与所述替换单元和加锁单元连接,用于当所述替换单元对所述软件表项的修改完成之后,对所述软件表项解锁,使所述软件表项可以接受所述本地修复节点对所述软件表项的其他修改。
12.如权利要求11所述的装置,其特征在于,所述加锁单元还用于:在所述替换单元将修改后的软件表项DMA到所述硬件表项在硬件中的存储空间之前,对DMA进程加锁,使所述软件表项替换所述硬件表项的过程不被中断,直至所述DMA进程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101435705A CN101562575B (zh) | 2009-06-04 | 2009-06-04 | Mpls te frr快速切换的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101435705A CN101562575B (zh) | 2009-06-04 | 2009-06-04 | Mpls te frr快速切换的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101562575A CN101562575A (zh) | 2009-10-21 |
CN101562575B true CN101562575B (zh) | 2012-01-04 |
Family
ID=41221201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101435705A Active CN101562575B (zh) | 2009-06-04 | 2009-06-04 | Mpls te frr快速切换的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101562575B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877677B (zh) * | 2010-06-25 | 2014-08-13 | 中兴通讯股份有限公司 | 一种多协议标签交换业务隧道切换的方法及系统 |
CN101931590A (zh) * | 2010-08-27 | 2010-12-29 | 中兴通讯股份有限公司 | 一种路由整合方法和装置 |
CN102291311B (zh) * | 2011-08-30 | 2017-03-29 | 中兴通讯股份有限公司 | 以太网接口保护方法及网络侧设备 |
CN103595628B (zh) * | 2013-11-13 | 2016-09-07 | 杭州华三通信技术有限公司 | 一种节约frr保护资源的方法及装置 |
CN107592260B (zh) * | 2017-09-22 | 2020-07-07 | 烽火通信科技股份有限公司 | 基于快速重路由的vpws bypass保护倒换方法及系统 |
CN110390969B (zh) * | 2019-06-28 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种实现原子写的方法和系统 |
CN112788637A (zh) * | 2020-06-29 | 2021-05-11 | 中兴通讯股份有限公司 | 隧道保护方法、边缘路由器和计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549521A (zh) * | 2003-05-07 | 2004-11-24 | 华为技术有限公司 | 一种在网络中实现通用多协议标记交换的方法 |
CN101030917A (zh) * | 2007-03-31 | 2007-09-05 | 华为技术有限公司 | 一种在vlan接口上实现mpls te的方法及装置 |
-
2009
- 2009-06-04 CN CN2009101435705A patent/CN101562575B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549521A (zh) * | 2003-05-07 | 2004-11-24 | 华为技术有限公司 | 一种在网络中实现通用多协议标记交换的方法 |
CN101030917A (zh) * | 2007-03-31 | 2007-09-05 | 华为技术有限公司 | 一种在vlan接口上实现mpls te的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101562575A (zh) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101562575B (zh) | Mpls te frr快速切换的方法和装置 | |
US10250459B2 (en) | Bandwidth on-demand services in multiple layer networks | |
CN1973486B (zh) | 在采用受保护链路的数据网络中避免微环的方法和装置 | |
CN103380605B (zh) | 使用ldp的mpls快速重新路由ldp-frr的方法和网络单元 | |
JP2022186731A (ja) | 伝送経路故障を処理するための方法と装置、及びシステム | |
CN101820395B (zh) | 基于mpls的路由信息配置和私网标签添加方法及装置 | |
JP7091923B2 (ja) | 転送装置、転送方法及びプログラム | |
CN106464589A (zh) | Ip网络中的部分软件定义网络交换机替换 | |
US20140269266A1 (en) | Method and system for path monitoring using segment routing | |
JP2013510459A (ja) | 分離的なパス計算アルゴリズム | |
JP2008061196A (ja) | 障害復旧システム、障害復旧方法、障害復旧プログラム | |
CN101499960B (zh) | 一种流量路径切换的方法和装置 | |
CN100373866C (zh) | 跨越多域连接的网络故障恢复的方法 | |
CN101192990A (zh) | 一种mpls网络中实现快速重路由的方法及设备及系统 | |
JP4547314B2 (ja) | 故障復旧方法および管理ノードならびに通信ノード | |
CN110086715B (zh) | 网络路径计算方法、装置和系统 | |
JP2011171980A (ja) | 経路制御装置、通信システムおよび経路計算方法 | |
Ko et al. | Dynamic failover for SDN-based virtual networks | |
CN102164094B (zh) | 多链路流量重分配的方法和装置 | |
CN103595628A (zh) | 一种节约frr保护资源的方法及装置 | |
JP4700662B2 (ja) | リルーティング方法、リルーティングプログラムおよびルーティング装置 | |
KR100431208B1 (ko) | 멀티프로토콜 레이블 스위칭 시스템의 결함을 허용하는명시적 경로 관리방법 및 장치 | |
CN105227479B (zh) | 快速重路由处理方法及装置 | |
JP4268149B2 (ja) | リソース管理装置および方法 | |
US20230283542A1 (en) | Control plane based enhanced TI-LFA node protection scheme for SR-TE paths |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |