CN109787869B - 一种路径故障检测方法及设备 - Google Patents
一种路径故障检测方法及设备 Download PDFInfo
- Publication number
- CN109787869B CN109787869B CN201910248853.XA CN201910248853A CN109787869B CN 109787869 B CN109787869 B CN 109787869B CN 201910248853 A CN201910248853 A CN 201910248853A CN 109787869 B CN109787869 B CN 109787869B
- Authority
- CN
- China
- Prior art keywords
- label
- detected
- subscription
- path
- message
- 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
Abstract
本公开提供一种路径故障检测方法及设备,可以通过待检测路径的源设备在检查出待检测路径对应的标签栈中至少一个标签的状态未知时,所述标签栈中状态未知的每一待检测标签,向所述待检测标签所处的目标设备发送携带所述待检测标签的订阅报文,所述订阅报文还携带所述目标设备的地址信息,以基于所述地址信息对所述订阅报文进行路由转发;当接收所述目标设备返回的订阅响应报文时,根据所述订阅响应报文携带的所述待检测标签以及表征所述待检测标签是否有效的标签状态信息确定所述待检测标签是否有效;检查所述标签栈中是否存在至少一个失效的标签,如果是,确定待检测路径异常,否则,确定待检测路径正常。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种路径检故障测方法及设备。
背景技术
在大型骨干网络中,一般通过TE(Traffic Engineering,流量工程)技术来优化网络资源使用,避免负载不均衡导致的拥塞。SR(Segment Routing,分段路由)技术是TE技术中的一种,是由控制器向目标路径中的源设备下发路径信息,该路径信息通常是通过有序的目标Segment标签列表来标识,即目标标签栈。源设备在转发报文时,可以将该路径信息对应的目标标签栈封装到报文头中,其他中间设备只需要根据报文头中的目标标签栈进行转发。
由于现有SR技术中,中间设备只会根据报文头中的目标标签栈进行转发。如果部分转发路径出现故障时,会导致目标标签栈中的与故障路径对应的目标标签失效,则中间设备就无法根据目标标签栈进行转发,造成流量中断。
因此需要提供一种快速检测整个路径通断的机制,在路径出现故障时,源设备可以替换其他路径标签栈或通过路由的方式转发,保证流量的快速切换。
发明内容
有鉴于此,本公开提供一种路径故障检测方法及设备,来实现快速检测路径状态,避免流量中断的问题。
具体地,本公开是通过如下技术方案实现的:
本公开提供一种路径故障检测方法,所述方法应用于网络设备,所述方法包括:
当所述网络设备作为待检测路径的源设备时,若检查出所述待检测路径对应的标签栈中至少一个标签的状态未知时,则针对所述标签栈中状态未知的每一待检测标签,向所述待检测标签所处的目标设备发送携带所述待检测标签的订阅报文,所述订阅报文携带所述目标设备的地址信息,以基于所述地址信息对所述订阅报文进行路由转发;
当接收所述目标设备返回的订阅响应报文时,根据所述订阅响应报文携带的所述待检测标签以及表征所述待检测标签是否有效的标签状态信息确定所述待检测标签是否有效;
检查所述标签栈中是否存在至少一个失效的标签,如果是,确定待检测路径异常,否则,确定待检测路径正常。
作为一个实施例,向所述待检测标签所处的目标设备发送订阅报文之前,所述方法还包括:
当本地未记录所述待检测标签所处的目标设备的地址信息,且所述待检测标签为邻接标签时,向所述目标设备发送携带所述待检测标签的标签发现报文,所述标签发现报文是以所述标签栈中的所述待检测标签为目标标签,基于所述标签栈进行标签转发的;
接收所述目标设备在确定自身邻接链路的邻接标签与所述待检测标签相匹配时反馈的发现应答报文,其中,所述发现应答报文中携带所述目标设备的地址信息;
获取所述发现应答报文中携带的目标设备的地址信息。
作为一个实施例,所述方法还包括:
若在所述指定时间内未收到所述订阅响应报文,则确定所述待检测标签失效。
作为一个实施例,所述方法还包括:
若收到所述目标设备未查找到所述待检测标签时返回的携带订阅失败标识的订阅响应报文,或者,在确定所述待检测标签失效之后的预设时间内未收到所述订阅响应报文,则重新向所述目标设备发送携带所述待检测标签的订阅报文。
基于相同的构思,本公开还提供一种路径故障检测方法,所述方法应用于网络设备,所述方法包括:
当所述网络设备作为待检测路径的目标设备时,接收所述待检测路径的源设备基于所述目标设备的地址信息经过路由转发的携带待检测标签的订阅报文,所述待检测标签为所述待检测路径对应的标签栈中位于所述目标设备上的标签;
当本地记录的标签与所述待检测标签相匹配时,获取所述待检测标签对应的表征所述待检测标签是否有效的标签状态信息;
向所述源设备返回订阅响应报文,所述订阅响应报文中携带所述待检测标签以及表征所述待检测标签的是否有效的标签状态信息,以使所述源设备根据所述标签状态信息确定所述待检测标签是否有效。
作为一个实施例,所述方法还包括:
接收源设备发送的携带所述待检测标签的标签发现报文,所述标签发现报文是所述源设备在确定所述待检测标签是邻接标签且未记录所述目标设备的地址信息时,以所述标签栈中的所述待检测标签为目标标签,基于所述标签栈进行标签转发的;
当所述待检测标签与自身邻接链路的邻接标签相匹配时,向所述源设备返回携带自身地址信息的发现应答报文。
作为一个实施例,所述方法还包括:
当本地未记录与所述待检测标签相匹配的标签时,向所述源设备返回携带订阅失败标识的订阅响应报文,以使所述源设备重新向所述目标设备发送订阅报文。
基于相同的构思,本公开还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述路径故障检测方法的任一步骤。
基于相同的构思,本公开还提供一种网络设备,所述网络设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现上述路径故障检测方法的任一步骤。
由此可见,本公开可以通过待检测路径的源设备在检查出待检测路径对应的标签栈中至少一个标签的状态未知时,所述标签栈中状态未知的每一待检测标签,向所述待检测标签所处的目标设备发送携带所述待检测标签的订阅报文,所述订阅报文还携带所述目标设备的地址信息,以基于所述地址信息对所述订阅报文进行路由转发;当接收所述目标设备返回的订阅响应报文时,根据所述订阅响应报文携带的所述待检测标签以及表征所述待检测标签是否有效的标签状态信息确定所述待检测标签是否有效;之后检查所述标签栈中是否存在至少一个失效的标签,如果是,确定待检测路径异常,否则,确定待检测路径正常。因此本公开可以通过标签状态订阅的机制,使得源设备可以通过获取待检测路径上的待检测标签的状态来确定待检测路径是否故障,从而可以避免因选择了故障路径导致的流量中断问题。
附图说明
图1-1是现有技术中的一种SR组网结构示意图;
图1-2是现有技术中的一种标签转发路径示意图;
图2是本公开一种示例性实施方式中的一种路径故障检测方法的处理流程图;
图3是本公开一种示例性实施方式中的另一种路径故障检测方法的处理流程图;
图4是本公开一种示例性实施方式中的路径故障检测方法的交互流程图;
图5本公开一种示例性实施方式中的一种网络设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本实施例中,基于SR协议的流量转发方式如图1-1所示,是由6台路由器(R1~R6)组成的一个网络,控制器为每个网络设备分配相应的目标Segment标签,其中该目标标签包括:Node Segment设备标签和Adjacency Segment邻接标签;其中,所述设备标签是全局标签,通常采用SRGB(SR Global Block,SR全局标签块)+索引Index的格式,例如图1-1中所示的标签SRGB+1、SRGB+2等;所述邻接标签在本节点有效,即一个邻接标签代表一个设备节点上的一条链路,例如图1-1中所示的标签201、302等。网络设备基于控制器分配的目标Segment标签在本地形成标签转发表,标签转发表中维护每个标签有效或失效的标签状态信息。
假设控制器制定了一个报文的转发路径为R1->R3->R5->R4时,该转发路径如图1-2中的箭头所示,由于R1到R3可以按照最短路径进行转发,因此控制器对R1到R3的转发路径使用R3对应的设备标签标识即可;而根据控制器制定的转发路径可知,R3到R4需要经过R5,因此不能在R3到R4之间采用最短路径的方法转发,而是需要使用邻接标签指定从R3->R5->R4的路径,即通过305和504的链路转发,最终将转发路径转化为对应的标签栈就是{3,305,504},然后将该标签栈下发到该转发路径中的源设备R1,R1将该标签栈封装到报文头中,以使路径上的节点设备R1、R2、R3,R4、R5根据自身维护的标签转发表按照标签栈中的待检测标签转发该报文即可。
由于SR技术中的中间设备只会根据报文头中的标签栈进行转发。如果转发路径出现故障,导致标签栈中的故障路径对应的标签失效,则中间设备由于无法感知该转发路径中的标签失效,继续根据该标签栈进行转发,因此会造成流量断流。
现有的路径检测方法是通过源设备发送针对某个路径的探测报文,通过该探测报文按照该转发路径完整的走一遍,来对整个路径的通断进行探测。例如图1-2中所示的转发路径,源设备R1可以基于该转发路径的标签栈发送探测报文,该探测报文根据标签栈通过转发路径R1->R3->R5->R4进行转发,如果该路径正常,目标设备R4会收到该探测报文,并响应此探测报文,回复应答报文。但是由于控制器只将该转发路径的标签栈下发给了源设备即R1,R4上没有该转发路径对应的标签栈,因此R4回复的应答报文无法基于SR协议添加该转发路径对应的标签栈,则只能基于该探测报文的源地址(即R1的地址),根据路由转发,即按照最短路径转发,则该应答报文最终是通过R4->R5->R6->R1转发到R1。
针对上述方法,主要存在以下两个缺点:
一是源设备需要基于路径进行探测,随着路径增多,发送和响应探测报文需要消耗大量的资源,举例来讲,源设备为R1,其他节点(R2、R3、R4、R5、R6)都可以是流量的目标设备,为了区分应用进行流量保障,需要对不同应用选择不同的转发路径,假设应用数量为10,也就是两个设备之间针对一条路径就需要下发10条应用的转发路径;对于源设备R1来说,假设需要探测5条路径,因此需要主动发送的探测报文会话数量为:路径数量*应用路径数量,即需要R1主动发送的探测报文会话数量为50(5*10)个;作为目标设备,相应的需要响应的探测报文数量也为50个;随着网络中设备的增加或者应用路径数量的增加,每个设备需要支持的探测会话也会不断增加,对于大型网络来说(上百个节点,上百个应用),单个节点设备需要支持上万个探测会话数量,极大消耗了设备的资源;
二是源设备路径探测的回程报文无法按照探测报文的指定路径转发,只能基于路由转发,如果回程路径故障,源设备可能在检测周期内无法收到目的节点的应答报文,导致错误的判断路径故障;举例来讲,如图1-2所示,假设流量的源设备为R1,目标设备为R4,从R1到R4的路径如下:R1->R3->R5->R4,将路径转化为标签栈就是{3,305,504},发送的探测报文将标签栈封装到报文头中,路径上的转发设备R1、R2、R3,R4、R5根据标签转发表进行转发;R4收到探测报文后,回复链路正常的应答报文后,由于应答报文是根据路由转发,假设通过R4->R5->R6->R1的路径转发,此时如果R5和R6之间链路故障,应答报文则无法转发,导致探测失败,使R1误判R1->R3->R5->R4的路径故障。
为了解决现有技术存在的问题,本公开提供一种路径故障检测方法及装置,可以通过待检测路径的源设备在检查出待检测路径对应的标签栈中至少一个标签的状态未知时,针对所述标签栈中状态未知的每一待检测标签,分别向所述待检测标签所处的目标设备发送携带所述待检测标签的订阅报文,所述订阅报文还携带所述目标设备的地址信息,以基于所述地址信息对所述订阅报文进行路由转发;当接收所述目标设备返回的订阅响应报文时,根据所述订阅响应报文携带的所述待检测标签以及表征所述待检测标签是否有效的标签状态信息确定所述待检测标签是否有效;之后检查所述标签栈中是否存在至少一个失效的标签,如果是,确定待检测路径异常,否则,确定待检测路径正常。因此本公开可以通过标签状态订阅的机制,使得源设备可以通过获取目标路径上的待检测标签的状态来确定待检测路径是否故障,从而可以避免因选择了故障路径导致的流量中断问题。相比于现有技术中针对每一条路径发送一个探测报文的路径检测方法,本公开可以针对路径中的每个待检测标签单独发送订阅报文,来订阅某个待检测标签的标签状态,从而大大减少了源设备发送探测报文的数量,提升路径检测效率;
此外,本公开还可以通过获取待检测标签所处设备的地址信息基于路由转发订阅报文,由于本公开的订阅报文和对应的订阅响应报文均根据路由转发,从而可以保证转发路径一致,因而避免出现现有技术中因回程路径故障导致的误判问题,因此可以提升路径检测的准确率。
请参考图2,是本公开一种示例性实施方式中的一种路径故障检测方法的处理流程图,所述方法应用于网络设备,所述方法包括:
步骤201、当所述网络设备作为待检测路径的源设备时,若检查出所述待检测路径对应的标签栈中至少一个标签的状态未知时,则针对所述标签栈中状态未知的每一待检测标签,向所述待检测标签所处的目标设备发送携带所述待检测标签的订阅报文,所述订阅报文携带所述目标设备的地址信息,以基于所述地址信息对所述订阅报文进行路由转发;
在本实施例中,网络设备是基于SR协议进行流量转发,当该网络设备作为待检测路径中的源设备时,可以接收控制器下发的待检测路径对应的标签栈。该标签栈中的标签可以为Segment标签,待检测标签中包括设备标签Node Segment和邻接标签AdjacencySegment。源设备可以通过查找本地维护的标签转发表来判断该标签栈中的待检测标签的标签状态是否已知,若检查出待检测路径对应的标签栈中至少一个标签的状态未知时,则可以针对所述标签栈中状态未知的每一待检测标签,向所述待检测标签所处的目标设备发送携带所述待检测标签的订阅报文,同时所述订阅报文还携带所述目标设备的地址信息,以基于所述地址信息对所述订阅报文进行路由转发。
作为一个实施例,源设备发送的订阅报文中的源地址是源设备的地址,目的地址的目标设备的地址,通过路由转发的方式转发该订阅报文。在发送订阅报文之前,若源设备确定本地未记录所述待检测标签所处的目标设备的地址信息时,则需要先获取所述目标设备的地址信息。具体来讲,由于设备标签全局有效,因此源设备可以通过IGP扩展或控制器通告获取到设备标签所对应的目标设备的地址信息,但是由于邻接标签只在设备本地生效,因此现有方式中源设备无法识别路径上的邻接标签所对应的目标设备的地址信息。因此本实施例中,源设备可以通过标签发现机制获取邻接标签对应的目标设备的地址信息。具体来讲,当所述待检测标签为邻接标签时,源设备可向所述目标设备发送携带所述待检测标签的标签发现报文,所述标签发现报文是以所述标签栈中的所述待检测标签为目标标签,基于所述标签栈进行标签转发的;源设备可以通过接收所述目标设备在确定自身邻接链路的邻接标签与所述待检测标签相匹配时反馈的发现应答报文,获取所述发现应答报文中携带所述目标设备的地址信息。
步骤202、当接收所述目标设备返回的订阅响应报文时,根据所述订阅响应报文携带的所述待检测标签以及表征所述待检测标签是否有效的标签状态信息确定所述待检测标签是否有效;
在本实施例中,当源设备向目标设备发送订阅报文后,目标设备可以查找本地是否维护了该据订阅报文中携带的待检测标签对应的标签状态,如果查找到对应的标签状态,则可以以源设备的地址信息为目的地址,基于路由转发的方式,向源设备回复针对该订阅报文的订阅响应报文,该订阅响应报文中携带所述所述待检测标签以及表征所述待检测标签是否有效的标签状态信息。
源设备当接收所述目标设备返回的订阅响应报文时,可以基于所述订阅响应报文携带所述所述待检测标签以及表征所述待检测标签是否有效的标签状态信息,判断所述待检测标签是否有效。
作为一个实施例,若源设备在所述指定时间内未收到所述订阅响应报文,则可以确定所述待检测标签失效。通过时间限定,可以使源设备在目标设备在指定时间内没有回复订阅响应报文时,快速判断目标设备的状态,从而调整当前流量的转发路径,避免流量断流。
作为一个实施例,当目标设备在本地未查找到该待检测标签,或者目标设备不支持标签订阅时,目标设备可以向源设备返回携带订阅失败标识的订阅响应报文。若源设备收到所述目标设备未查找到所述待检测标签时返回的携带订阅失败标识的订阅响应报文,或者,在确定所述待检测标签失效之后的预设时间内未收到所述订阅响应报文,则重新向所述目标设备发送携带所述待检测标签的订阅报文。
步骤203、检查所述标签栈中是否存在至少一个失效的标签,如果是,确定待检测路径异常,否则,确定待检测路径正常。
在本实施例中,源设备通过上述标签订阅机制获取标签栈中的每个待检测标签的标签状态后,可以检查所述标签栈中是否存在至少一个失效的标签,如果是,则确定待检测路径异常,否则,确定待检测路径正常。
相比于现有技术,本公开的优势至少包括以下两点:
一是,由于现有技术中需要基于待检测路径发送探测报文,使探测报文按照待检测路径到达目标设备,从而确定待检测路径是否故障,而本公开可以针对待检测路径中的每个待检测标签分别发送所对应的订阅报文来探测每个待检测标签的状态,从而通过待检测标签的标签状态来确定整条待检测路径的状态,从而可以无需针对不同应用对同一路径重复进行路径检测,因此可以大大减少了源设备发送报文的数量;
举例来讲,以图1-1中的转发路径为例,当R1到R4之间存在10条转发路径时,假设有100个应用,若基于现有技术进行路径探测,将每个应用对应的转发路径都探测一遍,则源设备R1至少需要支持100(应用数量)*10(待检测路径数量)=1000个路径探测报文;若基于本公开的方案,由于本公开不需要考虑不同应用的情况,因此源设备只需要支持本设备对于这10条转发路径中的节点上的标签进行订阅即可,如图1-1所述,R1到R4之间最多包括5个节点(即R2、R3、R4、R5、R6),因此源设备R1可以向这五个节点分别发送1个订阅报文,即5个订阅报文,从而可以获取该转发路径中的各个节点中的全部标签的状态,从而确定该转发路径的状态,相比可见,本公开可以极大的减少探测报文的发送量,降低设备的性能消耗。
二是,本公开通过订阅报文确定标签栈中的标签是否失效,从而进行路径的检测,订阅报文根据待检测标签所处的目标设备的地址进行路由转发,而现有技术中的进行路径检测的探测报文只能按照探测的转发路径进行转发,因此本公开可以使订阅报文的订阅响应报文,即回程报文的转发路径与订阅报文的去程路径一致,即均通过路由转发,从而可以避免因去程路径与回程路径不同造成的误检问题。
请参考图3,是本公开一种示例性实施方式中的另一种路径故障检测方法的处理流程图,所述方法应用于网络设备,所述方法包括:
步骤301、当所述网络设备作为待检测路径的目标设备时,接收所述待检测路径的源设备基于所述目标设备的地址信息经过路由转发的携带待检测标签的订阅报文,所述待检测标签为所述待检测路径对应的标签栈中位于所述目标设备上的标签;
在本实施例中,由于待检测路径的源设备在确定待检测路径的标签栈中存在标签状态未知的标签时,源设备会向该状态未知的待检测标签所处的目标设备发送订阅报文,该订阅报文中携带待检测标签以及该目标设备的地址信息。因此当网络设备作为待检测路径的目标设备时,可以接收源设备发送的携带所述待检测标签的标签发现报文,所述标签发现报文是所述源设备在确定所述待检测标签是邻接标签且未记录所述目标设备的地址信息时,以所述标签栈中的所述待检测标签为目标标签,基于所述标签栈进行标签转发的。
步骤302、当本地记录的标签与所述待检测标签相匹配时,获取所述待检测标签对应的表征所述待检测标签是否有效的标签状态信息;
在本实施例中,目标设备先判断自身是否支持标签订阅功能,例如是否可以识别该订阅报文,若支持,则确定订阅成功,并在订阅响应报文中添加订阅成功标识;若不支持,则直接向源设备回复携带订阅失败标识的订阅响应报文。
在订阅成功时,目标设备可以进一步查找该待检测标签在本地的标签转发表中对应的表征所述待检测标签是否有效的标签状态信息,例如该标签状态信息包括标签有效或标签失效;如果查找到待检测标签对应的标签状态,则目标设备可以根据所述源设备的地址信息向所述源设备反馈订阅响应报文,所述订阅响应报文中携带所述待检测标签和所述待检测标签对应的表征所述待检测标签是否有效的标签状态信息,以及订阅成功标识;如果未查找到该待检测标签对应的标签状态,则向所述源设备反馈携带订阅失败标识的订阅响应报文,以使源设备获知订阅失败后,重新对该待检测标签进行订阅。
步骤303、向所述源设备返回订阅响应报文,所述订阅响应报文中携带所述待检测标签以及表征所述待检测标签的是否有效的标签状态信息,以使所述源设备根据所述标签状态信息确定所述待检测标签是否有效。
在获取待检测标签的标签状态信息后,目标设备可以向所述源设备返回订阅响应报文。在反馈订阅响应报文时,目标设备以源设备的地址信息作为目的地址,通过路由转发该订阅响应报文,以使该订阅响应报文可以顺利转发至源设备,并且可以保证该订阅响应报文与所述订阅报文的路径一致。所述订阅响应报文中携带所述待检测标签以及所述待检测标签对应的标签状态信息,以使所述源设备根据所述待检测标签对应的标签状态信息确定所述待检测标签是否有效,并通过判断所述标签栈中是否存在至少一个失效的标签,如果是,则确定待检测路径异常,否则,确定待检测路径正常。如果超过指定时间未回复,则会导致源设备认为该待检测标签失效。
作为一个实施例,目标设备还可以接收源设备发送的携带所述待检测标签的标签发现报文,所述标签发现报文是所述源设备在确定所述待检测标签是邻接标签且未记录所述目标设备的地址信息时,以所述标签栈中的所述待检测标签为目标标签,基于所述标签栈进行标签转发的。当本设备确定所述待检测标签与自身邻接链路的邻接标签相匹配时,可以向所述源设备返回携带自身地址信息的发现应答报文,以使所述源设备获取所述目标设备的地址信息。
作为一个实施例,在订阅成功后,目标设备可以周期性的反馈订阅响应报文到源设备,从而可以使源设备在标签订阅期间,周期性的获取待检测标签的状态,从而可以持续监测待检测路径的状态,避免路径故障导致的流量中断。
因此本公开可以通过标签状态订阅通知的机制,使得源设备可以分别获取转发路径上的每个待检测标签的状态,从而可以选择标签有效的路径转发流量,避免流量中断。由于现有技术中需要基于待检测路径发送探测报文,使探测报文按照待检测路径走一遍,从而确定待检测路径是否故障,而本公开可以针对待检测路径中的每个待检测标签分别发送所对应的订阅报文来探测每个待检测标签的状态,从而通过待检测标签的标签状态来确定整条待检测路径的状态,从而可以无需针对不同应用对同一路径重复进行路径检测,因此可以大大减少了源设备发送报文的数量;并且本公开可以使订阅报文根据待检测标签所处的目标设备的地址进行路由转发,从而可以使回程报文的转发路径与订阅报文的路径一致,避免因回程路径不同造成的误检问题。
为使本公开的目的、技术方案及优点更加清楚明白,下面结合图4对本公开的方案作进一步地详细说明。
基于图1-2所示的转发路径示意图,以源设备R1需要获取目标设备R4的邻接标签的状态为例,具体路径故障检测方法如下:
请参见图4,是本公开一种示例性的路径检测方法的交互流程图,包括如下步骤:
步骤401、R1在确定所述R4的邻接标签后,若确定自身未记录R4的地址信息,则发送携带所述邻接标签的标签发现报文至R4;
举例来讲,标签发现报文中的关键字段如表1所示:
表1
其中:
Segment路径标签栈:复制原有路径标签栈中到待检测的邻接标签前的所有标签;
协议:协议为UDP协议,即标签发现报文为UDP报文;
源IP地址:标签发现报文的源设备地址,本实施例中为源设备R1的地址;
目的IP地址:由于当前目的IP地址未知,因此使用广播地址255.255.255.255;
源端口:源端口为随机端口;
目的端口:固定端口,目标设备需要监听此端口来获取该标签发现报文;本实施例中以4321端口为例进行说明;
Operarion ID:操作类型,在本实施例中标签发现报文的类型用0x1来表示;
Transaction ID:事务ID,随机数,用于确定标签发现报文对应的发现应答报文,当发现应答报文和标签发现报文携带的事务ID相同时,确定该发现应答报文与标签发现报文相对应;
Segment IP:邻接标签对应的目标设备的地址,在标签发现报文中为0.0.0.0;
Segment标签:需要发现的邻接标签。
步骤402、R4收到该标签发现报文时,若确定该标签发现报文中的待检测标签与本地的邻接标签相匹配,则向R1反馈源地址为自身的IP地址(即R4的IP地址),目的地址为R1的IP地址的发现应答报文;
举例来讲,发现应答报文中的关键字段如表2所示:
表2
其中:
源IP地址:响应标签发现报文的节点设备地址,在本实施例中为R4的地址;
目的IP地址:发送标签发现报文的源节点地址,在本实施例中为R1的地址;
源端口:固定端口,本实施例中以4321端口为例进行说明;
目的端口:对应标签发现报文的源端口;
Operarion ID:操作类型,如果设备本地存在与标签发现报文中携带的邻接标签相匹配的邻接标签,则操作类型为成功响应,例如可以表示为0x2;如果节点设备本地不存在相匹配的邻接标签,则操作类型为失败响应,例如可以表示为0x3;
Transaction ID:事务ID,和对应的标签发现报文一致,用于匹配标签发现报文和发现应答报文;
Segment IP:如果为成功响应,则为设备地址;如果为失败响应,则为0.0.0.0;
Segment标签:需要发现的邻接标签。该标签与标签发现报文中的需要发现的邻接标签一致。
步骤403、若R1收到该发现应答报文,则记录R4的IP地址;
步骤404、R1向R4发送订阅报文,该订阅报文的源地址为R1的IP地址,目的地址为R4的IP地址,该订阅报文携带处于R4上的状态未知的全部待检测标签;
举例来讲,订阅报文中的关键字段如表3所示:
表3
其中:
源IP地址:源设备地址,本实施例中是源设备R1的地址;
目的IP地址:待检测标签所处的目标设备的地址,本实施例中是目标设备R4的地址;
源端口:源端口为随机端口;
目的端口:固定端口,目标设备需要监听此端口,例如可以为端口4322;
Operarion ID:操作类型:本实施例中操作类型为订阅报文的类型,例如可以用0x4表示;
Transaction ID:事务ID,随机数,用于确定订阅报文对应的订阅响应报文,当订阅响应报文和订阅报文携带的事务ID相同时,确定该订阅响应报文与订阅报文相对应;
Segment IP:同目的IP地址;
最小时间间隔:支持的标签状态上报的最小时间间隔,单位为ms;
Segment标签:需要订阅的待检测标签,包括邻接标签和设备标签;
Subscription-State:Segment标签状态,源设备在向目标设备发送订阅报文时,该字段为未知状态(0x0);
Next Payoad:后续载荷的类型,同一个目标设备有可能需要订阅多个待检测标签的标签状态信息,该标签状态信息包括有效状态和失效状态,如果NextPayLoad为有效状态(0x1),则后面仍然为待检测标签和对应的标签状态信息;如果NextPayLoad为未知状态(0x0),则为最后一个待检测标签。
步骤405、R4收到该订阅报文后,判断是否支持订阅功能,若支持,则在订阅响应报文中携带订阅成功标识,然后继续判断该待检测标签是否在本地维护有对应的标签状态,若是,则向R1发送订阅响应报文,其中,该订阅响应报文中包括:待检测标签、该待检测标签的标签状态信息、以及订阅成功标识;若R4不支持订阅功能,或者该待检测标签没有对应的标签状态,则反馈携带订阅失败标识的订阅响应报文给R1;其中,可以通过路由转发的方式转发订阅响应报文。
举例来讲,订阅响应报文的关键字如表4所示:
表4
其中:
源IP地址:响应订阅报文的节点设备地址,在本实施例中为目标设备R4的地址;
目的IP地址:发送订阅报文的源节点地址,在本实施例中为发送订阅报文的源设备R1的地址;
源端口:4322,固定端口;
目的端口:对应订阅报文的源端口;
Operarion ID:操作类型,如果设备本地存在对应的Segment标签(有一个存在即可回复成功),且支持对应的标签订阅功能,则回复订阅成功报文;如果所有订阅的Segment标签本设备都不存在,或不支持对应的标签订阅功能,则回复订阅失败报文;
Transaction ID:事务ID,和对应的订阅报文一致,用于匹配订阅报文和应答报文;
Segment IP:源设备的地址,在本实施例中为R4的地址;
最小时间间隔:本节点支持的状态上报最小时间间隔和订阅报文中的最小时间间隔比对,取最大值填充,从而可以保证在该最小时间间隔内反馈订阅响应报文,源设备可以以该最小时间间隔作为所述接收订阅响应报文的指定时间,后续状态上报按照此时间间隔上报,单位为ms;
Segment标签:需要订阅的待检测标签;
Subscription-State:Segment标签对应的状态,如果待检测标签在本设备存在,对于邻接标签,设备探测标签对应链路的状态,如果状态正常,则回复active(0x1)有效;如果状态异常,则回复inactive(0x2)失效;对于Node标签,如果设备对应Node标签状态正常,则回复active(0x1)有效;如果状态异常,则回复inactive(0x2)失效;如果待检测标签在本设备不存在,则回复invalid(0x3)订阅失败。
步骤406、R1收到订阅响应报文时,若是携带订阅成功标识,则进一步根据订阅响应报文中的待检测标签的标签状态信息,确定自身记录的待检测标签是否失效;若是携带订阅失败标识,则重新发送订阅报文到R4;
步骤407、在下一个周期中,若R4是订阅成功状态,则会继续获取路径状态通过订阅响应报文反馈给R1;
步骤408、R1若在R4订阅成功后的第一预设时间(例如,用户可定制3个时间周期)内,未收到R4反馈的订阅响应报文,则认为订阅异常,则将R4对应的待检测标签改为失效状态;当收到订阅响应报文中待检测标签对应的标签状态信息为失效或者未知时,也认为对应的标签状态失效;当收到订阅响应报文中待检测标签对应的标签状态信息为有效时,认为对应的标签状态有效;
步骤409、R1若在R4订阅成功后的第二预设时间(例如,用户可定制大于第一预设时间的时间周期,如10个时间周期)内,未收到R4反馈的订阅响应报文,则认为此订阅状态异常,则重新发送订阅报文到R4。如果后续收到原有订阅响应报文,可以直接回复针对原有订阅报文的终止报文,终止报文格式同订阅报文,Operarion ID为终止类型(0x9)。
基于相同的构思,本公开还提供一种网络设备,如图5所示,所述网络设备包括存储器51、处理器52、通信接口53以及通信总线54;其中,所述存储器51、处理器52、通信接口53通过所述通信总线54进行相互间的通信;
所述存储器51,用于存放计算机程序;
所述处理器52,用于执行所述存储器51上所存放的计算机程序,所述处理器52执行所述计算机程序时实现本公开实施例提供的路径故障检测方法的任一步骤。
本公开还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例提供的路径故障检测方法的任一步骤。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于网络设备和计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
综上所述,本公开可以通过待检测路径的源设备在检查出待检测路径对应的标签栈中至少一个标签的状态未知时,针对所述标签栈中状态未知的每一待检测标签,分别向所述待检测标签所处的目标设备发送携带所述待检测标签的订阅报文,所述订阅报文还携带所述目标设备的地址信息,以基于所述地址信息对所述订阅报文进行路由转发;当接收所述目标设备返回的订阅响应报文时,根据所述订阅响应报文携带的所述待检测标签以及表征所述待检测标签是否有效的标签状态信息确定所述待检测标签是否有效;之后检查所述标签栈中是否存在至少一个失效的标签,如果是,确定待检测路径异常,否则,确定待检测路径正常。因此本公开可以通过标签状态订阅的机制,使得源设备可以通过获取目标路径上的待检测标签的状态来确定待检测路径是否故障,从而可以避免因选择了故障路径导致的流量中断问题。相比于现有技术中针对每一条路径发送一个探测报文的路径检测方法,本公开可以针对路径中的每个待检测标签单独发送订阅报文,来订阅某个待检测标签的标签状态,从而大大减少了源设备发送探测报文的数量,提升路径检测效率;同时本公开还可以通过获取待检测标签所处设备的地址信息基于路由转发订阅报文,由于本公开的订阅报文和对应的订阅响应报文均根据路由转发,从而可以保证转发路径一致,因而避免出现现有技术中因回程路径故障导致的误判问题,因此可以提升路径检测的准确率。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。
Claims (9)
1.一种路径故障检测方法,其特征在于,所述方法应用于网络设备,所述方法包括:
当所述网络设备作为待检测路径的源设备时,若检查出所述待检测路径对应的标签栈中至少一个标签的状态未知时,则针对所述标签栈中状态未知的每一待检测标签,向所述待检测标签所处的目标设备发送携带所述待检测标签的订阅报文,所述订阅报文携带所述目标设备的地址信息,以基于所述地址信息对所述订阅报文进行路由转发;
当接收所述目标设备返回的订阅响应报文时,根据所述订阅响应报文携带的所述待检测标签以及表征所述待检测标签是否有效的标签状态信息确定所述待检测标签是否有效;
检查所述标签栈中是否存在至少一个失效的标签,如果是,确定待检测路径异常,否则,确定待检测路径正常。
2.根据权利要求1所述的方法,其特征在于,向所述待检测标签所处的目标设备发送订阅报文之前,所述方法还包括:
当本地未记录所述待检测标签所处的目标设备的地址信息,且所述待检测标签为邻接标签时,向所述目标设备发送携带所述待检测标签的标签发现报文,所述标签发现报文是以所述标签栈中的所述待检测标签为目标标签,基于所述标签栈进行标签转发的;
接收所述目标设备在确定自身邻接链路的邻接标签与所述待检测标签相匹配时反馈的发现应答报文,其中,所述发现应答报文中携带所述目标设备的地址信息;
获取所述发现应答报文中携带的目标设备的地址信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在指定时间内未收到所述订阅响应报文,则确定所述待检测标签失效。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若收到所述目标设备未查找到所述待检测标签时返回的携带订阅失败标识的订阅响应报文,或者,在确定所述待检测标签失效之后的预设时间内未收到所述订阅响应报文,则重新向所述目标设备发送携带所述待检测标签的订阅报文。
5.一种路径故障检测方法,其特征在于,所述方法应用于网络设备,所述方法包括:
当所述网络设备作为待检测路径的目标设备时,接收所述待检测路径的源设备基于所述目标设备的地址信息经过路由转发的携带待检测标签的订阅报文,所述待检测标签为所述待检测路径对应的标签栈中位于所述目标设备上的标签;
当本地记录的标签与所述待检测标签相匹配时,获取所述待检测标签对应的表征所述待检测标签是否有效的标签状态信息;
向所述源设备返回订阅响应报文,所述订阅响应报文中携带所述待检测标签以及表征所述待检测标签的是否有效的标签状态信息,以使所述源设备根据所述标签状态信息确定所述待检测标签是否有效。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收源设备发送的携带所述待检测标签的标签发现报文,所述标签发现报文是所述源设备在确定所述待检测标签是邻接标签且未记录所述目标设备的地址信息时,以所述标签栈中的所述待检测标签为目标标签,基于所述标签栈进行标签转发的;
当所述待检测标签与自身邻接链路的邻接标签相匹配时,向所述源设备返回携带自身地址信息的发现应答报文。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当本地未记录与所述待检测标签相匹配的标签时,向所述源设备返回携带订阅失败标识的订阅响应报文,以使所述源设备重新向所述目标设备发送订阅报文。
8.一种网络设备,其特征在于,所述网络设备包括存储器、处理器、通信接口以及通信总线;其中,所述存储器、处理器、通信接口通过所述通信总线进行相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的计算机程序,所述处理器执行所述计算机程序时实现所述权利要求1-7任一项的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现所述权利要求1-7任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910248853.XA CN109787869B (zh) | 2019-03-29 | 2019-03-29 | 一种路径故障检测方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910248853.XA CN109787869B (zh) | 2019-03-29 | 2019-03-29 | 一种路径故障检测方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109787869A CN109787869A (zh) | 2019-05-21 |
CN109787869B true CN109787869B (zh) | 2020-11-06 |
Family
ID=66490722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910248853.XA Active CN109787869B (zh) | 2019-03-29 | 2019-03-29 | 一种路径故障检测方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109787869B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112448921A (zh) * | 2019-08-30 | 2021-03-05 | 华为技术有限公司 | 检测后门的方法和装置 |
CN110995694B (zh) * | 2019-11-28 | 2021-10-12 | 新华三半导体技术有限公司 | 网络报文检测方法、装置、网络安全设备及存储介质 |
CN113358975B (zh) * | 2021-06-11 | 2023-01-20 | 南方电网数字电网研究院有限公司 | 输电网络的故障检测方法、装置、计算机设备和存储介质 |
CN114760225A (zh) * | 2022-03-31 | 2022-07-15 | 深信服科技股份有限公司 | 一种故障诊断方法、系统和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0232960A2 (en) * | 1986-01-16 | 1987-08-19 | International Business Machines Corporation | Method for automatically extending the size of a segment in a page segmented virtual memory data processing system |
KR20030032157A (ko) * | 2001-10-16 | 2003-04-26 | 에스케이 텔레콤주식회사 | 이동 통신 교환기 통화로 단계적 시험 방법 |
CN1585377A (zh) * | 2003-08-22 | 2005-02-23 | 华为技术有限公司 | 一种在路由设备中实现报文转发的方法 |
CN101005442A (zh) * | 2006-01-20 | 2007-07-25 | 华为技术有限公司 | 一种重路由方法 |
CN104426956A (zh) * | 2013-08-28 | 2015-03-18 | 华为技术有限公司 | 一种终端状态订阅方法、装置及系统 |
CN104954153A (zh) * | 2014-03-24 | 2015-09-30 | 中兴通讯股份有限公司 | 节点故障检测方法及装置 |
CN109120449A (zh) * | 2018-08-28 | 2019-01-01 | 新华三技术有限公司 | 一种链路故障的检测方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100596054C (zh) * | 2006-01-18 | 2010-03-24 | 杭州华三通信技术有限公司 | 一种同步通信方法、系统及设备 |
CN106452894B (zh) * | 2016-10-24 | 2019-11-08 | 北京东土科技股份有限公司 | 故障连接检测方法和设备 |
CN108521408B (zh) * | 2018-03-22 | 2021-03-12 | 平安科技(深圳)有限公司 | 抵抗网络攻击方法、装置、计算机设备及存储介质 |
-
2019
- 2019-03-29 CN CN201910248853.XA patent/CN109787869B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0232960A2 (en) * | 1986-01-16 | 1987-08-19 | International Business Machines Corporation | Method for automatically extending the size of a segment in a page segmented virtual memory data processing system |
KR20030032157A (ko) * | 2001-10-16 | 2003-04-26 | 에스케이 텔레콤주식회사 | 이동 통신 교환기 통화로 단계적 시험 방법 |
CN1585377A (zh) * | 2003-08-22 | 2005-02-23 | 华为技术有限公司 | 一种在路由设备中实现报文转发的方法 |
CN101005442A (zh) * | 2006-01-20 | 2007-07-25 | 华为技术有限公司 | 一种重路由方法 |
CN104426956A (zh) * | 2013-08-28 | 2015-03-18 | 华为技术有限公司 | 一种终端状态订阅方法、装置及系统 |
CN104954153A (zh) * | 2014-03-24 | 2015-09-30 | 中兴通讯股份有限公司 | 节点故障检测方法及装置 |
CN109120449A (zh) * | 2018-08-28 | 2019-01-01 | 新华三技术有限公司 | 一种链路故障的检测方法及装置 |
Non-Patent Citations (2)
Title |
---|
Hope: A fault-tolerant distributed Pub/Sub architecture for large-scale dynamic network environment;YU Xiaochuan,CHAN Toong Shoon Alvin;《2013 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications》;20131212;全文 * |
基于云计算的移动校园服务平台构建与实现;董启标;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109787869A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109787869B (zh) | 一种路径故障检测方法及设备 | |
CN105812197B (zh) | 位转发入口路由器、位转发路由器及操作管理维护检测方法 | |
US9019815B2 (en) | Source alive route injection | |
CN110034971B (zh) | 检测业务链的方法及装置 | |
US9331932B2 (en) | Network system | |
US7280486B2 (en) | Detection of forwarding problems for external prefixes | |
CN107171883B (zh) | 检测转发表的方法、装置和设备 | |
CN110113259B (zh) | 路径状态通知方法、路径切换方法、转发设备及系统 | |
CN112751733B (zh) | 一种链路检测方法、装置、设备、系统及交换机 | |
JP2008028801A (ja) | 運用管理システム、ノード、運用管理方法及びプログラム | |
JP5884892B2 (ja) | ネットワークシステム、コントローラ、及び負荷分散方法 | |
CN109981323B (zh) | 一种检测数据链路层组播路径状态的方法和网络设备 | |
US11855876B2 (en) | BMP route detection method and network device | |
CN110113260B (zh) | 一种转发表更新方法及装置 | |
CA3104756C (en) | Loop avoidance communications method, device, and system | |
US20230015960A1 (en) | Method and Apparatus for Establishing Forwarding Path, and Computer-Readable Storage Medium | |
WO2017128901A1 (zh) | 一种转发控制方法及设备 | |
CN113055295A (zh) | 通信方法、通信设备和通信系统 | |
CN112291116A (zh) | 链路故障检测方法、装置及网络设备 | |
US8565243B2 (en) | Method and apparatus for using a gossip protocol to communicate across network partitions | |
CN109873766B (zh) | 报文传输方法和装置 | |
CN102685009B (zh) | 一种组播传输路径的探测方法及装置 | |
JP4542580B2 (ja) | 経路ハイジャック検出方法、経路監視装置、経路ハイジャック検出システムおよび経路ハイジャック検出プログラム | |
CN113179189A (zh) | 分段路由故障检测方法、装置、第一分段路由及目的路由 | |
US20230116548A1 (en) | Route Processing Method and Related Device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |