发明内容
本发明提供了一种LSP保护方法和设备,用以维护MPLS业务的正常使用,保证网络的安全性和稳定性。
为了达到上述目的,本发明提供一种LSP保护方法,应用于MPLS网络,所述MPLS网络中的PLR和MP之间建立有至少两条属于不同网络拓扑的LSP,所述PLR中存储有对应主拓扑LSP和相应从拓扑LSP的Nhlfe,该方法包括:
PLR对主拓扑中自身与MP之间的LSP进行检测;
当所述PLR检测到主拓扑中自身与MP之间的LSP故障时,所述PLR将该主拓扑LSP的业务流量切换到相应的从拓扑LSP,并根据自身存储的对应该从拓扑LSP的Nhlfe进行报文转发。
所述Nhlfe中包括内层标签、外层标签、出接口以及下一跳地址;
所述PLR根据自身存储的该从拓扑LSP对应的Nhlfe进行报文转发,具体为:
所述PLR在待转发报文上依次打上相应的内层标签和外层标签,并将该待转发报文从相应的出接口转发给相应的下一跳设备。
所述PLR根据自身存储的该从拓扑LSP对应的Nhlfe进行报文转发之后,还包括:
当中间节点设备接收到所述转发报文时,根据自身存储的标签交换表项对所述转发报文的外层标签进行标签交换,并将标签交换后的转发报文发送给相应的下一跳设备;
当MP接收到所述转发报文时,所述MP对该转发报文进行标签弹出,并根据该转发报文的内层标签进行报文转发。
PLR检测主拓扑中自身与MP之间的LSP是否故障,具体为:
所述PLR对自身与MP之间的LSP进行BFD检测,以确定自身与MP之间的LSP是否故障。
所述PLR与MP之间的LSP故障包括:
PLR与MP之间的LSP的链路故障,或/和,PLR与MP之间的LSP的中间节点设备故障。
本发明实施例还提供一种路由设备,应用于MPLS网络,所述MPLS网络中的PLR和MP之间建立有至少两条属于不同网络拓扑的LSP,该路由设备包括:
存储模块,用于当所述路由设备作为本地修复点PLR时存储对应主拓扑LSP和相应从拓扑LSP的Nhlfe;
检测模块,用于当所述路由设备作为PLR时对主拓扑中所述路由设备到汇聚点MP之间的LSP进行检测;
报文转发模块,用于当所述检测模块检测到主拓扑中所述路由设备与MP之间的LSP故障时,将该主拓扑LSP的业务流量切换到相应的从拓扑LSP,并根据所述存储模块存储的该从拓扑LSP对应的Nhlfe进行报文转发。
所述Nhlfe中包括内层标签、外层标签、出接口以及下一跳地址;
所述报文转发模块具体用于,当所述路由设备作为PLR时,根据所述从拓扑LSP对应的Nhlfe将待转发报文上依次打上相应的内层标签和外层标签,并将该待转发报文从相应的出接口转发给相应的下一跳设备。
所述报文转发模块还用于,当所述路由设备作为中间节点设备时,根据所述路由设备存储的标签交换表项对接收到的转发报文的外层标签进行标签交换,并将标签交换后的转发报文发送给相应的下一跳设备;当所述路由设备作为MP时,对接收到的转发报文进行标签弹出,并根据该转发报文的内层标签进行报文转发。
所述检测模块具体用于,当所述路由设备作为PLR时对所述路由设备与MP之间的LSP进行BFD检测,以确定所述路由设备与MP之间的LSP是否故障。
所述PLR与MP之间的LSP故障包括:
PLR与MP之间的LSP的链路故障,或/和,PLR与MP之间的LSP的中间节点设备故障。
本发明的有益技术效果包括:
本发明实施例中,PLR和MP之间建立有至少两条属于不同网络拓扑的LSP,且源路由设备中存储有对应主拓扑LSP和相应从拓扑LSP的Nhlfe,当PLR检测到主拓扑中自身与MP之间的LSP故障时,该PLR将该主拓扑LSP的业务流量切换到相应的从拓扑LSP,并根据自身存储的对应该从拓扑LSP的Nhlfe进行报文转发,通过拓扑间LSP保护,维护了MPLS业务的正常使用,并保证了网络的安全性和稳定性。
具体实施方式
针对上述现有技术中存在的问题,本发明实施例提供了一种LSP保护的技术方案,应用于MPLS网络,该MPLS网络中的PLR(PointofLocalRepair,本地修复点)和MP(MergePoint,汇聚点)之间建立有至少两条属于不同网络拓扑的LSP,PLR中存储有对应主拓扑LSP和相应从拓扑LSP的Nhlfe(Nexthoplabelforwardingentry,下一跳标签转发表项),当PLR检测到主拓扑中自身到MP之间的LSP故障时,PLR将该主拓扑的业务流量切换到相应从拓扑,并根据自身存储的该从拓扑LSP对应的Nhlfe表项进行报文转发,通过拓扑间LSP保护,维护了MPLS业务的正常使用,保证了网络的安全性和稳定性。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图3所示,为本发明实施例提供的一种LSP保护方法的流程示意图,应用于MPLS网络,该MPLS网络中的PLR与MP之间建立有至少两条属于不同网络拓扑的LSP,且PLR中存储有对应主拓扑LSP和相应从拓扑LSP的Nhlfe,该方法可以包括以下步骤:
步骤301、PLR对主拓扑中自身与MP之间的LSP进行检测。
具体的,为了对PLR与MP之间的LSP进行保护,以维护MPLS业务的正常使用,可以对PLR使能BFD(BidirectionalForwardingDetection,双向转发检测)检测,以使PLR能够通过BFD检测的方式对自身与MP之间的LSP进行检测,确定PLR和MP之间的LSP是否故障。其中,通过BFD检测PLR与MP之间是否存在LSP故障仅仅是一种具体实现方式,也可以通过其他方式实现,在本发明中不做限定。
步骤302、当PLR检测到主拓扑中自身与MP之间的LSP故障时,该PLR将该主拓扑LSP的业务流量切换到相应的从拓扑LSP,并根据自身存储的该从拓扑LSP对应的Nhlfe进行报文转发。
具体的,在本发明实施例中,PLR和MP之间存在属于不同网络拓扑的多条LSP,为了维护MPLS业务的正常使用,保证网络的安全性和稳定性,可以两个不同网络拓扑进行绑定,并将其中一个网络拓扑中的一条LSP配置为另一个网络拓扑中的一条LSP的从拓扑LSP(备份LSP),并在PLR中配置对应主拓扑LSP和从拓扑LSP的Nhlfe。
当PLR检测到主拓扑中自身与MP之间的LSP故障时,该PLR将该主拓扑LSP的业务流量切换到相应的从拓扑LSP,并根据自身存储的对应该从拓扑LSP的Nhlfe进行报文转发。
其中,PLR中存储的Nhlfe中可以包括但不限于内层标签、外层标签、出接口以及下一跳地址。PLR接收到待转发报文后,在该报文上依次打上相应的内层标签和外层标签,并该待转发的报文从相应的出接口转发给相应的下一跳设备。
当中间节点设备接收到所述转发报文时,根据自身存储的标签交换表项对所述转发报文的外层标签进行标签交换,并将标签交换后的转发报文发送给相应的下一跳设备;
当MP接收到所述转发报文时,所述MP对该转发报文进行标签弹出,并根据内层标签进行报文转发。
在本发明实施例提供的技术方案中,PLR和MP之间的LSP故障可以包括以下两种情况:PLR与MP之间的LSP的链路出现故障,以及PLR与MP之间的LSP的中间节点设备出现故障。
下面结合附图分别对上述两种情况下的LSP保护方案进行描述。
情况一、链路故障(其中,PE1为本地修复点,PE2为汇聚点)
参见图4,在topo1中,R1和R5作为CE(CustomerEdge,用户网络边缘设备)设备,PE1和PE2作为PE(ProviderEdge,服务器提供者网络边缘设备)设备建立L3VPN或者L2VPN业务,PE1和PE2之间建立本地LDP会话,从而建立PE1和PE2之间的LSP。在topo2中,PE1和PE2之间通过PE3建立远程会话,用来保护topo1中的本地会话,同时PE1和PE3、PE3和PE2之间分别建立本地会话,在topo2中也形成PE1和PE2之间的LSP,用来保护topo1中PE1和PE2之间的LSP。
由于本地会话和远程会话分属不同的网络拓扑,因此分别形成LSP。当topo1中PE1设备和PE2设备之间发生了本地会话down事件(不管是转发层面还是控制平面导致的,以下会话down都包含这个含义)或链路故障,由topo2中的远程会话对topo1中的本地会话进行保护,业务流量也切换到topo2,从而保证会话不震荡的同时,快速完成流量切换。其中,为了响应流量快速切换,可以对PE1和PE2之间的LSP使能BFD检测,当检测到PE1和PE2之间的LSP出现故障时,快速切换到topo2中的备份LSP,保证MPLS业务不受影响。其具体实现如下:
参见图5,在topo1中,PE1和PE2之间有本地会话,自PE2->PE1分发标签,各设备形成的标签交换表项分别为NULL/6034(PE1)、6034/NULL(PE2)。在topo2中,PE1和PE3,PE3和PE2之间都建立本地会话,自PE2->PE3->PE1分发标签,各设备形成的标签转发表项分别为NULL/9036(PE1)、9036/1658(PE3)、1658/NULL(PE2)。由于PE1和PE2上topo1和topo2进行了绑定,PE1的控制平面分别生成主拓扑LSP和从拓扑LSP的Nhlfe表项,表项组织结构如表1所示:
表1
其中,上述MainNhlfe和SlaveNhlfe和同一个前缀绑定,比如单向公网隧道的FEC(ForwardEquivalenceClass,转发等价类)前缀。
当PE1和PE2之间的本地会话或者链路发生故障时,topo2中的远程会话保持生效,会话不震荡,公网隧道前缀关联的Nhlfe发生切换,从MainNhlfe切换到SlaveNhlfe,相应地,PE1将主拓扑(topo1)LSP中的业务流量切换到从拓扑(topo2)LSP。当PE1接收到待转发报文时,通过查询对应的Nhlfe表项,在报文中打上内层标签:6034后,再打上外层标签:9036,将数据发送到PE3,PE3收到该报文,进行一次标签交换(对外层标签),将9036交换成1658,将报文继续转发给PE2,PE2收到该标签以后做标签弹出动作,然后识别内层topo1标签6034以后再做一次标签弹出动作,再重新将报文转到topo1,根据topo1中转发信息继续转发给R5。
情况二、中间节点设备故障(其中,PE1为本地修复点,PE3为汇聚点)
参见图6,在topo1中,R1和R5作为CE设备,PE1和PE3作为PE设备建立L3VPN或者L2VPN业务,PE1和PE2、PE2和PE3之间分别建立本地LDP会话,从而建立PE1和PE3之间的LSP,同时PE1和PE3之间建立远程会话,用来交换L2VPN私网标签,并使能远程会话的标签分发能力。topo2中,PE1和PE4、PE4和PE3之间建立本地会话,在topo2中也形成PE1和PE3之间的LSP,用来保护topo1中PE1和PE3之间的LSP。
topo1和topo2分别形成LSP,互不干扰,采用BFD技术对LSP进行检测,此时一旦在topo1中PE2出现故障,BFD检测LSP进入缺陷,触发流量快速切换到topo2中的备份LSP上。其具体实现如下:
参见图7,在topo1中,PE1和PE2、PE3之间建立本地会话,在topo2中,PE1和PE4、PE3建立本地会话,PE1和PE3之间建立远程会话。用户在PE1和PE3上通过配置将topo1和topo2进行绑定,让topo1能够进行标签的绑定。
在topo1中,PE1、PE2和PE3之间有本地会话,自PE3->PE2->PE1分发标签,各设备形成的标签转发表项分别为NULL/2056(PE1)、2056/3078(PE2)、3078/NULL(PE3);同时PE3和PE1之间的远程会话,各设备形成的标签交换表项分别为NULL/6034(PE1)、6034/NULL(PE3)。在topo2中,PE1和PE3,PE3和PE2之间都建立本地会话,自PE3->PE4->PE1分发标签,各设备形成的标签转发表项分别为NULL/9036(PE1)、9036/1658(PE4)、1658/NULL(PE3)。
由于PE1和PE2上topo1和topo2进行了绑定,控制平面分别生成主和备的Nhlfe表项:表项组织结构如下表2所示:
表2
其中,MainNhlfe和SlaveNhlfe和同一个前缀绑定,比如单向公网隧道的FEC前缀。需要注意的是,为了保证当主拓扑LSP中PE1转发的报文经从拓扑LSP到达PE3时,PE3能识别出该报文是属于主拓扑的,SlaveNhlfe表项中的内层标签和链路保护方案中的标签不同,这里使用的是topo1中PE3通过远程会话发送给PE1的标签。
当中间节点设备PE2发生故障时,公网隧道前缀关联的Nhlfe发生切换,从MainNhlfe切换到SlaveNhlfe,相应地,PE1将主拓扑(topo1)LSP中的业务流量切换到从拓扑(topo2)LSP。当PE1接收到待转发报文时,通过查询对应的Nhlfe表项,在报文中打上内层标签:6034后,再打上外层标签:9036,将数据发送到PE4,PE4收到该报文,进行一次标签交换(对外层标签),将9036交换成1658,将报文继续转发给PE2,PE2收到该标签以后做标签弹出动作,然后识别内层topo1标签6034以后再做一次标签弹出动作,再重新将报文转到topo1,根据topo1中转发信息继续转发给R5。
其中,由于PE1将主拓扑LSP的业务流量切换到从拓扑LSP时保留主拓扑LSP分配的标签,不进行标签释放,当通过主拓扑LSP的报文通过从拓扑LSP到达目的路由设备时,目的路由设备可以根据报文的内层标签识别该报文所属的拓扑,并通过查询对应该拓扑的转发表项进行重新将报文转到主拓扑。
通过以上描述可以看出,在本发明实施例的技术方案中,源路由设备和目的路由设备之间建立有属于不同拓扑的多条LSP,且源路由设备中存储有对应各LSP的Nhlfe,当源路由设备检测到主拓扑LSP出现故障时,源路由设备将主拓扑LSP的业务流量切换到相应的从拓扑LSP,并根据自身存储的对应该从拓扑LSP的Nhlfe进行报文转发,实现了LSP的保护,维护了MPLS业务的正常使用,有效地保证了网络的安全性和稳定性。
基于上述方法实施例相同的技术构思,本发明实施例还提供了一种路由设备,可以应用于上述方法流程。
如图8所示,为本发明实施例提供的一种路由设备的结构示意图,应用于MPLS网络,该MPLS网络的MPLS网络中的PLR和MP之间建立有至少两条属于不同网络拓扑的LSP,该路由设备可以包括:
存储模块81,用于当所述路由设备作为本地修复点PLR时存储对应主拓扑LSP和相应从拓扑LSP的下一跳标签转发表项Nhlfe;
检测模块82,用于当所述路由设备作为PLR时对主拓扑中所述路由设备到汇聚点MP之间的LSP进行检测;
报文转发模块83,用于当所述检测模块82检测到主拓扑中所述路由设备与MP之间的LSP故障时,将该主拓扑LSP的业务流量切换到相应的从拓扑LSP,并根据所述存储模块81存储的该从拓扑LSP对应的Nhlfe进行报文转发。
其中,所述Nhlfe中可以包括但不限于包含内层标签、外层标签、出接口以及下一跳地址;
相应地,所述报文转发模块83可以具体用于,当所述路由设备作为PLR时,根据所述从拓扑LSP对应的Nhlfe将待转发报文上依次打上相应的内层标签和外层标签,并将该待转发报文从相应的出接口转发给相应的下一跳设备。
其中,所述报文转发模块83还可以用于,当所述路由设备作为中间节点设备时,根据所述路由设备存储的标签交换表项对接收到的转发报文的外层标签进行标签交换,并将标签交换后的转发报文发送给相应的下一跳设备;当所述路由设备作为MP时,对接收到的转发报文进行标签弹出,并根据该转发报文的内层标签进行报文转发。
优选地,所述检测模块82可以具体用于,当所述路由设备作为PLR时对所述路由设备与MP之间的LSP进行BFD检测,以确定所述路由设备与MP之间的LSP是否故障。
其中,所述PLR与MP之间的LSP故障可以包括:
PLR与MP之间的LSP的链路故障,或/和,PLR与MP之间的LSP的中间节点设备故障。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。