1.本发明涉及物联网
技术领域:
:,尤其涉及一种物联网设备的发现方法及系统。
背景技术:
::2.资产管理是物联网安全中的一个基础功能。资产管理首先要能够发现网络中存活的设备。而物联网中往往含有大量的网络设备,传统的通过扫描方式来发现网络设备的方法需要很长的时间才能完成对地址范围进行扫描。3.传统的通过扫描方式来发现设备的方法,需要配置要扫描的地址范围。然后对地址范围内的每一个ip进行扫描。如果收到回复的数据包,那可以确定该ip地址被设备使用。如果扫描程序需要等待一段时间直到超时都没有收到回复,那么该ip地址或者没有设备使用,或者是因为网络原因偶然没有收到回复。为了准确,扫描程序往往要重试几次,如果都没有收到回复才判定这个ip没有对应的设备使用。在网络中存在大量的空地址时,这种扫描方式还是需要逐一扫描每个地址,整个扫描周期耗时非常长。4.因此现有技术还有待于进一步发展。技术实现要素:5.针对上述技术问题,本发明实施例提供了一种物联网设备的发现方法及系统,能够解决现有技术中通过扫描方式发现设备的方法,需要逐一扫描每个地址,每个扫描周期耗时非常长的技术问题。6.本发明实施例的第一方面提供一种物联网设备的发现方法,包括:7.预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎;8.通过多进程snmp设备发现引擎获取物联网中的第一设备数据;9.通过流量发现设备引擎获取物联网中的第二设备数据;10.根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。11.可选地,通过多进程snmp设备发现引擎获取物联网中的第一设备数据,包括:12.通过多进程snmp设备发现引擎获取物联网中路由器设备所管理的管理信息库信息;13.通过所述管理信息库信息获取路由器对应的ip地址表;14.查询网络中所有接入路由器上的ip地址表,获取路由器所在的所有子网的ip设备的地址信息,根据所述地址信息生成第一设备数据。15.可选地,通过流量发现设备引擎获取物联网中的第二设备数据,包括:16.通过流量发现设备引擎采集网络中的网络流量数据;17.对网络流量数据进行解析生成网络数据包;18.通过对网络数据包进行报文解析,获取网络数据包对应的报文信息;19.根据报文信息,获取第二设备数据。20.可选地,所述通过对网络数据包进行报文解析,获取网络数据包对应的报文信息,包括:21.通过对网络数据进行报文解析,获取网络数据包对应的源ip地址、源端口、目的ip地址、目的端口和网络协议。22.可选地,所述预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎,包括:23.预先在网络中部署多进程snmp设备发现引擎,所述多进程snmp设备发现引擎采用多进程的并行处理方式,每个进程连接不同的接入路由器;24.预先在网络中部署流量发现设备引擎,所述流量发现设备引擎通过分布部署的方式部署在网络中多个流量汇聚点。25.本发明实施例第二方面提供了一种物联网设备的发现系统,所述系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:26.预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎;27.通过多进程snmp设备发现引擎获取物联网中的第一设备数据;28.通过流量发现设备引擎获取物联网中的第二设备数据;29.根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。30.可选地,所述计算机程序被所述处理器执行时还实现以下步骤:31.通过多进程snmp设备发现引擎获取物联网中路由器设备所管理的管理信息库信息;32.通过所述管理信息库信息获取路由器对应的ip地址表;33.查询网络中所有接入路由器上的ip地址表,获取路由器所在的所有子网的ip设备的地址信息,根据所述地址信息生成第一设备数据。34.可选地,所述计算机程序被所述处理器执行时还实现以下步骤:35.通过流量发现设备引擎采集网络中的网络流量数据;36.对网络流量数据进行解析生成网络数据包;37.通过对网络数据包进行报文解析,获取网络数据包对应的报文信息;38.根据报文信息,获取第二设备数据。39.可选地,所述计算机程序被所述处理器执行时还实现以下步骤:40.通过对网络数据进行报文解析,获取网络数据包对应的源ip地址、源端口、目的ip地址、目的端口和网络协议。41.本发明实施例第三方面提供了一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的物联网设备的发现方法。42.本发明实施例提供的技术方案中,预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎;通过多进程snmp设备发现引擎获取物联网中的第一设备数据;通过流量发现设备引擎获取物联网中的第二设备数据;根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。本发明实施例通过联合使用snmp,流量发现这两种大批量网络设备快速发现的技术,达到短时间内速发现大量设备,缩短了物联网中网络设备时间,提高了设备发现效率。附图说明43.图1为本发明实施例中一种物联网设备的发现方法的一实施例的流程示意图;44.图2为本发明实施例中一种物联网设备的发现方法的一实施例的多进程并行处理架构示意图;45.图3为本发明实施例中一种物联网设备的发现系统的另一实施例的硬件结构示意图。具体实施方式46.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。47.以下结合附图对本发明实施例进行详细的描述。48.请参阅图1,图1为本发明实施例中一种物联网设备的发现方法的一个实施例的流程示意图。如图1所示,包括:49.步骤s100、预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎;50.步骤s200、通过多进程snmp设备发现引擎获取物联网中的第一设备数据;51.步骤s300、通过流量发现设备引擎获取物联网中的第二设备数据;52.步骤s400、根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。53.具体实施时,如图2所示,为本发明实施例的一种多进程并行处理架构示意图。本发明实施例预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎,其中,snmp(simplenetworkmanagementprotocol)实在是一个非常重要的协议,在被监控设备上把各种参数(包括设置参数、状态参数)写入到mib库中,我们通过各种网管软件就能读到这些参数(比如:端口流量、cpu使用率等),甚至修改这些参数(比如:端口速率、双工模式、端口mtu等)。在网管软件和被监控设备之间就是通过snmp协议来交互的。54.snmp网络管理由下面几个部分组成:55.网络管理站或管理进程(manager):用于管理工作站上运行网管软件,常见的网络软件如:ciscoworks、hpopenview、solarwinds、microsoftsms、mrtg、whatsup等。在snmp组成部分中相当于client的角色。56.被管理设备:包括可网管的路由器、交换机、服务器、打印机等等。57.代理程序(agent)集成在被管理的设备当中,运行被管理设备的snmp服务端程序,是server的角色,ciscoios的snmp配置命令就是以snmp-server开头的。58.mib(managementinformationbase,管理信息库)被监控设备上的各种参数(包括设置参数、状态参数)都写到mib库中,mib包含所有代理进程的可被查询和修改参数。mib以对象表示符(oid)来组织数据。oid是一个以点(".")分割的整数序列,这些整数构成一个树型结构,类似于dns或linux文件系统。oid从树的顶部开始,顶部没有标识,以root表示。oid是由权威机构进行管理和分配的。59.snmp管理进程和代理进程之间交互的报文分为4种:60.get-request操作:从管理进程向代理进程(udp161)请求一个或多个数值。linux下的snmpget命令就是完成这个操作。61.get-next-request操作:向代理进程(udp161)请求一个或多个参数的下一个参数值。snmpwalk命令就是完成这个操作。62.get-response操作:对管理进程提交的request进行响应,返回一个或多个参数值,从代理进程的udp161端口发出。63.set-request操作:设置代理进程的的一个或多参数值,这个可是十分危险的操作。代理进程开放的端口是udp161,snmpset执行这个操作。64.通过多进程snmp设备发现引擎获取物联网中的第一设备数据;通过流量发现设备引擎获取物联网中的第二设备数据;根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。同一台设备被抓取多次的情况是存在的,但这并不引起任何冲突或问题。这说明同一个设备被多个不同方式发现了。流量汇聚点是指网络中的那些设备,通常是核心交换机,网络流量都经由这个设备。汇聚交换机或核心交换机都是网络中的流量汇聚点,具体位置和现场网络部署相关。流量发现设备引擎有相应的硬件和软件。65.进一步地,通过多进程snmp设备发现引擎获取物联网中的第一设备数据,包括:66.通过多进程snmp设备发现引擎获取物联网中路由器设备所管理的管理信息库信息;67.通过所述管理信息库信息获取路由器对应的ip地址表;68.查询网络中所有接入路由器上的ip地址表,获取路由器所在的所有子网的ip设备的地址信息,根据所述地址信息生成第一设备数据。69.具体地,。在网络中,路由器设备所管理的mib信息里,有一个叫做ipaddrtable的表,这个表里包含这个路由器所在的子网中所有ip设备的地址信息。通过snmp协议去查询这个表,可以获得这个路由器所在的所有子网的ip设备的地址信息。下图是查询路由器10.200.60.161上ipaddrtable所返回的ip地址信息。70.在实际网络中,通过查询网络中所有接入路由器上的ipaddrtable,可以快速的大批量获取网络中所有设备的ip地址信息,根据所述地址信息生成第一设备数据。71.进一步地,通过流量发现设备引擎获取物联网中的第二设备数据,包括:72.通过流量发现设备引擎采集网络中的网络流量数据;73.对网络流量数据进行解析生成网络数据包;74.通过对网络数据包进行报文解析,获取网络数据包对应的报文信息;75.根据报文信息,获取第二设备数据。76.具体实施时,设备在网络中通信时会产生网络流量。通常情况下设备使用tcp或udp协议进行网络通信。通过获取网络流量并提取其中的网络地址信息,就可以判断哪些ip被使用,从而达到设备发现的目的。77.具体来讲,这种方式需要在网络中部署流量采集设备。流量采集设备可以用旁路部署的方式连接到网络中的核心交换机上。核心交换机通过镜像接口把网络流量转发一份拷贝到流量采集设备。流量采集设备在获取网络数据包后,通过报文解析提取数据包中的五元组信息,根据五元数据数据获取第二设备数据。78.在实际网络中,通过这种方式可以快速大批量的发现那些正在通讯的网络设备。尤其是在视频网络中,摄像头持续的向视频服务器传送视频数据,这种方式可以快速大批量的发现网络中的摄像头设备。79.进一步地,通过对网络数据包进行报文解析,获取网络数据包对应的报文信息,包括:80.通过对网络数据进行报文解析,获取网络数据包对应的源ip地址、源端口、目的ip地址、目的端口和网络协议。81.具体实施时,一个网络数据包的五元组信息包括源ip地址,源端口,目的ip地址,目的端口,网络协议。从每个提取到的五元组中,我们可以判定源ip和目的ip都有对应的设备在使用。从而可以发现源ip设备和目的ip设备。82.进一步地,预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎,包括:83.预先在网络中部署多进程snmp设备发现引擎,所述多进程snmp设备发现引擎采用多进程的并行处理方式,每个进程连接不同的接入路由器;84.预先在网络中部署流量发现设备引擎,所述流量发现设备引擎通过分布部署的方式部署在网络中多个流量汇聚点。85.具体实施时,首先,网络地址会划分为很多不同的网段,每个网段中的设备会经过一个接入路由器接入网络。虽然可以通过snmp从每个路由器发现该接入路由器下的设备,但如果用串行的方式逐个连接不同的路由器来发现设备,会耗用非常长的时间。所以为了提高发现速度,达到5分钟发现万台设备的目标,本专利使用了分布式并行算法来提高发现的速度。具体的,本专利部署了两种设备发现引擎。一种是snmp设备发现引擎,采用多进程的并行处理方式,每个进程去连接不同的接入路由器,通过snmp从接入路由器获取设备信息。每个接入路由器负责不同网段的接入,含有不同网段的ipaddrtable表。通过多个进程的并行查询并汇总查询结果,可以提高查询效率。另一种是流量发现设备引擎,这种引擎通过分布部署的方式部署在网络中多个流量汇聚点,通过抓取流量中ip五元组的信息来发现设备。86.并行处理指的是通过多个进程共同完成一个任务。通常是把任务分解为若干个子任务,每个进程负责处理一个子任务。本发明实施例中,通过snmp进行设备发现时,需要去查询多个接入路由器的snmp相关表格。通过多进程,每个进程去查询一个接入路由器的表格,从而并行完成任务,从而实现达到5分钟发现万台设备的目标。87.需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。88.上面对本发明实施例中的物联网设备的发现方法进行了描述,下面对本发明实施例中的物联网设备的发现系统进行描述,请参阅图3,图3是本发明实施例中一种物联网设备的发现系统的另一实施例的硬件结构示意图,如图3所示,系统10包括:存储器101、处理器102及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器101执行时实现以下步骤:89.预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎;90.通过多进程snmp设备发现引擎获取物联网中的第一设备数据;91.通过流量发现设备引擎获取物联网中的第二设备数据;92.根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。93.具体的实施步骤与方法实施例相同,此处不再赘述。94.可选地,计算机程序被处理器101执行时还实现以下步骤:95.通过多进程snmp设备发现引擎获取物联网中路由器设备所管理的管理信息库信息;96.通过所述管理信息库信息获取路由器对应的ip地址表;97.查询网络中所有接入路由器上的ip地址表,获取路由器所在的所有子网的ip设备的地址信息,根据所述地址信息生成第一设备数据。98.具体的实施步骤与方法实施例相同,此处不再赘述。99.可选地,计算机程序被处理器101执行时还实现以下步骤:100.通过流量发现设备引擎采集网络中的网络流量数据;101.对网络流量数据进行解析生成网络数据包;102.通过对网络数据包进行报文解析,获取网络数据包对应的报文信息;103.根据报文信息,获取第二设备数据。104.具体的实施步骤与方法实施例相同,此处不再赘述。105.可选地,计算机程序被处理器101执行时还实现以下步骤:106.通过对网络数据进行报文解析,获取网络数据包对应的源ip地址、源端口、目的ip地址、目的端口和网络协议。107.具体的实施步骤与方法实施例相同,此处不再赘述。108.可选地,计算机程序被处理器101执行时还实现以下步骤:109.预先在网络中部署多进程snmp设备发现引擎,所述多进程snmp设备发现引擎采用多进程的并行处理方式,每个进程连接不同的接入路由器;110.预先在网络中部署流量发现设备引擎,所述流量发现设备引擎通过分布部署的方式部署在网络中多个流量汇聚点。111.具体的实施步骤与方法实施例相同,此处不再赘述。112.本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s400。113.作为示例,非易失性存储介质能够包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦rom(eeprom)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(ram)。通过说明并非限制,ram可以以诸如同步ram(sram)、动态ram、(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、synchlinkdram(sldram)以及直接rambus(兰巴斯)ram(drram)之类的许多形式得到。本发明实施例中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。114.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
技术特征:1.一种物联网设备的发现方法,其特征在于,包括:预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎;通过多进程snmp设备发现引擎获取物联网中的第一设备数据;通过流量发现设备引擎获取物联网中的第二设备数据;根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。2.根据权利要求1所述的物联网设备的发现方法,其特征在于,所述通过多进程snmp设备发现引擎获取物联网中的第一设备数据,包括:通过多进程snmp设备发现引擎获取物联网中路由器设备所管理的管理信息库信息;通过所述管理信息库信息获取路由器对应的ip地址表;查询网络中所有接入路由器上的ip地址表,获取路由器所在的所有子网的ip设备的地址信息,根据所述地址信息生成第一设备数据。3.根据权利要求2所述的物联网设备的发现方法,其特征在于,所述通过流量发现设备引擎获取物联网中的第二设备数据,包括:通过流量发现设备引擎采集网络中的网络流量数据;对网络流量数据进行解析生成网络数据包;通过对网络数据包进行报文解析,获取网络数据包对应的报文信息;根据报文信息,获取第二设备数据。4.根据权利要求3所述的物联网设备的发现方法,其特征在于,所述通过对网络数据包进行报文解析,获取网络数据包对应的报文信息,包括:通过对网络数据进行报文解析,获取网络数据包对应的源ip地址、源端口、目的ip地址、目的端口和网络协议。5.根据权利要求4所述的物联网设备的发现方法,其特征在于,所述预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎,包括:预先在网络中部署多进程snmp设备发现引擎,所述多进程snmp设备发现引擎采用多进程的并行处理方式,每个进程连接不同的接入路由器;预先在网络中部署流量发现设备引擎,所述流量发现设备引擎通过分布部署的方式部署在网络中多个流量汇聚点。6.一种物联网设备的发现系统,其特征在于,所述系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:预先在网络中部署多进程snmp设备发现引擎和流量发现设备引擎;通过多进程snmp设备发现引擎获取物联网中的第一设备数据;通过流量发现设备引擎获取物联网中的第二设备数据;根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。7.根据权利要求6所述的物联网设备的发现系统,其特征在于,所述计算机程序被所述处理器执行时还实现以下步骤:通过多进程snmp设备发现引擎获取物联网中路由器设备所管理的管理信息库信息;通过所述管理信息库信息获取路由器对应的ip地址表;查询网络中所有接入路由器上的ip地址表,获取路由器所在的所有子网的ip设备的地
址信息,根据所述地址信息生成第一设备数据。8.根据权利要求7所述的物联网设备的发现系统,其特征在于,所述计算机程序被所述处理器执行时还实现以下步骤:通过流量发现设备引擎采集网络中的网络流量数据;对网络流量数据进行解析生成网络数据包;通过对网络数据包进行报文解析,获取网络数据包对应的报文信息;根据报文信息,获取第二设备数据。9.根据权利要求8所述的物联网设备的发现系统,其特征在于,所述计算机程序被所述处理器执行时还实现以下步骤:通过对网络数据进行报文解析,获取网络数据包对应的源ip地址、源端口、目的ip地址、目的端口和网络协议。10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-5任一项所述的物联网设备的发现方法。
技术总结本发明公开了一种物联网设备的发现方法及系统,方法包括:预先在网络中部署多进程SNMP设备发现引擎和流量发现设备引擎;通过多进程SNMP设备发现引擎获取物联网中的第一设备数据;通过流量发现设备引擎获取物联网中的第二设备数据;根据第一设备数据和第二设备数据,生成物联网中的目标设备数据。本发明实施例通过联合使用SNMP,流量发现这两种大批量网络设备快速发现的技术,达到短时间内速发现大量设备,缩短了物联网中网络设备时间,提高了设备发现效率。设备发现效率。设备发现效率。
技术研发人员:张树贵 周俊 李阳
受保护的技术使用者:深圳铸泰科技有限公司
技术研发日:2022.05.23
技术公布日:2022/11/1