一种域名数据采集方法、系统和装置制造方法及图纸

技术编号:17544365 阅读:52 留言:0更新日期:2018-03-25 00:38
本发明专利技术公开了一种域名数据采集方法,利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存;将所述共享内存中的所述DNS数据包进行处理得到域名数据,并将所述域名数据读至虚拟内存;其中,所述域名数据包括所述DNS数据包的域名、A记录。由此可见,本发明专利技术实施例提供的一种域名数据采集方法,基于Intel DPDK技术,依托其每秒达到百万级bps收发包的高性能特性,来捕获DNS数据包,从而提高了域名数据采集的效率,可以使DNS备份系统更好的提供DNS服务。本发明专利技术实施例还提供了一种域名数据采集系统及装置,同样可以实现上述技术效果。

A method, system and device for domain data acquisition

The invention discloses a data acquisition method based on DPDK domain, the main program to capture DNS data packets, and transmits the DNS data packet into the shared memory; the sharing of the DNS data in memory for processing the data packet domain, and the domain name data read to the virtual memory; wherein, the the domain name data including the DNS packet domain, A records. Thus, a domain name data acquisition method provided by the embodiment of the invention, the Intel based on DPDK technology, relying on its high performance reach 1 million per second receive BPS packets, to capture DNS packets, so as to improve the efficiency of data acquisition of the domain name, can make the DNS backup system to provide better DNS services. The present invention also provides a domain name data acquisition system and device, which can also achieve the above technical effect.

【技术实现步骤摘要】
一种域名数据采集方法、系统和装置
本专利技术涉及网络通信领域,更具体地说,涉及一种域名数据采集方法、系统和装置。
技术介绍
目前网络通信中,用户可以不用记住IP地址就能方便地访问互联网,是由于DNS解析功能可以将域名解析为IP地址,以通过域名就能与对应IP的服务器连接。现在DNS系统仍在很多隐患,由于DNS不同层次的域名解析服务器存在依赖关系,一旦位于高层次网络中的DNS服务器遭到攻击而陷入瘫痪,则用户无法正常获得DNS服务。同时目前存在很多针对DNS的攻击,如DoS攻击,DNS缓存污染,DNS重定向,DNS劫持等,这些攻击都会威胁DNS的安全性和可用性,影响用户正常使用互联网。对现有域名系统设计备份系统也逐渐成为国内外专家学者的研究热点。DNS备份系统即在DNS服务器不能正常为用户提供域名解析服务时,通过预先存储的大量域名解析数据,直接向用户返回域名解析数据。而获取这些预先存储的域名数据通常会占用大量的时间,导致不能为用户提供快速的为用户提供正常的服务。因此,如何快速获取到域名数据,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种域名数据采集方法、系统和装置,快速获取到域名数据。为实现上述目的,本专利技术实施例提供了如下技术方案:一种域名数据采集方法,包括:利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存;将所述共享内存中的所述DNS数据包进行处理得到域名数据,并将所述域名数据读至虚拟内存;其中,所述域名数据包括所述DNS数据包的域名、A记录。其中,所述将所述域名数据读至虚拟内存,包括:利用至少两个线程将所述域名数据读至虚拟内存。其中,所述利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存,包括:利用DPDK主程序检查接收内核的接收队列是否有数据包;若是,则读取所述数据包,并判断所述数据包是否为DNS数据包;若是,则将所述DNS数据包写入共享内存。其中,所述判断所述数据包是否为DNS数据包,包括:利用预设ACL规则对所述数据包进行匹配以判断所述数据包是否为DNS数据包。其中,所述将所述DNS数据包写入共享内存之前,还包括:通过检查所述DNS数据包的UDP首部,判断所述DNS数据包是否为分片数据包;若是,则继续接收对应所述DNS数据包的其他分片数据包,并将所述所有分片重组得到新的DNS数据包;则所述将所述DNS数据包写入共享内存,包括:将所述新的DNS数据包写入共享内存。其中,所述将DNS数据包进行处理得到域名数据,并将所述域名数据读至虚拟内存之后,还包括:对所述域名数据进行处理得到IP地址定位表;其中,所述IP地址定位表包括起始IP地址、终止IP地址、地理位置、所属运营商。一种域名数据采集系统,包括:捕获模块,用于利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存;第一处理模块,用于将所述共享内存中的所述DNS数据包进行处理得到域名数据,并将所述域名数据读至虚拟内存;其中,所述域名数据包括所述DNS数据包的域名、A记录。其中,所述捕获模块,包括:检查单元,用于利用DPDK主程序检查接收内核的接收队列是否有数据包;判断单元,用于所述接收队列由数据包时,读取所述数据包,并判断所述数据包是否为DNS数据包;写入单元,用于所述数据包是DNS数据包时,将所述DNS数据包写入共享内存。其中,还包括:第二处理模块,用于将DNS数据包进行处理得到域名数据,并将所述域名数据读至虚拟内存之后,对所述域名数据进行处理得到IP地址定位表;其中,所述IP地址定位表包括起始IP地址、终止IP地址、地理位置、所属运营商。一种域名数据采集装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述域名数据采集方法的步骤。通过以上方案可知,本专利技术实施例提供的一种域名数据采集方法,利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存;将所述共享内存中的所述DNS数据包进行处理得到域名数据,并将所述域名数据读至虚拟内存;其中,所述域名数据包括所述DNS数据包的域名、A记录。由此可见,本专利技术实施例提供的一种域名数据采集方法,基于IntelDPDK技术,依托其每秒达到百万级bps收发包的高性能特性,来捕获DNS数据包,从而提高了域名数据采集的效率,可以使DNS备份系统更好的提供DNS服务。本专利技术实施例还提供了一种域名数据采集系统及装置,同样可以实现上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种域名数据采集方法流程图;图2为本专利技术实施例公开的一种具体的域名数据采集方法流程图;图3为本专利技术实施例公开的一种具体的域名数据采集方法流程图;图4为本专利技术实施例公开的一种域名数据采集系统结构示意图;图5为本专利技术实施例公开的一种具体的域名数据采集系统结构示意图;图6为本专利技术实施例公开的一种具体的域名数据采集系统结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种域名数据采集方法、系统和装置,快速获取到域名数据。参见图1,本专利技术实施例提供的一种域名数据采集方法,具体包括:S101,利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存。在本方案中利用IntelDPDK(DataPlaneDevelopmentKit,数据平面开发套件)来捕获DNS数据包。IntelDPDK是一套专门针对高速网络而设计的数据平台库。它与英特尔架构产品家族中的所有处理器兼容,提供了一个可以用于从英特尔凌动到最新的英特尔至强处理器的统一软件编程模式,适用于大量不同的网络应用程序和系统配置。IntelDPDK应用程序位于用户空间中,并使用数据平台库来接收和发送数据包,在进行常规数据平台处理时绕过了Linux内核。它的编译、连接和载入都是以常规方式进行的。同时应用程序作为一个单一Linux进程启动,使用线程实现并发处理,并将每个线程附着到指定的内核。在传统的Linux模式下,系统接收数据包和将数据包发送出系统的过程占了包处理中很大一部分时间。换句话说,即使用户空间应用程序什么都不做,而只是将数据包从接收端口传送到发送端口,那么仍然会花费大量的处理时间。一个网络包从被网卡接收到递交给用户空间应用程序,要经历中断处理、上下文切换、系统调用、数据复制等过程,这些过程将花费额外的时间。而IntelDPDKAPI(应用程序编程接口)使应用程序在初始化的时候留出内存,包括缓冲池、描述符环和无锁队列。通过在一开始就分配缓冲区,应用程序就可以避免在常规数据平台处理的时候向Linux内核请求缓冲区以及相关的开销。在正常的操作中,应用程序根据需要调用本文档来自技高网...
一种域名数据采集方法、系统和装置

