本发明涉及通信技术领域,尤其涉及一种故障定位方法及设备。
背景技术:
通信网络中的单点故障(英文:singlepointoffailure,简称:spf)是指通信网络中的单个节点发生故障时会波及整个系统或者网络,从而导致整个系统或者网络的瘫痪,会严重影响通信网络的正常运行。
为了减少单点故障对通信网络的影响,定时的或者在发生单点故障后及时对通信网络中的各个网络节点进行检测,定位出通信网络中的故障节点尤为重要。
但是,随着通信技术的发展,通信网络中网络节点(即网络设备)的数量和种类越来越多,且各网络节点之间的拓扑结构也越来越复杂,单点故障定位的难度也越来越大。因此,急需一种可以快速实现单点故障准确定位的方案。
技术实现要素:
本发明的实施例提供一种故障定位方法及设备,用以解决由于通信网络中网络节点的数量和种类越来越多,且各网络节点之间的拓扑结构也越来越复杂,导致无法实现单点故障准确定位的问题,可以准确地实现单点故障的定位。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例的第一方面,提供一种故障定位方法,包括:网络探测设备通过预配置的路由路径发送第一检测报文,并记录发送第一检测报文的时间;并在接收到经过预配置的路由路径返回的第一检测报文时,计算 第一时间差,第一时间差为网络探测设备接收第一检测报文的时间与发送第一检测报文的时间的差值;网络探测设备通过预配置的路由路径发送第二检测报文,并记录发送第二检测报文的时间;并在接收到经过预配置的路由路径返回的第二检测报文时,计算第二时间差,第二时间差为网络探测设备接收第二检测报文的时间与发送第二检测报文的时间的差值;最后,网络探测设备计算第一时间差与第二时间差的差值,得到待测节点处理报文的往返时延(英文:roundtriptime,简称:rtt),并在待测节点处理报文的rtt大于或等于第一预设阈值时,确定待测节点处于故障状态。
其中,本发明实施例中的第一检测报文的报文头中包括第一标签栈,该第一标签栈中包含第一多协议标签交换(英文:multiprotocollabelswitching,简称:mpls)保留标签,第一mpls保留标签用于指示待测节点透传第一检测报文,待测节点为预配置的路由路径上的一个网络节点,第一检测报文的目的节点为网络探测设备。
本发明实施例中的第二检测报文的报文头中包括第二标签栈,该第二标签栈中包含第二mpls保留标签和待测节点的出接口标签,第二mpls保留标签用于指示待测节点通过待测节点的交换网芯片处理第二检测报文,并经由待测节点的出接口标签所指示的出接口转发第二检测报文,第二检测报文的目的节点为网络探测设备。
本发明实施例提供的故障定位方法,由于第一检测报文的报文头中包括可以指示待测节点透传第一检测报文的第一mpls保留标签,因此待测节点便可以透传第一检测报文,网络探测设备便可以计算得到当待测节点透传第一检测报文时,预配置的路由路径上传输第一检测报文所使用的时间(第一时间差);并且,由于第二检测报文的报文头中包括可以指示待测节点经由其交换网芯片处理第二检测报文的第二mpls保留标签,因此待测节点便可以经由其交换网芯片处理第二检测报文,网络探测设备便可以计算得到当待测节点经由其交换网芯片处理检测报文后,该预配置的路由路径上传输检测报文所使用的时间(第二时间差);再计算第一时间差和第二时间差的差值rtt(即预配置的路由路径中的待测节点处理检测报文所使用的时间),并根据rtt确定该待测节点处于故障状态。
由于rtt为预配置的路由路径中的待测节点处理检测报文所使用的时间,因此当rtt大于预先配置的故障节点rtt阈值时,便可以确定该待测节点处于故障状态。
由此可见,本发明实施例提供的故障定位方法可以针对任一网络节点(待测节点),通过在检测报文的报文头添加标签栈的方式指示待测节点对检测报文做不同的处理,如此便可以计算得到待测节点处理检测报文的rtt,确定其是否处于故障状态。即通过本方案可以快速准确地实现单点故障的定位。
示例性的,本发明实施例中的预配置的路由路径可以由第一路由路径、待测节点和第二路由路径组成。
本发明实施例中的第一路由路径可以为网络探测设备向待测节点发送检测报文的路径,第二路由路径可以为待测节点向网络探测设备返回检测报文的路径。
上述第一标签栈自栈底到栈顶,按照与报文转发顺序相反的顺序,依次包括第二路由路径上网络节点的mpls节点标签,第一mpls保留标签以及第一路由路径上网络节点的mpls节点标签。
可以想到的是,由于第一mpls保留标签用于指示待测节点透传第一检测报文,因此若一个网络节点(即待测节点)在接收到栈顶标签为第一mpls保留标签的检测报文后,则可以透传该检测报文。
第二标签栈自栈底到栈顶,按照与报文转发顺序相反的顺序,依次包括第二路由路径上网络节点的mpls节点标签,待测网络节点的出接口标签、第二mpls保留标签以及第一路由路径上网络节点的mpls节点标签。
可以想到的是,由于第二mpls保留标签用于指示待测节点通过交换网芯片处理第二检测报文,并经由待测节点的出接口标签所指示的出接口转发第二检测报文,因此若一个网络节点(即待测节点)在接收到栈顶标签为第二mpls保留标签的检测报文后,则可以通过该网络节点的交换网芯片处理该检测报文,并将由该网络节点的出接口标签指示的出接口转发该检测报文。
可以理解的是,网络探测设备可以根据待测节点和当前网络的网络拓扑信息,确定出上述预配置的路由路径,即网络探测设备和待测节点之间的路由路径,然后根据获得的该预配置的路由路径上各个网络节点的mpls节点标签,根据获得的mpls节点标签生成相应的标签栈,用于进行检测报文的转发。其中,预配置的路由路径包括第一路由路径、待测节点和第二路由路径。
可选的,在网络探测设备通过预配置的路由路径发送第一检测报文或者第二检测报文之前,本发明实施例的方法还可以包括:网络探测设备根据待测节点和当前网络的网络拓扑信息,确定第一路由路径和第二路由路径;获取第一路由路径上网络节点的mpls节点标签,并获取第二路由路径上网络节点的mpls节点标签;根据第一路由路径上网络节点的mpls节点标签、第一mpls保留标签以及第二路由路径上网络节点的mpls节点标签,结合第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第一检测报文的顺序,生成第一标签栈;在第一检测报文的报文头中添加第一标签栈;根据第一路由路径上网络节点的mpls节点标签、待测节点的出接口标签以及第二路由路径上网络节点的mpls节点标签,结合第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第二检测报文的顺序,生成第二标签栈;待测节点的出接口标签所指示的出接口连接待测节点在预配置的路由路径中的下一跳节点;在第二检测报文的报文头中添加第二标签栈。
优选的,网络探测设备可以通过在第一检测报文的报文头打上时间戳的方式,记录发送第一检测报文的时间。
可以想到的是,网络探测设备在第一检测报文的报文头打上时间戳的具体方法可以包括:网络探测设备向第一标签栈的栈底压入第一时间戳。
其中,网络探测设备可以先在第一标签栈中压入第一时间戳,然后再依次按照与报文转发顺序相反的顺序,依次向第一标签栈中压入第二路由路径上网络节点的mpls节点标签,第一mpls保留标签以及第一路由路径上网络节点的mpls节点标签。
相应的,“网络探测设备在接收到经由待测节点转发的第一检测报文 时,根据网络探测设备发送第一检测报文的时间,计算第一时间差”的方法具体可以包括:网络探测设备在接收到经由待测节点转发的第一检测报文时,根据接收第一检测报文的时间和第一检测报文的报文头上的时间戳,计算第一时间差。
类似的,网络探测设备可以通过在第二检测报文的报文头打上时间戳的方式,记录发送第二检测报文的时间。
相应的,“网络探测设备在接收到经由待测节点转发的第二检测报文时,根据网络探测设备发送第二检测报文的时间,计算第二时间差”的方法可以包括:网络探测设备在接收到经由待测节点转发的第二检测报文时,根据接收第二检测报文的时间和第二检测报文的报文头上的时间戳,计算第二时间差。
需要说明的是,网络探测设备在第二检测报文的报文头打上时间戳的方法与上述网络探测设备在第一检测报文的报文头打上时间戳的方法类似,本发明实施例这里不再赘述。
本方案中,采用在报文头打上时间戳的方式记录网络探测设备发送第一检测报文/第二检测报文的时间不会占用网络探测设备的内存,也不会存在记录多个检测报文的发送时间混乱导致计算错误的问题。
进一步的,本发明实施例的方法还可以包括:若待测节点处理报文的rtt小于第二预设阈值,网络探测设备则确定待测节点处于正常工作状态。
其中,在本发明实施例中第二预设阈值小于或者等于第一预设阈值。
本发明实施例提供的故障定位方法,可以针对任一网络节点(待测节点),通过在检测报文的报文头添加标签栈的方式指示待测节点对检测报文做不同的处理,如此便可以计算得到待测节点处理检测报文的rtt,确定其是否处于故障状态。即通过本方案可以准确地实现单点故障的定位。
本发明实施例的第二方面,提供一种故障定位方法,包括:网络节点接收上一跳节点发送的检测报文;若该检测报文的报文头中的标签栈的栈顶标签为第一多协议标签交换mpls保留标签,则弹出第一mpls保留 标签,并将检测报文透传至标签栈的当前栈顶标签所指示的网络节点;若该检测报文的报文头中的标签栈的栈顶标签为第二mpls保留标签,则弹出第二mpls保留标签,并通过网络节点的交换网芯片处理检测报文,经由标签栈的当前栈顶标签所指示的出接口转发检测报文。
本发明实施例提供的故障定位方法,由于该网络节点对于两种包含不同mpls保留标签的检测报文做不同的处理,对包含第一mpls保留标签的检测报文进行透传,在该检测报文的传输过程中则不会产生该网络节点处理该检测报文的rtt;而通过该网络节点的交换网芯片对该检测报文进行处理,则在该检测报文的传输过程中会产生该网络节点处理该检测报文的rtt(即网络节点处理检测报文所使用的时间);因此,网络探测设备则可以根据传输上述两种检测报文的时间差得到该网络节点处理检测报文的rtt,并根据rtt确定该待测节点是否处于故障状态。
由于rtt为预配置的路由路径中的待测节点处理检测报文所使用的时间,因此当rtt大于预先配置的故障节点rtt阈值时,便可以确定该待测节点处于故障状态。
由此可见,在本发明实施例中,网络节点可以对检测报文做不同的处理,如此便可以使得网络探测设备能够计算得到该网络节点的rtt,确定其是否处于故障状态。即通过本方案可以快速准确地实现单点故障的定位。
需要说明的是,第二方面中的标签栈可以为上述第一方面或第一方面的任一种实现方式所述的第一标签栈或第二标签栈;并且第二方面中的第一mpls保留标签和第二mpls保留标签的详细描述可以参考上述第一方面中第一mpls保留标签和第二mpls保留标签的相关内容,本发明实施例这里不再赘述。
进一步的,本发明实施例的方法还可以包括:若检测报文的报文头中的标签栈的栈顶标签为所述网络节点的mpls节点标签,则弹出网络节点的mpls节点标签,并将检测报文转发至标签栈的当前栈顶标签所指示的网络节点。
本方案中,当网络节点接收到的检测报文的报文头中添加了标签栈, 且标签栈的栈顶标签为网络节点的mpls节点标签时,则表示该网络节点不是待测节点,此时该网络节点只需要弹出该网络节点的mpls节点标签,并将检测报文转发至标签栈的当前栈顶标签所指示的网络节点,便可以保证检测报文的正常转发。
本发明实施例的第三方面,提供一种网络探测设备,包括:发送模块、记录模块、接收模块、计算模块和故障确定模块。
发送模块,用于通过预配置的路由路径发送第一检测报文,以及通过预配置的路由路径发送第二检测报文;第一检测报文的报文头中包括第一标签栈,第一标签栈中包含第一多协议标签交换mpls保留标签,第一mpls保留标签用于指示待测节点透传第一检测报文,待测节点为预配置的路由路径上的一个网络节点,第一检测报文的目的节点为网络探测设备;第二检测报文的报文头中包括第二标签栈,第二标签栈中包含第二mpls保留标签和待测节点的出接口标签,第二mpls保留标签用于指示待测节点通过待测节点的交换网芯片处理第二检测报文,并经由待测节点的出接口标签所指示的出接口转发第二检测报文,第二检测报文的目的节点为网络探测设备。
记录模块,用于记录发送模块发送第一检测报文的时间,以及记录发送模块发送第二检测报文的时间。
接收模块,用于接收经过预配置的路由路径返回的第一检测报文,以及接收经过预配置的路由路径返回的第二检测报文。
计算模块,用于在接收模块接收到经过预配置的路由路径返回的第一检测报文时,计算第一时间差,以及在接收模块接收到经过预配置的路由路径返回的第二检测报文时,计算第二时间差;计算第一时间差与第二时间差的差值,得到待测节点处理报文的往返时延rtt;第一时间差为发送模块发送第一检测报文的时间与接收模块接收第一检测报文的时间的差值;第二时间差为发送模块发送第二检测报文的时间与接收模块接收第二检测报文的时间的差值。
故障确定模块,用于在计算模块计算得到的待测节点处理报文的rtt大于第一预设阈值时,确定待测节点处于故障状态。
需要说明的是,第三方面中的预配置的路由路径、第一标签栈、第一mpls保留标签、第二标签栈和第二mpls保留标签的详细描述可以参考上述第一方面中预配置的路由路径、第一标签栈、第一mpls保留标签、第二标签栈和第二mpls保留标签的相关内容,本发明实施例这里不再赘述。
进一步的,上述网络探测设备还可以包括:路径确定模块、标签获取模块和处理模块。
路径确定模块,用于在发送模块发送第一检测报文和所述第二检测报文之前,根据待测节点和当前网络的网络拓扑信息,确定第一路由路径和第二路由路径。
标签获取模块,用于获取第一路由路径上网络节点的mpls节点标签,并获取第二路由路径上网络节点的mpls节点标签。
处理模块,用于根据上述标签获取模块获取的第一路由路径上网络节点的mpls节点标签、第一mpls保留标签以及上述标签获取模块获取的第二路由路径上网络节点的mpls节点标签,结合第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第一检测报文的顺序,生成第一标签栈,在第一检测报文的报文头中添加所述第一标签栈;以及,根据上述标签获取模块获取的第一路由路径上网络节点的mpls节点标签、待测节点的出接口标签以及上述标签获取模块获取的第二路由路径上网络节点的mpls节点标签,结合第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第二检测报文的顺序,生成第二标签栈,在第二检测报文的报文头中添加所述第二标签栈;待测节点的出接口标签所指示的出接口连接待测节点在预配置的路由路径中的下一跳节点。
进一步的,上述记录模块,具体用于在第一检测报文的报文头打上时间戳。
相应的,上述计算模块,具体用于在所述接收模块接收到经由所述待测节点转发的第一检测报文时,根据所述接收模块接收所述第一检测报文的时间和所述记录模块在所述第一检测报文的报文头上打的时间戳,计算所述第一时间差。
进一步的,上述记录模块,具体用于在所述第二检测报文的报文头打上时间戳。
相应的,上述计算模块,具体用于在所述接收模块接收到经由所述待测节点转发的第二检测报文时,根据所述接收模块接收所述第二检测报文的时间和所述记录模块在所述第二检测报文的报文头上打的时间戳,计算所述第二时间差。
进一步的,上述故障确定模块,还用于:
若所述计算模块计算得到的所述待测节点处理报文的rtt小于第二预设阈值,则确定所述待测节点处于正常工作状态。
其中,第二预设阈值小于或者等于第一预设阈值。
本发明实施例的第四方面,提供一种网络节点,包括:接收模块、处理模块和发送模块。
接收模块,用于接收上一跳节点发送的检测报文。
处理模块,用于若接收模块接收到的检测报文的报文头中的标签栈的栈顶标签为第一多协议标签交换mpls保留标签,则弹出第一mpls保留标签;若接收模块接收到的检测报文的报文头中的标签栈的栈顶标签为第二mpls保留标签,则弹出第二mpls保留标签,并通过网络节点的交换网芯片处理检测报文。
发送模块,用于在处理模块弹出第一mpls保留标签后,将检测报文透传至标签栈的当前栈顶标签所指示的网络节点;在处理模块通过交换网芯片处理检测报文后,经由标签栈的当前栈顶标签所指示的出接口转发检测报文。
需要说明的是,第二方面和第四方面中的第一mpls保留标签和第二mpls保留标签的详细描述可以参考上述第一方面中第一mpls保留标签和第二mpls保留标签的相关内容,本发明实施例这里不再赘述。
可选的,上述处理模块,还用于若接收模块接收到的检测报文的报文头中的标签栈的栈顶标签为网络节点的mpls节点标签,则弹出网络节点的mpls节点标签。
相应的,上述发送模块,还用于在处理模块弹出网络节点的mpls节点标签后,将检测报文转发至标签栈的当前栈顶标签所指示的网络节点。
本发明实施例的第五方面,还提供一种网络探测设备,包括:
处理器、存储器、总线系统以及收发器,所述处理器、所述存储器和所述收发器通过所述总线系统相连。
所述存储器用于存储程序代码,当所述网络探测设备的处理器执行所述程序代码时,所述网络探测设备执行如第一方面或第一方面的任一种实现方式所述的故障定位方法。
本发明实施例的第六方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有一个或多个程序,该一个或多个程序包括指令,当网络探测设备的处理器执行所述程序代码时,网络探测设备执行如第一方面及其各种实现方式所述的故障定位方法。
需要说明的是,本发明实施例第三方面、第五方面和第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第三方面、第五方面和第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,本发明实施例这里不再赘述。
本发明实施例的第七方面,提供一种网络节点,包括:
处理器、存储器、总线系统以及收发器,所述处理器、所述存储器和所述收发器通过所述总线系统相连;
所述存储器用于存储程序代码,当所述网络节点的处理器执行所述程序代码时,所述网络节点执行第二方面或第二方面的任一种实现方式所述的故障定位方法。
本发明实施例的第八方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有一个或多个程序,该一个或多个程序包括指令,当网络节点的处理器执行所述程序代码时,网络节点执行如第一方面及其各种实现方式所述的故障定位方法。
需要说明的是,本发明实施例第四方面、第六方面和第八方面及其各 种实现方式的具体描述,可以参考第二方面及其各种实现方式中的详细描述;并且,第四方面、第六方面和第八方面及其各种实现方式的有益效果,可以参考第二方面及其各种实现方式中的有益效果分析,本发明实施例这里不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种携带32位mpls标签的报文头的结构示意图;
图2为本发明实施例提供的一种通过mpls标签栈转发报文的过程示意图;
图3为本发明实施例提供的一种检测报文转发过程示意图;
图4为本发明实施例提供的一种故障定位方法的流程示意图;
图5为本发明实施例提供的第一标签栈的结构示意图一;
图6为本发明实施例提供的第二标签栈的结构示意图一;
图7为本发明实施例提供的另一种检测报文转发过程示意图;
图8为本发明实施例提供的另一种检测报文转发过程示意图;
图9为本发明实施例提供的第一标签栈的结构示意图二;
图10为本发明实施例提供的第二标签栈的结构示意图二;
图11为本发明实施例提供的一种网络探测设备的结构示意图;
图12为本发明实施例提供的另一种网络探测设备的结构示意图;
图13为本发明实施例提供的一种网络节点的结构示意图;
图14为本发明实施例提供的另一种网络探测设备的结构示意图;
图15为本发明实施例提供的另一种网络节点的结构示意图。
具体实施方式
本发明的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一检测报文和第二检测报文等是用于区别不同的报文,而不是用于描述报文的特征顺序。
在本发明的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理器是指两个或两个以上处理器。
此外,本发明的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明实施例提供的一种故障定位方法及设备可以应用于网络的单点故障定位过程中。具体基于mpls协议,采用分段路由(英文:segmentrouting,简称:sr)技术实现网络中的单点故障定位。
mpls是一种可以将网际协议(英文:internetprotocol,简称:ip)地址映射为简单的具有固定长度的标签(label),用于不同的包转发和包交换的技术。在mpls技术的报文转发过程中,可以为转发待转发报文的各个网络节点分配固定长度的mpls标签,然后将该这些网络节点的mpls标签按照与报文转发顺序相反的顺序,封装至该报文的报文头,以使网络节点根据mpls标签进行数据的转发。其中,上述报文转发顺序为上述网络节点转发报文的顺序。
示例性的,如图1所示,以携带32位mpls标签的报文头为例,对 封装了mpls标签的报文头结构进行说明:
在图1所示的报文头中,由左至右依次为:二层报文头、mpls标签和三层报文头(即ip层报文头)。其中,mpls标签包括四部分,依次为:20比特的标签label字段、3比特的流量等级(英文:trafficclassfieldforqos,简称:cos)字段、1比特的堆栈标记字段和8比特的生存期(英文:timetolive,简称:ttl)字段。mpls标签中的label区域用于承载mplslabel的实际值。
需要说明的是,上述mpls标签可以为包含多个mpls节点标签的mpls标签栈,该多个mpls节点标签按照报文的转发路径依次压入该标签栈。
示例性的,假设一个报文在转发过程中依次需要经过如图2所示的网络节点a、网络节点b、网络节点c和网络节点d。网络节点a的mpls节点标签为10,网络节点b的mpls节点标签为20,网络节点c的mpls节点标签为30,网络节点d的mpls节点标签为40。其中,网络中给每一个网络节点分配的标签在内部网关协议(英文:interiorgatewayprotocol,简称:igp)域内是全局唯一的。上述网络节点a、网络节点b、网络节点c和网络节点d可以根据如图2所示的mpls标签栈中的mpls节点标签进行报文的转发。
如图2所示,网络节点a接收包含mpls标签栈1的报文,在识别到mpls标签栈1的栈顶标签为该网络节点a的mpls节点标签10后,则弹出mpls标签栈1的栈顶标签10(即对mpls标签栈1的栈顶标签10做出栈处理);网络节点a可以在弹出mpls标签栈1的栈顶标签10后,得到栈顶标签为20的mpls标签栈2,并根据mpls标签栈2的栈顶标签20将报文转发至mpls节点标签20对应的网络节点b;网络节点b接收包含mpls标签栈2的报文,弹出mpls标签栈2的栈顶标签20(即对mpls标签栈2的栈顶标签20做出栈处理),得到栈顶标签为30的mpls标签栈3,并根据mpls标签栈3的栈顶标签30将报文转发至mpls节点标签30对应的网络节点c;网络节点c接收包含mpls标签栈3的报文,弹出mpls标签栈3的栈顶标签30(即对mpls标签栈3 的栈顶标签30做出栈处理),得到栈顶标签为40的mpls标签栈4,并根据mpls标签栈4的栈顶标签40将报文转发至mpls节点标签40对应的网络节点d;网络节点d接收到包含mpls标签栈4的报文,弹出mpls标签栈4的栈顶标签40(即对mpls标签栈4的栈顶标签40做出栈处理),发现网络节点d即为该报文的目的网络节点,则发送给相应的端口进行处理。
示例性的,如图3所示,网络节点p1的mpls节点标签为8801,网络节点p2的mpls节点标签为8802,网络节点p3的mpls节点标签为8803,网络节点p4的mpls节点标签为8804,网络节点p5的mpls节点标签为8805。
在sr技术中,不仅可以为每一个网络节点分配唯一标识该网络节点的mpls节点标签,每一个网络节点还可以为该网络节点的每一个出接口分配一个mpls链路标签。其中,每一个网络节点都有至少一个出接口,该至少一个出接口中的每一个出接口连接不同的其他网络节点。
一方面,网络中每个网络节点的mpls节点标签的转发规则如下:一个网络节点接收到包含mpls标签栈的报文后,则按照最短路径算法向该mpls标签栈的栈顶标签所指示的网络节点转发该报文。
另一方面,链路标签的转发规则如下所示:一个网络节点接收到包含mpls标签栈的报文,并弹出该mpls标签栈的栈顶标签(即该网络节点的标签)后,若识别到该mpls标签栈的当前栈顶标签为链路标签,则将该报文转发到该链路标签指示的出接口。由于网络节点的每一个链路标签均指示一个出接口,而网络节点的每一个出接口均对应一个其他网络节点,因此向链路标签指示的出接口转发报文,便可以将报文转发至与该出接口连接的其他网络节点。
需要说明的是,一个网络节点为该网络节点的每一个出接口分配的链路标签可以在该网络节点中唯一标识该出接口。不同网络节点的出接口的标签可以相同。例如,网络节点a可以为网络节点a的两个出接口分别分配mpls链路标签a0和a1,网络节点b可以为网络节点b的两个出接口分别分配链路mpls标签a0和b0。
示例性的,本发明实施例提到的网络节点可以为路由器、交换机等网络设备中的任一个,本发明实施例对此不做限制。
本发明实施例提供的故障定位方法可以基于mpls协议,结合sr技术中的节点标签和链路标签方式实现网络中的单点故障定位。具体的,本发明实施例提供的故障定位方法可以应用于如图3所示的通信网络系统中,该通信网络系统包括网络探测设备11和多个网络节点p1-p5,本发明实施例的方法可以用于定位如图3所示的通信网络系统中任一发生单点故障的网络节点(如网络节点p3)。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部实施例。
本发明实施例提供一种故障定位方法,如图4所示,该故障定位方法包括:
s101、网络探测设备通过预配置的路由路径发送第一检测报文,并记录发送第一检测报文的时间。
其中,第一检测报文的报文头中包括第一标签栈,第一标签栈中包含第一mpls保留标签,第一mpls保留标签用于指示待测节点透传第一检测报文。
待测节点为预配置的路由路径上的一个网络节点。例如,如图3所示,网络节点p3为本发明实施例中的待测节点,预配置的路由路径为如图3所示的路由路径:网络探测设备-网络节点p1-网络节点p2-网络节点p3-网络节点p4-网络节点p5-网络探测设备。
可以想到的是,由于第一标签栈中包含第一mpls保留标签,且第一mpls保留标签用于指示待测节点透传第一检测报文;因此,待测节点在接收到该第一检测报文后,则不会按照正常的报文处理流程处理该第一检测报文,而是会直接透传该第一检测报文。
可以理解的是,透传即是透明传送,即无论针对何种业务的传输(即不管是什么报文),网络节点负责将该报文传送对应的下一跳节点,同时 保证传输的质量即可,而不对报文做任何处理。
需要说明的是,本发明实施例中的第一mpls保留标签和后续的第二mpls保留标签可以分别为国际互联网工程任务组(英文:theinternetengineeringtaskforce,简称:ietf)定义的两个mpls保留标签20和21中的一个。当第一mpls保留标签为20时,第二mpls保留标签为21;当第二mpls保留标签为21时,第一mpls保留标签为20。
其中,本发明实施例中以第一mpls保留标签为20,第二mpls保留标签为21为例,对本发明实施例提供的故障定位方法进行详细说明。
s102、网络节点接收上一跳节点发送的第一检测报文。
可以想到的是,当网络探测设备发送第一检测报文的下一跳节点为该网络节点(如图3所示的p1)时,该网络节点则可以接收到网络探测设备发送的第一检测报文,此时该网络节点的上一跳节点为网络探测设备。
当然,若网络节点的上一跳节点不是网络探测设备,则该网络节点则可以接收到其他网络节点转发的由网络探测设备发送的第一检测报文。例如图3所示的p3可以接收到依次经由网络节点p1和网络节点p2转发的第一检测报文。
s103、若第一检测报文的报文头中的标签栈的栈顶标签为第一mpls保留标签,网络节点则弹出第一mpls保留标签,并将第一检测报文透传至第一标签栈的当前栈顶标签所指示的网络节点。
其中,由于第一mpls保留标签用于指示待测节点透传第一检测报文;因此,当待测节点接收到该第一检测报文,则不会按照正常的报文处理流程处理该第一检测报文,而是会直接透传该第一检测报文。其中,如图3所示中带箭头虚线所示的路径为第一检测报文的传输路径。
以图3所示的网络节点p3为待测节点为例,网络节点p3在接收到压入了第一标签栈的第一检测报文,且识别到该第一标签栈的栈顶标签为第一mpls保留标签后,则可以直接通过其入接口板透传该第一检测报文,将其转发给预配置的路由路径中网络节点p3的下一跳网络节点p4。
s104、网络探测设备接收上一跳节点发送的第一检测报文,根据网络 探测设备发送第一检测报文的时间,计算第一时间差,第一时间差为网络探测设备接收第一检测报文的时间与发送第一检测报文的时间的差值。
其中,由于第一检测报文的目的节点为网络探测设备,因此网络探测设备接收上一跳节点便可以解析第一检测报文的报文头,得到第一检测报文的目的节点的ip地址,该目的节点的ip地址即为网络探测设备的ip地址。
网络探测设备可以根据接收该第一检测报文的时间t2和网络探测设备记录的该网络探测设备发送第一检测报文的时间t1,计算第一时间差△t=t2-t1。
s105、网络探测设备通过预配置的路由路径发送第二检测报文,并记录发送第二检测报文的时间。
其中,第二标签栈中包含第二mpls保留标签和待测节点的出接口标签,第二mpls保留标签用于指示待测节点通过交换网芯片处理第二检测报文,并经由待测节点的出接口标签所指示的出接口转发第二检测报文。
s106、网络节点接收上一跳节点发送的第二检测报文。
可以想到的是,当网络探测设备发送第二检测报文的下一跳节点为该网络节点(如图3所示的p1)时,该网络节点则可以接收到网络探测设备发送的第二检测报文,此时该网络节点的上一跳节点为网络探测设备。
当然,若网络节点的上一跳节点不是网络探测设备,则该网络节点则可以接收到其他网络节点转发的由网络探测设备发送的第二检测报文。例如图3所示的p3可以接收到依次经由网络节点p1和网络节点p2转发的第二检测报文。
s107、若第二检测报文的报文头中的标签栈的栈顶标签为第二mpls保留标签,该网络节点则弹出第二mpls保留标签,并通过交换网芯片处理检测报文,经由标签栈的当前栈顶标签所指示的出接口转发第二检测报文。
其中,由于第二mpls保留标签用于指示待测节点通过交换网芯片处理第二检测报文,并经由待测节点的出接口标签所指示的出接口转发第二 检测报文;因此,当待测节点接收到该第二检测报文后,则会通过其交换网芯片处理第二检测报文,并由待测节点的出接口标签转发第二检测报文。
以图3所示的网络节点p3为待测节点为例,网络节点p3在接收到压入了第二标签栈的第二检测报文,且识别到该第二标签栈的栈顶标签为第二mpls保留标签后,则可以通过其交换网芯片处理第二检测报文,并由待测节点的出接口标签,将第二检测报文转发给预配置的路由路径中网络节点p3的下一跳网络节点p4。其中,如图3所示中带箭头实线所示的路径为第二检测报文的传输路径。
s108、网络探测设备接收上一跳节点发送的第二检测报文,根据网络探测设备发送第二检测报文的时间,计算第二时间差,第二时间差为网络探测设备接收第二检测报文的时间与发送第二检测报文的时间的差值。
其中,由于第二检测报文的目的节点为网络探测设备,因此网络探测设备接收上一跳节点便可以解析第二检测报文的报文头,得到第二检测报文的目的节点的ip地址,该目的节点的ip地址即为网络探测设备的ip地址。
网络探测设备可以根据接收该第二检测报文的时间t2和网络探测设备记录的该网络探测设备发送第二检测报文的时间t1,计算第二时间差△t=t2-t1。
s109、网络探测设备计算第一时间差与第二时间差的差值,得到待测节点处理报文的rtt,并在待测节点处理报文的rtt大于或等于第一预设阈值时,确定待测节点处于故障状态。
基于上述实例,网络探测设备可以计算第一时间差△t与第二时间差△t的差值,得到待测节点处理报文的rtt=△t-△t。
可以理解的是,由于第一时间差△t和第二时间差△t为检测报文在同一路由路径(预配置的路由路径)上传输的时间;且第一时间差△t为预配置的路由路径中的待测节点透传检测报文时,该预配置的路由路径上传输检测报文所使用的时间;而第二时间差△t为预配置的路由路径中的待测节点经由其交换网芯片处理检测报文后,该预配置的路由路径上传输 检测报文所使用的时间;因此,第一时间差△t和第二时间差△t的差值rtt=△t-△t便为预配置的路由路径中的待测节点处理检测报文所使用的时间。
并且,由于正常工作的网络节点处理报文所使用的时间长度是在一定范围内的,因此,若一个网络节点处理检测报文所使用的时间较长,则网络探测设备可以确定该待测节点处于故障状态。
由此,网络探测设备便可以采用rtt的大小,即预配置的路由路径中的待测节点处理检测报文所使用的时间的长短,对比预先配置的故障节点rtt阈值进行,并在待测节点处理检测报文的rtt大于预先配置的故障节点rtt阈值时确定该待测节点处于故障状态。
需要说明的是,本发明实施例中可以先执行s101-s104,再执行s105-s108;也可以先执行s105-s108,再执行s101-s104;还可以同时执行s101-s104和s105-s108。本发明实施例对于s101-s104和s105-s108执行的先后顺序不做限制。
本发明实施例提供的故障定位方法,由于第一检测报文的报文头中包括可以指示待测节点透传第一检测报文的第一mpls保留标签,因此待测节点便可以透传第一检测报文,网络探测设备便可以计算得到当待测节点透传第一检测报文时,预配置的路由路径上传输第一检测报文所使用的时间(第一时间差);并且,由于第二检测报文的报文头中包括可以指示待测节点经由其交换网芯片处理第二检测报文的第二mpls保留标签,因此待测节点便可以经由其交换网芯片处理第二检测报文,网络探测设备便可以计算得到当待测节点经由其交换网芯片处理检测报文后,该预配置的路由路径上传输检测报文所使用的时间(第二时间差);再计算第一时间差和第二时间差的差值rtt(即预配置的路由路径中的待测节点处理检测报文所使用的时间),并根据rtt确定该待测节点处于故障状态。
由于rtt为预配置的路由路径中的待测节点处理检测报文所使用的时间,因此当rtt大于预先配置的故障节点rtt阈值时,便可以确定该待测节点处于故障状态。
由此可见,本发明实施例提供的故障定位方法可以针对任一网络节点 (待测节点),通过在检测报文的报文头添加标签栈的方式指示待测节点对检测报文做不同的处理,如此便可以计算得到待测节点处理检测报文的rtt,确定其是否处于故障状态。即通过本方案可以快速准确地实现单点故障的定位。
示例性的,本发明实施例中的预配置的路由路径可以由第一路由路径、待测节点和第二路由路径组成。
第一路由路径为网络探测设备向待测节点发送报文的路径,第二路由路径为待测节点向所述网络探测设备返回报文的路径。
例如,如图3所示,第一路由路径为网络探测设备-网络节点p1-网络节点p2-网络节点p3这3段路由链路组成的路由路径,第二路由路径为网络节点p3-网络节点p4-网络节点p5-网络探测设备这3段路由链路组成的路由路径。
示例性的,第一标签栈自栈底到栈顶,按照与报文转发顺序相反的顺序,依次包括第二路由路径上网络节点的mpls节点标签、第一mpls保留标签以及第一路由路径上网络节点的mpls节点标签。
可以想到的是,上述第一mpls保留标签可以为预先配置的待测节点的上一跳节点到待测节点的一个链路标签,即用于指示待测节点的上一跳节点通过该上一跳节点的出接口中、与该待测节点链接的出接口转发第一检测报文。
例如,结合图3,如图5所示,第一标签栈自栈底到栈顶,按照与报文转发顺序相反的顺序,依次包括:网络节点p5的mpls节点标签8805、网络节点p4的mpls节点标签8804、第一mpls保留标签20、网络节点p2的mpls节点标签8802和网络节点p1的mpls节点标签8801。
示例性的,第二标签栈自栈底到到栈顶,按照与报文转发顺序相反的顺序,依次包括:第二路由路径上网络节点的mpls节点标签、待测网络节点的出接口标签、第二mpls保留标签和第一路由路径上网络节点的mpls节点标签。
可以想到的是,上述第二mpls保留标签可以为预先配置的待测节点 的上一跳节点到待测节点的另一个链路标签,即用于指示待测节点的上一跳节点通过该上一跳节点的出接口中、与该待测节点链接的出接口转发第一检测报文。
例如,结合图3,如图6所示,第二标签栈自栈底到栈顶,按照与报文转发顺序相反的顺序,依次包括网络节点p5的mpls节点标签8805、网络节点p4的mpls节点标签8804、网络节点p3的出接口标签8810、第二mpls保留标签21、网络节点p2的mpls节点标签8802和网络节点p1的mpls节点标签8801。
进一步的,以网络节点接收到报文头添加了如图5所示的第一标签栈的第一检测报文为例,若该网络节点接收到的第一检测报文的第一标签栈的栈顶标签不是第一mpls保留标签20,而是该网络节点的mpls节点标签,则该网络节点则可以按照上述所述的标签栈转发规则弹出该网络节点的mpls节点标签,并将检测报文转发至弹出该网络节点的mpls节点标签后,第一标签栈的当前栈顶标签所指示的网络节点。
例如,如图7所示,网络节点p1在接收到报文头添加了第一标签栈(标签栈1)的第一检测报文后,可以识别到标签栈1的栈顶标签为网络节点p1的mpls节点标签8801,网络节点p1则可以弹出标签栈1的栈顶标签8801,得到标签栈2;并向标签栈2的栈顶标签8802所指示的网络节点p2转发报文头添加了标签栈2的第一检测报文。
示例性的,如图8所示,网络节点p1在接收到报文头添加了第二标签栈(标签栈6)的第一检测报文后,可以识别到标签栈6的栈顶标签为网络节点p1的mpls节点标签8801,网络节点p1则可以弹出标签栈6的栈顶标签8801,得到标签栈7;并向标签栈7的栈顶标签8802所指示的网络节点p2转发报文头添加了标签栈7的第二检测报文。
进一步的,在s101之前,本发明实施例的方法还可以包括s101a-s101c;
s101a、网络探测设备根据待测节点和当前网络的网络拓扑信息,配置第一路由路径和第二路由路径。
可以想到的是,网络探测设备可以基于最短路径算法,根据待测节点 和当前网络的网络拓扑信息,配置用于对待测节点进行故障定位的路由路径,即第一路由路径和第二路由路径。
当然,网络探测设备还可以基于其他的路由路径算法为待测节点配置路由路径,本发明实施例对此不做限制。
s101b、网络探测设备获取第一路由路径上网络节点的mpls节点标签和第二路由路径上网络节点的mpls节点标签。
s101c、网络探测设备根据第一路由路径上网络节点的mpls节点标签、第一mpls保留标签以及第二路由路径上网络节点的mpls节点标签,结合第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第一检测报文的顺序,生成第一标签栈,并在第一检测报文的报文头中添加第一标签栈。
示例性的,如图3所示,假设第一路由路径上包括网络节点p1和网络节点p2,第二路由路径上包括网络节点p4和网络节点p5,待测节点为网络节点p3。如图5所示,网络探测设备可以按照第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第一检测报文的顺序,依次将网络节点p5的mpls节点标签8805、网络节点p4的mpls节点标签8804、第一mpls保留标签20、网络节点p2的mpls节点标签8802以及网络节点p1的mpls节点标签8801压入堆栈,生成第一标签栈。
进一步的,在s101b之后,s105之前,本发明实施例的方法还可以包括s101d:
s101d、网络探测设备根据第一路由路径上网络节点的mpls节点标签、待测节点的出接口标签以及第二路由路径上网络节点的mpls节点标签,结合第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第二检测报文的顺序,生成第二标签栈,并在第二检测报文的报文头中添加第二标签栈。
其中,待测节点的出接口标签所指示的出接口连接待测节点在预配置的路由路径中的下一跳节点。
示例性的,结合图3,如图6所示,网络探测设备可以按照第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第一检测报文的顺序,依次将网络节点p5的mpls节点标签8805、网络节点p4的mpls节点标签8804、网络节点p3的出接口标签8810、第二mpls保留标签21、第一mpls保留标签20、网络节点p2的mpls节点标签8802以及网络节点p1的mpls节点标签8801压入堆栈,生成第二标签栈。
优选的,网络探测设备记录发送第一检测报文的时间的方法可以包括:网络探测设备在第一检测报文的报文头打上时间戳1(timestamp1)。
示例性的,网络探测设备在第一检测报文的报文头打上时间戳的具体方法可以为:网络探测设备向第一标签栈的栈底压入第一时间戳。其中,网络探测设备可以先将第一时间戳压入堆栈,然后再执行“自栈底到栈顶,按照与报文转发顺序相反的顺序,将第一mpls保留标签和预配置的路由路径上的mpls节点标签压入堆栈”,以生成如图9所示的包含时间戳1的第一标签栈。
可以想到的是,虽然自“网络探测设备将第一时间戳压入堆栈”到“网络探测设备发送第一检测报文”间隔了“网络探测设备执行‘自栈底到栈顶,按照与报文转发顺序相反的顺序,将第一mpls保留标签和预配置的路由路径上的mpls节点标签压入堆栈’所花费的这段时间;但是,由于这段时间较短,一般可以忽略不计,因此本发明实施例中可以采用上述第一时间戳记录网络探测设备发送第一检测报文的时间。
相应的,网络探测设备计算第一时间差的方法具体可以为:网络探测设备在接收到经由待测节点转发的第一检测报文时,根据接收第一检测报文的时间和第一检测报文的报文头上的时间戳,计算第一时间差。
优选的,网络探测设备记录发送第二检测报文的时间的方法可以包括:网络探测设备在第二检测报文的报文头打上时间戳2(timestamp2)。
需要说明的是,网络探测设备在第二检测报文的报文头打上时间戳2的方法与网络探测设备在第一检测报文的报文头打上时间戳1的方法类似,本发明实施例这里不再赘述。
相应的,网络探测设备计算第二时间差的方法具体可以为:网络探测 设备在接收到经由待测节点转发的第二检测报文时,根据接收第二检测报文的时间和第二检测报文的报文头上的时间戳,计算第二时间差。
可以想到的是,采用时间戳的方式记录网络探测设备发送第一检测报文/第二检测报文的时间不会占用网络探测设备的内存,也不会存在记录多个检测报文的发送时间混乱导致计算错误的问题。
进一步的,网络探测设备在第一检测报文的报文头打上时间戳的具体方法还可以为:网络探测设备在第一检测报文的报文头中的ip层报文头打上时间戳。网络探测设备在第二检测报文的报文头打上时间戳的具体方法还可以为:网络探测设备在第二检测报文的报文头中的ip层报文头打上时间戳
本发明实施例提供的故障定位方法,可以针对任一网络节点(待测节点),通过在检测报文的报文头添加标签栈的方式指示待测节点对检测报文做不同的处理,如此便可以计算得到待测节点处理检测报文的rtt,确定其是否处于故障状态。即通过本方案可以快速准确地实现单点故障的定位。
本发明实施例这里以如图3、图7或图8中网络探测设备11与网络节点p1-p5的交互,实现对待测节点(网络节点p3)的故障检测为例,对本发明实施例提供的故障检测方法进行举例说明,具体的,该故障检测方法可以包括:标签栈的生成过程、第一检测报文的传输过程、第二检测报文的传输过程和待测节点状态确定过程。
示例性的,标签栈的生成过程具体可以包括s201-s204:
s201、网络探测设备11根据待测节点p3和当前网络的网络拓扑信息,确定路由路径11-p1-p2-p3和路由路径p3-p4-p5-11。
s202、网络探测设备11获取网络节点p1的mpls节点标签8801、网络节点p2的mpls节点标签8802、网络节点p4的mpls节点标签8804和网络节点p5的mpls节点标签8805。
s203、网络探测设11生成包含时间戳1的标签栈1(即第一标签栈)。
需要说明的是,如图7所示的标签栈1-标签栈5中的任一标签栈中均 包含上述时间戳1。例如,如图7所示的标签栈1具体可以为如图9所示的第一标签栈。当然,上述时间戳1也可以包含于如图7所示的检测报文的ip层报文头。
s204、网络探测设备11生成包含时间戳2的标签栈6(即第二标签栈)。
需要说明的是,如图8所示的标签栈6-标签栈11中的任一标签栈中均包含上述时间戳2。例如,如图7所示的标签栈6具体可以为如图10所示的第二标签栈。当然,上述时间戳2也可以包含于如图8所示的检测报文的ip层报文头。
示例性的,第一检测报文的传输过程具体可以参见如图7所示的报文转发过程,图7中带箭头的虚线用于表示第一检测报文的转发路径。第一检测报文的传输过程具体可以包括s301-s316:
s301、网络探测设备11在第一检测报文的报文头添加标签栈1。
s302、网络探测设备11通过预配置的路由路径发送第一检测报文。
s303、网络节点p1接收网络探测设备11发送的第一检测报文。
s304、网络节点p1在识别到标签栈1的栈顶标签为网络节点p1的mpls节点标签8801后,弹出标签栈1的栈顶标签8801,得到标签栈2。
s305、网络节点p1向标签栈2的栈顶标签8802指示的网络节点p2转发第一检测报文。
s306、网络节点p2接收网络节点p1发送的第一检测报文。
s307、网络节点p2在识别到标签栈2的栈顶标签为网络节点p2的mpls节点标签8802后,弹出标签栈2的栈顶标签8802,得到标签栈3。
s308、网络节点p2根据标签栈3的栈顶标签20向网络节点p3转发第一检测报文。
其中,由于第一mpls保留标签为预置的待测节点(即网络节点p3)的上一跳节点(即网络节点p2)到待测节点(即网络节点p3)的一个链路标签,因此网络节点p2可以根据标签栈3的栈顶标签20的指示,向 网络节点p3转发第一检测报文。
s309、网络节点p3接收网络节点p2发送的第一检测报文,识别到标签栈3的栈顶标签20后,弹出第一mpls保留标签20,得到标签栈4。
s310、网络节点p3将第一检测报文透传至标签栈4的栈顶标签8804所指示的网络节点p4。
其中,第一mpls保留标签20用于指示待测节点(即网络节点p3)透传第一检测报文。
s311、网络节点p4接收网络节点p3发送的第一检测报文。
s312、网络节点p4在识别到标签栈4的栈顶标签为网络节点p4的mpls节点标签8804后,弹出标签栈4的栈顶标签8804,得到标签栈5。
s313、网络节点p4根据标签栈5的栈顶标签8805向网络节点p5转发第一检测报文。
s314、网络节点p5接收网络节点p4发送的第一检测报文。
s315、网络节点p5在识别到标签栈5的栈顶标签为网络节点p5的mpls节点标签8805后,弹出标签栈5的栈顶标签8805后,确定该第一检测报文的标签栈所指示的目的节点为网络节点p5。
s316、网络节点p5解析第一检测报文的报文头,根据解析到的目的地址将该第一检测报文转发至网络探测设备11。
其中,由于第一检测报文的目的节点为网络探测设备11,即第一检测报文的目的ip地址为网络探测设备11的ip地址,因此网络节点p5可以解析第一检测报文的报文头,得到网络探测设备11的ip地址,并根据网络探测设备11的ip地址将该第一检测报文转发至网络探测设备11。
示例性的,第二检测报文的传输过程具体可以参见如图8所示的报文转发过程,图8中带箭头的实线用于表示第二检测报文的转发路径。第二检测报文的传输过程具体可以包括s401-s416:
s401、网络探测设备11在第二检测报文的报文头添加标签栈6。
s402、网络探测设备11通过预配置的路由路径发送第二检测报文。
s403、网络节点p1接收网络探测设备11发送的第二检测报文。
s404、网络节点p1在识别到标签栈6的栈顶标签为网络节点p1的mpls节点标签8801后,弹出标签栈6的栈顶标签8801,得到标签栈7。
s405、网络节点p1向标签栈7的栈顶标签8802指示的网络节点p2转发第二检测报文。
s406、网络节点p2接收网络节点p1发送的第二检测报文。
s407、网络节点p2在识别到标签栈7的栈顶标签为网络节点p2的mpls节点标签8802后,弹出标签栈7的栈顶标签8802,得到标签栈8。
s408、网络节点p2根据标签栈8的栈顶标签21向网络节点p3转发第二检测报文。
其中,由于第二mpls保留标签为预置的待测节点(即网络节点p3)的上一跳节点(即网络节点p2)到待测节点(即网络节点p3)的另一个链路标签,因此网络节点p2可以根据标签栈8的栈顶标签21的指示,向网络节点p3转发第二检测报文。
s409、网络节点p3接收网络节点p2发送的第二检测报文,识别到标签栈8的栈顶标签21后,弹出第二mpls保留标签21,得到标签栈9,并通过交换网芯片处理第二检测报文。
其中,第二mpls保留标签用于指示待测节点通过其交换网芯片处理第二检测报文,并经由标签栈的当前栈顶标签所指示的出接口转发第二检测报文。
s410、网络节点p3识别到标签栈9的栈顶标签8810为网络节点p3的一个出接口,弹出标签栈9的栈顶标签8810,得到标签栈10,并经由标签栈9的栈顶标签8810所指示的网络节点p3的出接口转发第二检测报文。
s411、网络节点p4接收网络节点p3发送的第二检测报文。
其中,由于标签栈9的栈顶标签8810所指示的网络节点p3的出接口为与网络节点p4存在链路连接关系的出接口,因此,网络节点p3通过该出接口可以将第二检测报文发送给网络节点p4。
s412、网络节点p4在识别到标签栈10的栈顶标签为网络节点p4的mpls节点标签8804后,弹出标签栈10的栈顶标签8804,得到标签栈11。
s413、网络节点p4根据标签栈11的栈顶标签8805向网络节点p5转发第二检测报文。
s414、网络节点p5接收网络节点p4发送的第二检测报文。
s415、网络节点p5在识别到标签栈11的栈顶标签为网络节点p5的mpls节点标签8805后,弹出标签栈11的栈顶标签8805后,确定该第二检测报文的标签栈所指示的目的节点为网络节点p5。
s416、网络节点p5解析第二检测报文的报文头,并根据解析到的目的地址将该第二检测报文转发至网络探测设备11。
其中,由于第二检测报文的目的节点为网络探测设备11,即第二检测报文的目的ip地址为网络探测设备11的ip地址,因此网络节点p5可以解析第二检测报文的报文头,得到网络探测设备11的ip地址,并根据网络探测设备11的ip地址将该第二检测报文转发至网络探测设备11。
需要说明的是,待测节点状态确定过程可以参考上述实施例中s104、s108和s109中的相关描述,本发明实施例这里不再赘述。
本发明实施例提供一种网络探测设备,如图11所示,该网络探测设备包括:发送模块51、记录模块52、接收模块53、计算模块54和故障确定模块55。
发送模块51,用于通过预配置的路由路径发送第一检测报文,以及通过预配置的路由路径发送第二检测报文;第一检测报文的报文头中包括第一标签栈,第一标签栈中包含第一多协议标签交换mpls保留标签,第一mpls保留标签用于指示待测节点透传第一检测报文,待测节点为预配置的路由路径上的一个网络节点,第一检测报文的目的节点为网络探测设备;第二检测报文的报文头中包括第二标签栈,第二标签栈中包含第二mpls保留标签和待测节点的出接口标签,第二mpls保留标签用于指示待测节点通过待测节点的交换网芯片处理第二检测报文,并经由待测节点 的出接口标签所指示的出接口转发第二检测报文,第二检测报文的目的节点为网络探测设备。
记录模块52,用于记录发送模51发送第一检测报文的时间,以及记录发送模块51发送第二检测报文的时间。
接收模块53,用于接收经过预配置的路由路径返回的第一检测报文,以及接收经过预配置的路由路径返回的第二检测报文。
计算模块54,用于在接收模块53接收到经过预配置的路由路径返回的第一检测报文时,计算第一时间差,以及在接收模块53接收到经过预配置的路由路径返回的第二检测报文时,计算第二时间差;计算第一时间差与第二时间差的差值,得到待测节点处理报文的往返时延rtt;第一时间差为发送模块51发送第一检测报文的时间与接收模块53接收第一检测报文的时间的差值;第二时间差为发送模块51发送第二检测报文的时间与接收模块53接收第二检测报文的时间的差值。
故障确定模块55,用于在计算模块54计算得到的待测节点处理报文的rtt大于第一预设阈值时,确定待测节点处于故障状态。
进一步的,预配置的路由路径由第一路由路径、待测节点和第二路由路径组成。第一路由路径为发送模块52向待测节点发送报文的路径,第二路由路径为待测节点向接收模块53返回报文的路径。
上述第一标签栈自栈底到栈顶,按照与报文转发顺序相反的顺序,依次包括第二路由路径上网络节点的mpls节点标签,第一mpls保留标签以及第一路由路径上网络节点的mpls节点标签。
第二标签栈自栈底到栈顶,按照与报文转发顺序相反的顺序,依次包括第二路由路径上网络节点的mpls节点标签,待测网络节点的出接口标签、第二mpls保留标签以及第一路由路径上网络节点的mpls节点标签。
进一步的,如图12所示,上述网络探测设备还可以包括:路径确定模块56、标签获取模块57和处理模块58。
路径确定模块56,用于在发送模块51发送第一检测报文和所述第二 检测报文之前,根据待测节点和当前网络的网络拓扑信息,确定第一路由路径和第二路由路径。
标签获取模块57,用于获取第一路由路径上网络节点的mpls节点标签和第二路由路径上网络节点的mpls节点标签。
处理模块58,用于根据上述标签获取模块57获取的第一路由路径上网络节点的mpls节点标签、第一mpls保留标签以及上述标签获取模块57获取的第二路由路径上网络节点的mpls节点标签,结合第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第一检测报文的顺序,生成第一标签栈,在第一检测报文的报文头中添加所述第一标签栈;以及根据上述标签获取模块57获取的第一路由路径上网络节点的mpls节点标签、待测节点的出接口标签以及第二路由路径上网络节点的mpls节点标签,结合第一路由路径上网络节点、待测节点以及第二路由路径上网络节点转发第二检测报文的顺序,生成第二标签栈,在第二检测报文的报文头中添加第二标签栈;待测节点的出接口标签所指示的出接口连接待测节点在预配置的路由路径中的下一跳节点。
进一步的,记录模块52,具体用于在第一检测报文的报文头打上时间戳。
计算模块54,具体用于在接收模块53接收到经由待测节点转发的第一检测报文时,根据接收模块53接收第一检测报文的时间和记录模块52在第一检测报文的报文头上打的时间戳,计算第一时间差。
其中,第一时间差具体为上述记录模块52记录的上述发送模块51发送第一检测报文的时间与接收模块53接收第一检测报文的时间的差值。
记录模块52,具体用于在第二检测报文的报文头打上时间戳。
计算模块54,具体用于在接收模块53接收到经由待测节点转发的第二检测报文时,根据接收模块53接收第二检测报文的时间和记录模块52在第二检测报文的报文头上打的时间戳,计算第二时间差。
其中,第二时间差具体为上述记录模块52记录的上述发送模块51发送第二检测报文的时间与接收模块53接收第二检测报文的时间的差值。
进一步的,故障确定模块55,还用于若计算模块54计算得到的待测节点处理报文的rtt小于第二预设阈值,则确定待测节点处于正常工作状态。其中,第二预设阈值小于或者等于第一预设阈值。
本发明实施例提供的网络探测设备中各个功能模块的详细描述可以参考上述方法实施例中相关步骤的详细描述,本发明实施例这里不再赘述。
本发明实施例提供的网络探测设备,由于第一检测报文的报文头中包括可以指示待测节点透传第一检测报文的第一mpls保留标签,因此待测节点便可以透传第一检测报文,网络探测设备便可以计算得到当待测节点透传第一检测报文时,预配置的路由路径上传输第一检测报文所使用的时间(第一时间差);并且,由于第二检测报文的报文头中包括可以指示待测节点经由其交换网芯片处理第二检测报文的第二mpls保留标签,因此待测节点便可以经由其交换网芯片处理第二检测报文,网络探测设备便可以计算得到当待测节点经由其交换网芯片处理检测报文后,该预配置的路由路径上传输检测报文所使用的时间(第二时间差);再计算第一时间差和第二时间差的差值rtt(即预配置的路由路径中的待测节点处理检测报文所使用的时间),并根据rtt确定该待测节点处于故障状态。
由于rtt为预配置的路由路径中的待测节点处理检测报文所使用的时间,因此当rtt大于预先配置的故障节点rtt阈值时,便可以确定该待测节点处于故障状态。
由此可见,本发明实施例提供的故障定位方法可以针对任一网络节点(待测节点),通过在检测报文的报文头添加标签栈的方式指示待测节点对检测报文做不同的处理,如此便可以计算得到待测节点处理检测报文的rtt,确定其是否处于故障状态。即通过本方案可以快速准确地实现单点故障的定位。
本发明实施例提供一种网络节点,如图13所示,该网络节点包括:接收模块61、处理模块62和发送模块63。
接收模块61,用于接收上一跳节点发送的检测报文。
处理模块62,用于若接收模块61接收到的检测报文的报文头中的标 签栈的栈顶标签为第一多协议标签交换mpls保留标签,则弹出第一mpls保留标签;若接收模块61接收到的检测报文的报文头中的标签栈的栈顶标签为第二mpls保留标签,则弹出第二mpls保留标签,并通过网络节点的交换网芯片处理检测报文。
发送模块63,用于在所述处理模块62弹出所述第一mpls保留标签后,将所述检测报文透传至所述标签栈的当前栈顶标签所指示的网络节点;在所述处理模块62通过所述交换网芯片处理所述检测报文后,经由所述标签栈的当前栈顶标签所指示的出接口转发所述检测报文。
进一步的,所述第一mpls保留标签为预置的所述待测节点的上一跳节点到所述待测节点的一个链路标签;所述第二mpls保留标签为预置的所述待测节点的上一跳节点到所述待测节点的另一链路标签。
进一步的,上述处理模块62,还用于若接收模块61接收到的检测报文的报文头中的标签栈的栈顶标签为网络节点的mpls节点标签,则弹出网络节点的mpls节点标签。
所述发送模块63,还用于在上述处理模块62弹出所述网络节点的mpls节点标签后,将所述检测报文转发至所述标签栈的当前栈顶标签所指示的网络节点。
本发明实施例提供的网络节点中各个功能模块的详细描述可以参考上述方法实施例中相关步骤的详细描述,本发明实施例这里不再赘述。
本发明实施例提供的网络节点,由于该网络节点对于两种包含不同mpls保留标签的检测报文做不同的处理,对包含第一mpls保留标签的检测报文进行透传,在该检测报文的传输过程中则不会产生该网络节点处理该检测报文的rtt;而通过该网络节点的交换网芯片对该检测报文进行处理,则在该检测报文的传输过程中会产生该网络节点处理该检测报文的rtt(即网络节点处理检测报文所使用的时间);因此,网络探测设备则可以根据传输上述两种检测报文的时间差得到该网络节点处理检测报文的rtt,并根据rtt确定该待测节点是否处于故障状态。
由于rtt为预配置的路由路径中的待测节点处理检测报文所使用的时间,因此当rtt大于预先配置的故障节点rtt阈值时,便可以确定该 待测节点处于故障状态。
由此可见,本发明实施例提供的网络节点可以对检测报文做不同的处理,如此便可以使得网络探测设备能够计算得到该网络节点的rtt,确定其是否处于故障状态。即通过本方案可以快速准确地实现单点故障的定位。
本发明实施例提供一种网络探测设备,如图14所示,该网络探测设备包括:
处理器71、存储器72、总线系统73以及收发器74,所述处理器71、所述存储器72和所述收发器74通过所述总线系统73相连。
所述存储器72用于存储程序代码,当所述网络探测设备的处理器71执行所述程序代码时,所述网络探测设备与网络节点配合执行如图4所示的故障定位方法。
上述收发器74用于代替上述接收模块53接收检测报文,代替发送模块51发送检测报文,包括第一检测报文和第二检测报文。所述处理器71用于执行所述程序代码,并具体用于代替上述记录模块52、计算模块54和故障确定模块55等,执行如图4所示的故障定位方法。即处理器71可以为上述记录模块52、计算模块54和故障确定模块55等功能单元或功能模块的集成,即上述各功能模块可以集成在一个该处理器71中实现。
所述处理器71可能是一个中央处理器(英文:centralprocessingunit,简称:cpu),或者是特定集成电路(英文:application-specificintegratedcircuit,简称:asic),或者是被配置成实施本发明实施例的一个或多个集成电路。
其中,总线可以是工业标准体系结构(英文:industrystandardarchitecture,简称:isa)总线、外部设备互连(英文:peripheralcomponentinterconnect,简称:pci)总线或扩展工业标准体系结构(英文:extendedindustrystandardarchitecture,简称:eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有一个或多个程序,该一个或多个程序包括指令,当网络探测设备的处理器71执行所述程序代码时,网络探测设备执行如图4所示的故障定位方法。
所述计算机可读存储介质可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
需要说明的是,上述程序代码可以作为运行于网络探测设备的嵌入式操作系统的一个组件,也可以作为运行于网络探测设备上的各种应用程序中的一个组件。
需要说明的是,本发明实施例提供的网络探测设备中功能模块的具体描述可以参考本发明方法实施例中对应部分的相关描述,本实施例这里不再赘述。
本发明实施例提供的网络探测设备,由于第一检测报文的报文头中包括可以指示待测节点透传第一检测报文的第一mpls保留标签,因此待测节点便可以透传第一检测报文,网络探测设备便可以计算得到当待测节点透传第一检测报文时,预配置的路由路径上传输第一检测报文所使用的时间(第一时间差);并且,由于第二检测报文的报文头中包括可以指示待测节点经由其交换网芯片处理第二检测报文的第二mpls保留标签,因此待测节点便可以经由其交换网芯片处理第二检测报文,网络探测设备便可以计算得到当待测节点经由其交换网芯片处理检测报文后,该预配置的路由路径上传输检测报文所使用的时间(第二时间差);再计算第一时间差和第二时间差的差值rtt(即预配置的路由路径中的待测节点处理检测报文所使用的时间),并根据rtt确定该待测节点处于故障状态。
由于rtt为预配置的路由路径中的待测节点处理检测报文所使用的时间,因此当rtt大于预先配置的故障节点rtt阈值时,便可以确定该待测节点处于故障状态。
由此可见,本发明实施例提供的网络探测设备可以针对任一网络节点(待测节点),通过在检测报文的报文头中添加标签栈的方式指示待测节点对检测报文做不同的处理,如此便可以计算得到待测节点处理检测报文 的rtt,确定其是否处于故障状态。即通过本方案可以快速准确地实现单点故障的定位。
本发明实施例提供一种网络节点,如图15所示,该网络节点包括:
处理器81、存储器82、总线系统83以及收发器84,所述处理器81、所述存储器82和所述收发器84通过所述总线系统83相连;
所述存储器82用于存储程序代码,当所述网络节点的处理器81执行所述程序代码时,所述网络节点配合网络探测设备执行如图4所示的故障定位方法。
上述收发器84用于代替上述接收模块61接收检测报文,代替发送模块63发送检测报文,包括第一检测报文和第二检测报文。所述处理器81用于执行所述程序代码,并具体用于代替上述处理模块62执行如图4所示的故障定位方法。
所述处理器81以及总线系统83的详细描述可以参考上述对于处理器71和总线系统73的描述,本实施例这里不再赘述。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有一个或多个程序,该一个或多个程序包括指令,当网络节点的处理器81执行所述程序代码时,网络节点执行如图4所示的故障定位方法。
所述计算机可读存储介质可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
需要说明的是,上述程序代码可以作为运行于网络节点的嵌入式操作系统的一个组件,也可以作为运行于网络节点上的各种应用程序中的一个组件。
需要说明的是,本发明实施例提供的网络节点中功能模块的具体描述可以参考本发明方法实施例中对应部分的相关描述,本实施例这里不再赘述。
本发明实施例提供的网络节点,可以在接收到的检测报文的报文头中 添加了标签栈,且标签栈的栈顶标签为第一mpls保留标签时,弹出第一mpls保留标签,然后将检测报文透传至标签栈的当前栈顶标签指示网络节点;如此,该网络节点的交换网芯片则不会对该检测报文进行处理,因此在该检测报文的传输过程中则不会产生该网络节点处理该检测报文的rtt(即网络节点处理检测报文所使用的时间);在接收到的检测报文的报文头中压入所述标签栈,且标签栈的栈顶标签为第二mpls保留标签时,可以弹出第二mpls保留标签,并通过交换网芯片处理检测报文;如此,该网络节点的交换网芯片会对该检测报文进行处理的,则在该检测报文的传输过程中会产生该网络节点处理该检测报文的rtt(即网络节点处理检测报文所使用的时间)。
由于该网络节点对于两种包含不同mpls保留标签的检测报文做不同的处理,对包含第一mpls保留标签的检测报文进行透传,在该检测报文的传输过程中则不会产生该网络节点处理该检测报文的rtt;而通过该网络节点的交换网芯片对该检测报文进行处理,则在该检测报文的传输过程中会产生该网络节点处理该检测报文的rtt(即网络节点处理检测报文所使用的时间);因此,网络探测设备则可以根据传输上述两种检测报文的时间差得到该网络节点处理检测报文的rtt,并根据rtt确定该待测节点是否处于故障状态。
由于rtt为预配置的路由路径中的待测节点处理检测报文所使用的时间,因此当rtt大于预先配置的故障节点rtt阈值时,便可以确定该待测节点处于故障状态。
由此可见,本发明实施例提供的网络节点可以对检测报文做不同的处理,如此便可以使得网络探测设备能够计算得到该网络节点的rtt,确定其是否处于故障状态。即通过本方案可以快速准确地实现单点故障的定位。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分 功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。