一种处理DNS数据包的方法及装置

文档序号:36114589发布日期:2023-11-22 15:04阅读:25来源:国知局
一种处理

本发明涉及流量处理,具体而言,涉及一种处理dns数据包的方法及装置。


背景技术:

1、dns(domain name server,域名服务器)是一种可以将域名和ip地址相互映射的以层次结构分布的数据库系统。dns系统采用递归查询请求的方式来响应用户的查询,为互联网的运行提供关键性的基础服务。目前绝大多数的防火墙和网络都会开放dns服务,dns数据包不会被拦截,因此可以基于dns协议建立隐蔽信道,从而顺利穿过防火墙,在客户端和服务器之间传输数据。

2、dns协议解析是通过捕获数据包通过对以主流的udp(user datagram protocol,用户数据包协议)来进行分析。数据链路层组装的以太网帧首部和尾部,可以忽略不处理,主要是通过ip首部和udp首部来筛选出其中的dns协议数据包,通过对dns协议数据包的标识、标志、问题数、资源记录数、授权资源记录数、额外资源记录数、查询问题、回答、授权、额外信息等字段进行判断或解析。

3、对dns数据包进行分析的前提是获取到该数据包。在高速网络环境下,需要在及其短的时间内捕获和处理大规模的数据,而当前采集dns数据包存在丢包率高、吞吐量低等一系列问题,不适用于高速网络环境。目前针对dns协议的分析技术,通常是通过离线捕获数据包,再通过人工或者其他形式更新到相关系统中进行分析,这样做的弊端是获取的dns数据包失去了时效性,数据的有效性无法得到保证。实现高速、完整、有效的数据包捕获,是进行网络数据分析的重要前提。


技术实现思路

1、为解决难以对高速dns数据包进行分析处理的问题,本发明实施例的目的在于提供一种处理dns数据包的方法及装置。

2、第一方面,本发明实施例提供了一种处理dns数据包的方法,包括:

3、在用户空间设置有效内存空间,并将网络硬件的内存空间地址映射至所述有效内存空间;

4、将所述网络硬件采集的dns数据包传递至所述有效内存空间;

5、从所述有效内存空间读取所述dns数据包,并对所述dns数据包进行分析处理。

6、可选地,该方法还包括:

7、预先建立所述网络硬件与处理器内核之间的对应关系,所述处理器内核能够从所述有效内存空间读取所述dns数据包。

8、可选地,所述有效内存空间包括由多个依次排列的内存块组成的内存队列,且所述内存队列中末位的内存块指向首位的内存块;所述内存队列用于存储所述dns数据包。

9、可选地,所述将所述网络硬件采集的dns数据包传递至所述有效内存空间,包括:

10、设置存储开始索引和存储结束索引,所述存储开始索引和存储结束索引均与当前存有数据的最后一个内存块位置对应;

11、在获取到所述网络硬件采集的dns数据包的情况下,确定存储所述dns数据包所需内存块的数量n,将所述存储开始索引增加n,生成新的存储开始索引;以及

12、将所述dns数据包存储到所述内存队列中从所述存储结束索引开始的n个所述内存块中,之后将所述存储结束索引增加n,生成新的存储结束索引。

13、可选地,所述从所述有效内存空间读取所述dns数据包,包括:

14、设置读取开始索引和读取结束索引,所述读取开始索引和读取结束索引均与当前存有数据的第一个内存块位置对应;

15、在需要读取m个内存块中所存储的dns数据包的情况下,将所述读取开始索引增加m,生成新的读取开始索引;以及

16、读取所述m个内存块中所存储的dns数据包,之后将所述读取结束索引增加m,生成新的读取结束索引。

17、可选地,所述新的存储开始索引不超过当前的读取结束索引;和/或

18、所述新的读取开始索引不超过当前的存储结束索引。

19、可选地,所述网络硬件采集的dns数据包为从分出来的镜像流量中提取出的数据包。

20、可选地,所述对所述dns数据包进行分析处理,包括:

21、提取所述dns数据包中的请求包和响应包,确定所述请求包中所请求的域名,以及所述响应包中的第一响应ip;

22、将所述域名向权威dns服务器进行请求,获取所述权威dns服务器返回的第二响应ip;

23、将所述第一响应ip与所述第二响应ip做交集运算,确定匹配率,基于所述匹配率进行分析。

24、第二方面,本发明实施例还提供了一种处理dns数据包的装置,包括:

25、预设模块,用于在用户空间设置有效内存空间,并将网络硬件的内存空间地址映射至所述有效内存空间;

26、传递模块,用于将所述网络硬件采集的dns数据包传递至所述有效内存空间;

27、处理模块,用于从所述有效内存空间读取所述dns数据包,并对所述dns数据包进行分析处理。

28、可选地,所述预设模块还用于:

29、预先建立所述网络硬件与处理器内核之间的对应关系,所述处理器内核能够从所述有效内存空间读取所述dns数据包。

30、本发明实施例上述第一方面提供的方案中,将网络硬件的内存空间地址映射至用户空间处的有效内存空间,使得网络硬件采集到dns数据包之后可以直接传输到用户空间处,进而能够直接读取处理用户空间处的dns数据包。该方法不需要系统中断,可以绕过内核空间,直接将dns数据包存储到用户空间,方便直接处理用户空间处的dns数据包;即使在高速场景下也能够实现快速采集并处理dns数据包,大大的提高了捕获dns数据包和分析dns协议的速度,能够实现在高速网络中dns协议分析,也能够保证dns数据包分析处理结果的时效性。

31、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。



技术特征:

1.一种处理dns数据包的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,还包括:

3.根据权利要求1所述的方法,其特征在于,所述有效内存空间包括由多个依次排列的内存块组成的内存队列,且所述内存队列中末位的内存块指向首位的内存块;所述内存队列用于存储所述dns数据包。

4.根据权利要求3所述的方法,其特征在于,所述将所述网络硬件采集的dns数据包传递至所述有效内存空间,包括:

5.根据权利要求4所述的方法,其特征在于,所述从所述有效内存空间读取所述dns数据包,包括:

6.根据权利要求5所述的方法,其特征在于,所述新的存储开始索引不超过当前的读取结束索引;和/或

7.根据权利要求1-6任意一项所述的方法,其特征在于,所述网络硬件采集的dns数据包为从分出来的镜像流量中提取出的数据包。

8.根据权利要求1-6任意一项所述的方法,其特征在于,所述对所述dns数据包进行分析处理,包括:

9.一种处理dns数据包的装置,其特征在于,包括:

10.根据权利要求9所述的装置,其特征在于,所述预设模块还用于:


技术总结
本发明提供了一种处理DNS数据包的方法及装置,其中,该方法包括:在用户空间设置有效内存空间,并将网络硬件的内存空间地址映射至所述有效内存空间;将所述网络硬件采集的DNS数据包传递至所述有效内存空间;从所述有效内存空间读取所述DNS数据包,并对所述DNS数据包进行分析处理。通过本发明实施例提供的处理DNS数据包的方法及装置,不需要系统中断,可以绕过内核空间,直接将DNS数据包存储到用户空间,方便直接处理用户空间处的DNS数据包;即使在高速场景下也能够实现快速采集并处理DNS数据包,大大的提高了捕获DNS数据包和分析DNS协议的速度,能够实现在高速网络中DNS协议分析,也能够保证DNS数据包分析处理结果的时效性。

技术研发人员:龙春,付豫豪,黄潘,万巍,王跃达,杨帆
受保护的技术使用者:中国科学院计算机网络信息中心
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1