一种基于SNMP和HTML5实现web网络拓扑的方法
技术领域
本发明涉及网络管理技术领域,具体涉及一种基于SNMP(Simple Network ManagementProtocol,简单网络管理协议)和HTML5(Hypertext Markup Language 5,超文本标记语言5)实现web网络拓扑的方法。
背景技术
随着信息化脚步的不断加快,各企业单位对于网络办公的依赖也是与日俱增。这样网络的规模和复杂程度也就越来越大,对网络管理的难度也越来越大,对网络资源可控性降低,对整个网络的稳定性也带来了很大的风险,所以出现了网络拓扑的概念,网络拓扑能反应网络中各实体间的结构关系。网络拓扑设计地好坏对整个网络的性能和经济性有重大影响。网络管理人员在拓扑图的基础上对故障节点进行快速定位。现在基B/S结构的网络拓扑技术主要有以下几项技术Flex SVG等,但各自都有弊端。
现在基于Flex SVG等技术实现的网络拓扑占很大部分,但是这几种技术都各有各的弊端,Flex效果虽然很好,但是与Java数据交互性需要依赖第三方的服务。SVG虽然在绘图方面不错,但是浏览器要装插件支持,兼容性方面不是很好,在用户体验上存在问题。在自定义拓扑和自发现拓扑选择上一般局限性很大,不能良好的接合到一起。
发明内容
本发明提供一种基于SNMP和HTML5实现web网络拓扑的方法,所述方法包括:
步骤S1,选择进行自定义拓扑或者自发现拓扑,选择进行所述自定义拓扑时,执行步骤S2′,选择进行所述自发现拓扑时,执行步骤S2;
步骤S2′,利用SNMP对指定的IP列表或者网段的网络内的所有资源进行探测,将探测到的IP、资源名和资源类型一起作为一个自定义网络拓扑资源写入数据库中,执行步骤S3′;
步骤S3′,用户自定义网络的拓扑关系,执行步骤S4′;
步骤S4′,根据各个拓扑资源的资源类型向网络拓扑编辑页面加载所有所述拓扑资源,计算每个所述拓扑资源在所述网络拓扑编辑页面上的坐标,在所述网络拓扑编辑页面上显示各个所述拓扑资源的资源类型对应的图片,根据拓扑关系用HTML5的Canvas的绘画功能绘制拓扑管理连线,执行步骤S5;
步骤S2,利用SNMP对所有资源进行探测,将探测到的自发现网络拓扑资源写入所述数据库中,执行步骤S3;
步骤S3,根据所述自发现网络拓扑资源分析得到自发现网络拓扑关系,执行步骤S4;
步骤S4,根据所述拓扑资源的属性将所述拓扑资源显示到所述网络拓扑编辑页面画布中,计算每个所述拓扑资源在所述网络拓扑编辑页面上的坐标,根据所述自发现网络拓扑关系用HTML5的Canvas的绘画功能绘制拓扑管理连线,执行步骤S5;
步骤S5,根据所述拓扑资源的IP对所述拓扑资源进行网络可用性检测,将检测到的问题写入告警子***中进行告警提示。
本发明提供的第一优选实施例中:所述步骤S3,根据自发现网络拓扑资源分析得到自发现网络拓扑关系具体包括:
步骤S301,通过默认网关路由器获取存在的子网列表,然后通过ICMP Ping或路由器中的ARP信息遍历指定子网中所有的活动设备,判断用***团体名库是否能查找到某一活动设备的团体名,是,执行步骤S302,否执行步骤S303;
步骤S302,根据活动设备的团体名用SNMP协议获取活动设备的基本信息,判断出活动设备的类型后获取该活动设备的详细信息;
步骤S303,默认所述活动设备为主机;
步骤S304,找到默认的路由网关;
具体为:查找拓扑发现程序所在计算机的SNMP MIBII中的ipRouteTable,如果发现ipRouteDest值为0.0.0.0的记录,则说明程序所在的计算机设置了默认网关,ipRouteNextHop值即为默认网关的地址;检查默认网关的ipForwarding值,如果为1,则表明所述默认网关是路由设备,否则不是;
步骤S305,取得存在的子网列表;
具体为:遍历路由器MIBII的IP管理组中管理对象ipRouteDest下的所有对象,以每个路由目的网络号为索引,查询ipRouteType字段的值;如果所述字段的值为3表明为直接路由,如果所述字段的值为4则为间接路由;得到与路由器直接相连的网络号;再根据所述网络号中的每条记录查询其路由掩码;根据所述取得的路由掩码,确定每一个存在的网络子网的IP地址范围;
步骤S306,发现其它的路由设备;
具体为:查找默认路由网关MIBII的IP管理组路由表中类型为间接路由的路由表项,得到路由的下一跳地址;遍历下一跳地址给出的路由设备,得到更大的网络拓扑;
步骤S307,发现网络层设备的连接关系;
具体为:子网与路由器的连接关系通过遍历每个路由器下包含的子网来确定,主机与子网的关系通过主机IP与子网掩码来确定。
本发明提供的第二优选实施例中:所述步骤S3′和步骤S3中,得到所述拓扑关系之后还包括将所述拓扑资源和所述拓扑关系写入所述数据库中进行持久化。
本发明提供的第三优选实施例中:所述步骤S4′和步骤S4中,计算每个拓扑资源在所述网络拓扑编辑页面上的坐标的方法为:自定义第一个拓扑资源的坐标,下一个拓扑资源坐标为前一个的横坐标加上拓扑资源图标的大小加上间距;
当排列的横坐标大于等于所述网络拓扑编辑页面画布的宽度时,排列的纵坐标加一个图标的高度和行间距,同时横坐标回到所述第一个拓扑资源的竖坐标这个基点上。
本发明提供的第四优选实施例中:确定每个所述拓扑资源在所述网络拓扑编辑页面上画布中的坐标后,将所述坐标回写到所述数据库中的关系表中。
本发明提供的第五优选实施例中:所述步骤S4′和步骤S4中,用HTML5的Canvas的绘画功能绘制拓扑管理连线的方法为:读取所述数据库中的所述关系表,读出开始点拓扑资源的坐标和结束点拓扑资源的坐标进行连线。
本发明提供的第六优选实施例中:拖动图标调整不合理的布局,在线编辑修改所述拓扑关系,调整或修改完成后保存所述调整或修改后的坐标。
本发明提供的第七优选实施例中:所述步骤S5中,对拓扑资源进行网络可用性检测的依据是对该拓扑资源的IP进行三次ping的操作,如果三次都不通过,则表示该拓扑资源不准确。
本发明提供的一种基于SNMP和HTML5实现web网络拓扑的方法的有益效果包括:
1、本发明提供的一种基于SNMP和HTML5实现web网络拓扑的方法,利用HTML5做B/S结构的网络拓扑展现。
2、自定义网络拓扑与自动网络拓扑共用,用户可以选择进行自定义网络拓扑与自动网络拓扑。
3、网络可用性检测和网络拓扑图上进行展现,基于浏览器的网络拓扑图编辑功能可对网络拓扑图进行编辑。
附图说明
如图1所示为本发明提供的一种基于SNMP和HTML5实现web网络拓扑的方法的方法流程图;
如图2所示为本发明提供的一种基于SNMP和HTML5实现web网络拓扑的方法的实施例的结构原理图。
具体实施方式
本发明提供一种基于SNMP和HTML5实现web网络拓扑的方法,其方法流程如图1所示,由图1可知,该方法包括:
步骤S1,选择进行自定义拓扑或者自发现拓扑,选择进行自定义拓扑时执行步骤S2′,选择进行自发现拓扑时执行步骤S2。
步骤S2′,利用SNMP对指定的IP列表或者网段的网络内的所有资源进行探测,将探测到的IP、资源名和资源类型一起作为一个自定义网络拓扑资源写入数据库中,执行步骤S3′。
步骤S3′,用户自定义网络的拓扑关系,执行步骤S4′。
步骤S4′,根据各个拓扑资源的资源类型向网络拓扑编辑页面加载所有拓扑资源,计算每个拓扑资源在页面上的坐标,在页面上显示各个拓扑资源的资源类型对应的图片,根据实际的情况用HTML5的Canvas的绘画功能绘制拓扑管理连线,执行步骤S5。
步骤S2,利用SNMP对指定的所有拓扑资源进行探测,将探测到的自发现网络拓扑资源写入数据库中,执行步骤S3。
步骤S3,根据自发现网络拓扑资源分析得到自发现网络拓扑关系,执行步骤S4。
步骤S4,拓扑资源根据该拓扑资源的属性显示到页面画布中,计算每个拓扑资源在页面上的坐标,根据该自发现网络拓扑关系用HTML5的Canvas的绘画功能绘制拓扑管理连线,执行步骤S5。
步骤S5,根据拓扑资源的IP对拓扑资源进行网络可用性检测,将检测到的问题写入告警子***中进行告警提示。
实施例一:
本发明的实施例一提供的一种基于SNMP和HTML5实现web网络拓扑的方法,其结构原理图如图2所示。
实现自发现网络拓扑时,其中,步骤S3,根据自发现网络拓扑资源分析得到自发现网络拓扑关系具体包括:
步骤S301,通过默认网关路由器获取存在的子网列表,然后通过ICMP Ping或路由器中的ARP(Address Resolution Protocol,地址解析协议)信息遍历指定子网中所有的活动设备,判断用***团体名库是否能查找到某一活动设备的团体名,是,执行步骤S302,否执行步骤S303。
步骤S302,根据活动设备的团体名用SNMP协议获取活动设备的基本信息,判断出活动设备的类型后获取该活动设备的详细信息。
步骤S303,默认该活动设备为主机。
步骤S304,找到默认的路由网关。查找拓扑发现程序所在计算机的SNMP MIBII中的ipRouteTable,如果发现ipRouteDest值为0.0.0.0的记录,则说明程序所在的计算机设置了默认网关,ipRouteNextHop值即为默认网关的地址。然后检查默认网关的ipForwarding值。如果为1,则表明该默认网关确实是路由设备,否则不是。
步骤S305,取得存在的子网列表。
遍历路由器MIBII的IP管理组中管理对象ipRouteDest下的所有对象,以每个路由目的网络号为索引,查询ipRouteType字段的值。若该值为3(direct)表明为直接路由,若该值为4(indirect)则为间接路由。间接路由表明要通往目的网络或目的主机还要经过其它路由器,而直接路由表明与目的网络或目的主机直接相连,这样就可以得到与路由器直接相连的网络号。再根据网络号中的每条记录查询其路由掩码(ipRouteMask)。根据取得路由掩码,就可以确定每一个存在的网络子网的IP地址范围。
步骤S306,发现其它的路由设备。
查找默认路由网关MIBII的IP管理组路由表中类型为间接路由的路由表项,得到路由的下一跳地址(ipRouteNextHop)。遍历下一跳地址给出的路由设备,就可以得到更大的网络拓扑。
步骤S307,发现网络层设备的连接关系。
子网与路由器的连接关系遍历每个路由器下包含的子网来确定,主机与子网的关系可以通过主机IP与子网掩码来确定。
优选的,步骤S3′和步骤S3中,得到拓扑关系之后还包括将拓扑资源和拓扑关系写入数据库中进行持久化。
步骤S4′和步骤S4中,计算每个拓扑资源在页面上的坐标的方法为:先确定第一个拓扑资源的坐标,该坐标可自定义,例如(20,20),然后下一个拓扑资源坐标就是前一个的横坐标加上拓扑资源图标的大小加上间距。当排列的横坐标大于等于画布的宽度时,排列的纵坐标加一个图标的高度和行间距,同时横坐标回到第一个拓扑资源的竖坐标这个基点上。
确定每个拓扑资源在画布中的坐标后,将该坐标回写到数据库中的关系表中。
用HTML5的Canvas的绘画功能绘制拓扑管理连线的方法为:读数据库中的关系表,读出开始点拓扑资源的坐标和结束点拓扑资源的坐标进行连线,需要两个坐标点即可完成连线。示例代码:
var canvas=document.getElementById('diagonal');
var context=canvas.getContext('2d');
context.beginPath();
context.moveTo(70,140);
context.lineTo(140,70);
context.stroke();
完成后由于布局是自动生成,有不合理的布局可自己拖动图标调整,也可以在线编辑修改拓扑关系,调整或修改完成后保存该调整或修改后的坐标。
步骤S5中,对拓扑资源进行网络可用性检测的依据是对该拓扑资源的IP进行三次ping的操作,如果三次都不通过,则表示该拓扑资源不准确。
以上虽然根据附图对本发明的实施例进行了详细说明,但不仅限于此具体实施方式,本领域的技术人员根据此具体技术方案进行的各种等同、变形处理,也在本发明的保护范围之内。