本发明涉及通信领域,具体而言,涉及一种报文转发方法及装置。
背景技术:
:目前针对国内移动回传业务的分组传送网络采用的基于ip协议的无线接入网络(internetprotocolradioaccessnetwork,简称为ipran)承载解决方案中,网络拓扑通常是接入层采用环形组网,汇聚层采用口字型组网,简化的组网图如图1所示。其中,a1-a3是接入层设备,pe1-pe4是汇聚层设备。业务部署上,基站回传业务通常采用伪线(pseudowire,简称为pw)+三层虚拟专用网(layer3virtualprivatenetwork,简称为l3vpn)桥接方案。接入层主要部署pw快速重路由(fastre-route,简称为frr),汇聚核心层主要部署l3vpnfrr,外层保护有可能部署标签分发协议(labeldistributionprotocol,简称为ldp)frr或流量工程(trafficengineering,简称为te)热备份保护(hotstandby,简称为hsb)。如图1所示,服务提供商边缘设备pe3(provideredgedevice)形成到pe1和pe2的l3vpnfrr,主路由为pe3-pe1,备路由为pe3-pe2。同时,所有pe设备外层都开启ldpfrr功能。ldpfrr是基于内部网关协议(interiorgatewayprotocol,简称为igp)路由协议生成的,igp路由协议计算frr备路径的其中一个原则是,以到达目的设备的链路总度量metric值最小为原则逐跳的选择下一跳设备,经过所有下一跳设备的链路组成的备路径不允许存在重合的链路。在口字型组网中,按照igpfrr计算的这个原则,会存在某些设备的某些路由无法形成frr。如图2所示,按照图2中标示的链路metric值,pe3计算到达pe1的igpfrr,主路径为pe3-pe1,备路径计算过程如下:为了不和主路径的链路重合,备路径首先选择下一跳为pe4;然后在pe4上计算达到pe1的两条路径的链路总metric值,其中一条路径是pe4-pe2-pe1,链路总metric值为1520,另外一条路径是pe4-pe3-pe1,链路总metric值为1600,所以优先选择下一跳为pe2;接着在pe2上计算达到pe1的两条路径的链路总metric值,其中一条路径是pe2-pe1,链路总metric值为20,另外一条路径是pe2-pe4-pe3-pe1,链路总metric值为3100,所以优先选择下一跳为pe1。这样就算出了pe3到pe1的igpfrr备路径为pe3-pe4-pe2-pe1。同理,pe1计算到达pe3的igpfrr,主路径为pe1-pe3,备路径计算过程如下:为了不和主路径的链路重合,备路径首先选择下一跳为pe2;然后在pe2上计算达到pe3的两条路径的链路总metric值,其中一条路径是pe2-pe4-pe3,链路总metric值为1600,另外一条路径是pe2-pe1-pe3,链路总metric值为1520,所以优先选择下一跳为pe1。这样,备路径从pe1到pe2再到pe1,存在重合的链路,不符合igpfrr的算路原则,所以pe1到pe3的路由无法形成igpfrr。其它设备路由的frr计算过程同上,最终结果是,pe3到pe1和pe2的l3vpnfrr主备路由都可以形成ldpfrr,但是主备路由的主lsp路径都经过pe3-pe1链路,即存在主备部分路径共链路。反方向,pe1到pe3的路由无法形成ldpfrr,pe2到pe3的路由在pe2上虽然可以形成ldpfrr,但是由于ip路由是逐跳转发,pe2到pe3的主路由下一跳是pe1,而pe1到pe3的路由无法形成ldpfrr,所以pe2到pe3端到端还是无法形成frr保护。这样,检测pe3到pe1和pe2的l3vpnfrr主备路由连通性的双向转发检测(bidirectionalforwardingdetection,简称为peerbfd),在pe3→pe1/pe2方向,有外层ldpfrr进行lsp保护,而pe1/pe2→pe3方向,外层无ldpfrr,无法进行保护。由于peerbfd会话是双向的,任何一个方向的丢包都会导致peerbfd中断。所以,当pe3-pe1链路发生故障时,主备peerbfd都会中断,pe3到pe1和pe2 的l3vpnfrr主备路由转发层面都会被置为无效,产生路由黑洞现象,从而导致业务中断。针对相关技术中存在的路由黑洞问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种报文转发方法及装置,以至少解决相关技术中存在的路由黑洞问题。根据本发明的一个实施例,提供了一种报文转发方法,包括:第一服务提供商边缘设备pe在确定到达用户边缘设备ce的主下一跳和备下一跳共路径的链路发生故障后,确定所述主下一跳和所述备下一跳中后检测到故障的pe;所述第一pe将待发送到所述ce的报文通过所述后检测到故障的pe转发给所述ce。可选地,所述第一pe将待发送到所述ce的报文通过所述后检测到故障的pe转发给所述ce包括:所述第一pe确定通过所述后检测到故障的pe将所述报文转发给所述ce的转发表;所述第一pe根据所述转发表将所述报文转发给所述ce。可选地,所述第一pe确定通过所述后检测到故障的pe将所述报文转发给所述ce的转发表包括:所述第一pe确定多协议标签交换mpls业务表,以及所述主下一跳和备下一跳的标签分发协议ldp标签表;所述第一pe根据所述主下一跳和所述备下一跳的故障检测情况以及所述mpsl业务表和所述ldp标签表确定所述转发表。可选地,所述第一pe根据所述主下一跳和所述备下一跳的故障检测情况以及所述mpls业务表和所述ldp标签表确定所述转发表包括:当所述第一pe确定所述主下一跳的双向转发检测bfd检测状态变为down时,判断所述主下一跳是否是所述后检测到故障的pe;在判断结果为不是的情况下,将所述转发表中的下一跳索引设置为所述备下一跳,同时将所述主下一跳的转发状态设置为无效;在判断结果为是的情况下,将所述转发表中的下一跳索引设置为所述主下一跳,同时将所述主下一跳的转发 状态设置为有效;和/或,当所述第一pe确定所述备下一跳的双向转发检测bfd检测状态变为down时,判断所述备下一跳是否是所述后检测到故障的pe;在判断结果为不是的情况下,将所述转发表中的下一跳索引设置为所述主下一跳,同时将所述备下一跳的转发状态设置为无效;在判断结果为是的情况下,将所述转发表中的下一跳索引设置为所述备下一跳,同时将所述备下一跳的转发状态设置为有效。可选地,当所述第一pe确定所述主下一跳的bfd检测状态变为down之后,还包括:当所述第一pe确定所述主下一跳的bfd检测状态变为up时,将所述转发表中的下一跳索引更新为所述主下一跳;同时将所述主下一跳的转发状态设置为有效;和/或,当所述第一pe确定所述备下一跳的bfd检测状态变为down之后,还包括:当所述第一pe确定所述备下一跳的bfd检测状态变为up时,判断所述主下一跳的bfd检测状态是否up;在判断结果为不是up时,将所述转发表中的下一跳索引更新为所述备下一跳,同时将所述备下一跳的转发状态更新为有效;在判断结果为是up时,维持所述转发表中的下一跳索引为所述主下一跳,同时将所述备下一跳的转发状态设置为有效。可选地,所述第一pe根据所述转发表将所述报文转发给所述ce包括:所述第一pe根据所述转发表确定实际进行报文转发的下一跳pe设备和实际出接口;所述第一pe通过所述实际出接口将所述报文发送给确定的所述下一跳pe,并指示确定的所述下一跳pe将所述报文转发给所述ce。根据本发明的另一个实施例,提供了一种报文转发装置,所述装置应用于第一服务提供商边缘设备pe中,包括:确定模块,用于在确定到达用户边缘设备ce的主下一跳和备下一跳共路径的链路发生故障后,确定所述主下一跳和所述备下一跳中后检测到故障的pe;转发模块,用于将待发送到所述ce的报文通过所述后检测到故障的pe转发给所述ce。可选地,所述转发模块包括:确定单元,用于确定通过所述后检测到 故障的pe将所述报文转发给所述ce的转发表;转发单元,用于根据所述转发表将所述报文转发给所述ce。可选地,所述确定单元包括:第一确定子单元,用于确定多协议标签交换mpls业务表,以及所述主下一跳和备下一跳的标签分发协议ldp标签表;第二确定子单元,用于根据所述主下一跳和所述备下一跳的故障检测情况以及所述mpls业务表和所述ldp标签表确定所述转发表。可选地,所述第二确定子单元包括:第一处理次子单元,用于当所述第一pe确定所述主下一跳的双向转发检测bfd检测状态变为down时,判断所述主下一跳是否是所述后检测到故障的pe;在判断结果为不是的情况下,将所述转发表中的下一跳索引设置为所述备下一跳,同时将所述主下一跳的转发状态设置为无效;在判断结果为是的情况下,将所述转发表中的下一跳索引设置为所述主下一跳,同时将所述主下一跳的转发状态设置为有效;和/或,第二处理次子单元,用于当所述第一pe确定所述备下一跳的双向转发检测bfd检测状态变为down时,判断所述备下一跳是否是所述后检测到故障的pe;在判断结果为不是的情况下,将所述转发表中的下一跳索引设置为所述主下一跳,同时将所述备下一跳的转发状态设置为无效;在判断结果为是的情况下,将所述转发表中的下一跳索引设置为所述备下一跳,同时将所述备下一跳的转发状态设置为有效。可选地,所述第一处理次子单元还用于当所述第一pe确定所述主下一跳的bfd检测状态变为down之后,当所述第一pe确定所述主下一跳的bfd检测状态变为up时,将所述转发表中的下一跳索引更新为所述主下一跳;同时将所述主下一跳的转发状态设置为有效;和/或,所述第二处理次子单元还用于当所述第一pe确定所述备下一跳的bfd检测状态变为down之后,当所述第一pe确定所述备下一跳的bfd检测状态变为up时,判断所述主下一跳的bfd检测状态是否up;在判断结果为不是up时,将所述转发表中的下一跳索引更新为所述备下一跳,同时将所述备下一跳的转发状态更新为有效;在判断结果为是up时,维持所述转发表中的下一跳索引为所述主下一跳,同时将所述备下一跳的转发状态设置为有效。可选地,所述转发单元包括:第三确定子单元,用于根据所述转发表确定实际进行报文转发的下一跳pe设备和实际出接口;转发子单元,用于通过所述实际出接口将所述报文发送给确定的所述下一跳pe,并指示确定的所述下一跳pe将所述报文转发给所述ce。通过本发明,由于在主下一跳和备下一跳共路径的链路发生故障后会通过后检测到故障的pe进行报文转发,从而保证了报文能够成功转发到ce,避免出现路由黑洞问题。因此,可以解决相关技术中存在的路由黑洞问题,达到保证报文成功转发的效果。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是相关技术中的ipran的网络拓扑结构示意图;图2是相关技术中的汇聚层口字型组网拓扑示意图;图3是根据本发明实施例的报文转发方法的流程图;图4是根据本发明实施例的mpls业务逃生保护的方法的流程图;图5是根据本发明实施例的mpls业务逃生保护的组网示意图;图6是根据本发明实施例的报文转发装置的结构框图;图7是根据本发明实施例的报文转发装置中转发模块64的结构框图;图8是根据本发明实施例的报文转发装置中确定单元72的结构框图;图9是根据本发明实施例的报文转发装置中第二确定子单元84的结构框图;图10是根据本发明实施例的报文转发装置中转发单元74的结构框图;图11是根据本发明实施例的mpls业务逃生保护装置的结构框图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。在本实施例中提供了一种报文转发方法,图3是根据本发明实施例的报文转发方法的流程图,如图3所示,该流程包括如下步骤:步骤s302,第一服务提供商边缘设备pe在确定到达用户边缘设备ce的主下一跳和备下一跳共路径的链路发生故障后,确定上述主下一跳和备下一跳中后检测到故障的pe;步骤s304,第一pe将待发送到ce的报文通过后检测到故障的pe转发给ce。通过上述步骤,在主下一跳和备下一跳共路径的链路发生故障后会通过后检测到故障的pe进行报文转发,从而保证了报文能够成功转发到ce,避免出现路由黑洞问题。因此,可以解决相关技术中存在的路由黑洞问题,避免业务中断,从而达到保证报文成功转发的效果。在一个可选的实施例中,上述步骤s304中,第一pe可以通过如下方式将待发送到ce的报文通过后检测到故障的pe转发给ce:第一pe确定通过后检测到故障的pe将所述报文转发给ce的转发表;该第一pe根据上述转发表将报文转发给ce。在一个可选的实施例中,上述第一pe确定通过后检测到故障的pe将报文转发给所述ce的转发表包括:第一pe确定多协议标签交换(multi-protocollabelswitching,简称为mpls)业务表,以及主下一跳和备下一跳的标签分发协议ldp标签表;第一pe根据上述主下一跳和备下一跳的故障检测情况以及mpls业务表和ldp标签表确定上述转发表。在本实施例中,第一pe设备可以先形成mpls业务表,以及mpls业务到达主下一跳和备下一跳路由的ldp标签表,并根据mpls业务表和ldp 标签表生成用于流量转发的mpls业务转发表(对应于上述的转发表),其中的主要信息包括,mpls业务当前实际转发的下一跳pe设备,以及主备两个下一跳的实际出接口和转发状态(转发状态包括有效或无效)。当主下一跳或备下一跳的bfd检测状态发生变化时,则立即更新上述的mpls业务转发表。在一个可选的实施例中,上述第一pe根据上述主下一跳和备下一跳的故障检测情况以及mpls业务表和ldp标签表确定上述转发表包括:当第一pe确定上述主下一跳的双向转发检测bfd检测状态变为down时,判断主下一跳是否是后检测到故障的pe;在判断结果为不是的情况下,将上述转发表中的下一跳索引设置为备下一跳,同时将主下一跳的转发状态设置为无效;在判断结果为是的情况下,将转发表中的下一跳索引设置为主下一跳(即,将主下一跳作为逃生路径,继续保持报文的转发),同时将主下一跳的转发状态设置为有效;和/或,当上述第一pe确定备下一跳的双向转发检测bfd检测状态变为down时,判断备下一跳是否是后检测到故障的pe;在判断结果为不是的情况下,将转发表中的下一跳索引设置为主下一跳,同时将备下一跳的转发状态设置为无效;在判断结果为是的情况下,将转发表中的下一跳索引设置为备下一跳,同时将备下一跳的转发状态设置为有效。在一个可选的实施例中,当上述第一pe确定主下一跳的bfd检测状态变为down之后,上述方法还包括:当上述第一pe确定主下一跳的bfd检测状态变为up时,将转发表中的下一跳索引更新为主下一跳;同时将主下一跳的转发状态设置为有效;和/或,当上述第一pe确定备下一跳的bfd检测状态变为down之后,上述方法还包括:当第一pe确定备下一跳的bfd检测状态变为up时,判断主下一跳的bfd检测状态是否up;在判断结果为不是up时,将转发表中的下一跳索引更新为备下一跳,同时将备下一跳的转发状态更新为有效;在判断结果为是up时,维持转发表中的下一跳索引为主下一跳,同时将备下一跳的转发状态设置为有效。在一个可选的实施例中,上述第一pe根据转发表将报文转发给所述 ce包括:第一pe根据所述转发表确定实际进行报文转发的下一跳pe设备和实际出接口;上述第一pe通过实际出接口将报文发送给确定的下一跳pe,并指示确定的上述下一跳pe将报文转发给ce。在本实施例中,当mpls业务(对应于上述的报文)到达主备下一跳pe设备共路径的链路发生故障时,主下一跳或备下一跳的bfd检测状态会先后变down。如果主下一跳的bfd先检测down,备下一跳的bfd后检测down,则保持mpls业务的备下一跳为逃生路径,继续保持转发。这样,pe收到数据流,检索上述mpls业务转发表,从中获取到有效的备下一跳pe设备和实际出接口信息,将数据流从所述出接口转发出去,最终到达备下一跳pe设备。如果备下一跳的bfd先检测down,主下一跳的bfd后检测down,则保持mpls业务的主下一跳为逃生路径,继续保持转发。这样,pe收到数据流,检索所述mpls业务转发表,从中获取到有效的主下一跳pe设备和实际出接口信息,将数据流从所述出接口转发出去,最终到达主下一跳pe设备。下面以mplsl3vpnfrr业务作为具体的实施例,结合附图对本发明实施例中的方法作进一步的详细描述。当然本发明涉及的业务领域不仅仅局限于mplsl3vpnfrr业务。本发明实施例中提供了一种mpls业务逃生保护的方法,具体的实施过程如图4所示,包括:步骤s401.pe(对应于上述的第一pe)形成vpnfrr路由表(或者,上述的mpls业务表),以及vpnfrr路由主下一跳和备下一跳路由的ldp标签表。步骤s402.根据上述vpnfrr路由表,以及vpnfrr路由主下一跳和备下一跳路由的ldp标签表生成用于流量转发的vpnfrr路由转发表和主备下一跳转发表(对应于上述的转发表)。在组网中所有链路状态都up的情况下,上述vpnfrr路由转发表的信息如表1所示:表1上述主备下一跳转发表的信息如表2所示:表2步骤s403.检测主peerbfd(即,主下一跳)和备peerbfd(即,备下一跳)的状态变化情况,如果检测状态变为down,则执行步骤s404;如果检测状态变为up,则执行步骤s411。步骤s404.判断发生故障的peerbfd(即,下一跳)是主还是备,如果是主,则执行步骤s405;如果是备,则执行步骤s408。步骤s405.判断发生故障的主peer是否是vpnfrr路由的最后一个下一跳(即,是否是后检测到故障的pe),如果不是,则执行步骤s406;如果是,则执行步骤s407。步骤s406.将vpnfrr路由转发表中的下一跳索引更新为指向主备下一跳转发表中的备下一跳;同时将主备下一跳转发表中主pe对应的转发条目,转发出接口更新为备lsp出接口,转发状态位更新为无效。步骤s407.将vpnfrr路由转发表不更新,下一跳索引继续指向主备下一跳转发表中的主下一跳,即保持该路由为逃生路由;同时主备下一 跳转发表中主pe对应的转发条目,转发状态位也不更新,继续保持有效转发,但是转发出接口更新为备lsp出接口。步骤s408.判断发生故障的备peer是否是vpnfrr路由的最后一个下一跳(即,是否是后检测到故障的pe),如果不是,则执行步骤s409;如果是,则执行步骤s410。步骤s409.vpnfrr路由转发表不更新,下一跳索引继续指向主备下一跳转发表中的主下一跳;同时将主备下一跳转发表中备pe对应的转发条目,转发出接口更新为备lsp出接口,转发状态位更新为无效。步骤s410.vpnfrr路由转发表不更新,下一跳索引继续指向主备下一跳转发表中的备下一跳,即保持该路由为逃生路由;同时主备下一跳转发表中备pe对应的转发条目,转发状态位也不更新,继续保持有效转发,但是转发出接口更新为备lsp出接口。步骤s411.判断故障恢复的peerbfd是主还是备,如果是主,则执行步骤s412;如果是备,则执行步骤s413。步骤s412.将vpnfrr路由转发表中的下一跳索引更新为指向主备下一跳转发表中的主下一跳;同时将主备下一跳转发表中主pe对应的转发条目,转发出接口更新为当前lsp的实际出接口,转发状态位更新为有效。步骤s413.判断当前主peerbfd的检测状态是否up,如果不是,则执行步骤s414;如果是,则执行步骤s415。步骤s414.将vpnfrr路由转发表中的下一跳索引更新为指向主备下一跳转发表中的备下一跳;同时将主备下一跳转发表中备pe对应的转发条目,转发出接口更新为当前lsp的实际出接口,转发状态位更新为有效。步骤s415.vpnfrr路由转发表不更新,下一跳索引继续指向主备下一跳转发表中的主下一跳;主备下一跳转发表中备pe对应的转发条目,转发出接口更新为当前lsp的实际出接口,转发状态位更新为有效。步骤s416.pe收到数据流时,根据报文中的目的ip地址检索vpnfrr路由转发表,从中获取到下一跳索引,再根据下一跳索引检索主备下一跳转发表,从中获取到有效的出接口信息,将数据流从出接口转发出去,最终到达下一跳pe。为了描述更加清楚,下面结合具体的实例,对如何实现mpls业务逃生保护的方法加以详细说明。网络模型如图5所示,pe3形成到用户边缘设备(customeredgedevice,简称为ce)的vpnfrr路由表,以及vpnfrr路由主下一跳和备下一跳路由的ldp标签表。其中,vpnfrr路由的主下一跳为pe1,备下一跳为pe2。vpnfrr主路由的主lsp为pe3-pe1,备lsp为pe3-pe4-pe2-pe1;vpnfrr备路由的主lsp为pe3-pe1-pe2,备lsp为pe3-pe4-pe2。vpnfrr主备路由主lsp共路径的链路为pe1-pe3。根据上述vpnfrr路由表和ldp标签表生成用于流量转发的vpnfrr路由转发表和主备下一跳转发表。在图5所示的组网中,所有链路状态都up的情况下,所述vpnfrr路由转发表的信息如表3所示:表3ip地址前缀下一跳索引10.1.1.0/241.1.1.1上述主备下一跳转发表的信息如表4所示,其中转发状态位字段,取值为1表示该出接口有效,取值为0表示该出接口无效。表4此时,pe(即,上述的pe3)收到发往ce的数据流,根据报文中的 目的ip地址10.1.1.1检索到所述vpnfrr路由转发表,从中获取到下一跳索引指向主备下一跳转发表中1.1.1.1对应的转发条目,再根据所述下一跳索引检索所述主备下一跳转发表中1.1.1.1对应的转发条目,从中获取到有效的出接口为gei_0/0/0/1,将数据流从所述出接口转发出去,到达下一跳pe1,再由pe1将数据流转发给ce。当vpnfrr主备路由主lsp共路径的链路pe1-pe3发生故障时,主备peerbfd的检测状态会先后变down。如果主peerbfd先检测down,备peerbfd后检测down,则保持vpnfrr路由的备路由为逃生路由,即所述vpnfrr路由转发表的下一跳索引指向主备下一跳转发表中的备pe。所述vpnfrr路由转发表的信息如表5所示:表5ip地址前缀下一跳索引10.1.1.0/242.2.2.2上述主备下一跳转发表的信息如表6所示:表6此时,pe收到发往ce的数据流,根据报文中的目的ip地址10.1.1.1检索到所述vpnfrr路由转发表,从中获取到下一跳索引指向主备下一跳转发表中2.2.2.2对应的转发条目,再根据所述下一跳索引检索所述主备下一跳转发表中2.2.2.2对应的转发条目,从中获取到有效的出接口为gei_0/0/0/4,将数据流从所述出接口转发出去,经过pe4,最终到达下一跳pe2,再由pe2将数据流转发给ce。如果备peerbfd先检测down,主peerbfd后检测down,则保持 vpnfrr路由的主路由为逃生路由,即所述vpnfrr路由转发表的下一跳索引指向主备下一跳转发表中的主pe。所述vpnfrr路由转发表的信息如表7所示:表7ip地址前缀下一跳索引10.1.1.0/241.1.1.1主备下一跳转发表的信息如表8所示:表8此时,pe收到发往ce的数据流,根据报文中的目的ip地址10.1.1.1检索到所述vpnfrr路由转发表,从中获取到下一跳索引指向主备下一跳转发表中1.1.1.1对应的转发条目,再根据所述下一跳索引检索所述主备下一跳转发表中1.1.1.1对应的转发条目,从中获取到有效的出接口为gei_0/0/0/4,将数据流从所述出接口转发出去,经过pe4和pe2,最终到达下一跳pe1,再由pe1将数据流转发给ce。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所 述的方法。在本实施例中还提供了一种报文转发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图6是根据本发明实施例的报文转发装置的结构框图,该装置可以应用于第一pe中,如图6所示,该装置包括确定模块62和转发模块64,下面对该装置进行说明。确定模块62,用于在确定到达用户边缘设备ce的主下一跳和备下一跳共路径的链路发生故障后,确定上述主下一跳和备下一跳中后检测到故障的pe;转发模块64,连接至上述确定模块62,用于将待发送到ce的报文通过后检测到故障的pe转发给ce。图7是根据本发明实施例的报文转发装置中转发模块64的结构框图,如图7所示,该转发模块64包括确定单元72和转发单元74,下面对该转发模块64进行说明:确定单元72,用于确定通过上述后检测到故障的pe将报文转发给ce的转发表;转发单元74,连接至上述确定单元72,用于根据上述转发表将报文转发给ce。图8是根据本发明实施例的报文转发装置中确定单元72的结构框图,如图8所示,该确定单元72包括第一确定子单元82和第二确定子单元84,下面对该确定单元72进行说明:第一确定子单元82,用于确定多协议标签交换mpls业务表,以及主下一跳和备下一跳的标签分发协议ldp标签表;第二确定子单元84,连接至上述第一确定子单元82,用于根据上述主下一跳和备下一跳的故障检测情况以及mpls业务表和ldp标签表确定上述转发表。图9是根据本发明实施例的报文转发装置中第二确定子单元84的结 构框图,如图9所示,该第二确定子单元84包括第一处理次子单元92和/或第二处理次子单元94,下面对该第二确定子单元84进行说明。第一处理次子单元92,用于当上述第一pe确定主下一跳的双向转发检测bfd检测状态变为down时,判断上述主下一跳是否是后检测到故障的pe;在判断结果为不是的情况下,将上述转发表中的下一跳索引设置为备下一跳,同时将主下一跳的转发状态设置为无效;在判断结果为是的情况下,将上述转发表中的下一跳索引设置为主下一跳,同时将主下一跳的转发状态设置为有效;第二处理次子单元94,用于当上述第一pe确定备下一跳的双向转发检测bfd检测状态变为down时,判断上述备下一跳是否是后检测到故障的pe;在判断结果为不是的情况下,将上述转发表中的下一跳索引设置为主下一跳,同时将备下一跳的转发状态设置为无效;在判断结果为是的情况下,将上述转发表中的下一跳索引设置为备下一跳,同时将备下一跳的转发状态设置为有效。在一个可选的实施例中,上述第一处理次子单元92还用于当第一pe确定主下一跳的bfd检测状态变为down之后,当第一pe确定主下一跳的bfd检测状态变为up时,将转发表中的下一跳索引更新为上述主下一跳;同时将主下一跳的转发状态设置为有效;和/或,上述第二处理次子单元94还用于当第一pe确定备下一跳的bfd检测状态变为down之后,当第一pe确定备下一跳的bfd检测状态变为up时,判断上述主下一跳的bfd检测状态是否up;在判断结果为不是up时,将转发表中的下一跳索引更新为备下一跳,同时将备下一跳的转发状态更新为有效;在判断结果为是up时,维持上述转发表中的下一跳索引为主下一跳,同时将上述备下一跳的转发状态设置为有效。图10是根据本发明实施例的报文转发装置中转发单元74的结构框图,如图10所示,该转发单元74包括第三确定子单元102和转发子单元104,下面对该转发单元74进行说明。第三确定子单元102,用于根据上述转发表确定实际进行报文转发的下一跳pe设备和实际出接口;转发子单元104,连接至上述第三确定子单元102,用于通过上述实际出接口将报文发送给确定的上述下一跳pe,并指示确定的上述下一跳pe将报文转发给ce。下面结合附图对本发明实施例中的装置作进一步的详细描述。本发明实施例中提供了一种mpls业务逃生保护的装置,如图11所示,该装置包括bfd检测模块112(对应于上述的确定模块62)、路由管理模块114(对应于上述的第一确定子单元82)、ldp管理模块116(对应于上述的第一确定子单元82)、转发表管理模块118(对应于上述的第二确定子单元84)、流量转发模块1110(对应于上述的转发单元74)其中:路由管理模块114,用于创建pe设备上的vpnfrr路由表。ldp管理模块116,用于创建vpnfrr路由主下一跳和备下一跳路由的ldp标签表。路由管理模块114和ldp管理模块116都连接至转发表管理模块118,这样转发表管理模块118就根据路由管理模块114创建的vpnfrr路由表生成用于流量转发的vpnfrr路由转发表和主备下一跳转发表,vpnfrr路由转发表中的下一跳索引指向主备下一跳转发表中的主pe或备pe,标识当前vpnfrr路由实际转发的下一跳。另外,根据上述ldp管理模块116创建的ldp标签表生成主备下一跳转发表中vpnfrr路由主下一跳和备下一跳路由的实际转发出接口。同时,根据bfd检测模块112检测到的主peerbfd和备peerbfd的检测状态将主备下一跳转发表中vpnfrr路由主下一跳和备下一跳路由的转发状态位设置为有效或无效。上述的bfd检测模块112检测主peerbfd或备peerbfd的状态,一旦检测到bfd状态发生变化,立即对上述转发表管理模块118的vpnfrr路由转发表和主备下一跳转发表进行更新。流量转发模块1110连接至转发表管理模块118,用于pe收到数据流时,根据报文中的目的ip地址检索转发表管理模块118的vpnfrr路由 转发表,从中获取到下一跳索引,再根据该下一跳索引检索转发表管理模块118的主备下一跳转发表,从中获取到有效的出接口信息,将数据流从所述出接口转发出去,最终到达下一跳pe。由上述本发明提供的实施例的具体实施过程可以看到,本发明实施例中实现的mpls业务逃生保护的方法和装置,能够解决了当mpls业务到达主备下一跳pe设备共路径的链路发生故障,主备下一跳bfd都中断时,mpls业务主备下一跳转发层面都会被置为无效,从而产生的转发路由黑洞现象,导致业务中断的问题,大大增强了网络的可靠性,同时也提高了ipran承载解决方案的可行性。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:s1,第一服务提供商边缘设备pe在确定到达用户边缘设备ce的主下一跳和备下一跳共路径的链路发生故障后,确定上述主下一跳和备下一跳中后检测到故障的pe;s2,第一pe将待发送到ce的报文通过后检测到故障的pe转发给ce。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述各方法实施例中的步骤。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12