一种检测网络设备的方法和工具的制作方法

文档序号:10473558阅读:285来源:国知局
一种检测网络设备的方法和工具的制作方法
【专利摘要】本申请公开了一种检测网络设备的方法和工具,其中所述方法包括:根据已建立的网络设备与对应驱动的映射关系,获取所述需要连接的网络设备对应的驱动实例,通过所述驱动实例与需要连接的网络设备建立连接,以达到支持多种网络设备的目的。并且,在与需要连接的网络设备建立连接之后,执行测试脚本解析命令,以达到对所述连接的网络设备的脚本测试结果进行分析的目的。从而提高网络设备管理的效率。
【专利说明】
一种检测网络设备的方法和工具
技术领域
[0001]本发明涉及网络设备管理技术领域,尤其涉及一种检测网络设备的方法和工具。
【背景技术】
[0002]随着云计算技术的发展,云管理平台的建立实现了云计算服务管理功能。实现资源的集中管理和基础设施及运维管理。目前在网络设备(如交换机、路由器、防火墙、负载均衡器、无线访问点等)运维工作中,一般需在云平台搭建网络巡检功能,用户在使用网络巡检功能进行设备巡检时以设备巡检脚本形式自由定制巡检指示及巡检内容。而测试脚本是自动执行测试过程的计算机可读指令。测试脚本一般由开发人员用编程语言编程来完成,。
[0003]目前的网络设备管理工具虽然可以完成对测试网络设备的连接和设备命令脚本的推送与交互,但是并不能对脚本测试结果进行分析,如果用传统编程方式来完成执行结果分析处理非常复杂。并且不同的网络设备包含不同的设备命令和响应,现有的网络设备管理工具都只能支持网络设备所认识的命令/脚本,无法支持更多的网络设备。由此可见,现有的网络设备管理工具的网络设备管理效率较低。
[0004]因此,开发一种检测网络设备的方法和工具来提升网络设备管理效率是需要解决的技术问题。

【发明内容】

