检测转发表的方法、装置和设备与流程

文档序号:11253801阅读:562来源:国知局
本发明涉及通信
技术领域
:,尤其涉及检测转发表的方法、装置和设备。
背景技术
::在网际协议(internetprotocol,缩写ip)网络中,网络设备控制面的路由表中,对应一个ip地址有一个路由表项,例如,ip地址192.168.1.1对应一个路由表项192.168.1.0/24。而网络设备中指导数据报文转发的是转发面(通常为转发芯片)的转发表(forwardingtable),也可称为转发信息库(forwardinginformationbase,缩写fib)。网络设备的转发表通常是根据其路由表中的最优路由生成,也可以通过地址解析协议(addressresolutionprotocol,缩写arp)生成。由于ip网络不保证可靠性,数据报文出现丢包或错误等异常时,可能是网络中链路故障等原因,也可能是网络设备上没有生成相应的转发表项,或生成的转发表项出错导致的。技术实现要素:本申请实施例提供了一种检测转发表的方法、装置和设备,能够检测网络设备的转发表是否存在错误。第一方面,提供一种检测转发表的方法,包括:网络检测设备根据目的ip地址和网络拓扑信息生成检测报文,所述检测报文中包括标签栈,生存时间生存时间(timetolive,缩写ttl),源ip地址和所述目的ip地址;所述标签栈中包括n个链路标签,所述ttl的值为n的基础上加1,即n+1,所述源ip地址为所述网络检测设备的ip地址,其中,n为所述网络检测设备到待检测 网络节点的跳数,n为大于等于1的正整数(可表示为n≥1);所述网络检测设备根据所述标签栈栈顶的链路标签发送所述检测报文,以便于所述检测报文可以根据所述标签栈被发送至所述待检测网络设备。可能网络检测设备和待检测网络节点之间存在中间网络节点,则所述网络检测设备根据所述标签栈栈顶的链路标签向下一跳节点,即中间网络节点,转发所述检测报文。也可能所述网络检测设备的下一跳节点就是所述待检测网络节点,则所述网络检测设备根据所述标签栈栈顶的链路标签向所述待检测网络节点发送所述检测报文。所述网络检测设备接收通知消息,所述通知消息用于通知所述网络检测设备:反馈节点收到待检测网络节点转发的所述检测报文;所述网络检测设备根据所述通知消息和所述网络拓扑信息确定所述待检测网络节点的转发表是否正确。其中,反馈节点为所述待检测网络节点的下一跳节点;通常,所述网络检测设备是从所述反馈节点接收到该通知消息。这样,当到目的ip地址的数据报文出现丢包或转发错误,或者客户需求等其他情况需要检测到目的ip地址的转发路径上的待检测网络节点的转发表时,网络检测设备生成包括特定标签栈和特定ttl值的检测报文,通过标签栈指定检测报文的标签转发路径,以便于所述检测报文可以根据标签栈被发送至所述待检测网络节点;并利用ttl逐跳减1,所述检测报文中ttl的值在待检测网络节点的下一跳,即所述反馈节点处理(减1)后为0触发该反馈节点向网络检测设备发送通知消息。网络检测设备就可以根据发送通知消息的反馈节点和网络拓扑信息,快速判断该待检测网络节点的转发表是否存在错误,从而提高故障定位的效率。所述通知消息可以为网络控制报文协议(internetcontrolmessageprotocol,缩写icmp)报文。可选地,所述网络检测设备具体根据所述目的ip地址和所述网络拓扑信息,确定所述网络检测设备至所述目的ip地址的转发路径以及所述转发路径上的所述待检测网络节点;根据所述网络拓扑信息确定所述网络检测设备到所 述待检测网络节点的跳数(即n)以及每一跳的链路标签,并根据所述网络检测设备到所述待检测网络节点的跳数以及每一跳的链路标签,生成所述检测报文。这样,网络检测设备在生成检测报文时,根据待检测网络节点确定n的取值,以保证所述检测报文可以根据标签栈中的n个链路标签转发至所述待检测网络节点,在所述待检测网络节点处进行路由转发,从而可以检测该待检测网络节点的转发表是否正确。所述网络拓扑信息可以包括所述网络检测设备至所述目的ip地址的所述转发路径,以及每一跳的路由信息。路由信息包括链路标签。链路标签指定了报文的单跳转发路径。可选地,所述反馈节点接收所述待检测网络节点转发的所述检测报文;所述反馈节点将所述ttl的值减去1,并在所述检测报文中的所述ttl的值为0时发送所述通知消息。当所述网络检测设备确定发送所述通知消息的反馈节点与所述网络拓扑信息中路由一致,所述网络检测设备可以确定所述网络节点的转发表正确;当所述网络检测设备确定发送所述通知消息的反馈节点与所述网络拓扑信息中路由不一致时,所述网络检测设备可以确定所述网络节点的转发表存在错误。网络检测设备在生成检测报文时,将ttl的值设为特定值,以保证所述检测报文在待检测网络节点的下一跳(即反馈节点)处理时,因ttl的值为0发送通知消息给网络检测设备,这样网络检测设备就可以根据该通知消息和网络拓扑信息判断待检测网络节点的转发表是否正确。第二方面,提供一种检测转发表方法,包括:网络检测设备根据网络拓扑信息生成检测报文,所述检测报文中包括标签栈,ttl,源ip地址和目的ip地址;所述标签栈中包括n个链路标签,所述ttl的值为n+1,所述源ip地址为所述网络检测设备的ip地址,其中,n为所述网络检测设备到待检测网络节点的跳数,n≥1;所述网络检测设备根据所述标签栈栈顶的链路标签发送 所述检测报文,以便于所述检测报文可以根据标签栈被发送至所述待检测网络设备。待检测网络节点接收所述检测报文,弹出所述标签栈栈顶的链路标签,并将所述ttl的值减去1;所述待检测网络节点确定所述标签栈为空,并根据所述目的ip地址和所述待检测网络节点的转发表,将所述检测报文转发给反馈节点。所述反馈节点接收所述检测报文,将所述ttl的值减去1;所述反馈节点确定所述ttl的值为0,并向所述网络检测设备发送通知消息。所述网络检测设备接收所述通知消息,并根据所述通知消息和所述网络拓扑信息确定所述待检测网络节点的转发表是否正确。可能网络检测设备和待检测网络节点之间存在一个或多个中间网络节点,则所述网络检测设备根据所述标签栈栈顶的链路标签向下一跳节点,即中间网络节点,转发所述检测报文,所述待检测网络节点接收上一跳节点(中间网络节点)转发的所述待检测报文。也可能所述网络检测设备的下一跳节点就是所述待检测网络节点,即网络检测设备和待检测网络节点之间没有中间网络节点,所述网络检测设备根据所述标签栈栈顶的链路标签向所述待检测网络节点发送所述检测报文,所述待检测网络节点接收所述网络检测设备发送的所述待检测报文。这样,网络检测设备生成包括特定标签栈(n个链路标签)和特定ttl值(ttl值为n+1)的检测报文,通过标签栈指定检测报文的标签转发路径,以便于检测报文可以根据标签栈被发送至待检测网络节点;并利用ttl逐跳减1,检测报文中ttl的值在反馈节点(即待检测网络节点的下一跳)处理(减1)后为0会发送通知消息给网络检测设备,就可以根据通知消息和网络拓扑信息对待检测网络节点的转发表进行检测,快速判断该待检测网络节点的转发表是否存在错误,从而提高故障定位的效率。所述通知消息可以为icmp报文。可选地,所述网络检测设备具体根据所述目的ip地址和所述网络拓扑信息,确定所述网络检测设备至所述目的ip地址的转发路径以及所述转发路径 上的所述待检测网络节点;根据所述网络拓扑信息确定所述网络检测设备到所述待检测网络节点的跳数n以及每一跳的链路标签,并根据所述网络检测设备到所述待检测网络节点的跳数n以及每一跳的链路标签,生成所述检测报文。所述网络拓扑信息中可以包括所述网络检测设备至所述目的ip地址的转发路径,以及每一跳的路由信息。路由信息包括链路标签。链路标签指定了报文的单跳转发路径。这样,如果要检测所述转发路径上不同的待检测网络节点,网络检测设备可以确定n的不同取值,生成n为不同值的检测报文,检测网络路径上的不同待检测网络节点的转发表是否正确。当所述网络检测设备确定发送所述通知消息的反馈节点与所述网络拓扑信息中路由一致,所述网络检测设备可以确定所述网络节点的转发表正确;当所述网络检测设备确定发送所述通知消息的反馈节点与所述网络拓扑信息中路由不一致时,所述网络检测设备可以确定所述网络节点的转发表存在错误。可选地,所述网络检测设备和所述待检测网络节点之间可能存在一个或多个中间网络节点,则所述方法还包括:中间网络节点接收所述检测报文,弹出所述标签栈栈顶的链路标签,并将所述ttl的值减去1;所述中间网络节点确定所述标签栈不为空,并根据所述标签栈栈顶的链路标签,继续转发所述检测报文,直至所述待检测网络节点收到所述检测报文。通过检测报文中的特定标签栈,可以控制中间网络节点仅根据链路标签对所述检测报文进行标签转发,只有在待检测网络节点因标签栈为空,才根据转发表对所述检测报文进行ip路由转发。第三方面,提供一种网络检测设备,所述网络检测设备具有实现上述检测转发表的方法中网络检测设备的功能,所述功能可以通过检测装置实现,所述检测装置可以通过硬件实现,也可以通过硬件执行相应的软件实现,所述硬件或软件可以包括一个或多个与上述功能相对应的模块。第三方面的一种可能的实现中,所述检测装置包括报文生成模块,发送模块,接收模块和确定模块;所述报文生成模块,用于根据目的ip地址和网络拓扑信息生成检测报文,所述检测报文中包括标签栈,ttl,源ip地址和所述目的ip地址;所述标签栈中包括n个链路标签,所述ttl的值为n+1,所述源ip地址为所述网络检测设备的ip地址,所述目的ip地址为待检测ip地址,其中,n为所述网络检测设备到待检测网络节点的跳数,n≥1;所述发送模块,用于根据所述标签栈栈顶的链路标签发送所述检测报文,,以便于所述检测报文可以根据标签栈被发送至所述待检测网络设备;所述接收模块,用于接收通知消息,所述通知消息用于通知所述网络检测设备:反馈节点收到待检测网络节点转发的所述检测报文;所述反馈节点为所述待检测网络节点的下一跳节点;通常,所述网络检测设备是从所述反馈节点接收到该通知消息。所述确定模块,用于根据所述通知消息和所述网络拓扑信息确定所述待检测网络节点的转发表是否正确。可选地,所述通知消息为所述反馈节点在所述检测报文中的所述ttl的值为0时发送。所述通知消息可以为icmp报文。可选地,所述报文生成模块,具体用于根据所述目的ip地址和所述网络拓扑信息,确定所述网络检测设备至所述目的ip地址的转发路径以及所述转发路径上的所述待检测网络节点;根据所述网络拓扑信息确定所述网络检测设备到所述待检测网络节点的跳数以及每一跳的链路标签,并根据所述网络检测设备到所述待检测网络节点的跳数以及每一跳的链路标签,生成所述检测报文。可选地,所述检测装置还包括拓扑获取模块;所述拓扑获取模块,用于获取所述网络拓扑信息。所述网络拓扑信息中可以包括所述网络检测设备至所述目的ip地址的转发路径,以及每一跳的路由信息。路由信息包括链路标签。 链路标签指定了报文的单跳转发路径。第三方面的另一种可能的实现中,所述网络检测设备包括:处理器和存储器;所述网络检测设备还包括通信接口;所述处理器,所述存储器和所述通信接口通过总线相互连接;所述存储器,用于保存网络拓扑信息;所述网络拓扑信息包括所述网络检测设备至目的ip地址的转发路径,以及每一跳的路由信息。路由信息包括链路标签。链路标签指定了报文的单跳转发路径所述处理器,用于根据所述目的ip地址和所述网络拓扑信息生成检测报文,所述检测报文中包括标签栈,ttl,源ip地址和所述目的ip地址;所述标签栈中包括n个链路标签,所述ttl的值为n+1,所述源ip地址为所述网络检测设备的ip地址,其中,n为所述网络检测设备到待检测网络节点的跳数,n≥1;根据所述标签栈栈顶的链路标签发送所述检测报文;接收通知消息,所述通知消息用于通知所述网络检测设备:反馈节点收到待检测网络节点转发的所述检测报文;并根据所述通知消息和所述网络拓扑信息确定所述待检测网络节点的转发表是否正确。所述反馈节点为所述待检测网络节点的下一跳节点;通常,所述网络检测设备是从所述反馈节点接收到该通知消息。所述通知消息为所述反馈节点在所述检测报文中的所述ttl的值为0时发送。可选地,所述处理器,具体用于根据所述目的ip地址和所述网络拓扑信息,确定所述网络检测设备至所述目的ip地址的转发路径以及所述转发路径上的所述待检测网络节点;根据所述网络拓扑信息确定所述网络检测设备到所述待检测网络节点的跳数以及每一跳的链路标签,并根据所述网络检测设备到所述待检测网络节点的跳数以及每一跳的链路标签,生成所述检测报文。可选地,所述处理器还用于获取所述网络拓扑信息。第四方面,提供一种网络节点,所述网络节点具有实现上述检测转发表的 方法中网络节点(包括待检测网络节点,中间网络节点等)的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,所述硬件或软件可以包括一个或多个与上述功能相对应的模块。一种可能的实现中,所述网络节点包括接收模块,报文处理模块和转发模块;所述接收模块,用于接收检测报文,所述检测报文包括标签栈,生存时间ttl,源网际协议ip地址和目的ip地址;其中,所述标签栈中包括n个链路标签,n为大于等于1的正整数(可表示为n≥1),所述ttl的值为n+1;所述报文处理模块,用于弹出所述标签栈栈顶的链路标签,将所述ttl的值减去1;并判断所述标签栈是否为空;所述转发模块,用于当所述报文处理模块确定所述标签栈为空时,根据所述目的ip地址和所述网络节点的转发表,将所述检测报文转发给反馈节点;此时,所述网络节点为待检测网络节点,所述反馈节点为所述待检测网络节点的下一跳节点。所述反馈节点接收所述检测报文,将所述ttl的值减去1;所述反馈节点确定所述ttl的值为0时向所述网络检测设备发送通知消息,以便所述网络检测设备根据网络拓扑信息和所述通知消息中所述反馈节点的ip地址确定所述网络节点的转发表是否正确。所述转发模块,还用于当所述报文处理模块确定所述标签栈不为空时,根据所述标签栈栈顶的链路标签,转发所述检测报文。此时,所述网络节点为中间网络节点,对所述检测报文继续进行标签转发,以便所述检测报文被发送给所述待检测网络节点。另一种可能的实现中,所述网络节点包括处理器和存储器;进一步还包括通信接口;所述处理器,所述存储器和所述通信接口之间可以通过总线相互连接;所述存储器,用于存储转发表;所述处理器,用于接收检测报文,所述检 测报文包括标签栈,ttl,源ip地址和目的ip地址;其中,所述标签栈中包括n个链路标签,n≥1,所述ttl的值为n+1;弹出所述标签栈栈顶的链路标签,将所述ttl的值减去1,并判断所述标签栈是否为空。当确定所述标签栈为空时,根据所述目的ip地址和所述转发表,将所述检测报文转发给反馈节点;此时,所述网络节点为待检测网络节点,所述反馈节点为所述待检测网络节点的下一跳。所述反馈节点接收所述检测报文,将所述ttl的值减去1;所述反馈节点确定所述ttl的值为0,并向所述网络检测设备发送通知消息,以便所述网络检测设备根据网络拓扑信息和所述通知消息中所述反馈节点的ip地址确定所述网络节点的转发表是否正确。所述处理器,还用于当确定所述标签栈不为空时,根据所述标签栈栈顶的链路标签,转发所述检测报文;此时,所述网络节点为中间网络节点,对所述检测报文继续进行标签转发,以便所述检测报文被发送给所述待检测网络节点。第五方面,提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码中包括实现上述第一方面的方法的指令。第六方面,提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码中包括实现上述第二方面的方法的指令。第七方面,提供一种检测转发表的系统,包括网络检测设备,待检测网络节点和反馈节点;所述网络检测设备,用于根据目的ip地址和网络拓扑信息生成检测报文,所述检测报文中包括标签栈,ttl,源ip地址和所述目的ip地址;其中,所述标签栈中包括n个链路标签,所述ttl的值为n+1,所述源ip地址为所述网络检测设备的ip地址,其中,n为所述网络检测设备到待检测网络节点的跳数,n≥1;根据所述标签栈栈顶的链路标签发送所述检测报文,以便所述检 测报文被发送给所述待检测网络节点;所述待检测网络节点,用于接收所述检测报文,弹出所述标签栈栈顶的链路标签,并将所述ttl的值减去1;当确定所述标签栈为空时,根据所述目的ip地址和所述待检测网络节点的转发表,将所述检测报文转发给所述反馈节点;所述反馈节点为所述待检测网络节点的下一跳节点;所述反馈节点,用于接收所述检测报文,将所述ttl的值减去1;并在确定所述ttl的值为0时向所述网络检测设备发送通知消息;所述网络检测设备,还用于接收所述通知消息,并根据所述通知消息和所述网络拓扑信息确定所述待检测网络节点的转发表是否正确。具体地,当所述网络检测设备确定发送所述通知消息的反馈节点与所述网络拓扑信息中路由一致,所述网络检测设备可以确定所述网络节点的转发表正确;当所述网络检测设备确定发送所述通知消息的反馈节点与所述网络拓扑信息中路由不一致时,所述网络检测设备可以确定所述网络节点的转发表存在错误。可选地,在所述检测转发表的系统,所述网络检测设备与所述待检测网络节点之间还存在一个或多个中间网络节点。在所述待检测网络节点接收所述检测报文之前,中间网络节点接收所述检测报文,弹出所述标签栈栈顶的链路标签,并将所述ttl的值减去1;所述中间网络节点确定所述标签栈不为空,并根据所述标签栈栈顶的链路标签,继续转发所述检测报文,直至所述待检测网络节点收到所述检测报文。这样,通过检测报文中的特定标签栈和特定ttl值,可以控制中间网络节点仅根据链路标签对所述检测报文进行标签转发,以便所述检测报文被发送给待检测网络节点,只有在待检测网络节点因标签栈为空,才根据转发表对所述检测报文进行ip路由转发。本申请提供的技术方案,当到待检测ip地址的数据报文出现丢包或转发错误,需要检测待检测网络节点的转发表时,网络检测设备生成包括特定标签栈和特定ttl值的检测报文,指定检测报文的转发路径,并利用ttl逐跳减1、ttl的值为0时会触发待检测网络节点的下一跳,即所述反馈节点,向网 络检测设备发送通知消息(icmp报文),可以快速判断该待检测网络节点的转发表是否存在错误,从而提高故障定位的效率。附图说明图1为本申请实施例提供的检测转发表的系统的结构示意图;图2为本申请实施例提供的检测转发表的方法的流程示意图;图3为本申请实施例提供的检测转发表的方法的信息交互示意图;图4为本申请实施例提供的一种检测转发表的检测装置的结构示意图;图5为本申请实施例提供的另一种检测转发表的检测装置的结构示意图;图6为本申请实施例提供的一种网络检测设备的结构示意图;图7为本申请实施例提供的一种网络节点的结构示意图;图8为本申请实施例提供的另一种网络节点的结构示意图。具体实施方式本申请提供的技术方案中,网络检测设备生成包括ttl和链路标签的检测报文,通过标签栈指定该检测报文的标签转发路径,通过ttl指定该检测报文经过的跳数,用于检测所述网络检测设备到目的ip地址的转发路径上的待检测网络节点的转发表是否正确。具体地,网络检测设备根据网络拓扑信息确定所述网络检测设备到所述待检测网络节点的跳数n以及每一跳的链路标签,生成检测报文,其中包括标签栈和ttl;标签栈包括n个链路标签(依次为n跳的链路标签),ttl的值为m的基础上加1,也即,n+1。在所述检测报文从所述网络检测设备转发至所述待检测网络节点的过程中,根据标签栈中的链路标签进行标签转发;在所述检测报文到达所述待检测网络节点后,标签栈为空,则根据所述待检测网络节点的转发表转发所述检测报文。所述待检测网络节点的下一跳,也称为反馈节点,接收所述检测报文,将ttl的值减1,导致因该检测报文中ttl的值为0向该网络检测设备发送通知消息,例如 icmp报文。这样,所述该网络检测设备根据收到的icmp报文和网络拓扑信息可以判断该待检测网络节点的转发表,即fib,是否存在错误。icmp用于在主机与路由器之间传递控制信息,包括报告错误、状态信息等。icmp报文有不同的类型,例如icmp差错报告报文主要用于向数据通信中的源端报告错误。icmp差错报告报文的数据区通常包括出错报文的首部,还可以包括该出错报文的前64位数据。当数据报文中ttl为0时,路由器会丢弃该数据报文,并发送类型为超时(类型值为11,代码为0)的icmp差错报告报文给该数据报文的发送者(源端)。本申请实施例中,通知消息可以为icmp报文,就是指类型值为11、代码为0的icmp差错报告报文。本申请实施例提供的检测转发表的方法可以在发往某个目的ip地址的数据报文出现丢包或错误等异常时,而网络正常,换言之,没有其他故障(例如,链路故障等)的情况下,用于检测到该目的ip地址的转发路径上的网络节点的转发表是否存在错误。当然也可以根据用户需要,随时用来检测通往某个目的ip地址的转发路径上的网络节点的转发表是否存在错误。本申请实施例中,该目的ip地址也称为待检测ip地址。由于转发路径上通常存在多个网络节点,网络检测设备不确定哪个网络节点的转发表存在错误,这时网络检测设备可以将转发路径中某一段网络路径上的多个网络节点依次作为待检测网络节点,发送ttl值及链路标签数量为递增或者递减的多个检测报文,触发该段网络路径上多个网络节点因ttl为0反馈icmp报文,从而可以检测该段网络路径上每一跳网络节点的转发表是否正确。本申请提供的检测转发表的方法,通过检测一段网络路径上的多个网络节点,可以定位出转发表存在错误的网络节点,从而提高故障定位的效率。下面结合附图和具体实施方式对本申请的技术方案作详细的说明。图1为本申请实施例提供的一种检测转发表的系统的结构示意图,该系统100中包括网络检测设备110和所述网络检测设备到目的ip地址的转发路径中的一段网络路径120,图1所示的网络路径120中包括三个网络节点:r1,r2 和r3。网络检测设备110可检测所述网络路径120上任一网络节点的转发表,也可以依次检测所述网络路径120上每个网络节点的转发表。所述系统100中还可以包括其他网络节点,例如图1中所示的网络节点r0和r4。本申请实施例中,将网络检测设备准备检测的网络节点称为待检测网络节点,并将待检测网络节点的下一跳称为反馈节点。将转发路径上网络检测设备与待检测网络节点之间的网络节点称为中间网络节点。结合图1所示的系统,当所述网络检测设备110要检测网络节点r1的转发表时,网络节点r1为待检测网络节点;如果网络节点r1的转发表正确,则发送通知消息的反馈节点与网络拓扑信息的路由一致。如果网络节点r1的转发表错误,则发送通知消息的反馈节点与网络拓扑信息不一致。例如,网络拓扑信息中网络节点r1的下一跳为网络节点r2;如果网络检测设备收到网络节点r2发送的通知消息,则与网络拓扑信息不一致,可以确定网络节点r1的转发表正确;如果网络检测设备收到网络节点r2之外其他节点发送的通知消息,与网络拓扑信息不一致,则可以确定所述r1的转发表存在错误。图2为本申请实施例提供的一种检测转发表的方法的流程示意图,可以检测网络路径中任一网络节点的转发表是否正确,所述方法包括:201、网络检测设备根据目的ip地址和网络拓扑信息生成检测报文,所述检测报文中包括标签栈,ttl,源ip地址和所述目的ip地址;所述标签栈中包括n个链路标签,所述ttl的值为n+1,其中,n为所述网络检测设备到待检测网络节点的跳数,n≥1。所述源ip地址为所述网络检测设备的ip地址,例如1.1.1.1。所述目的ip地址通常为主机的ip地址,例如192.168.1.1。具体地,所述网络检测设备根据所述目的ip地址和所述网络拓扑信息确定所述网络检测设备到所述目的ip地址的转发路径和所述转发路径上的所述待检测网络节点;然后所述网络检测设备根据网络拓扑信息,确定所述网络检测设备到所述待检测网络节点的跳数以及每一跳的链路标签,生成所述检测报 文。其中,所述网络拓扑信息包括所述网络检测设备到所述目的ip地址的转发路径,以及该转发路径上每一跳的路由信息,包括链路标签。链路标签指定了报文的单跳转发路径。本申请实施例中,所述网络检测设备可以先通过网络拓扑管理装置获取网络拓扑信息。所述网络拓扑管理装置可以是软件定义网络(software-definednetworking,缩写sdn)控制器。具体实现中,所述网络检测设备和所述网络拓扑管理装置可以在同一个物理设备中实现,也可以是在不同的物理设备中实现。以图1所示系统为例,网络检测设备110要检测网络中到192.168.1.1这个目的ip地址的转发路径上的网络节点r1的转发表是否正确,即待检测网络节点为r1,则所述网络检测设备110根据网络拓扑信息,确定所述网络检测设备110到网络节点r1的跳数为2(即,所述网络检测设备110到r0,以及r0到r1共两跳),链路标签分别为:8801和8802,所述网络检测设备110生成检测报文,其中标签栈中包括2个链路标签:8801和8802,ttl值为3。202、所述网络检测设备根据所述标签栈栈顶的链路标签发送所述检测报文;标签栈的操作与通常的堆栈“后进先出”的操作一样。标签入栈是指向报文加入一个标签,使标签栈的深度加1;标签出栈是指从报文中去掉一个标签,换言之,弹出标签,使标签栈的深度减1。报文中,标签自栈底至栈顶按照自内往外的顺序封装。在报文转发过程中,决定如何转发报文的标签始终是标签栈栈顶的标签,也即报文中最外层的标签。具体地,所述网络检测设备可以通过(multiprotocollabelswitching,缩写mpls)定义的标签转发方式实现本申请的检测转发表的方法,所述检测报文可以是mpls报文。当然,也可以采用其他支持段路由(segmentrouting)中链路标签转发的实现方式,本申请对此不做限制。具体地,所述网络检测设备向下一跳节点(可能是中间网络节点,也可能 就是所述待检测网络节点)发送所述检测报文,以便于所述检测报文被发送至所述待检测网络设备。继续上述步骤201中的例子,所述网络检测设备110生成的所述检测报文中,标签栈中自栈底至栈顶(报文自内而外)的链路标签依次为8802,8801;ttl值为3。所述网络检测设备110根据所述标签栈栈顶的链路标签8801向下一跳节点,即网络节点r0发送所述检测报文。203、网络节点接收所述检测报文,弹出所述标签栈栈顶的链路标签,并将所述ttl的值减去1;204、所述网络节点判断所述标签栈是否为空;所述网络节点在弹出所述标签栈栈顶的链路标签之后,需要判断标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。当所述网络节点确定所述标签栈不为空时,表示所述网络节点为中间网络节点,则继续步骤205;当所述网络节点确定所述标签栈为空时,表示所述网络节点为待检测网络节点,则继续步骤206;205、当所述网络节点确定所述标签栈不为空时,所述网络节点根据所述标签栈栈顶的链路标签转发所述检测报文。当所述网络节点确定所述标签栈不为空时,即所述网络节点为中间网络节点,所述网络节点根据所述标签栈栈顶的链路标签向下一跳节点转发所述检测报文,以便于所述检测报文被发送至所述待检测网络设备。继续上述例子,网络节点r0确定所述标签不为空,所述网络节点r0根据所述标签栈栈顶的链路标签8802向下一跳节点,即网络节点r1,转发所述检测报文。206、当所述网络节点确定所述标签栈为空时,所述网络节点根据所述目的ip地址和所述网络节点的转发表,将所述检测报文转发给反馈节点;当所述网络节点确定所述标签栈为空时,所述网络节点即为待检测网络节点,可以理解的是,此时所述检测报文中的ttl的值为1。所述网络节点根据所述目的ip地址和所述网络节点的转发表,将所述检测报文转发给反馈节点,所述反馈节点为所述待检测网络节点的下一跳节点。继续上述例子,网络节点 r1确定所述标签为空,所述网络节点r1根据所述目的ip地址和所述网络节点r1的转发表,将所述检测报文转发给反馈节点,即网络节点r2。207、所述反馈节点接收所述检测报文,将所述ttl的值减去1,所述反馈节点确定所述ttl的值为0时向网络检测设备发送通知消息;所述通知消息用于向所述网络检测设备通知:反馈节点收到待检测网络节点转发的所述检测报文。所述通知消息中包括所述反馈节点的ip地址。所述通知消息具体可以是icmp报文;当然也可以扩张已有消息,或者创建新的消息,只要能够起到该通知消息的作用即可,本申请对此不做限定。所述反馈节点收到所述检测报文之后将所述ttl的值减去1,所述ttl的值为0,因此所述反馈节点向所述网络检测设备发送通知消息,通知所述网络检测设备:所述反馈节点收到了所述检测报文。本申请实施例中,所述网络检测设备生成的检测报文,由于设置的标签栈以及ttl值,使得该检测报文根据链路标签逐跳转发到待检测网络节点,并在经过待检测网络节点处理后标签栈为空且ttl值为1。而该检测报文经过所述反馈节点处理(ttl减1)后,所述ttl的值为0,从而触发所述反馈节点向所述网络检测设备发送通知消息。208、所述网络检测设备接收所述通知消息,并根据所述通知消息和所述网络拓扑信息确定所述网络节点的转发表是否正确;具体地,当所述网络检测设备确定发送所述通知消息的所述反馈节点与所述网络拓扑信息中路由一致,所述网络检测设备可以确定所述网络节点的转发表正确;当所述网络检测设备确定发送所述通知消息的所述反馈节点与所述网络拓扑信息中路由不一致时,所述网络检测设备可以确定所述网络节点的转发表存在错误。本申请提供的技术方案,检测报文在经过标签转发后,会根据待检测网络设备的转发表进行ip路由转发,由于ttl每经过一跳会减1,通过设置适当的ttl值,使得ttl的值经反馈节点处理(ttl减1)后为0,触发反馈节点向网络检测设备发送icmp报文,如果发送icmp报文的反馈节点与网络拓扑 信息中路由一致,则可以确定该待检测网络节点的转发表正确,否则,可以确定该待检测网络节点的转发表存在错误。所述icmp报文中包含所述检测报文的首部,因此网络检测设备可以确定收到的所述icmp报文是所述反馈节点用于报告所述检测报文出现超时(ttl为0)错误的。当网络检测设备要检测转发路径上多个网络节点的转发表时,网络检测设备可以依次发送ttl的值及链路标签的数量为递增或者递减的多个检测报文,重复执行如图2所示的检测报文的方法,从而可以检测转发路径上多个网络节点的转发表,定位出转发表存在错误的网络节点。结合图1所示的系统,本申请实施例提供了对网络检测设备110到目的ip地址的转发路径中的一段网络路径120上的三个网络节点r1,r2和r3的转发表依次进行检测的方法。该段网络路径120可以是根据客户需求,网络部署情况(权重,带宽等),或者数据报文转发异常等分析后确定的。参见图3所示的检测转发表的方法的信息交互示意图,该方法包括:301-1、网络检测设备110根据目的ip地址和网络拓扑信息生成第一检测报文,所述第一检测报文的头部包括第一标签栈,第一ttl,源ip地址和所述目的ip地址;具体地,所述网络检测设备110根据所述目的ip地址和所述网络拓扑信息,确定所述网络检测设备到所述目的ip地址的转发路径及所述转发路径中网络路径120。所述网络检测设备110首先要检测网络路径120上网络节点r1的转发表是否存在错误,即所述网络节点r1为待检测网络节点。所述网络检测设备110根据所述网络拓扑信息确定所述网络检测设备110到网络节点r1的跳数为2(即,所述网络检测设备110到网络节点r0,以及网络节点r0到网络节点r1共两跳),链路标签,分别为:8801和8802。所述网络检测设备110生成所述第一检测报文,n为2,如图3所示,所述第一 标签栈中包括2个链路标签,自栈底至栈顶(报文自内而外)依次为第二链路标签8802,第一链路标签8801;所述第一ttl的值为3。所述目的ip地址,即待检测ip地址,例如为192.168.1.1;所述源ip地址为所述网络检测设备110的ip地址,例如为1.1.1.1。302-1、所述网络检测设备110根据所述第一标签栈栈顶的第一链路标签(8801)发送所述第一检测报文;具体地,网络节点r0为所述转发路径上所述网络检测设备的下一跳节点;所述网络检测设备110根据所述第一标签栈栈顶的第一链路标签8801向网络节点r0发送所述第一检测报文;303-1、所述网络节点r0接收所述第一检测报文,弹出所述第一标签栈栈顶的第一链路标签(8801),并将所述第一ttl的值减去1;所述第一检测报文经所述网络节点r0处理后,所述第一标签栈中包括1个链路标签,即第二链路标签8802;所述第一ttl的值为2。此时,所述第一标签栈栈顶的标签即为该第二链路标签8802。然后所述网络节点r0需要判断所述第一标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。304-1、所述网络节点r0确定所述第一标签栈不为空,并根据所述第一标签栈栈顶的第二链路标签(8802)发送所述第一检测报文至网络节点r1;所述网络节点r0确定所述第一标签栈不为空,表示所述网络节点r0为中间网络节点,所述网络节点r0继续向自己的下一跳节点,即网络节点r1,转发所述第一检测报文。305-1、所述网络节点r1接收所述第一检测报文,弹出所述第一标签栈栈顶的第二链路标签(8802),并将所述第一ttl的值减去1;所述第一检测报文经所述网络节点r1处理后,所述第一标签栈为空(其中没有链路标签了),所述第一ttl的值为1。然后所述网络节点r1需要判断所述第一标签栈是否为空,以确定继续进 行标签转发还是根据转发表进行ip路由转发。306-1、所述网络节点r1确定所述第一标签栈为空,并根据所述目的ip地址和所述网络节点r1的转发表,将所述第一检测报文转发给网络节点r2;所述网络节点r1确定所述第一标签栈为空时,表示所述网络节点r1为待检测网络节点,所述网络节点r1根据所述目的ip地址和所述网络节点r1的转发表对所述第一检测报文进行ip路由转发,将所述第一检测报文转发给所述网络节点r1的下一跳,即反馈节点。307-1、所述网络节点r2接收所述第一检测报文,将所述第一ttl的值减去1,所述网络节点r2确定所述第一ttl的值为0并向所述网络检测设备110发送第一icmp报文;所述网络节点r2确定所述第一ttl的值为0,则所述网络节点r2作为反馈节点,生成所述第一icmp报文,发送给所述网络检测设备110;所述第一icmp报文中包括所述网络节点r2的ip地址。所述第一icmp报文中携带所述第一检测报文的首部(所述源ip地址和所述目的ip地址),因此网络检测设备可以确定收到的所述第一icmp报文是所述网络节点r2用于报告所述第一检测报文出现超时(ttl为0)错误的。假设所述网络拓扑信息中所述网络检测设备至所述目的ip地址的转发路径上所述网络节点r1的下一跳为网络节点r2。所述网络节点r2收到所述第一检测报文并向网络检测设备发送所述第一icmp报文,即所述网络节点r2为反馈节点,表明所述待检测网络节点,即网络节点r1的转发表正确。如果网络节点r2之外的其他节点收到所述第一检测报文,所述其他节点向网络检测设备发送所述第一icmp报文,即所述其他节点为反馈节点(图3中未示出),则表明所述网络节点r1的转发表错误。308-1、所述网络检测设备110接收所述网络节点r2发送的所述第一icmp报文,根据所述第一icmp报文和所述网络拓扑信息确定所述网络节点r1的转发表是否正确。具体地,所述网络检测设备根据所述网络拓扑信息和所述第一icmp报文中所述网络节点r2的ip地址,若确定所述网络拓扑信息中所述网络检测设备至所述目的ip地址的转发路径上所述网络节点r1(即待检测网络节点)的下一跳是所述网络节点r2,即发送所述第一icmp报文的反馈节点(所述网络节点r2)与所述网络拓扑信息一致,则所述网络检测设备可以确定所述网络节点r1的转发表正确;若确定所述网络拓扑信息中所述转发路径上所述网络节点r1的下一跳不是所述网络节点r2,即发送所述第一icmp报文的反馈节点(所述网络节点r2)与所述网络拓扑信息不一致,则所述网络检测设备可以确定所述网络节点r1的转发表存在错误。接下来,所述网络检测设备110要继续检测网络路径120上网络节点r2的转发表是否存在错误。301-2、网络检测设备110根据所述目的ip地址和所述网络拓扑信息生成第二检测报文,所述第二检测报文包括第二标签栈,第二ttl,所述源ip地址和所述目的ip地址;具体地,所述网络检测设备110根据所述目的ip地址和所述网络拓扑信息,确定所述网络检测设备110到网络节点r2(即待检测网络节点)的跳数为3(即,所述网络检测设备110到网络节点r0,网络节点r0到网络节点r1,以及网络节点r1到网络节点r2共三跳),链路标签分别为:8801,8802和8803。所述网络检测设备110生成所述第二检测报文,n为3,如图3所示,所述第二标签栈中包括3个链路标签,自栈底至栈顶(报文自内而外)依次为第三链路标签8803,第二链路标签8802,第一链路标签8801;第二ttl的值为4。所述第二检测报文与所述第一检测报文具有相同的源ip地址和相同的目的ip地址。302-2、所述网络检测设备110根据所述第二标签栈栈顶的第一链路标签(8801)发送所述第二检测报文;具体地,所述网络检测设备110根据所述第二标签栈栈顶的第一链路标签8801向自己的下一跳节点,即网络节点r0发送所述第二检测报文。303-2、所述网络节点r0接收所述第二检测报文,弹出所述第二标签栈栈顶的第一链路标签(8801),并将所述第二ttl的值减去1;所述第二检测报文经所述网络节点r0处理后,所述第二标签栈中包括2个链路标签,自栈底至栈顶(报文自内而外)依次为第三链路标签8803,第二链路标签8802;所述第二ttl的值为3。此时,所述第二标签栈栈顶的标签即为该第二链路标签8802。然后所述网络节点r0需要判断所述第二标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。304-2、所述网络节点r0确定所述第二标签栈不为空,并根据所述第二标签栈栈顶的第二链路标签(8802)向网络节点r1发送所述第二检测报文;所述网络节点r0确定所述第二标签栈不为空,表示所述网络节点r0为中间网络节点,所述网络节点r0根据标签栈栈顶的第二链路标签(8802)向所述网络节点r0的下一跳节点,即网络节点r1,转发所述第二检测报文。305-2、所述网络节点r1接收所述第二检测报文,弹出所述第二标签栈栈顶的第二链路标签(8802),并将所述第二ttl的值减去1;所述第二检测报文经所述网络节点r1处理后,所述第二标签栈中包括1个链路标签,即第三链路标签8803;所述第二ttl的值为2。此时,所述第二标签栈栈顶的标签即为该第三链路标签8803。然后所述网络节点r1需要判断所述第二标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。306-2、所述网络节点r1确定所述第二标签栈不为空,并根据所述第二标签栈栈顶的第三链路标签(8803)向网络节点r2发送所述第二检测报文;所述网络节点r1确定所述第二标签栈不为空,表示所述网络节点r1也是中间网络节点,所述网络节点r1根据所述第二标签栈栈顶的第三链路标签 (8803)向自己的下一跳节点,即网络节点r2发送所述第二检测报文。307-2、所述网络节点r2接收所述第二检测报文,弹出所述第二标签栈栈顶的第三链路标签(8803),并将所述第二ttl的值减去1;所述第二检测报文经所述网络节点r2处理后,所述第二标签栈为空;所述第二ttl的值为1。然后所述网络节点r2需要判断所述第二标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。308-2、所述网络节点r2确定所述第二标签栈为空,并根据所述目的ip地址和所述网络节点r2的转发表,将所述第二检测报文转发给网络节点r3;所述网络节点r2确定所述第二标签栈为空,表示所述网络节点r2就是待检测网络节点。所述网络节点r2根据自己的转发表和所述目的ip地址对所述第二检测报文进行ip路由转发,将所述第二检测报文转发给自己的下一跳节点,即反馈节点。309-2、所述网络节点r3接收所述第二检测报文,将所述第二ttl的值减去1,所述网络节点r3确定所述第二ttl的值为0并向所述网络检测设备发送第二icmp报文;所述网络节点r3,即反馈节点,收到所述第二检测报文后,将所述第二ttl的值减去1。所述网络节点r3确定所述第二ttl的值为0,因此生成所述第二icmp报文,发送给所述网络检测设备110;所述第二icmp报文中包括所述网络节点r3的ip地址。所述第二icmp报文中还携带所述第二检测报文的首部(所述源ip地址和所述目的ip地址),因此网络检测设备可以确定收到的所述第二icmp报文是所述网络节点r3用于报告所述第二检测报文出现超时(ttl为0)错误的。310-2、所述网络检测设备110接收所述网络节点r3发送的所述第二icmp报文,根据所述第二icmp报文和所述网络拓扑信息确定所述网络节点r2的转发表是否正确。具体地,所述网络检测设备根据所述网络拓扑信息和所述第二icmp报文中所述网络节点r3的ip地址,若确定所述网络拓扑信息中所述网络检测设备至所述目的ip地址的转发路径上所述网络节点r2(即待检测网络节点)的下一跳节点是所述网络节点r3,即发送所述第二icmp报文的反馈节点(所述网络节点r3)与所述网络拓扑信息一致,则所述网络检测设备可以确定所述网络节点r2的转发表正确;若确定所述网络拓扑信息中所述转发路径上所述网络节点r2的下一跳不是所述网络节点r3,即发送所述第二icmp报文的反馈节点(所述网络节点r3)与所述网络拓扑信息不一致,则所述网络检测设备可以确定所述网络节点r2的转发表存在错误。接下来,所述网络检测设备110继续检测网络路径120上网络节点r3的转发表是否存在错误。301-3、网络检测设备110根据所述目的ip地址和所述网络拓扑信息生成第三检测报文,所述第三检测报文包括第三标签栈,第三ttl,所述源ip地址和所述目的ip地址;具体地,所述网络检测设备110根据所述网络拓扑信息,确定所述网络检测设备110到网络节点r3(即待检测网络节点)的跳数为4(即,所述网络检测设备110到网络节点r0,网络节点r0到网络节点r1,网络节点r1到网络节点r2,以及网络节点r2到网络节点r3共四跳),链路标签分别为:8801,8802,8803和8804。所述网络检测设备110生成所述第三检测报文,n为4,如图3所示,所述第三标签栈中包括4个链路标签,自栈底至栈顶(报文自内而外)依次为第四链路标签8804,第三链路标签8803,第二链路标签8802,第一链路标签8801;第三ttl的值为5。所述第三检测报文与所述第一检测报文、所述第二检测报文具有相同的源ip地址(即所述网络检测设备的ip地址)和相同的目的ip地址(即所述待检测ip地址)。302-3、所述网络检测设备110根据所述第三标签栈栈顶的第一链路标签 (8801)发送所述第三检测报文至网络节点r0;303-3、所述网络节点r0接收所述第三检测报文,弹出所述第三标签栈栈顶的第一链路标签(8801),并将所述第三ttl的值减去1;所述第三检测报文经所述网络节点r0处理后,所述第三标签栈中包括3个链路标签,自栈底至栈顶(报文自内而外)依次为第四链路标签8804,第三链路标签8803,第二链路标签8802;所述第三ttl的值为4。此时,所述第第三标签栈栈顶的标签即为该第二链路标签8802。然后所述网络节点r0需要判断所述第三标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。304-3、所述网络节点r0确定所述第三标签栈不为空,并根据所述第三标签栈栈顶的第二链路标签(8802)发送所述第三检测报文至网络节点r1;所述网络节点r0作为中间网络节点继续转发所述第三检测报文给自己的下一跳节点,即网络节点r1。305-3、所述网络节点r1接收所述第三检测报文,弹出所述第三标签栈栈顶的第二链路标签(8802),并将所述第三ttl的值减去1;所述第三检测报文经所述网络节点r1处理后,所述第三标签栈中包括2个链路标签,自栈底至栈顶(报文自内而外)依次为第四链路标签8804,第三链路标签8803;所述第三ttl的值为3。此时,所述第三标签栈栈顶的标签即为该第三链路标签8803。然后所述网络节点r1需要判断所述第三标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。306-3、所述网络节点r1确定所述第三标签栈不为空,并根据所述第三标签栈栈顶的第三链路标签(8803)发送所述第三检测报文至网络节点r2;所述网络节点r1作为中间网络节点继续转发所述第三检测报文给自己的下一跳节点,即网络节点r2。307-3、所述网络节点r2接收所述第三检测报文,弹出所述第三标签栈栈 顶的第三链路标签(8803),并将所述第三ttl的值减去1;所述第三检测报文经所述网络节点r2处理后,所述第三标签栈中包括1个链路标签,即第四链路标签8804;所述第三ttl的值为2。此时,所述第三标签栈栈顶的标签即为该第四链路标签8804。然后所述网络节点r2需要判断所述第三标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。308-3、所述网络节点r2确定所述第三标签栈不为空,并根据所述第三标签栈栈顶的第四链路标签(8804)发送所述第三检测报文至网络节点r3;所述网络节点r2作为中间网络节点继续转发所述第三检测报文给自己的下一跳节点,即网络节点r3。309-3、所述网络节点r3接收所述第三检测报文,弹出所述第三标签栈栈顶的第四链路标签(8804),并将所述第三ttl的值减去1;所述第三检测报文经所述网络节点r3处理后,所述第三标签栈为空;所述第三ttl的值为1。然后所述网络节点r3需要判断所述第三标签栈是否为空,以确定继续进行标签转发还是根据转发表进行ip路由转发。310-3、所述网络节点r3确定所述第三标签栈为空,并根据所述目的ip地址和所述网络节点r3的转发表,将所述第三检测报文转发给网络节点r4;所述网络节点r3确定所述第三标签栈为空时,表示所述网络节点r3为待检测网络节点,所述网络节点r3根据所述目的ip地址和所述网络节点r3的转发表对所述第三检测报文进行ip路由转发,将所述第三检测报文转发给所述网络节点r3的下一跳,即反馈节点。311-3、所述网络节点r4接收所述第三检测报文,将所述第三ttl的值减去1,所述网络节点r4确定所述第三ttl的值为0并向所述网络检测设备发送第三icmp报文;所述网络节点r4确定所述第三ttl的值为0,则所述网络节点r4作为 所述待检测网络节点的下一跳节点,即反馈节点,生成所述第三icmp报文,发送给所述网络检测设备110;所述第三icmp报文中包括所述网络节点r4的ip地址。所述第三icmp报文中还携带所述第三检测报文的首部,因此网络检测设备可以确定收到的所述第三icmp报文是所述网络节点r2用于报告所述第三检测报文出现超时(ttl为0)错误的。假设所述网络拓扑信息中所述转发路径上所述网络节点r3的下一跳为网络节点r4。所述网络节点r4收到所述第三检测报文并向网络检测设备发送所述第三icmp报文,即所述网络节点r4为反馈节点,则表明所述待检测网络节点,即网络节点r3的转发表正确。如果网络节点r4之外的其他节点收到所述第三检测报文,所述其他节点向网络检测设备发送所述第三icmp报文,即所述其他节点为反馈节点(图3中未示出),则表明所述网络节点r3的转发表错误。312-3、所述网络检测设备110接收所述网络节点r4发送的所述第三icmp报文,根据所述第三icmp报文和所述网络拓扑信息确定所述网络节点r3的转发表是否正确。具体地,所述网络检测设备根据所述网络拓扑信息和所述第三icmp报文中所述网络节点r4的ip地址,若确定所述网络拓扑信息中所述网络检测设备至所述目的ip地址的转发路径上所述网络节点r3(即待检测网络节点)在网络路径上的下一跳是所述网络节点r4,即发送所述第三icmp报文的反馈节点(所述网络节点r4)与所述网络拓扑信息一致,则所述网络检测设备可以确定所述网络节点r3的转发表正确;若定所述网络拓扑信息中所述转发路径上所述网络节点r3的下一跳不是所述网络节点r4,即发送所述第三icmp报文的反馈节点(所述网络节点r4)与所述网络拓扑信息不一致,则所述网络检测设备可以确定所述网络节点r3的转发表不正确,即存在错误。本申请实施例提供的检测转发表的方法,网络检测设备根据网络拓扑信息生成包括特定链路标签和特定ttl值的检测报文,指定检测报文的转发路径, 并利用ttl逐跳减1、ttl的值为0时会触发待检测网络节点的下一跳,即反馈节点,向网络检测设备发送通知消息(icmp报文),可以检测到所述待检测ip地址的网络路径上任意一个或多个网络节点的转发表是否存在错误,从而提高故障定位的效率。图3所示的检测转发表的过程中,按照所述转发路径中网络路径120上节点的顺序逐跳依次检测每个节点的转发表是否正确,当然也可以倒序检测,或者任选其中一个或多个网络节点检测其转发表是否正确,对此本申请不做限定。在本申请图2和图3所示实施例提供的检测转发表的方法基础上,接下来具体描述提供网络检测设备侧功能的检测装置和网络检测设备。参见图4,为本申请实施例提供的一种检测转发表的检测装置400,所述检测装置400可以设置在网络检测设备中,用于实现如本申请图2和3所示实施例中所述检测转发表的方法。所述检测装置400包括:报文生成模块401,用于根据目的ip地址和网络拓扑信息生成检测报文,所述检测报文中包括标签栈,ttl,源ip地址和目的ip地址;所述标签栈中包括n个链路标签,所述ttl的值为n+1;所述源ip地址为所述网络检测设备的ip地址,其中,n为所述网络检测设备到待检测网络节点的跳数,n为大于等于1的正整数(可表示为n≥1);发送模块402,用于根据所述标签栈栈顶的链路标签发送所述检测报文;具体地,向所述网络检测设备的下一跳节点发送所述检测报文;所述网络检测设备的下一跳节点可能是中间网络节点,也可能就是该待检测网络节点。接收模块403,用于接收通知消息,所述通知消息用于通知所述网络检测设备:反馈节点收到所述待检测网络节点转发的所述检测报文;所述反馈节点为所述待检测网络节点的下一跳节点;确定模块404,用于根据所述通知消息和所述网络拓扑信息确定所述待检测网络节点的转发表是否正确。参见图5所示,所述检测装置400还包括拓扑获取模块405,用于获取所述网络拓扑信息,所述网络拓扑信息包括所述网络检测设备至所述目的ip地址的转发路径,及转发路径上每一跳的路由信息。路由信息包括链路标签。所述拓扑获取模块405可以先通过网络拓扑管理装置获取网络拓扑信息。所述网络拓扑管理装置可以是sdn控制器。具体实现中,所述检测装置400和所述网络拓扑管理装置可以在同一个物理设备中实现,也可以是在不同的物理设备中实现。所述报文生成模块401,具体用于根据所述目的ip地址和所述网络拓扑信息,确定所述网络检测设备到所述目的ip地址的转发路径和所述转发路径上的所述待检测网络节点;根据所述网络拓扑信息确定所述网络检测设备到所述待检测网络节点的跳数n以及每一跳的链路标签,并根据所述跳数n以及每一跳的链路标签,生成所述检测报文。当所述待检测网络节点收到所述检测报文之后,所述待检测网络节点弹出所述标签栈栈顶的链路标签,并将所述ttl的值减去1;所述待检测网络节点确定所述标签栈为空,可以理解此时所述检测报文中的ttl的值为1,所述待检测网络节点就根据所述目的ip地址和所述待检测网络节点的转发表对所述检测报文进行ip路由转发,将所述检测报文转发给反馈节点,所述反馈节点为所述待检测网络节点的下一跳。所述通知消息中包括所述反馈节点的ip地址;所述通知消息为所述反馈节点在所述检测报文中的所述ttl的值为0时发送。具体地,所述反馈节点接收所述待检测网络节点转发的所述检测报文,并将所述ttl的值减去1,导致所述ttl的值为0,触发所述反馈节点向所述网络检测设备发送通知消息,例如icmp报文。所述确定模块404具体用于根据所述网络拓扑信息和所述通知消息中所述反馈节点的ip地址,判断发送所述通知消息的所述反馈节点与所述网络拓扑信息中路由一致;当一致时,确定所述待检测网络节点的转发表正确;当不一 致时,确定所述待检测网络节点的转发表存在错误。参见图6,为本申请实施例提供的一种网络检测设备600,用于实现如本申请图2和3所示实施例中所述检测转发表的方法。所述网络检测设备包括:处理器601,存储器602和通信接口603;所述处理器601,所述存储器602和所述通信接口603之间可以通过总线604相互连接;总线604可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。所述存储器602,用于存储网络拓扑信息,所述网络拓扑信息包括所述网络检测设备至目的ip地址的转发路径,及转发路径上每一跳的路由信息。所述路由信息包括链路标签。所述处理器601,用于根据所述目的ip地址和所述网络拓扑信息生成检测报文,所述检测报文中包括标签栈,ttl,源ip地址和目的ip地址;所述标签栈中包括n个链路标签,所述ttl的值为n+1,所述源ip地址为所述网络检测设备的ip地址,其中,n为所述网络检测设备到待检测网络节点的跳数,n≥1;根据所述标签栈栈顶的链路标签,通过所述通信接口603发送所述检测报文;通过所述通信接口603接收反馈节点发送的通知消息,所述通知消息用于通知所述网络检测设备:所述反馈节点收到待检测网络节点转发的所述检测报文;并根据所述通知消息和所述网络拓扑信息确定所述待检测网络节点的转发表是否正确。所述反馈节点为所述待检测网络节点的下一跳节点。所述处理器601具体用于根据所述网络拓扑信息,确定所述网络检测设备到所述待检测网络节点的跳数n以及每一跳的链路标签,并根据所述网络检测设备到所述待检测网络节点的跳数n以及每一跳的链路标签,生成所述检测报文。所述处理器601,还用于获取所述网络拓扑信息。具体可以通过网络拓扑管理装置获取网络拓扑信息。所述网络拓扑管理装置可以是sdn控制器。具体实现中,所述网络检测设备和所述网络拓扑管理装置可以在同一个物理设备中实现,也可以是在不同的物理设备中实现。所述存储器602可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器602也可以包括非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd);存储器602还可以包括上述种类的存储器的组合。本申请实施例中,所述通信接口603代表所述网络检测设备600与网络中其他网络节点通信的接口,可以是一个或多个,为便于表述,本申请中用通信接口603表示,并不作为对本申请技术方案的限定。所述处理器601可以是中央处理器(英文:centralprocessingunit,缩写:cpu),网络处理器(英文:networkprocessor,缩写:np)或者cpu和np的组合。处理器601还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或其任意组合。可选地,所述存储器602还用于存储程序指令;所述处理器601可以调用存储器602中存放的程序指令,执行图2和图3所示实施例中网络检测设备的一个或多个步骤,或其中可选的实施方式,实现上述图2和图3所示的检测转发表的方法。本申请实施例提供的网络检测设备根据目的ip地址和网络拓扑信息生成包括特定链路标签和特定ttl值的检测报文,可以检测到所述目的ip地址的转发路径上任意一个或多个网络节点的转发表是否存在错误,从而提高故障定位的效率。在本申请图2和图3所示实施例提供的检测转发表的方法基础上,接下来具体描述实现上述方法中的网络节点。参见图7,为本申请实施例提供的一种网络节点700,所述网络节点700用于实现如本申请图2和3所示实施例中所述检测转发表的方法。所述网络节点700包括:接收模块701,用于接收检测报文,所述检测报文包括标签栈,ttl,源ip地址和目的ip地址;其中,所述标签栈中包括n个链路标签,n为大于等于1的正整数,所述ttl的值为n+1;报文处理模块702,用于弹出所述标签栈栈顶的链路标签,将所述ttl的值减去1;并判断所述标签栈是否为空;转发模块703,用于当所述报文处理模块702确定所述标签栈为空时,根据所述目的ip地址和所述网络节点的转发表,将所述检测报文转发给反馈节点。此时,所述网络节点为待检测网络节点,所述反馈节点为所述待检测网络节点的下一跳。所述反馈节点接收所述检测报文(此时,所述检测报文中不包含链路标签,所述ttl的值为1),将所述ttl的值减去1;所述反馈节点确定所述ttl的值为0时向所述网络检测设备发送通知消息,例如,icmp报文,以便所述网络检测设备根据所述通知消息和网络拓扑信息确定所述网络节点的转发表是否正确。所述转发模块703,还用于当所述报文处理模块702确定所述标签栈不为空时,根据所述标签栈栈顶的链路标签,转发所述检测报文。此时,所述网络节点为中间网络节点,根据链路标签对所述检测报文进行标签转发,直至发送 给待检测网络节点。所述网络拓扑信息包括所述网络检测设备至目的ip地址所对应设备的每一跳的路由信息。所述网络拓扑信息具体可以包括所述网络检测设备至所述目的ip地址的转发路径,以及该转发路径上每一跳的路由信息;路由信息包括链路标签。参见图8,为本申请实施例提供的另一种网络节点800,用于实现如本申请图2和3所示实施例中所述检测转发表的方法。所述网络节点800包括:处理器801,存储器802和通信接口803;所述处理器601,所述存储器602和所述通信接口603之间可以通过总线604相互连接;总线604可以是pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。所述存储器802,用于存储转发表,所述转发表中包括目的ip地址和下一跳。所述处理器801,用于接收检测报文,所述检测报文包括标签栈,ttl,源ip地址和所述目的ip地址;其中,所述标签栈中包括n个链路标签,n为大于等于1的正整数,所述ttl的值为n+1;弹出所述标签栈栈顶的链路标签,将所述ttl的值减去1,并判断所述标签栈是否为空;当确定所述标签栈为空时,根据所述目的ip地址和所述转发表,将所述检测报文转发给反馈节点。此时,所述网络节点为待检测网络节点,所述反馈节点为所述待检测网络节点的下一跳。所述反馈节点接收所述检测报文(此时,所述检测报文中不包含链路标签,所述ttl的值为1),将所述ttl的值减去1;所述反馈节点确定所述ttl的值为0,则向所述网络检测设备发送通知消息,例如,icmp报文,以便所述网络检测设备根据所述通知消息和网络拓扑信息确定所述网络节点的转发表是否正确。所述网络拓扑信息包括所述网络检测设备至目的ip地址(待检测ip地址)所对应设备的每一跳的路由信息。所述网络拓扑信息具体可以包括所述网络检测设备至所述待检测ip地址的转发路径,以及该转发路径上每一跳的路由信息;路由信息包括链路标签。所述处理器801,还用于当确定所述标签栈不为空时,根据所述标签栈栈顶的链路标签,转发所述检测报文。此时,所述网络节点为中间网络节点,根据所述标签栈栈顶的链路标签对所述检测报文进行标签转发,直至发送给待检测网络节点。所述存储器802可以包括易失性存储器,例如ram;存储器802也可以包括非易失性存储器,例如flash,hdd,ssd;存储器802还可以包括上述种类的存储器的组合。本申请实施例中,所述通信接口803代表所述网络节点800与网络中其他网络节点通信的接口,可以是一个或多个,为便于表述,本申请中用通信接口803表示,并不作为对本申请技术方案的限定。所述处理器801可以是cpu,np,或者cpu和np的组合;所述处理器也可以是硬件芯片。上述硬件芯片可以是asic,pld或其组合。上述pld可以是cpld,fpga,gal或其任意组合。可选的,所述处理器801,还用于获取所述转发表。具体地,所述处理器801根据路由表生成所述转发表。所述存储器802还可用于存储所述路由表。所述网络节点可以采用传统的方法得到所述路由表,在此不再赘述。可选地,所述存储器802还用于存储程序指令;所述处理器601可以调用存储器802中存放的程序指令,执行图2和图3所示实施例中网络节点的一个或多个步骤,或其中可选的实施方式,实现上述图2和图3所示的检测转发表的方法。本申请实施例提供的网络节点,在收到网络检测设备发送的包括特定链路标签和特定ttl的检测报文后,将检测报文中的ttl的值减1;当该网络节 点是待检测网络节点,根据转发表将检测报文转发给反馈节点后,反馈节点收到该检测报文同样将ttl的值减1,导致所述ttl的值为0触发反馈节点向网络检测设备发送通知消息,从而网络检测设备可以根据网络拓扑信息和通知消息中的反馈节点的ip地址,确定待检测网络节点的转发表是否正确。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1