实现表项检查的方法、装置及系统、计算机存储介质
文献发布时间:2023-06-19 12:02:28
本申请要求于2020年01月14日提交的申请号为202010036403.7、发明名称为“一种实现表项检查的方法、装置和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及网络技术领域,特别涉及一种实现表项检查的方法、装置及系统、计算机存储介质。
背景技术
通信网络中常见的故障类型包括配置类故障、表项类故障、硬件类故障、拥塞类故障、攻击类故障、状态类故障、资源类故障和非网络侧故障等。表项类故障包括网络设备中的软件表和硬件表不一致导致的业务中断。其中,软件表用于存储配置数据,硬件表用于存储芯片的运行数据。
目前,通常在软件开发工具包(software development kit,SDK)侧启动定时器,定时触发网络设备采用全遍历的方式检查自身的软件表和硬件表是否一致。若网络设备的硬件表与软件表不一致,则网络设备刷新硬件表,使其保持和软件表一致。
但是,目前网络设备采用全遍历的方式检查软件表和硬件表的一致性,会造成网络设备的处理资源消耗较大,且检查的灵活性较低。
发明内容
本申请提供了一种实现表项检查的方法、装置及系统、计算机存储介质,可以解决目前网络设备在进行软件表和硬件表的一致性检查过程中处理资源消耗较大且检查灵活性较低的问题。
第一方面,提供了一种实现表项检查的方法。该方法包括:网络设备获取检查指令,该检查指令包括第一软件表中的待检查表项的标识。网络设备基于检查指令,检查网络设备的第一硬件表中是否存在与待检查表项相同的表项,该第一硬件表的类型与第一软件表的类型相同。网络设备输出检查结果,该检查结果中包括对待检查表项的第一检查结果。其中,第一硬件表位于网络设备的转发芯片中。
本申请中,由于网络设备获取的检查指令中包括第一软件表中的待检查表项的标识,因此网络设备可以基于该检查指令,针对特定的待检查表项进行软件表和硬件表的一致性检查,与目前采用全遍历的方式对网络设备中的软件表和硬件表进行一致性检查相比,网络设备消耗的处理资源较少,且检查灵活性较高。
可选地,在网络设备获取检查指令之后,网络设备基于检查指令,获取待检查表项在第二软件表中的关联表项,该第二软件表的类型与第一软件表的类型不同。网络设备检查网络设备的第二硬件表中是否存在与关联表项相同的表项,该第二硬件表的类型与第二软件表的类型相同。网络设备输出的检查结果中还包括对关联表项的第二检查结果。
本申请中,由于待检查表项的关联表项故障可能会导致待检查表项在软件表和硬件表中不一致,因此网络设备检查待检查表项的关联表项在软件表和硬件表中的一致性,可以提高故障表项定位的准确性。
可选地,网络设备获取检查指令,包括:网络设备接收管理设备发送的检查指令。网络设备输出检查结果,包括:网络设备向管理设备发送检查结果。可选地,管理设备为控制器或分析器。
可选地,在网络设备向管理设备发送检查结果之后,网络设备接收管理设备发送的对账指令,该对账指令包括故障表的类型以及故障表中的故障表项的标识。当故障表项包括待检查表项时,网络设备更新第一硬件表,使得更新后的第一硬件表中存在与待检查表项相同的表项。当故障表项包括待检查表项在第二软件表中的关联表项时,网络设备更新第二硬件表,使得更新后的第二硬件表中存在与该关联表项相同的表项。第二软件表的类型与第一软件表的类型不同,第二硬件表的类型与第二软件表的类型相同。
本申请中,网络设备只需根据管理设备下发的指令执行对应的步骤,例如,根据管理设备下发的检查指令针对待检查表项进行软件表和硬件表的一致性检查,根据管理设备下发的对账指令更新对应的硬件表,无需网络设备自行决策,进一步节约了网络设备的处理资源。
可选地,在网络设备基于检查指令,检查网络设备的第一硬件表中是否存在与待检查表项相同的表项之后,当第一硬件表中不存在第一表项时,网络设备将待检查表项写入第一硬件表,第一表项的标识与待检查表项的标识相同。当第一硬件表中存在第一表项,且第一表项与待检查表项不同时,网络设备采用待检查表项更新第一表项,使更新后的第一表项与待检查表项相同。其中,网络设备采用待检查表项更新第一表项,包括:网络设备采用待检查表项替换第一表项,或者,网络设备根据待检查表项修改第一表项。
可选地,在网络设备检查网络设备的第二硬件表中是否存在与关联表项相同的表项之后,当第二硬件表中不存在第二表项时,网络设备将关联表项写入第二硬件表,第二表项的标识与关联表项的标识相同。当第二硬件表中存在第二表项,且第二表项与关联表项不同时,网络设备采用关联表项更新第二表项,使更新后的第二表项与关联表项相同。
可选地,待检查表项的标识包括待检查表项在第一软件表中的键值。该键值在第一软件表中能够唯一标识该待检查表项。
可选地,检查指令还包括第一软件表的类型。
可选地,第一软件表为ARP表、转发表、路由表或MAC表。
可选地,第一检查结果中包括第一软件表的类型、待检查表项的标识以及待检查表项的故障类型。
第二方面,提供了一种实现表项检查的方法,该方法包括:管理设备向目标网络设备发送检查指令,该检查指令包括目标网络设备的第一软件表中的待检查表项的标识,该检查指令用于指示目标网络设备检查目标网络设备的第一硬件表中是否存在与待检查表项相同的表项,第一硬件表的类型与第一软件表的类型相同。管理设备接收目标网络设备发送的检查结果,该检查结果中包括目标网络设备对待检查表项的第一检查结果。
可选地,管理设备为分析器或控制器。
在一种实现方式中,当管理设备为分析器时,管理设备向目标网络设备发送检查指令,包括:分析器通过控制器向目标网络设备发送检查指令。可选地,分析器向控制器发送通知消息,该通知消息包括目标网络设备的标识以及待检查表项的标识,以通知控制器指示目标网络设备检查该目标网络设备的硬件表中是否存在与待检查表项相同的表项,即通知控制器向目标网络设备发送检查指令。或者,分析器向控制器发送检查指令,再由控制器将检查指令转发给目标网络设备。当然,分析器也可以直接向目标网络设备发送检查指令。
在另一种实现方式中,当管理设备为控制器时,管理设备向目标网络设备发送检查指令,包括:控制器直接向目标网络设备发送检查指令。可选地,控制器在接收到分析器发送的包括目标网络设备的标识以及待检查表项的标识的通知消息后,向目标网络设备发送检查指令。
可选地,在管理设备向目标网络设备发送检查指令之前,管理设备确定目标网络设备。管理设备确定目标网络设备的第一软件表中的待检查表项。该管理设备可以是分析器。
可选地,管理设备确定目标网络设备的实现过程,包括:当通信网络中的目标报文的传输路径为异常流路径时,管理设备基于异常流路径以及正常流路径,确定正常流路径上的待定故障设备,正常流路径为目标报文的源端设备与目标报文的目的端设备之间基于历史报文的通信过程成功的历史路径。当管理设备无法在待定故障设备中确定故障设备时,管理设备将待定故障设备确定为目标网络设备。可选地,目标报文为TCP控制报文。
可选地,管理设备确定目标网络设备中的第一软件表中的待检查表项的实现过程,包括:管理设备将目标报文在第一软件表中的对应的表项确定为待检查表项。其中,该待检查表项可以为目标网络设备中用于转发该目标报文的表项。
本申请中,管理设备可以定位到待定故障设备,当通信网络中发生故障时,只需待定故障设备进行软件表和硬件表的一致性检查,而通信网络中的其它网络设备无需进行软件表和硬件表的一致性检查,节约了正常网络设备的处理资源。另外,管理设备还可以确定待定故障设备的待检查表项,使得待定故障设备只需针对该待检查表项对软件表和硬件表进行一致性检查,与目前采用全遍历的方式对网络设备中的软件表和硬件表进行一致性检查相比,网络设备消耗的处理资源较少,且检查灵活性较高。
可选地,第一检查结果中包括第一软件表的类型、待检查表项的标识以及待检查表项的故障类型,在管理设备接收目标网络设备发送的检查结果之后,管理设备基于第一检查结果,确定待检查表项是否故障。在确定待检查表项故障后,管理设备向目标网络设备发送对账指令,该对账指令包括第一软件表的类型以及待检查表项的标识。该对账指令用于指示目标网络设备更新第一硬件表,使得更新后的第一硬件表中存在与待检查表项相同的表项。其中,分析器可以基于第一检查结果,确定待检查表项是否故障,并在确定待检查表项故障后,通过控制器向目标网络设备发送对账指令。
可选地,检查结果中还包括待检查表项在第二软件表中的关联表项的第二检查结果,该第二软件表的类型与第一软件表的类型不同。
可选地,第二检查结果中包括第二软件表的类型、关联表项的标识以及关联表项的故障类型,在管理设备接收目标网络设备发送的检查结果之后,管理设备基于第二检查结果,确定关联表项是否故障。在确定关联表项故障后,管理设备向目标网络设备发送对账指令,该对账指令包括第二软件表的类型以及关联表项的标识。该对账指令用于指示目标网络设备更新第二硬件表,使得更新后的第二硬件表中存在与关联表项相同的表项,该第二硬件表的类型与第二软件表的类型相同。其中,分析器可以基于第二检查结果,确定关联表项是否故障,并在确定关联表项故障后,通过控制器向目标网络设备发送对账指令。
可选地,管理设备在基于第一检查结果确定待检查表项故障后发送的对账指令,和在基于第二检查结果确定关联表项故障后发送的对账指令,可以是同一个对账指令,也可以是不同的对账指令。也即是,一个对账指令中可以包括多个故障表的类型以及故障表中的故障表项的标识,或者,每个对账指令中包括一个故障表的类型以及该故障表中的故障表项的标识。
本申请中,网络设备只需根据管理设备下发的指令执行对应的步骤,例如,根据管理设备下发的检查指令针对待检查表项进行软件表和硬件表的一致性检查,根据管理设备下发的对账指令更新对应的硬件表,无需网络设备自行决策,进一步节约了网络设备的处理资源。
第三方面,提供了一种实现表项检查的装置。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
第四方面,提供了一种实现表项检查的装置。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第二方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
第五方面,提供了一种网络设备,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现如第一方面任一所述的实现表项检查的方法。
第六方面,提供了一种管理设备,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现如第二方面任一所述的实现表项检查的方法。
第七方面,提供了一种实现表项检查的系统,所述系统中包括通信网络中的网络设备,所述网络设备包括如第三方面所述的实现表项检查的装置。
可选地,所述系统中还包括管理设备,所述管理设备与所述网络设备连接,所述管理设备包括如第四方面所述的实现表项检查的装置。
可选地,所述管理设备包括分析器和/或控制器。
第八方面,提供了一种计算机存储介质,所述计算机存储介质上存储有指令,当所述指令被网络设备的处理器执行时,实现如第一方面任一所述的实现表项检查的方法;或者,当所述指令被管理设备的处理器执行时,实现如第二方面任一所述的实现表项检查的方法。
第九方面,提供了一种芯片,芯片包括可编程逻辑电路和/或程序指令,当芯片运行时,实现上述第一方面及其各实施方式中的方法或第二方面及其各实施方式中的方法。
本申请提供的技术方案带来的有益效果至少包括:
本申请中,管理设备可以定位到待定故障设备,当通信网络中发生故障时,只需待定故障设备进行软件表和硬件表的一致性检查,而通信网络中的其它网络设备无需进行软件表和硬件表的一致性检查,节约了正常网络设备的处理资源。另外,管理设备还可以确定待定故障设备的待检查表项,使得待定故障设备只需针对该待检查表项对软件表和硬件表进行一致性检查,与目前采用全遍历的方式对网络设备中的软件表和硬件表进行一致性检查相比,网络设备消耗的处理资源较少,且检查灵活性较高。另外,网络设备只需根据管理设备下发的指令执行对应的步骤,例如,根据管理设备下发的检查指令针对待检查表项进行软件表和硬件表的一致性检查,根据管理设备下发的对账指令更新对应的硬件表,无需网络设备自行决策,进一步节约了网络设备的处理资源。
附图说明
图1是本申请实施例提供的一种实现表项检查的系统的结构示意图;
图2是本申请实施例提供的另一种实现表项检查的系统的结构示意图;
图3是本申请实施例提供的一种实现表项检查的方法的流程示意图;
图4是本申请实施例提供的另一种实现表项检查的方法的流程示意图;
图5是本申请实施例提供的一种正常流路径与异常流路径的对比示意图;
图6是本申请实施例提供的另一种正常流路径与异常流路径的对比示意图;
图7是本申请实施例提供的一种实现表项检查的装置的结构示意图;
图8是本申请实施例提供的另一种实现表项检查的装置的结构示意图;
图9是本申请实施例提供的又一种实现表项检查的装置的结构示意图;
图10是本申请实施例提供的一种实现表项检查的装置的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种实现表项检查的系统的结构示意图。如图1所示,该系统中包括通信网络中的网络设备101a-101d(统称为网络设备101)。图1中网络设备的数量仅用作示意,不作为对本申请实施例提供的通信网络的限制。
本申请实施例提供的通信网络可以是数据中心网络(data center network,DCN)、城域网络、广域网络、园区网络、虚拟局域网(virtual local area network,VLAN)或虚拟扩展局域网(virtual extensible local area network,VXLAN)等,本申请实施例对通信网络的类型不做限定。网络设备101可以是交换机或路由器等。本申请实施例提供的网络设备101内置有转发芯片。该转发芯片除提供转发功能外,还支持芯片运行数据的查询与修改。网络设备中的硬件表位于该网络设备的转发芯片内,硬件表中包括芯片运行数据。
示例地,图1中的通信网络可以是胖树(fat tree or leaf-spine)拓扑网络,网络设备101a和网络设备101b为spine交换机,网络设备101c和网络设备101d为leaf交换机。每个leaf交换机的上行链路数等于spine交换机的数量,每个spine交换机的下行链路数等于leaf交换机的数量。leaf交换机用于将工作站(包括终端、服务器或虚拟机等)接入通信网络。
可选地,图2是本申请实施例提供的另一种实现表项检查的系统的结构示意图。如图2所示,在如图1所示的系统的基础上,该系统中还包括管理设备102。管理设备102与通信网络中的各个网络设备101之间通过有线网络或无线网络连接。图中虚线表示管理设备102与网络设备101连接。
管理设备102可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,管理设备102包括采集器、分析器和/或控制器。其中,采集器、分析器和控制器可以是物理服务器,也可以是虚拟服务器。采集器、分析器和控制器可以是单独的服务器,也可以集成在同一服务器中。采集器用于采集并解析通信网络中传输的报文的信息以及通信网络中各个网络设备的设备数据等,并将解析结果存储至数据库中供分析器使用。可选地,设备数据包括管理面数据、数据面数据和/或控制面数据。其中,管理面数据包括配置数据和告警日志等;数据面数据包括地址解析协议(addressresolution protocol,ARP)表、媒体访问控制(Media Access Control,MAC)表、转发表(forwarding info base)、路由表(routing info base,RIB)、隧道状态表(VXLAN网络)和端口状态等;控制面数据包括中央处理器(central processing unit,CPU)数据、内存数据、链路层发现协议(link layer discovery protocol,LLDP)状态、边界网关协议(bordergateway protocol,BGP)状态和开放式最短路径优先(open shortest path first,OSPF)状态等,BGP和OSPF均为路由协议。分析器用于基于数据库对通信网络进行通信状态分析,例如对通信网络进行故障定位;分析器还用于向控制器发送通知消息,以通知控制器向网络设备下发指令。控制器用于向网络设备下发指令,并接收网络设备返回的指令执行结果。
图3是本申请实施例提供的一种实现表项检查的方法的流程示意图。该方法可以应用于如图1所示的实现表项检查的系统中。如图3所示,该方法包括:
步骤301、网络设备获取检查指令。
该检查指令包括第一软件表中的待检查表项的标识。检查指令还可以包括第一软件表的类型。可选地,第一软件表为ARP表、转发表、路由表或MAC表。
可选地,待检查表项的标识包括该待检查表项在第一软件表中的键值,该键值在第一软件表中能够唯一标识该待检查表项。待检查表项在第一软件表中的键值即第一软件表中的该待检查表项的关键(key)字段的内容。可选地,待检查表项在第一软件表中的键值包括虚拟专用网络(virtual private network,VPN)索引以及路由信息。当然,也可以仅采用VPN索引作为待检查表项的标识,此时网络设备基于检查指令获取的待检查表项包括具有相同VPN索引的一个或多个表项。待检查表项的标识还可以包括该待检查表项在第一软件表中的部分表项内容,本申请实施例对待检查表项的标识的具体内容不做限定。
示例地,第一软件表为ARP表,则待检查表项的标识可以包括VPN索引和IP地址。可选地,VPN索引为L2VPN索引(对应二层转发域)或L3VPN索引(对应三层转发域)。其中,二层转发域也可称为桥接域(bridge domain,BD),三层转发域也可称为虚拟局域网(virtuallocal area network,VLAN)。
可选地,网络设备获取的检查指令可以由管理设备发送,或者,也可以由人工输入,本申请实施例对网络设备获取检查指令的方式不做限定。
可选地,网络设备通过命令行接口(command line interface,CLI)和/或网络配置(network configuration,NETCONF)接口获取检查指令,本申请实施例对网络设备获取检查指令的接口类型不做限定。
步骤302、网络设备基于检查指令,检查该网络设备的第一硬件表中是否存在与待检查表项相同的表项。
该第一硬件表的类型与第一软件表的类型相同。类型相同的硬件表和软件表不一致的原因通常包括:硬表表项不存在、硬表表项字段错误、硬表表项残留和/或关联表项异常等。其中,硬表表项字段错误通常指硬表表项与对应的软表表项不同,例如硬表表项的比特位跳变会导致硬表表项字段错误。硬表表项残留通常由对应的软表表项缺失导致。
可选地,当第一硬件表中不存在第一表项时,网络设备将该待检查表项写入第一硬件表。当第一硬件表中存在第一表项,且第一表项与待检查表项不同时,网络设备采用待检查表项更新第一表项,使更新后的第一表项与待检查表项相同。其中,第一表项的标识与待检查表项的标识相同。网络设备采用待检查表项更新第一表项,包括:网络设备采用待检查表项替换第一表项,或者,网络设备根据待检查表项修改第一表项。
可选地,网络设备根据待检查表项的标识查询该转发芯片的第一硬件表中是否存在对应的表项。网络设备通过修改转发芯片的应用程序编程接口(applicationprogramming interface,API),实现对转发芯片的第一硬件表的更新。
本申请实施例中,当第一软件表中的待检查表项在其它软件表中具有关联表项时,网络设备执行步骤303至步骤304;当第一软件表中的待检查表项在其它软件表中不具有关联表项时,网络设备直接执行步骤305。
步骤303、网络设备基于检查指令,获取待检查表项在第二软件表中的关联表项。
该第二软件表的类型与第一软件表的类型不同。可选地,网络设备可以获取待检查表项在除第一软件表以外的所有其它软件表中的关联表项。本申请实施例中,第二软件表泛指不同于第一软件表的其它软件表,第二软件表可以包括一个或多个不同于第一软件表的软件表。
可选地,当第一软件表为ARP表、路由表或转发表时,第二软件表可以包括出接口表。
步骤304、网络设备检查该网络设备的第二硬件表中是否存在与关联表项相同的表项。
该第二硬件表的类型与第二软件表的类型相同。此步骤的解释可参考上述步骤302的相关解释,本申请实施例在此不再赘述。
可选地,当第二硬件表中不存在第二表项时,网络设备将该关联表项写入第二硬件表。当第二硬件表中存在第二表项,且第二表项与关联表项不同时,网络设备采用关联表项更新第二表项,使更新后的第二表项与关联表项相同。其中,第二表项的标识与关联表项的标识相同。
步骤305、网络设备输出检查结果。
该检查结果中包括对待检查表项的第一检查结果。可选地,当第一软件表中的待检查表项在第二软件表中具有关联表项时,该检查结果中还包括对该关联表项的第二检查结果。也即是,网络设备输出的检查结果中可以包括该网络设备检查的所有表项对应的检查结果。
可选地,第一检查结果中包括第一软件表的类型、待检查表项的标识以及该待检查表项的故障类型;第二检查结果中包括第二软件表的类型、待检查表项在第二软件表中的关联表项的标识以及该关联表项的故障类型。其中,表项的故障类型可以采用故障码表示。示例地,故障码为“0”,表示对应的表项正常;故障码为“1”,表示对应的表项故障。或者,检查结果还可以指示表项的故障原因。示例地,故障码为“1”,表示对应的表项的故障原因为硬表表项不存在;故障码为“2”,表示对应的表项的故障原因为硬表表项字段错误;等等。当然,表项的故障类型还可以采用字母、字符串或文字等表示,本申请实施例对此不做限定。
示例地,假设网络设备输出的检查结果为:(ARP,VPN1+IP1,“2”),则表示:该网络设备的ARP表对应的硬件表中VPN索引为VPN1且IP地址为IP1的硬表表项字段错误。
可选地,当网络设备获取的检查指令由人工输入时,网络设备输出检查结果,可以包括:网络设备向与该网络设备连接的显示设备输出检查结果,供显示设备显示;或者,网络设备自身具有显示功能时,网络设备也可以在自身显示检查结果,供运维人员查看并解决故障。当网络设备获取的检查指令由管理设备发送时,网络设备输出检查结果,包括:网络设备向管理设备发送该检查结果。
综上所述,本申请实施例提供的实现表项检查的方法中,由于网络设备获取的检查指令中包括第一软件表中的待检查表项的标识,因此网络设备可以基于该检查指令,针对特定的待检查表项进行软件表和硬件表的一致性检查,与目前采用全遍历的方式对网络设备中的软件表和硬件表进行一致性检查相比,网络设备消耗的处理资源较少,且检查灵活性较高。
图4是本申请实施例提供的另一种实现表项检查的方法的流程示意图。该方法可以应用于如图2所示的实现表项检查的系统中。如图4所示,该方法包括:
步骤401、管理设备确定目标网络设备的第一软件表中的待检查表项。
其中,对第一软件表的类型和待检查表项的相关解释可参考步骤301中的相关解释,本申请实施例在此不再赘述。
可选地,管理设备在确定目标网络设备的第一软件表中的待检查表项之前,先确定通信网络中的目标网络设备,该目标网络设备指需要进行软件表和硬件表的一致性检查的网络设备。可选地,管理设备确定通信网络中的目标网络设备的实现过程包括:
在步骤S11中,当通信网络中的目标报文的传输路径为异常流路径时,管理设备基于该异常流路径以及正常流路径,确定正常流路径上的待定故障设备。
可选地,通信网络中接收到目标报文的每个网络设备分别生成该目标报文的镜像报文,并向管理设备发送该镜像报文,管理设备根据各个网络设备发送的镜像报文,确定目标报文的传输路径。当目标报文的源端设备与目标报文的目的端设备之间基于目标报文的通信过程失败时,管理设备确定该目标报文的传输路径为异常流路径。本申请实施例中,目标报文可以为传输控制协议(Transmission Control Protocol,TCP)控制报文。
正常流路径为该目标报文的源端设备与该目标报文的目的端设备之间基于历史报文的通信过程成功的历史路径。该历史报文可以是在目标报文之前传输的报文,例如可以是在目标报文之前传输的历史TCP控制报文。管理设备中可以存储有一条或多条目标报文的源端设备与目标报文的目的端设备之间的正常流路径,正常流路径可以是基于某个历史TCP控制报文的镜像报文确定该源端设备与该目的端设备之间基于该历史TCP控制报文的通信过程成功后得到的。当管理设备中包括多条正常流路径时,管理设备可以基于异常流路径以及生成时刻距离目标报文的传输时刻最近的正常流路径,确定该正常流路径上的待定故障设备;或者,当管理设备中包括多条正常流路径时,管理设备可以分别计算每条正常流路径与异常流路径的路径匹配度,并基于与异常流路径的路径匹配度最高的正常流路径确定该正常流路径上的待定故障设备。其中,正常流路径与异常流路径的路径匹配度跟目标路径的长度正相关,目标路径为从正常流路径的源端和异常流路径的源端开始,正常流路径与异常流路径相匹配的连续路径。例如,异常流路径为a-b-c-d-e,正常流路径为a-b-c-f,则目标路径为a-b-c。
示例地,图5是本申请实施例提供的一种正常流路径与异常流路径的对比示意图。如图5所示,异常流路径上网络设备的数量与正常流路径上网络设备的数量不同,正常流路径上依次包括:网络设备A、网络设备B、网络设备C和网络设备D;异常流路径上依次包括:网络设备A、网络设备B和网络设备C。图6是本申请实施例提供的另一种正常流路径与异常流路径的对比示意图。如图6所示,异常流路径上的网络设备与正常流路径上的网络设备不同,正常流路径上依次包括:网络设备A、网络设备B、网络设备C和网络设备D;异常流路径上依次包括:网络设备A、网络设备B、网络设备E和网络设备F。本申请实施例提供的传输路径上不包括源端设备和目的端设备,图中仅用作示意性说明。
本申请实施例中,可以将正常流路径上与异常流路径上相同的最后一个网络设备确定为断点设备。通常情况下,目标报文的传输路径应为该正常流路径,正常流路径上的断点设备发生故障会导致目标报文从正常流路径转换至异常流路径传输,或者,断点设备的下游设备发生故障(例如无法接收断点设备发送的报文),也会导致目标报文从正常流路径转换至异常流路径传输,也即是,正常流路径上的断点设备和该断点设备的下游设备均可能是故障设备,因此管理设备可以将正常流路径上的断点设备以及该断点设备的下游设备确定为待定故障设备,进而提高故障定位的准确性。
示例地,参见图5,正常流路径上的断点设备为网络设备C,管理设备可以将正常流路径上的网络设备C和网络设备D确定为待定故障设备。又例如参见图6,正常流路径上的断点设备为网络设备B,管理设备可以将正常流路径上的网络设备B和网络设备C确定为待定故障设备。
在步骤S12中,当管理设备无法在待定故障设备中确定故障设备时,管理设备将该待定故障设备确定为目标网络设备。
可选地,管理设备获取待定故障设备在正常时刻(对应正常流路径)的第一设备数据以及在异常时刻(对应异常流路径)的第二设备数据。当管理设备根据第一设备数据和第二设备数据无法在待定故障设备中确定故障设备,例如待定故障设备的第二设备数据相对于第一设备数据未发生变化而导致管理设备无法确定明显的故障设备时,管理设备可以确定待定故障设备中疑似出现软件表和硬件表不一致问题。因此,管理设备可以将该待定故障设备确定为目标网络设备,即需要对待定故障设备进行软件表和硬件表的一致性检查。
可选地,管理设备将待定故障设备确定为目标网络设备之后,管理设备将目标报文在第一软件表中对应的表项确定为第一软件表中的待检查表项。其中,该待检查表项可以为目标网络设备中用于转发该目标报文的表项。示例地,第一软件表为ARP表。当目标报文在二层转发时,管理设备可以根据目标报文的目的MAC地址确定ARP表中的待检查表项;当目标报文在三层转发时,管理设备可以根据目标报文的目的IP地址确定ARP表中的待检查表项。
当然,管理设备还可以采用其它方式确定目标网络设备的第一软件表中的待检查表项,本申请实施例对此并不做限定。
本申请实施例中,管理设备可以定位到待定故障设备,当通信网络中发生故障时,只需待定故障设备进行软件表和硬件表的一致性检查,而通信网络中的其它网络设备无需进行软件表和硬件表的一致性检查,节约了正常网络设备的处理资源。另外,管理设备还可以确定待定故障设备的待检查表项,使得待定故障设备只需针对该待检查表项对软件表和硬件表进行一致性检查,与目前采用全遍历的方式对网络设备中的软件表和硬件表进行一致性检查相比,网络设备消耗的处理资源较少,且检查灵活性较高。
步骤402、管理设备向目标网络设备发送检查指令。
其中,对检查指令的相关解释可参考步骤301中的相关解释,本申请实施例在此不再赘述。可选地,检查指令中还包括目标网络设备的标识。该检查指令用于指示目标网络设备检查该目标网络设备的第一硬件表中是否存在与待检查表项相同的表项。第一硬件表的类型与第一软件表的类型相同。目标网络设备的标识可以是目标网络设备的IP地址、MAC地址或硬件地址等能够唯一标识该目标网络设备的信息。
可选地,管理设备通过CLI或NETCONF接口向目标网络设备发送检查指令。
步骤403、目标网络设备基于检查指令,检查该目标网络设备的第一硬件表中是否存在与待检查表项相同的表项。
该第一硬件表的类型与第一软件表的类型相同。类型相同的硬件表和软件表不一致的原因通常包括:硬表表项不存在、硬表表项字段错误、硬表表项残留和/或关联表项异常等。其中,硬表表项字段错误通常指硬表表项与对应的软表表项不同,例如硬表表项的比特位跳变会导致硬表表项字段错误。硬表表项残留通常由对应的软表表项缺失导致。
本申请实施例中,当第一软件表中的待检查表项在其它软件表中具有关联表项时,目标网络设备执行步骤404至步骤405;当第一软件表中的待检查表项在其它软件表中不具有关联表项时,目标网络设备直接执行步骤406。
步骤404、目标网络设备基于检查指令,获取待检查表项在第二软件表中的关联表项。
此步骤的实现过程可参考上述步骤303,本申请实施例在此不再赘述。
步骤405、目标网络设备检查该目标网络设备的第二硬件表中是否存在与关联表项相同的表项。
该第二硬件表的类型与第二软件表的类型相同。此步骤的解释可参考上述步骤403的相关解释,本申请实施例在此不再赘述。
步骤406、目标网络设备向管理设备发送检查结果。
其中,检查结果中的内容可参考步骤305中的相关解释,本申请实施例在此不再赘述。可选地,检查结果中还包括目标网络设备的标识。
步骤407、管理设备基于检查结果,确定目标网络设备中的故障表以及故障表中的故障表项。
本申请实施例中,检查结果中包括对第一软件表中的待检查表项的第一检查结果。可选地,第一检查结果中包括第一软件表的类型、待检查表项的标识以及待检查表项的故障类型。管理设备接收到目标网络设备发送的检查结果之后,可以基于该第一检查结果,确定待检查表项是否故障。
示例地,参考步骤305中的例子,假设第一软件表为ARP表,待检查表项在ARP表中的VPN索引为VPN1且IP地址为IP1,第一检查结果为:(ARP,VPN1+IP1,“2”)。则管理设备根据该第一检查结果可以确定目标网络设备的ARP表对应的硬件表中VPN索引为VPN1且IP地址为IP1的硬表表项字段错误,即待检查表项故障。进一步的,管理设备确定目标网络设备中的故障表包括ARP表,故障表项包括ARP表中VPN索引为VPN1且IP地址为IP1的ARP表项。
可选地,检查结果中还包括对待检查表项在第二软件表中的关联表项的第二检查结果。可选地,第二检查结果中包括第二软件表的类型、关联表项的标识以及关联表项的故障类型。管理设备接收到目标网络设备发送的检查结果之后,可以基于第二检查结果,确定关联表项是否故障。
又示例地,参考步骤305中的例子,假设第二软件表为出接口表,关联表项在出接口表中的键值为Interface1,第二检查结果为:(出接口,Interface1,“0”),则管理设备根据该第二检查结果可以确定目标网络设备的出接口表对应的硬件表中键值为Interface1的硬表表项正常,即确定待检查表项的关联表项正常。
本申请实施例中,当管理设备确定待检查表项以及该待检查表项的所有关联表项均未故障时,管理设备可以确定通信网络中的发生的故障为非网络侧故障或未知故障。
步骤408、管理设备向目标网络设备发送对账指令。
该对账指令包括故障表的类型以及故障表中的故障表项的标识。
第一种可能实现方式,检查结果中包括对第一软件表中的待检查表项的第一检查结果。在确定待检查表项故障后,管理设备向目标网络设备发送对账指令,该对账指令包括第一软件表的类型以及待检查表项的标识,该对账指令用于指示目标网络设备更新第一硬件表,使得更新后的第一硬件表中存在与待检查表项相同的表项。
第二种可能实现方式,检查结果中包括对第一软件表中的待检查表项的第一检查结果以及对待检查表项在第二软件表中的关联表项的第二检查结果。在确定待检查表项正常且关联表项故障后,管理设备向目标网络设备发送对账指令,该对账指令包括第二软件表的类型以及关联表项的标识,该对账指令用于指示目标网络设备更新第二硬件表,使得更新后的第二硬件表中存在与关联表项相同的表项。
第三种可能实现方式,检查结果中包括对第一软件表中的待检查表项的第一检查结果以及对待检查表项在第二软件表中的关联表项的第二检查结果。在确定待检查表项和关联表项均故障后,管理设备向目标网络设备发送对账指令,该对账指令包括第一软件表的类型和待检查表项的标识以及第二软件表的类型和关联表项的标识,该对账指令用于指示目标网络设备更新第一硬件表,使得更新后的第一硬件表中存在与待检查表项相同的表项,该对账指令还用于指示目标网络设备更新第二硬件表,使得更新后的第二硬件表中存在与关联表项相同的表项。
可选地,管理设备向目标网络设备发送的对账指令中可以包括所有故障表的类型以及故障表中的故障表项的标识。或者,当目标网络设备中包括多个故障表时,管理设备也可以向目标网络设备分别发送多个对账指令,每个对账指令中包括一个故障表的类型以及该故障表中的故障表项的标识。例如在上述第三种可能实现方式中,管理设备可以向目标网络设备分别发送两个对账指令,一个对账指令中包括第一软件表的类型和待检查表项的标识,另一个对账指令中包括第二软件表的类型和关联表项的标识。
步骤409、目标网络设备更新对账指令指示更新的硬件表。
可选地,当对账指令中包括第一软件表的类型以及待检查表项的标识时,目标网络设备更新第一硬件表,使得更新后的第一硬件表中存在与待检查表项相同的表项。
其中,目标网络设备更新第一硬件表,包括:当第一硬件表中不存在第一表项时,目标网络设备将待检查表项写入第一硬件表。当第一硬件表中存在第一表项,且第一表项与待检查表项不同时,目标网络设备采用待检查表项更新第一表项,使更新后的第一表项与待检查表项相同。其中,第一表项的标识与待检查表项的标识相同。
可选地,当对账指令中包括第二软件表的类型以及关联表项的标识时,目标网络设备更新第二硬件表,使得更新后的第一硬件表中存在与待检查表项相同的表项。
其中,目标网络设备更新第二硬件表,包括:当第二硬件表中不存在第二表项时,目标网络设备将关联表项写入第二硬件表。当第二硬件表中存在第二表项,且第二表项与关联表项不同时,目标网络设备采用关联表项更新第二表项,使更新后的第二表项与关联表项相同。其中,第二表项的标识与关联表项的标识相同。
本申请实施例中,网络设备只需根据管理设备下发的指令执行对应的步骤,例如,根据管理设备下发的检查指令针对待检查表项进行软件表和硬件表的一致性检查,根据管理设备下发的对账指令更新对应的硬件表,无需网络设备自行决策,进一步节约了网络设备的处理资源。
可选地,本申请实施例中管理设备执行的步骤可由采集器、分析器和控制器协同完成。采集器采集并解析通信网络中传输的目标报文的信息以及通信网络中各个网络设备的设备数据等,并将解析结果存储至数据库中。分析器基于数据库在通信网络中确定需要进行软件表和硬件表的一致性检查的目标网络设备,并确定该目标网络设备的软件表中的待检查表项。分析器向控制器发送通知消息,该通知消息包括目标网络设备的标识以及待检查表项的标识,以通知控制器指示目标网络设备检查该网络设备的硬件表中是否存在与待检查表项相同的表项。控制器向目标网络设备发送检查指令,并接收目标网络设备返回的检查结果。控制器将目标网络设备返回的检查结果发送给分析器,分析器根据该检查结果确定目标网络设备中的故障表以及故障表中的故障表项,以得到故障结论,并将故障结论存储至数据库。故障结论包括:通信网络中的故障位置(即故障设备)、故障表的类型、故障表项的标识、故障表项的故障类型和/或对应的故障流等等。分析器在得到故障结论之后,向控制器发送该故障结论。控制器根据该故障结论决策是否向网络设备发送对账指令。进一步的,当分析器根据采集器采集的信息确定通信网络中的故障恢复后,例如分析器可以根据报文传输路径确定通信网络中的故障恢复,分析器将数据库中对应的故障标记为恢复。可选地,分析器和控制器也可以集成在一台设备中。
综上所述,本申请实施例提供的实现表项检查的方法中,管理设备可以定位到待定故障设备,当通信网络中发生故障时,只需待定故障设备进行软件表和硬件表的一致性检查,而通信网络中的其它网络设备无需进行软件表和硬件表的一致性检查,节约了正常网络设备的处理资源。另外,管理设备还可以确定待定故障设备的待检查表项,使得待定故障设备只需针对该待检查表项对软件表和硬件表进行一致性检查,与目前采用全遍历的方式对网络设备中的软件表和硬件表进行一致性检查相比,网络设备消耗的处理资源较少,且检查灵活性较高。另外,网络设备只需根据管理设备下发的指令执行对应的步骤,例如,根据管理设备下发的检查指令针对待检查表项进行软件表和硬件表的一致性检查,根据管理设备下发的对账指令更新对应的硬件表,无需网络设备自行决策,进一步节约了网络设备的处理资源。
本申请实施例提供的实现表项检查的方法的步骤先后顺序可以进行适当调整。步骤也可以根据情况进行相应增减,例如,在如图3所示的实现表项检查的方法中,步骤303和步骤304可以不执行;在如图4所示的实现表项检查的方法中,步骤404和步骤405可以不执行。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
图7是本申请实施例提供的一种实现表项检查的装置的结构示意图。可以应用于如图1或图2所示的实现表项检查的系统中的网络设备101。如图7所示,该装置70包括:
接收模块701,用于获取检查指令,该检查指令包括第一软件表中的待检查表项的标识。
处理模块702,用于基于检查指令,检查网络设备的第一硬件表中是否存在与待检查表项相同的表项,第一硬件表的类型与第一软件表的类型相同。
输出模块703,用于输出检查结果,检查结果中包括对待检查表项的第一检查结果。
可选地,处理模块702,还用于:
基于检查指令,获取待检查表项在第二软件表中的关联表项,第二软件表的类型与第一软件表的类型不同;检查网络设备的第二硬件表中是否存在与关联表项相同的表项,第二硬件表的类型与第二软件表的类型相同,检查结果中还包括对关联表项的第二检查结果。
可选地,接收模块701,用于接收管理设备发送的检查指令;输出模块703,用于向管理设备发送检查结果。
可选地,接收模块701,还用于接收管理设备发送的对账指令,对账指令包括故障表的类型以及故障表中的故障表项的标识;处理模块702,还用于当故障表项包括待检查表项时,更新第一硬件表,使得更新后的第一硬件表中存在与待检查表项相同的表项;处理模块702,还用于当故障表项包括待检查表项在第二软件表中的关联表项时,更新第二硬件表,使得更新后的第二硬件表中存在与关联表项相同的表项,第二软件表的类型与第一软件表的类型不同,第二硬件表的类型与第二软件表的类型相同。
可选地,处理模块702,还用于当第一硬件表中不存在第一表项时,将待检查表项写入第一硬件表,第一表项的标识与待检查表项的标识相同;处理模块702,还用于当第一硬件表中存在第一表项,且第一表项与待检查表项不同时,采用待检查表项更新第一表项,使更新后的第一表项与待检查表项相同。
可选地,处理模块702,还用于当第二硬件表中不存在第二表项时,将关联表项写入第二硬件表,第二表项的标识与关联表项的标识相同;处理模块702,还用于当第二硬件表中存在第二表项,且第二表项与关联表项不同时,采用关联表项更新第二表项,使更新后的第二表项与关联表项相同。
可选地,待检查表项的标识包括待检查表项在第一软件表中的键值。
可选地,检查指令还包括第一软件表的类型。
可选地,第一软件表为ARP表、转发表、路由表或MAC表。
可选地,第一检查结果中包括第一软件表的类型、待检查表项的标识以及待检查表项的故障类型。
综上所述,本申请实施例提供的实现表项检查的装置中,由于网络设备通过接收模块获取的检查指令中包括第一软件表中的待检查表项的标识,因此网络设备可以通过处理模块基于该检查指令,针对特定的待检查表项进行软件表和硬件表的一致性检查,与目前采用全遍历的方式对网络设备中的软件表和硬件表进行一致性检查相比,网络设备消耗的处理资源较少,且检查灵活性较高。
图8是本申请实施例提供的另一种实现表项检查的装置的结构示意图。可以应用于如图2所示的实现表项检查的系统中的管理设备102。如图8所示,该装置80包括:
发送模块801,用于向目标网络设备发送检查指令,检查指令包括目标网络设备的第一软件表中的待检查表项的标识,检查指令用于指示目标网络设备检查目标网络设备的第一硬件表中是否存在与待检查表项相同的表项,第一硬件表的类型与第一软件表的类型相同。
接收模块802,用于接收目标网络设备发送的检查结果,检查结果中包括目标网络设备对待检查表项的第一检查结果。
可选地,如图9所示,装置80还包括:处理模块803。
可选地,处理模块803,用于确定目标网络设备;处理模块803,还用于确定目标网络设备的第一软件表中的待检查表项。
可选地,处理模块803,还用于:
当通信网络中的目标报文的传输路径为异常流路径时,基于异常流路径以及正常流路径,确定正常流路径上的待定故障设备,正常流路径为目标报文的源端设备与目标报文的目的端设备之间基于历史报文的通信过程成功的历史路径;当管理设备无法在待定故障设备中确定故障设备时,将待定故障设备确定为目标网络设备。
可选地,处理模块803,还用于:将目标报文在第一软件表中的对应的表项确定为待检查表项。
可选地,第一检查结果中包括第一软件表的类型、待检查表项的标识以及待检查表项的故障类型。处理模块803,用于基于第一检查结果,确定待检查表项是否故障;发送模块801,还用于在确定待检查表项故障后,向目标网络设备发送对账指令,对账指令包括第一软件表的类型以及待检查表项的标识,对账指令用于指示目标网络设备更新第一硬件表,使得更新后的第一硬件表中存在与待检查表项相同的表项。
可选地,检查结果中还包括待检查表项在第二软件表中的关联表项的第二检查结果,第二软件表的类型与第一软件表的类型不同。
可选地,第二检查结果中包括第二软件表的类型、关联表项的标识以及关联表项的故障类型。处理模块803,用于基于第二检查结果,确定关联表项是否故障;发送模块801,还用于在确定关联表项故障后,向目标网络设备发送对账指令,对账指令包括第二软件表的类型以及关联表项的标识,对账指令用于指示目标网络设备更新第二硬件表,使得更新后的第二硬件表中存在与关联表项相同的表项,第二硬件表的类型与第二软件表的类型相同。
综上所述,本申请实施例提供的实现表项检查的装置中,管理设备可以通过处理模块定位到待定故障设备,当通信网络中发生故障时,只需待定故障设备进行软件表和硬件表的一致性检查,而通信网络中的其它网络设备无需进行软件表和硬件表的一致性检查,节约了正常网络设备的处理资源。另外,管理设备还可以通过处理模块确定待定故障设备的待检查表项,使得待定故障设备只需针对该待检查表项对软件表和硬件表进行一致性检查,与目前采用全遍历的方式对网络设备中的软件表和硬件表进行一致性检查相比,网络设备消耗的处理资源较少,且检查灵活性较高。另外,网络设备只需根据管理设备下发的指令执行对应的步骤,例如,根据管理设备下发的检查指令针对待检查表项进行软件表和硬件表的一致性检查,根据管理设备下发的对账指令更新对应的硬件表,无需网络设备自行决策,进一步节约了网络设备的处理资源。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供了一种实现表项检查的系统,该系统中包括通信网络中的网络设备,该网络设备包括如图7所示的实现表项检查的装置。
可选地,该系统中还包括管理设备,该管理设备与网络设备连接,该管理设备包括如图8或图9所示的实现表项检查的装置。可选地,管理设备包括分析器和/或控制器。
本申请实施例提供了一种网络设备,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现如图3所示的实现表项检查的方法或如图4所示的实现表项检查的方法中网络设备执行的步骤。
本申请实施例提供了一种管理设备,包括:处理器和存储器;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器,用于调用所述计算机程序,实现如图4所示的实现表项检查的方法中管理设备执行的步骤。
示例地,图10是本申请实施例提供的一种实现表项检查的装置的框图。该实现表项检查的装置可以是网络设备或管理设备。如图10所示,装置100包括:处理器1001和存储器1002。
存储器1002,用于存储计算机程序,所述计算机程序包括程序指令;
处理器1001,用于调用所述计算机程序,当该处理器位于网络设备中,实现如图3所示的实现表项检查的方法或如图4所示的实现表项检查的方法中网络设备执行的步骤;当该处理器位于管理设备中,实现如图4所示的实现表项检查的方法中管理设备执行的步骤。
可选地,该控制设备100还包括通信总线1003和通信接口1004。
其中,处理器1001包括一个或者一个以上处理核心,处理器1001通过运行计算机程序,执行各种功能应用以及数据处理。
存储器1002可用于存储计算机程序。可选地,存储器可存储操作系统和至少一个功能所需的应用程序单元。操作系统可以是实时操作系统(Real Time eXecutive,RTX)、LINUX、UNIX、WINDOWS或OS X之类的操作系统。
通信接口1004可以为多个,通信接口1004用于与其它设备进行通信。例如在本申请实施例中,网络设备的通信接口可以用于向管理设备发送检查结果,管理设备的通信接口可以用于向网络设备发送检查指令和对账指令。
存储器1002与通信接口1004分别通过通信总线1003与处理器1001连接。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有指令,当所述指令被网络设备的处理器执行时,实现如图3所示的实现表项检查的方法或如图4所示的实现表项检查的方法中网络设备执行的步骤;或者,当所述指令被管理设备的处理器执行时,实现如图4所示的实现表项检查的方法中管理设备执行的步骤。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 实现表项检查的方法、装置及系统、计算机存储介质
- 检查系统、检查装置的控制方法及计算机可读存储介质