【技术保护点】
一种域名数据采集方法,其特征在于,包括:利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存;将所述共享内存中的所述DNS数据包进行处理得到域名数据,并将所述域名数据读至虚拟内存;其中,所述域名数据包括所述DNS数据包的域名、A记录。

【技术特征摘要】
1.一种域名数据采集方法,其特征在于,包括:利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存;将所述共享内存中的所述DNS数据包进行处理得到域名数据,并将所述域名数据读至虚拟内存;其中,所述域名数据包括所述DNS数据包的域名、A记录。2.根据权利要求1所述的方法,其特征在于,所述将所述域名数据读至虚拟内存,包括:利用至少两个线程将所述域名数据读至虚拟内存。3.根据权利要求1所述的方法,其特征在于,所述利用DPDK主程序捕获DNS数据包,并将所述DNS数据包写入共享内存,包括:利用DPDK主程序检查接收内核的接收队列是否有数据包;若是,则读取所述数据包,并判断所述数据包是否为DNS数据包;若是,则将所述DNS数据包写入共享内存。4.根据权利要求3所述的方法,其特征在于,所述判断所述数据包是否为DNS数据包,包括:利用预设ACL规则对所述数据包进行匹配以判断所述数据包是否为DNS数据包。5.根据权利要求3所述的方法,其特征在于,所述将所述DNS数据包写入共享内存之前,还包括:通过检查所述DNS数据包的UDP首部,判断所述DNS数据包是否为分片数据包;若是,则继续接收对应所述DNS数据包的其他分片数据包,并将所述所有分片重组得到新的DNS数据包;则所述将所述DNS数据包写入共享内存,包括:将所述新的DNS数据包写入共享内存。6.根据权利要求1至5任意一项所述的方法,其特征在...

【专利技术属性】
技术研发人员:丁瑞锋
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1