一种报文处理方法和装置与流程

文档序号:16630506发布日期:2019-01-16 06:31阅读:131来源:国知局
一种报文处理方法和装置与流程
本申请涉及互联网
技术领域
,特别是涉及一种报文处理方法和装置。
背景技术
:mpls(multi-protocollabelswitching,多协议标签交换)技术是目前应用比较广泛的一种骨干网络技术。在mpls网络中,网络设备可以根据标签转发报文。在对报文进行转发时,通常可以将mpls网络中的网络设备分为:ingress(入节点)、transit(中间节点)和egress(出节点)。入节点、中间节点和出节点之间的链路可以称为lsp(labelswitchedpath,标签交换路径)。现有技术通常可以结合bfd(bidirectionalforwardingdetection,双向转发检测)技术对lsp进行检测。例如,图1所示的组网,包括:pe(provideredge,运营商边缘路由器)1、pe2、pe3和pe4。其中,pe1为入节点,pe4为出节点,pe2和pe3为中间节点,pe1与pe4之间存在主用lsp(即链路l1)和备份lsp(即链路l2-链路l3-链路l4)。pe1在备份lsp中的下一跳设备为pe2,pe1可以在存储的标签转发表中,确定目的地址为pe4的网络地址,且下一跳设备为pe2的表项中的标签(即2000),标签2000即pe4在备份lsp中的标签。然后,pe1可以向pe2发送携带有标签(即2000)的bfd请求报文,以对备份lsp进行检测。pe2接收到bfd请求报文后,在存储的标签转发表中,确定标签2000对应的标签为3000,标签2000对应的下一跳设备为pe3,pe2则将bfd请求报文中的标签修改为3000,并将修改后的bfd请求报文发送至pe3。pe3接收到bfd请求报文后,在存储的标签转发表中,确定标签3000对应的标签为100,标签3000对应的下一跳设备为pe4,pe3则将bfd请求报文中的标签修改为100,并将修改后的bfd请求报文发送至pe4。在接收到bfd请求报文后,pe4可能会通过路由最优路径(即主用lsp),向pe1发送bfd响应报文,该bfd响应报文中携带的标签为pe1在主用lsp中的标签(即200)。而如果链路l1发生故障,则会导致pe1无法接收到bfd响应报文,pe1会判定备份lsp发生故障。可见,当组网中存在主用lsp和备份lsp时,bfd响应报文与对应的bfd请求报文可能会在不同的lsp中传输,进而会导致lsp的检测结果出错。技术实现要素:本申请实施例的目的在于提供一种报文处理方法和装置,使得bfd响应报文与对应的bfd请求报文在相同的lsp中传输,可以避免lsp的检测结果出错。具体技术方案如下:第一方面,为了达到上述目的,本申请实施例公开了一种报文处理方法,所述方法应用于网络设备,所述方法包括:接收针对待检测标签交换路径lsp的双向转发检测bfd请求报文,其中,所述bfd请求报文中携带有所述待检测lsp的入节点在所述待检测lsp中的标签,以及所述待检测lsp的出节点在所述待检测lsp中的标签;如果自身不是所述出节点,根据存储的标签转发表,对所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,以及所述出节点在所述待检测lsp中的标签进行修改,并转发修改后的bfd请求报文,以使所述出节点根据修改后的bfd请求报文中携带的标签,生成针对所述待检测lsp的bfd响应报文;如果自身为所述出节点,生成携带有所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签的bfd响应报文,并在存储的标签转发表中,确定与所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签对应的下一跳设备,将所述bfd响应报文发送至确定出的下一跳设备。可选的,所述根据存储的标签转发表,对所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,以及所述出节点在所述待检测lsp中的标签进行修改,并转发修改后的bfd请求报文,包括:确定存储的标签转发表中,与所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签对应的标签,作为第一标签,确定存储的标签转发表中,与所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签对应的下一跳设备,作为第一设备,确定存储的标签转发表中,与所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签对应的标签,作为第二标签;将所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签,修改为所述第一标签,将所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,修改为所述第二标签;将修改后的bfd请求报文发送至所述第一设备。可选的,所述方法还包括:如果自身不是所述出节点,且不是所述入节点,当接收到bfd响应报文时,确定存储的标签转发表中,与所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签对应的标签,作为第三标签,确定存储的标签转发表中,与所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签对应的下一跳设备,作为第二设备;将所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签,修改为所述第三标签;将修改后的bfd响应报文发送至所述第二设备。第二方面,为了达到上述目的,本申请实施例公开了一种报文处理方法,所述方法应用于网络设备,所述方法包括:生成携带有待检测标签交换路径lsp的出节点在所述待检测lsp中的标签,以及自身在所述待检测lsp中的标签的双向转发检测bfd请求报文;将所述bfd请求报文发送至所述待检测lsp中的下一跳设备。第三方面,为了达到上述目的,本申请实施例公开了一种报文处理装置,所述装置应用于网络设备,所述装置包括:接收模块,用于接收针对待检测标签交换路径lsp的双向转发检测bfd请求报文,其中,所述bfd请求报文中携带有所述待检测lsp的入节点在所述待检测lsp中的标签,以及所述待检测lsp的出节点在所述待检测lsp中的标签;转发模块,用于如果自身不是所述出节点,根据存储的标签转发表,对所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,以及所述出节点在所述待检测lsp中的标签进行修改,并转发修改后的bfd请求报文,以使所述出节点根据修改后的bfd请求报文中携带的标签,生成针对所述待检测lsp的bfd响应报文;发送模块,用于如果自身为所述出节点,生成携带有所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签的bfd响应报文,并在存储的标签转发表中,确定与所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签对应的下一跳设备,将所述bfd响应报文发送至确定出的下一跳设备。可选的,所述转发模块,具体用于确定存储的标签转发表中,与所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签对应的标签,作为第一标签,确定存储的标签转发表中,与所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签对应的下一跳设备,作为第一设备,确定存储的标签转发表中,与所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签对应的标签,作为第二标签;将所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签,修改为所述第一标签,将所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,修改为所述第二标签;将修改后的bfd请求报文发送至所述第一设备。可选的,所述装置还包括:处理模块,用于如果自身不是所述出节点,且不是所述入节点,当接收到bfd响应报文时,确定存储的标签转发表中,与所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签对应的标签,作为第三标签,确定存储的标签转发表中,与所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签对应的下一跳设备,作为第二设备;将所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签,修改为所述第三标签;将修改后的bfd响应报文发送至所述第二设备。第四方面,为了达到上述目的,本申请实施例公开了一种报文处理装置,所述装置应用于网络设备,所述装置包括:生成模块,用于生成携带有待检测标签交换路径lsp的出节点在所述待检测lsp中的标签,以及自身在所述待检测lsp中的标签的双向转发检测bfd请求报文;发送模块,用于将所述bfd请求报文发送至所述待检测lsp中的下一跳设备。另一方面,为达到上述目的,本申请实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第一方面所述的任一方法步骤。另一方面,为达到上述目的,本申请实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第二方面所述的方法步骤。另一方面,为达到上述目的,本申请实施例还公开了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现第一方面所述的任一方法步骤。另一方面,为达到上述目的,本申请实施例还公开了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现第二方面所述的方法步骤。另一方面,为达到上述目的,本申请实施例还公开了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的任一方法步骤。另一方面,为达到上述目的,本申请实施例还公开了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面所述的方法步骤。本申请实施例提供了一种报文处理方法和装置,应用于网络设备,当接收到针对待检测lsp的bfd请求报文时,如果网络设备不是待检测lsp的出节点,则根据存储的标签转发表,对bfd请求报文中携带的入节点在待检测lsp中的标签,以及出节点在待检测lsp中的标签进行修改,并转发修改后的bfd请求报文;如果网络设备为待检测lsp的出节点,则生成携带有bfd请求报文中携带的入节点在待检测lsp中的标签的bfd响应报文。bfd响应报文中携带的标签为入节点在待检测lsp中的标签,因此,网络设备根据该标签确定出的下一跳设备,为待检测lsp中向该网络设备转发bfd请求报文的设备,将bfd响应报文发送至该下一跳设备,从而使得bfd响应报文能够通过待检测lsp返回至入节点,避免bfd响应报文通过其他lsp返回至入节点,进而避免待检测lsp的检测结果出错。当然,实施本申请的任一产品或方法并不一定需要同时达到以上的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请提供的一种组网架构的框架图;图2为本申请提供的一种组网架构的框架图;图3为本申请实施例提供的一种报文处理方法的流程图;图4为本申请实施例提供的一种报文处理方法的流程图;图5为本申请实施例提供的一种报文处理方法示例的流程图;图6为本申请实施例提供的一种报文处理装置的结构图;图7为本申请实施例提供的一种报文处理装置的结构图;图8为本申请实施例提供的一种电子设备的结构图;图9为本申请实施例提供的一种电子设备的结构图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例提供了一种报文处理方法,该方法可以应用于网络设备,网络设备可以pe或其他设备。在一个示例中,方法可以应用于图2中的各pe。pe1作为待检测lsp(即链路l2-链路l3-链路l4)的入节点,可以生成携带有待检测lsp的出节点(即pe4)在待检测lsp中的标签(即2000),以及pe1在待检测lsp中的标签(即200)的bfd请求报文,然后,pe1可以将该bfd请求报文发送至待检测lsp中的下一跳设备(即pe2)。当pe2接收到pe1发送的bfd请求报文时,pe2判定自身不是待检测lsp的出节点。pe2可以根据存储的标签转发表,对bfd请求报文中携带的pe4在待检测lsp中的标签(即2000),以及pe1在待检测lsp中的标签(即200)进行修改。例如,pe2可以将标签2000修改为3000,将标签200修改为300,并将修改后的bfd请求报文发送至下一跳设备(即pe3)。同理,pe3可以根据存储的标签转发表,对bfd请求报文中携带的pe4在待检测lsp中的标签(即3000),以及pe1在待检测lsp中的标签(即300)进行修改。例如,pe3可以将标签3000修改为100,将标签300修改为400,并将修改后的bfd请求报文发送至下一跳设备(即pe4)。当pe4接收到bfd请求报文时,pe4判定自身是待检测lsp的出节点。pe4可以生成携带有bfd请求报文中携带的pe1在待检测lsp中的标签(即400)的bfd响应报文,并在存储的标签转发表中,确定与标签400对应的下一跳设备为pe3,pe4可以将携带有标签400的bfd响应报文发送至pe3。相应的,pe3接收到bfd响应报文后,可以根据存储的标签转发表,将bfd响应报文中携带的标签修改为300,并将修改后bfd响应报文发送至pe2。同理,pe2接收到bfd响应报文后,可以根据存储的标签转发表,将bfd响应报文中携带的标签修改为200,并将修改后bfd响应报文发送至pe1,进而使得bfd响应报文通过链路l4-链路l3-链路l2传输至pe1。可见,基于本申请实施例的报文处理方法,使得bfd响应报文能够通过待检测lsp返回至入节点,避免bfd响应报文通过其他lsp返回至入节点,进而避免待检测lsp的检测结果出错。参见图3,图3为本申请实施例提供的一种报文处理方法的流程图,该方法可以应用于网络设备,该网络设备可以为待检测lsp中除入节点以外的其他节点(可以称为非入节点),该方法可以包括以下步骤:s301:接收针对待检测lsp的bfd请求报文。其中,待检测lsp的入节点在生成针对待检测lsp的bfd请求报文时,还可以获取自身在待检测lsp中的标签,并将该标签添加到bfd请求报文中。bfd请求报文中可以携带有待检测lsp的入节点在待检测lsp中的标签,以及待检测lsp的出节点在待检测lsp中的标签。例如,pe2接收到的针对待检测lsp(即链路l2-链路l3-链路l4)的bfd请求报文中,可以携带有pe4在待检测lsp中的标签(即2000)以及pe1在待检测lsp中的标签(即200)。网络设备可以根据bfd请求报文中携带的出节点在待检测lsp中的标签,判断自身是否为待检测lsp的出节点,还可以根据bfd请求报文中携带的出节点在待检测lsp中的标签,对bfd请求报文进行转发处理。通常,待检测lsp的入节点可以根据出节点在待检测lsp中的标签和自身在待检测lsp中的标签,生成标签栈,并将标签栈添加到bfd请求报文中。其中,标签栈的栈顶标签可以为出节点在待检测lsp中的标签(可以称为上层标签),标签栈的栈底标签可以为入节点在待检测lsp中的标签(可以称为下层标签)。具体的,入节点生成bfd请求报文的方法将在后续实施例详细介绍。在申请实施例中,网络设备可以接收待检测lsp中的上游设备发送的bfd请求报文,并根据该bfd请求报文进行不同的处理。s302:如果自身不是出节点,根据存储的标签转发表,对bfd请求报文中携带的入节点在待检测lsp中的标签,以及出节点在待检测lsp中的标签进行修改,并转发修改后的bfd请求报文,以使出节点根据修改后的bfd请求报文中携带的标签,生成针对待检测lsp的bfd响应报文。其中,标签转发表可以是网络设备预先学习得到的。在申请实施例中,当网络设备接收到针对待检测lsp的bfd请求报文时,网络设备可以判断自身是否为待检测lsp的出节点。由于bfd请求报文中携带有上层标签和下层标签,因此,当网络设备判定自身不是待检测lsp的出节点时,网络设备可以根据存储的标签转发表,对bfd请求报文中携带的入节点在待检测lsp中的标签,以及出节点在待检测lsp中的标签进行修改,然后,网络设备可以转发修改后的bfd请求报文。当出节点接收到修改后的bfd请求报文时,出节点可以根据bfd请求报文中携带的标签,生成针对待检测lsp的bfd响应报文。本步骤中,网络设备可以根据bfd请求报文中携带的上层标签,判断自身是否为待检测lsp的出节点。一种实施方式中,网络设备可以获取bfd请求报文中携带的上层标签,并确定存储的标签转发表中,与该上层标签对应的处理动作。标签转发表可以参见表(1)和表(2)。表(1)入标签处理动作出标签下一跳设备x弹出标签-s1表(2)入标签处理动作出标签下一跳设备x交换标签x1s2其中,表(1)可以为出节点存储的标签转发表,表(2)可以为中间点存储的标签转发表。入标签表示网络设备接收到的bfd请求报文中携带的上层标签。当网络设备接收到的bfd请求报文中携带的上层标签为x时,根据表(1),网络设备确定入标签x对应的处理动作为“弹出标签”,此时,网络设备可以判定自身为待检测lsp的出节点,可以生成bfd响应报文。如果网络设备接收到的数据报文中携带的上层标签为x,则网络设备可以删除数据报文中携带的上层标签x,并将删除标签后的数据报文发送至下一跳设备(即s1)。当网络设备接收到的bfd请求报文中携带的上层标签为x时,根据表(2),网络设备确定入标签x对应的处理动作为“交换标签”,此时,网络设备可以判定自身不是待检测lsp的出节点,即网络设备为待检测lsp的中间节点。网络设备可以将标签x修改为x1,并发送至下一跳设备(即s2)。另外,标签的结构可以参见表(3)。表(3)标签值tcsttl标签值,长度为20bits,表示标签的数值,例如,标签值可以为300、2000。tc(trafficclass,流量等级):长度为3bits。s:标签栈底标识位,长度为1bit,s位为1,表示该标签为栈底标签,s位为0,表示该标签为非栈底标签。ttl(timetolive,生存时间值):长度为8bits,可以用于防止网络环路。本实施例中,入节点在生成bfd请求报文时,可以将入节点在待检测lsp中的标签的ttl设置为预设数值,以使出节点可以识别出bfd请求报文中携带的入节点在待检测lsp中的标签(即ttl为预设数值的标签)。现有技术中,bfd报文(包括bfd请求报文和bfd响应报文)中标签的ttl不为0,因此,入节点可以将入节点在待检测lsp中的标签的ttl设置为0,以使出节点可以识别出ttl为0的标签,进而获取bfd请求报文中携带的入节点在待检测lsp中的标签。可选的,s302可以包括以下步骤:步骤一,确定存储的标签转发表中,与bfd请求报文中携带的出节点在待检测lsp中的标签对应的标签,作为第一标签,确定存储的标签转发表中,与bfd请求报文中携带的出节点在待检测lsp中的标签对应的下一跳设备,作为第一设备,确定存储的标签转发表中,与bfd请求报文中携带的入节点在待检测lsp中的标签对应的标签,作为第二标签。在申请实施例中,网络设备可以在存储的标签转发表中进行查询,确定与bfd请求报文中携带的上层标签对应的标签(即第一标签),以及与bfd请求报文中携带的上层标签对应的下一跳设备(即第一设备)。网络设备还可以在存储的标签转发表中进行查询,确定与bfd请求报文中携带的下层标签对应的标签(即第二标签)。示例性的,如果当前网络设备为图2中的pe2,pe2接收到的bfd请求报文中携带的上层标签为2000,下层标签为200。pe2中存储的标签转发表可以参见表(4)。表(4)入标签处理动作出标签下一跳设备2000交换标签3000pe3300交换标签200pe1其中,“交换标签”表示pe2需要对bfd请求报文中携带的标签进行修改。如果pe2接收到的bfd请求报文中携带的标签为表(4)中的入标签,则pe2可以将该标签修改为对应的出标签;如果pe2接收到的bfd请求报文中携带的标签为表(4)中的出标签,则pe2可以将该标签修改为对应的入标签。根据表(4),由于pe2接收到的bfd请求报文中携带的上层标签为2000,pe2可以确定标签2000对应的标签(即3000),为第一标签;确定标签2000对应的下一跳设备(即pe3),为第一设备。根据表(4),由于pe2接收到的bfd请求报文中携带的下层标签为200,pe2可以确定标签200对应的标签(即300),为第二标签。步骤二,将bfd请求报文中携带的出节点在待检测lsp中的标签,修改为第一标签,将bfd请求报文中携带的入节点在待检测lsp中的标签,修改为第二标签。在申请实施例中,如果网络设备为中间节点,则网络设备可以将bfd请求报文中携带的上层标签,修改为第一标签,将bfd请求报文中携带的下层标签,修改为第二标签。本步骤中,网络设备在修改下层标签时,可以设置下层标签的ttl为0。针对步骤一中的示例,pe2可以将接收到的bfd请求报文中携带的上层标签修改为3000,将bfd请求报文中携带的下层标签修改为300。步骤三,将修改后的bfd请求报文发送至第一设备。在申请实施例中,网络设备对bfd请求报文中携带的上层标签和下层标签修改结束后,可以将修改后的bfd请求报文发送至第一设备,以使bfd请求报文通过待检测lsp传输至出节点。针对上述示例,在将bfd请求报文中携带的上层标签修改为3000,将bfd请求报文中携带的下层标签修改为300后,pe2可以将修改后的bfd请求报文发送至pe3。s303:如果自身为出节点,生成携带有bfd请求报文中携带的入节点在待检测lsp中的标签的bfd响应报文,并在存储的标签转发表中,确定与bfd请求报文中携带的入节点在待检测lsp中的标签对应的下一跳设备,将bfd响应报文发送至确定出的下一跳设备。在申请实施例中,当网络设备判定自身是待检测lsp的出节点时,网络设备可以获取bfd请求报文中携带的下层标签,并生成携带有该下层标签的bfd响应报文。然后,网络设备可以在存储的标签转发表中进行查询,确定与该下层标签对应的下一跳设备,并将生成的bfd响应报文发送至该下一跳设备。该bfd响应报文中携带的标签为入节点在待检测lsp中的标签,因此,网络设备根据该标签确定出的下一跳设备,为待检测lsp中向该网络设备转发bfd请求报文的设备,将bfd响应报文发送至该下一跳设备,从而使得bfd响应报文能够通过待检测lsp返回至入节点,进而避免待检测lsp的检测结果出错。本步骤中,网络设备可以解析bfd请求报文,获取ttl为0的标签(即入节点在待检测lsp中的标签),根据该标签生成bfd响应报文。示例性的,如果当前网络设备为图2中的pe4,pe4接收到的bfd请求报文中携带的上层标签为100,下层标签为400。pe4可以生成携带有标签400的bfd响应报文。pe4中存储的标签转发表可以参见表(5)。表(5)dest出标签下一跳设备1.1.1.1400pe31.1.1.1200pe1表(5)中,dest表示bfd响应报文的目的地址,即pe1的网络地址。出标签表示pe4在bfd响应报文中添加的标签(即pe1在待检测lsp中的标签)。根据表(5),pe4可以确定目的地址为1.1.1.1,且携带有标签400的bfd响应报文的下一跳设备为pe3,pe4可以将携带有标签400的bfd响应报文发送至pe3。可选的,网络设备还可以根据存储的标签转发表,对bfd响应报文进行转发处理。该方法还可以包括以下步骤:步骤一,如果自身不是出节点,且不是入节点,当接收到bfd响应报文时,确定存储的标签转发表中,与bfd响应报文中携带的入节点在待检测lsp中的标签对应的标签,作为第三标签,确定存储的标签转发表中,与bfd响应报文中携带的入节点在待检测lsp中的标签对应的下一跳设备,作为第二设备。在申请实施例中,如果网络设备不是出节点,且不是入节点,即网络设备为中间节点,当网络设备接收到bfd响应报文时,网络设备可以在标签转发表中进行查询,确定与bfd响应报文中携带的入节点在待检测lsp中的标签对应的标签(即第三标签),以及与bfd响应报文中携带的入节点在待检测lsp中的标签对应的下一跳设备(即第二设备)。示例性的,与表(4)类似,如果当前网络设备为图2中的pe3,pe3中存储的标签转发表,可以参见表(6)。表(6)入标签处理动作出标签下一跳设备3000交换标签100pe4400交换标签300pe2pe3接收到的bfd响应报文中携带的入节点在待检测lsp中的标签为400,根据表(6),pe3可以确定标签400对应的标签为300(即第三标签),标签400对应的下一跳设备为pe2(即第二设备)。步骤二,将bfd响应报文中携带的入节点在待检测lsp中的标签,修改为第三标签。在申请实施例中,在确定第三标签后,网络设备可以将bfd响应报文中携带的入节点在待检测lsp中的标签,修改为第三标签。针对上述示例,pe3可以将bfd响应报文中携带的标签400修改为300。步骤三,将修改后的bfd响应报文发送至第二设备。在申请实施例中,网络设备对bfd响应报文中携带的入节点在待检测lsp中的标签修改结束后,网络设备可以将修改后的bfd响应报文发送至第二设备。针对上述示例,pe3可以将携带有标签300的bfd响应报文发送至pe2。同理,根据表(4),pe2可以将bfd响应报文中携带的入节点在待检测lsp中的标签修改为200,并将修改后的bfd响应报文发送至pe1。可见,基于本实施例的报文处理方法,bfd响应报文能够通过待检测lsp返回至入节点,进而可以避免待检测lsp的检测结果出错。参见图4,图4为本申请实施例提供的一种报文处理方法的流程图,该方法可以应用于网络设备,该网络设备可以为待检测lsp的入节点,该方法可以包括以下步骤:s401:生成携带有待检测lsp的出节点在待检测lsp中的标签,以及自身在待检测lsp中的标签的bfd请求报文。在申请实施例中,如果网络设备为待检测lsp的入节点,网络设备可以生成携带有待检测lsp的出节点在待检测lsp中的标签,以及自身在待检测lsp中的标签的bfd请求报文。本步骤中,网络设备可以确定针对待检测lsp的bfd请求报文的下一跳设备,然后,网络设备可以在存储的标签转发表中进行查询,获取与确定出的下一跳设备和bfd请求报文的目的地址对应的标签(即待检测lsp的出节点在待检测lsp中的标签,也即上层标签)。另外,网络设备还可以确定自身在待检测lsp中的标签(即下层标签),然后,网络设备可以生成携带有上层标签和下层标签的bfd请求报文。另外,网络设备在生成bfd请求报文时,可以将自身在待检测lsp中的标签的ttl设置为预设数值,以使出节点可以识别出bfd请求报文中携带的入节点在待检测lsp中的标签(即ttl为预设数值的标签)。现有技术中,bfd报文(包括bfd请求报文和bfd响应报文)中的标签的ttl不为0,因此,网络设备可以将入节点在待检测lsp中的标签的ttl设置为0,以使出节点可以识别出ttl为0的标签,进而获取bfd请求报文中携带的入节点在待检测lsp中的标签。示例性的,如果当前网络设备为图2中的pe1,与表(5)类似,pe1中存储的标签转发表,可以参见表(7)。表(7)dest出标签下一跳设备4.4.4.42000pe24.4.4.4100pe4其中,dest表示bfd请求报文的目的地址,即pe4的网络地址。出标签表示pe1在bfd请求报文中添加的标签(即pe4在待检测lsp中的标签),也即bfd请求报文中的上层标签。由于待检测lsp(即链路l2-链路l3-链路l4)中的下一跳设备为pe2,根据表(7),pe1确定目的地址为4.4.4.4,且下一跳设备为pe2的bfd请求报文中的上层标签为2000,pe1可以确定自身在待检测lsp中的标签(即下层标签)为200,然后,pe1可以生成携带有标签2000和标签200的bfd请求报文,并可以设置标签200的ttl为0。s402:将bfd请求报文发送至待检测lsp中的下一跳设备。在申请实施例中,网络设备生成携带有上层标签和下层标签的bfd请求报文后,可以将bfd请求报文发送至待检测lsp中的下一跳设备。示例性的,pe1在生成携带有标签2000和标签200的bfd请求报文后,可以将bfd请求报文发送至pe2,以对链路l2-链路l3-链路l4进行检测。相应的,如果接收到bfd请求报文的下一跳设备不是出节点,该下一跳设备可以根据存储的标签转发表,对bfd请求报文中携带的标签(包括上层标签和下层标签)进行修改,并转发修改后的bfd请求报文,具体的,可以参考步骤s302的详细介绍。如果接收到bfd请求报文的下一跳设备为出节点,则该下一跳设备可以生成携带有bfd请求报文中携带的下层标签的bfd响应报文,并在存储的标签转发表中,确定与该下层标签对应的下一跳设备,并将bfd响应报文发送至确定出的下一跳设备,具体的,可以参考步骤s303的详细介绍。综上可见,基于本申请实施例的报文处理方法,待检测lsp的出节点生成的bfd响应报文中携带的标签,为入节点在待检测lsp中的标签,因此,出节点根据该标签确定出的下一跳设备,为待检测lsp中向出节点转发bfd请求报文的设备,出节点将bfd响应报文发送至该下一跳设备,从而使得bfd响应报文能够通过待检测lsp返回至入节点,避免待检测lsp的检测结果出错。参见图5,图5为本申请实施例提供的一种报文处理方法示例的流程图,实施例以方法应用于网络设备为例进行说明,该方法可以包括以下步骤:s501:接收针对待检测lsp的bfd请求报文。其中,bfd请求报文中携带有待检测lsp的入节点在待检测lsp中的标签,以及待检测lsp的出节点在待检测lsp中的标签。s502:判断自身是否为待检测lsp的出节点,如果自身不是待检测lsp的出节点,执行s503-s505,如果自身是待检测lsp的出节点,执行s506-s508。s503:确定存储的标签转发表中,与bfd请求报文中携带的出节点在待检测lsp中的标签对应的标签,作为第一标签,确定存储的标签转发表中,与bfd请求报文中携带的出节点在待检测lsp中的标签对应的下一跳设备,作为第一设备,确定存储的标签转发表中,与bfd请求报文中携带的入节点在待检测lsp中的标签对应的标签,作为第二标签。s504:将bfd请求报文中携带的出节点在待检测lsp中的标签,修改为第一标签,将bfd请求报文中携带的入节点在待检测lsp中的标签,修改为第二标签。s505:将修改后的bfd请求报文发送至第一设备。s506:生成携带有bfd请求报文中携带的入节点在待检测lsp中的标签的bfd响应报文。s507:在存储的标签转发表中,确定与bfd请求报文中携带的入节点在待检测lsp中的标签对应的下一跳设备。s508:将生成的bfd响应报文发送至确定出的下一跳设备。可见,基于本申请实施例的报文处理方法,待检测lsp的出节点生成的bfd响应报文中携带的标签,为入节点在待检测lsp中的标签,因此,出节点根据该标签确定出的下一跳设备,为待检测lsp中向出节点转发bfd请求报文的设备,出节点将bfd响应报文发送至该下一跳设备,从而使得bfd响应报文能够通过待检测lsp返回至入节点,避免待检测lsp的检测结果出错。与图3的方法实施例相对应,参见图6,图6为本申请实施例提供的一种报文处理装置的结构图,所述装置应用于网络设备,所述装置包括:接收模块601,用于接收针对待检测标签交换路径lsp的双向转发检测bfd请求报文,其中,所述bfd请求报文中携带有所述待检测lsp的入节点在所述待检测lsp中的标签,以及所述待检测lsp的出节点在所述待检测lsp中的标签;转发模块602,用于如果自身不是所述出节点,根据存储的标签转发表,对所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,以及所述出节点在所述待检测lsp中的标签进行修改,并转发修改后的bfd请求报文,以使所述出节点根据修改后的bfd请求报文中携带的标签,生成针对所述待检测lsp的bfd响应报文;发送模块603,用于如果自身为所述出节点,生成携带有所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签的bfd响应报文,并在存储的标签转发表中,确定与所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签对应的下一跳设备,将所述bfd响应报文发送至确定出的下一跳设备。可选的,所述转发模块602,具体用于确定存储的标签转发表中,与所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签对应的标签,作为第一标签,确定存储的标签转发表中,与所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签对应的下一跳设备,作为第一设备,确定存储的标签转发表中,与所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签对应的标签,作为第二标签;将所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签,修改为所述第一标签,将所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,修改为所述第二标签;将修改后的bfd请求报文发送至所述第一设备。可选的,所述装置还包括:处理模块,用于如果自身不是所述出节点,且不是所述入节点,当接收到bfd响应报文时,确定存储的标签转发表中,与所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签对应的标签,作为第三标签,确定存储的标签转发表中,与所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签对应的下一跳设备,作为第二设备;将所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签,修改为所述第三标签;将修改后的bfd响应报文发送至所述第二设备。与图4的方法实施例相对应,参见图7,图7为本申请实施例提供的一种报文处理装置的结构图,所述装置应用于网络设备,所述装置包括:生成模块701,用于生成携带有待检测标签交换路径lsp的出节点在所述待检测lsp中的标签,以及自身在所述待检测lsp中的标签的双向转发检测bfd请求报文;发送模块702,用于将所述bfd请求报文发送至所述待检测lsp中的下一跳设备。基于本申请提供的报文处理装置,待检测lsp的出节点生成的bfd响应报文中携带的标签,为入节点在待检测lsp中的标签,因此,出节点根据该标签确定出的下一跳设备,为待检测lsp中向出节点转发bfd请求报文的设备,出节点将bfd响应报文发送至该下一跳设备,从而使得bfd响应报文能够通过待检测lsp返回至入节点,避免待检测lsp的检测结果出错。本申请实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,存储器803,用于存放计算机程序;处理器801,用于执行存储器803上所存放的程序时,以使该电子设备执行报文处理方法的步骤,该方法可以包括:接收针对待检测标签交换路径lsp的双向转发检测bfd请求报文,其中,所述bfd请求报文中携带有所述待检测lsp的入节点在所述待检测lsp中的标签,以及所述待检测lsp的出节点在所述待检测lsp中的标签;如果自身不是所述出节点,根据存储的标签转发表,对所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,以及所述出节点在所述待检测lsp中的标签进行修改,并转发修改后的bfd请求报文,以使所述出节点根据修改后的bfd请求报文中携带的标签,生成针对所述待检测lsp的bfd响应报文;如果自身为所述出节点,生成携带有所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签的bfd响应报文,并在存储的标签转发表中,确定与所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签对应的下一跳设备,将所述bfd响应报文发送至确定出的下一跳设备。可选的,所述根据存储的标签转发表,对所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,以及所述出节点在所述待检测lsp中的标签进行修改,并转发修改后的bfd请求报文,包括:确定存储的标签转发表中,与所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签对应的标签,作为第一标签,确定存储的标签转发表中,与所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签对应的下一跳设备,作为第一设备,确定存储的标签转发表中,与所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签对应的标签,作为第二标签;将所述bfd请求报文中携带的所述出节点在所述待检测lsp中的标签,修改为所述第一标签,将所述bfd请求报文中携带的所述入节点在所述待检测lsp中的标签,修改为所述第二标签;将修改后的bfd请求报文发送至所述第一设备。可选的,所述方法还包括:如果自身不是所述出节点,且不是所述入节点,当接收到bfd响应报文时,确定存储的标签转发表中,与所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签对应的标签,作为第三标签,确定存储的标签转发表中,与所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签对应的下一跳设备,作为第二设备;将所述bfd响应报文中携带的所述入节点在所述待检测lsp中的标签,修改为所述第三标签;将修改后的bfd响应报文发送至所述第二设备。本申请实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,存储器903,用于存放计算机程序;处理器901,用于执行存储器903上所存放的程序时,以使该电子设备执行报文处理方法的步骤,该方法可以包括:生成携带有待检测标签交换路径lsp的出节点在所述待检测lsp中的标签,以及自身在所述待检测lsp中的标签的双向转发检测bfd请求报文;将所述bfd请求报文发送至所述待检测lsp中的下一跳设备。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于非入节点的报文处理方法的步骤。在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于入节点的报文处理方法的步骤。在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于非入节点的报文处理方法。在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于入节点的报文处理方法。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1