[0005]有鉴于此,本发明提供了一种检测网络设备的方法和工具,能够对连接的网络设备的脚本测试结果进行分析,同时支持多种网络设备,从而达到提高网络设备管理效率的目的。
[0006]本发明公开了一种检测网络设备的方法,包括:
[0007]获取测试脚本;
[0008]提取所述测试脚本中需要连接的网络设备的声明信息;
[0009]根据所述需要连接的网络设备的声明信息,通过驱动映射关系查询所述需要连接的网络设备对应的驱动实例;
[0010]通过所述驱动实例与需要连接的网络设备建立连接;
[0011]执行测试脚本解析命令,对所述连接的网络设备的脚本测试结果进行分析。
[0012]优选的,所述获取测试脚本之后,还包括:
[0013]对所述测试脚本进行校验;
[0014]其中,若校验通过,执行提取所述脚本中需要连接的网络设备声明信息。
[0015]优选的,所述根据所述需要连接的网络设备的声明信息,通过驱动映射关系查询所述需要连接的网络设备对应的驱动实例,包括:
[0016]提取所述测试脚本中需要连接的网络设备声明信息中的设备型号;
[0017]根据所述设备型号,从存储驱动映射关系的哈希表中查询所述需要连接的网络设备的驱动及参数;
[0018]获得所述需要连接的网络设备对应的驱动和参数;
[0019]其中,所述通过所述驱动实例与需要连接的网络设备建立连接为:根据所述查询到的需要连接的网络设备的驱动及参数,创建与所述需要连接的网络设备的对应的连接会话。
[0020]优选的,便对所述连接的网络设备的脚本测试结果进行分析,包括:
[0021]通过脚本引擎将所述建立的连接会话和分析工具应用程序接口API与所述测试脚本建立连接;
[0022]向所述需要连接的网络设备发送脚本命令信息;
[0023]接收所述需要连接的网络设备的脚本命令响应信息;
[0024]通过调用所述分析工具API对所述设备响应信息进行分析。
[0025]优选的,所述执行测试脚本解析命令,对所述连接的网络设备的脚本测试结果进行分析之后,还包括:
[0026]对分析结果进行显示。
[0027]本发明公开了一种检测网络设备的工具,包括:
[0028]脚本获取模块,用于获取测试脚本;
[0029]设备声明提取模块,用于提取所述脚本获取模块获得的测试脚本中的需要连接的网络设备的声明信息;
[0030]驱动查询模块,用于根据所述设备声明提取模块获得的需要连接的网络设备的声明信息,通过驱动映射关系获得所述需要连接的网络设备对应的驱动实例;
[0031]连接建立模块,用于通过所述驱动查询模块查询到的驱动实例与需要连接的网络设备建立连接;
[0032]分析模块,用于执行测试脚本解析命令,对所述连接的网络设备的脚本测试结果进行解析。
[0033]优选的,所述工具,还包括:
[0034]校验模块,用于对所述脚本获取模块获取的测试脚本进行校验,其中,若所述校验模块校验成功,所述设备声明提取模块提取所述测试脚本中的需要连接的网络设备的声明
?目息O
[0035]优选的,所述驱动查询模块,包括:
[0036]设备型号提取模块,用于提取所述测试脚本中需要连接的网络设备声明信息中的设备型号;
[0037]驱动及参数查询模块,用于根据所述设备型号提取模块提取的需要连接的网络设备的型号,从存储驱动映射关系的哈希表中查询所述需要连接的网络设备的驱动及参数;
[0038]驱动及参数获取模块,用于获得所述驱动及参数查询模块查询到的需要连接的网络设备对应的驱动和参数;
[0039]其中,所述连接建立模块,具体用于根据所述查询到的需要连接的网络设备的驱动及参数,创建与所述需要连接的网络设备的对应的连接会话。
[0040]优选的,所述分析模块,包括:
[0041 ]脚本连接模块,用于通过脚本引擎将所述建立的连接会话和分析工具应用程序接口 API与所述测试脚本建立连接;
[0042]发送模块,用于向所述需要连接的网络设备发送脚本命令信息;
[0043]接收模块,用于接收所述需要连接的网络设备的脚本命令响应信息;
[0044]结果分析模块,用于通过调用所述分析工具API对所述设备响应信息进行分析。
[0045]优选的,所述工具,还包括:
[0046]显示模块,用于对分析结果进行显示。
[0047]相对于现有技术,本发明的有益效果是:本发明根据已建立的网络设备与对应驱动的映射关系,获取所述需要连接的网络设备对应的驱动实例,通过所述驱动实例与需要连接的网络设备建立连接,以达到支持多种网络设备的目的。并且,在与需要连接的网络设备建立连接之后,执行测试脚本解析命令,以达到对所述连接的网络设备的脚本测试结果进行分析的目的。从而提高网络设备管理的效率。
【附图说明】
[0048]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0049]图1是本发明实施例公开的一种检测网络设备的方法流程图;
[0050]图2是本发明另一实施例公开的一种检测网络设备的方法流程图;
[0051]图3是本发明实施例公开的一种检测网络设备的工具结构图;
[0052]图4是本发明另一实施例公开的一种检测网络设备的工具结构图;
[0053]图5是本发明另一实施例公开的一种检测网络设备的工具结构图;
[0054]图6是本发明另一实施例公开的一种检测网络设备的工具结构图。
【具体实施方式】
[0055]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0056]本发明公开了一种检测网络设备的方法,参见图1,所述方法包括:
[0057]步骤SlOl、获取测试脚本;
[0058]其中,测试脚本可以是由运维人员在网络设备管理工具用户界面输入框内编写的脚本或者从文件系统读入的脚本,本发明中的测试脚本为groovy脚本,使用的网络设备管理工具内含Java框架代码,因此支持groovy脚本;
[0059]步骤S102、提取所述测试脚本中需要连接的网络设备的声明信息;
[0060]其中,所述需要连接的网络设备的声明信息,包括:网络设备型号、命令模式、设备连接方式、版本号、作者信息等;
[0061]所述设备连接方式包括:远程终端协议Telnet、安全外壳协议SSH;所述命令模式包括:命令行界面CLI和基于XML的网络配置协议Netconf ;
[0062]步骤S103、根据所述需要连接的网络设备的声明信息,通过驱动映射关系查询所述需要连接的网络设备对应的驱动实例;
[0063]其中,本发明利用多个通用驱动和少数专用驱动来支持所述需要连接的网络设备,驱动不仅完成与网络设备的连接,还用于处理与网络设备的命令交互;设备驱动与不同厂商设备系列型号的驱动映射关系存储在哈希表HashMap中,分为驱动映射与具体驱动参数映射两层映射,主驱动和参数组合成为驱动实例,参数依据主驱动来定;
[0064]步骤S104、通过所述驱动实例与需要连接的网络设备建立连接;
[0065]其中,通过驱动实例与需要连接的网络设备建立连接后,内置驱动通过I/O输入流、输出流、异常流来实现与网络设备的交互;
[0066]步骤S105、执行测试脚本解析命令,对所述连接的网络设备的脚本测试结果进行分析;
[0067]其中,测试脚本中包含解析部分,所述解析部分支持脚本通过正则表达式、XPath、Groovy API库、SU工具等方式对脚本的测试结果进行分析和处理。
[0068]另外,要实现对网络设备的检测必须先要进行用户认证,即要输入与所述需要连接的网络设备匹配的IP地址、端口号、用户和口令,才能与所述需要连接的网络设备建立连接。
[0069]本实施例中,根据已建立的网络设备与对应驱动的映射关系,获取所述需要连接的网络设备对应的驱动实例,通过所述驱动实例与需要连接的网络设备建立连接,以达到支持多种网络设备的目的。并且,在与需要连接的网络设备建立连接之后,执行测试脚本解析命令,以达到对所述连接的网络设备的脚本测试结果进行分析的目的。从而提高网络设备管理的效率。
[0070]优选的,另一实施例中,所述获测试取脚本之后,还包括:
[0071 ]对所述测试脚本进行校验;其中,若校验通过,执行提取所述脚本中需要连接的网络设备声明。
[0072]本实施例中,当测试脚本读入内存后先进行规范化校验,保证脚本内容的完整性和正确性,在一定程度上防止错误的命令被发送到需要检测的网络设备中。并且当脚本出现语法错误时,在网络设备管理工具的用户界面返回错误提示。只有校验通过才会连接网络设备执行测试脚本。
[0073]并且,在没有测试网络设备的情况下,也能对输入的脚本进行规范化校验,并能在出错时给出几类常见的错误提示。
[0074]优选的,另一实施例中,公开了一种检测网络设备的方法,参见图2,所述方法包括:
[0075]步骤S201、获取测试脚本;
[0076]步骤S202、对所述获取测试脚本进行规范化校验;若检验通过,执行步骤S203;否则执行步骤S201;
[0077]步骤S203、提取所述测试脚本中需要连接的网络设备声明信息中的设备型号;
[0078]其中,所述需要连接的网络设备可以为交换机、路由器、防火墙等网络设备;
[0079]步骤S204、根据所述设备型号,从存储驱动映射关系的哈希表中查询所述需要连接的网络设备的驱动及参数;
[0080]其中,不同驱动可以支持的设备数量不同,本实施例中包含一个默认驱动,另外内置的驱动映射存储多中网络设备的映射关系,当找不到对应的映射表时就会用默认驱动,而默认驱动能够支持大多数的网络设备。这样新的网络设备很大程度上可以直接成功支持,当查询失败时,也可以修改脚本中的device声明尝试命中其他驱动来解决,并将此类设备加入映射关系表中;
[0081 ]步骤S205、获得所述需要连接的网络设备对应的驱动和参数;
[0082]步骤S206、根据所述查询到的需要连接的网络设备的驱动及参数,创建与所述需要连接的网络设备的对应的连接会话s es s i on ;
[0083]其中,sess1n代表了一个与网络设备的连接会话,由Java通过脚本引擎将经设备驱动创建好的网络设备连接会话注入给脚本;
[0084]步骤S207、通过脚本引擎将所述建立的连接会话和分析工具应用程序接口API与所述测试脚本建立连接;
[0085]步骤S208、向所述需要连接的网络设备发送脚本命令信息;
[0086]步骤S209、接收所述需要连接的网络设备的脚本命令响应信息;
[0087]步骤S210、通过调用所述分析工具API对所述设备响应信息进行分析;
[0088]步骤S211、对分析结果进行显示;
[0089]其中,对所述分析结果在图形界面上进行显示,以巡检日志形式输出。
[0090]本实施例中,在获取测试脚本之后,首先对所述测试脚本进行规范化校验,防止错误的命令发送给网络设备,然后根据已建立的网络设备与对应驱动的映射关系,获取所述需要连接的网络设备对应的驱动实例,通过所述驱动实例与需要连接的网络设备建立连接,以达到支持多种网络设备的目的。并且,在与需要连接的网络设备建立连接之后,执行测试脚本解析命令,对所述连接的网络设备的脚本测试结果进行分析,并将分析结果在用户界面上显示,以便运维人员根据巡检日志查看网络设备的运行情况。
[0091]相对于上述方法,本发明公开了一种检测网络设备的工具,参见图3,所述工具,包括:
[0092]脚本获取模块101、设备声明提取模块102、驱动查询模块103、连接建立模块104、分析模块105;
[0093]其中,所述脚本获取模块101获取测试脚本,所述设备声明提取模块102提取所述脚本获取模块101获得的测试脚本中的需要连接的网络设备的声明信息,所述驱动查询模块103根据所述设备声明提取模块102获得的需要连接的网络设备的声明信息,通过驱动映射关系获得所述需要连接的网络设备对应的驱动实例,然后所述连接建立模块104通过所述驱动查询模块103查询到的驱动实例与需要连接的网络设备建立连接,以便所述分析模块105执行测试脚本解析命令,对所述连接的网络设备响应进行解析。本实施例公开的检测网络设备工具灵活性高,运维人员可以自己编写测试脚本实现对网络设备的巡检工作。
[0094]本实施例中,所述检测网络设备的工具还包括用户图形界面模块,所述用户图形界面模块包括测试脚本程序代码输入窗口和测试结果显示窗口,实现与运维人员的信息交互。
[0095]需要说明的是,本实施例公开的检测网络设备的工具中,各个模块的具体工作过程请参见对应图1的方法实施例,此处不再赘述。
[0096]优选的,在另一实施例中,参见图4,所述工具,还包括:校验模块106;
[0097]其中,所述校验模块106对所述脚本获取模块101获取的测试脚本进行校验,其中,若所述校验模块106校验成功,所述设备声明提取模块102提取所述测试脚本中的需要连接的网络设备的声明信息。
[0098]需要说明的是,本实施例公开的检测网络设备的工具中,各个模块的具体工作过程请参见对应图2的方法实施例,此处不再赘述。
[0099]优选的,在另一实施例中,参见图4,所述工具,还包括:显示模块107;
[0100]其中所述显示模块107对所述分析模块105得到的分析结果进行显示。另外,所述显示模块107在没有测试网络设备时也能够显示对运维人员练习编写的脚本测试分析结果O
[0101]需要说明的是,本实施例公开的检测网络设备的工具中,各个模块的具体工作过程请参见对应图2的方法实施例,此处不再赘述。
[0102]优选的,在另一实施例中,参见图5,所述驱动查询模块103,包括:
[0103]设备型号提取模块1031、驱动及参数查询模块1032、驱动及参数获取模块1033;
[0104]其中,所述设备型号提取模块1031提取所述测试脚本中需要连接的网络设备声明信息中的设备型号,所述驱动及参数查询模块1032根据所述设备型号提取模块1031提取的需要连接的网络设备的型号,从存储驱动映射关系的哈希表中查询所述需要连接的网络设备的驱动及参数,最后驱动及参数获取模块1033获得所述驱动及参数查询模块1032查询到的需要连接的网络设备对应的驱动和参数;所述连接建立模块104根据所述查询到的需要连接的网络设备的驱动及参数,创建与所述需要连接的网络设备的对应的连接会话。
[0105]需要说明的是,本实施例公开的检测网络设备的工具中,各个模块的具体工作过程请参见对应图2的方法实施例,此处不再赘述。
[0106]优选的,在另一实施例中,参见图6,所述分析模块105,包括:
[0107]脚本连接模块1051、发送模块1052、接收模块1053、结果分析模块1054;
[0108]其中所述脚本连接模块1051通过脚本引擎将所述建立的连接会话、分析工具应用程序接口 API与所述测试脚本建立连接;之后所述发送模块1052向所述需要连接的网络设备发送执行的脚本命令信息,所述接收模块1053接收所述需要连接的网络设备的脚本命令响应信息,最后所述结果分析模块1054通过调用所述分析工具API对所述设备响应信息进行分析。
[0109]需要说明的是,本实施例公开的检测网络设备的工具中,各个模块的具体工作过程请参见对应图2的方法实施例,此处不再赘述。
[0110]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种检测网络设备的方法,其特征在于,所述方法包括: 获取测试脚本; 提取所述测试脚本中需要连接的网络设备的声明信息; 根据所述需要连接的网络设备的声明信息,通过驱动映射关系查询所述需要连接的网络设备对应的驱动实例; 通过所述驱动实例与需要连接的网络设备建立连接; 执行测试脚本解析命令,对所述连接的网络设备的脚本测试结果进行分析。2.根据权利要求1所述的方法,其特征在于,所述获取测试脚本之后,还包括: 对所述测试脚本进行校验; 其中,若校验通过,执行提取所述脚本中需要连接的网络设备声明信息。3.根据权利要求1所述的方法,其特征在于,所述根据所述需要连接的网络设备的声明信息,通过驱动映射关系查询所述需要连接的网络设备对应的驱动实例,包括: 提取所述测试脚本中需要连接的网络设备声明信息中的设备型号; 根据所述设备型号,从存储驱动映射关系的哈希表中查询所述需要连接的网络设备的驱动及参数; 获得所述需要连接的网络设备对应的驱动和参数; 其中,所述通过所述驱动实例与需要连接的网络设备建立连接为:根据所述查询到的需要连接的网络设备的驱动及参数,创建与所述需要连接的网络设备的对应的连接会话。4.根据权利要求1所述的方法,其特征在于,所述执行测试脚本解析命令,以便对所述连接的网络设备的脚本测试结果进行分析,包括: 通过脚本引擎将所述建立的连接会话和分析工具应用程序接口 API与所述测试脚本建立连接; 向所述需要连接的网络设备发送脚本命令信息; 接收所述需要连接的网络设备的脚本命令响应信息; 通过调用所述分析工具API对所述设备响应信息进行分析。5.根据权利要求1所述的方法,其特征在于,所述执行测试脚本解析命令,对所述连接的网络设备的脚本测试结果进行分析之后,还包括: 对分析结果进行显示。6.一种检测网络设备的工具,其特征在于,包括: 脚本获取模块,用于获取测试脚本; 设备声明提取模块,用于提取所述脚本获取模块获得的测试脚本中的需要连接的网络设备的声明信息; 驱动查询模块,用于根据所述设备声明提取模块获得的需要连接的网络设备的声明信息,通过驱动映射关系获得所述需要连接的网络设备对应的驱动实例; 连接建立模块,用于通过所述驱动查询模块查询到的驱动实例与需要连接的网络设备建立连接; 分析模块,用于执行测试脚本解析命令,对所述连接的网络设备的脚本测试结果进行解析。7.根据权利要求所述6的工具,其特征在于,还包括: 校验模块,用于对所述脚本获取模块获取的测试脚本进行校验; 其中,若所述校验模块校验成功,所述设备声明提取模块提取所述测试脚本中的需要连接的网络设备的声明信息。8.根据权利要求所述6的工具,其特征在于,所述驱动查询模块,包括: 设备型号提取模块,用于提取所述测试脚本中需要连接的网络设备声明信息中的设备型号; 驱动及参数查询模块,用于根据所述设备型号提取模块提取的需要连接的网络设备的型号,从存储驱动映射关系的哈希表中查询所述需要连接的网络设备的驱动及参数; 驱动及参数获取模块,用于获得所述驱动及参数查询模块查询到的需要连接的网络设备对应的驱动和参数; 其中,所述连接建立模块,具体用于根据所述查询到的需要连接的网络设备的驱动及参数,创建与所述需要连接的网络设备的对应的连接会话。9.根据权利要求所述6的工具,其特征在于,所述分析模块,包括: 脚本连接模块,用于通过脚本引擎将所述建立的连接会话和分析工具应用程序接口API与所述测试脚本建立连接; 发送模块,用于向所述需要连接的网络设备发送脚本命令信息; 接收模块,用于接收所述需要连接的网络设备的脚本命令响应信息; 结果分析模块,用于通过调用所述分析工具API对所述设备响应信息进行分析。10.根据权利要求所述6的工具,其特征在于,还包括: 显示模块,用于对分析结果进行显示。
【文档编号】H04L12/24GK105827462SQ201610318926
【公开日】2016年8月3日
【申请日】2016年5月13日
【发明人】戴蕾, 侯铮, 陈新星, 李琪
【申请人】中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1