一种dns流量的高性能监控方法

文档序号:7716066阅读:330来源:国知局
专利名称:一种dns流量的高性能监控方法
技术领域
本发明涉及DNS流量监控方法,特别是涉及一种DNS流量的高性能监控方法。
背景技术
DNS (Domain Name System)是域名系统的意思,其作用就是协调IP地址和主机名 之间的双向切换。DNS是当今Internet的基础架构,众多的网络服务(如Http、Ftp、Email 等等)都是建立在DNS体系基础之上的。各省级运营商(包括固网或者移动运营商)为上 网用户提供了 DNS网络的运营服务,通常情况下,每个省级运营商的DNS网络分为若干节 点,每个节点是由路由器、交换机和若干台服务器组成,每台服务器运行DNS软件,提供DNS 查询的解析工作。 鉴于DNS网络的重要性,通过监控DNS流量得出统计指标对于掌握DNS网络的日 常运行状况,特别是及时发现异常DNS流量是非常必要。现有的监控方式主要是在每台DNS 服务器通过抓包或者记录日志的方式抽样分析,得出相应统计指标。这种方式存在一个显 著的缺点_抽样分析。因为DNS流量非常大,每秒有几十万个数据包,抽样分析虽然可以减 少数据分析量,但是抽样分析可能造成的结果是刚刚抽样完一个时间点,异常的DNS流量 进入,却没有分析到。另外该方式还存在另外一个缺点是在DNS服务器本身进行分析,额外 的分析工作会对DNS服务器正常的DNS查询解析工作造成影响。

发明内容
本发明所要解决的技术问题就是为了克服上述现有技术存在的缺陷而提供一种 DNS流量的高性能监控方法。 本发明的目的可以通过以下技术方案来实现一种DNS流量的高性能监控方法,
其特征在于,该方法镜像DNS流量采集服务器上联通讯设备的进出流量到DNS流量采集服
务器,由DNS流量采集服务器进行数据包实时抓取、实时分析以及实时存储。 所述的上联通讯设备包括交换机或者路由器。 所述的DNS流量采集服务器实时抓取的数据包包括 DNS服务器收到客户端的查询包A ; DNS服务器回复客户端的响应包B ; DNS服务器向上层DNS服务器发送的递归查询包C ;DNS服务器收到上层DNS服务器回复的递归响应包D。 所述的DNS流量采集服务器实时分析抓取的数据包,得到关键统计指标值,该关
键统计指标值包括 查询包A的每秒查询次数; 递归查询包C的每秒递归查询次数; 响应包B的每秒响应次数; 查询包A以及响应包B的解析成功率;
查询包A以及递归查询包C的递归查询率; 查询包A以及递归查询包C的缓存命中率; 查询包A的查询类型分类; 响应包B的响应类型分类; 查询包A的TOP-N顶级域名; 查询包A的TOP-N 二 /三级域名; 查询包A的TOP-N域名; 查询包A的TOP-N源IP ; 查询包A的TOP-N源IP和域名; 递归响应包D的TOP-N错误域名; 递归响应包D的TOP-N错误域名和源IP。 所述的DNS流量采集服务器以1分钟为最小时间单位进行实时分析。 所述的DNS流量采集服务器采用多线程技术对TOP-N数据进行实时分析。 所述的DNS流量采集服务器每整分钟汇总多个线程的统计指标值,得到的统计指
标值插入到存储文件或者数据库的数据表中。 与现有技术相比,本发明具有以下优点 1 、本发明是对于所有DNS数据包的分析,没有采用抽样分析,保证了 DNS数据分析 的准确性; 2、本发明采用多线程分析DNS数据包,保证了 DNS数据分析的及时性; 3、本发明以1分钟为最小时间单位进行分析,保证了 DNS数据分析的实时性; 4、本发明每分钟存储分析后的数据到文件或者数据库,保证了 DNS数据分析的完 整性。


图l为本发明的原理图; 图2为本发明的硬件结构简单示意图。
具体实施例方式
下面结合附图对本发明作进一步说明。 —种DNS流量的高性能监控方法,该方法镜像DNS流量采集服务器上联通讯设备 的进出流量到DNS流量采集服务器,由DNS流量采集服务器进行数据包实时抓取、实时分析 以及实时存储。 所述的上联通讯设备包括交换机或者路由器;所述的DNS流量采集服务器实时抓 取的数据包包括 DNS服务器收到客户端的查询包A ; DNS服务器回复客户端的响应包B ; DNS服务器向上层DNS服务器发送的递归查询包C ; DNS服务器收到上层DNS服务器回复的递归响应包D。 所述的DNS流量采集服务器实时分析抓取的数据包,得到关键统计指标值,该关
4键统计指标值包括 查询包A的每秒查询次数; 递归查询包C的每秒递归查询次数; 响应包B的每秒响应次数; 查询包A以及响应包B的解析成功率; 查询包A以及递归查询包C的递归查询率; 查询包A以及递归查询包C的缓存命中率; 查询包A的查询类型分类; 响应包B的响应类型分类; 查询包A的TOP-N顶级域名; 查询包A的TOP-N 二 /三级域名; 查询包A的TOP-N域名; 查询包A的TOP-N源IP ; 查询包A的TOP-N源IP和域名; 递归响应包D的TOP-N错误域名; 递归响应包D的TOP-N错误域名和源IP 。 所述的DNS流量采集服务器以1分钟为最小时间单位进行实时分析。 所述的DNS流量采集服务器采用多线程技术对TOP-N数据进行实时分析。 所述的DNS流量采集服务器每整分钟汇总多个线程的统计指标值,得到的统计指 标值插入到存储文件或者数据库的数据表中。 如图2,本发明部署一台"DNS流量采集服务器2"与上联通讯设备1 (交换机或者
路由器)相联,通过镜像交换机或者路由器上联端口的所有进出流量到"DNS流量采集服务
器",由"DNS流量采集服务器"进行实时抓包,实时分析,实时存储。 如图l,本发明包括三大模块 流量采集模块,进行实时抓包; 流量分析模块,进行实时分析; 流量存储模块,进行分析后的数据存储。 1、流量采集模块 按照源地址和目的地址以及源端口和目的端口的不同,DNS数据包分为四类 DNS服务器收到客户端的查询包 DNS服务器回复客户端的响应包 DNS服务器向上层DNS服务器发送的递归查询包 DNS服务器收到上层DNS服务器回复的递归响应包 DNS数据包进入"DNS流量采集服务器"的流量采集模块,流量采集模块根据过滤 规则,分别取出符合规则的四种DNS数据包,送入流量分析模块。 2、流量分析模块 流量分析模块主要作用是分析四种DNS数据包,得出关键的统计指标值。具体的 统计指标值以及所分析的DNS数据包类(A、B、C、D)如下 每秒查询次数(A)
5
每秒递归查询次数(c)每秒响应次数(B)解析成功率(A、 B)递归查询率(A、 C)缓存命中率(A、C)查询类型分类(A)响应类型分类(B)TOP-N顶级域名(A)TOP-N 二/三级域名(A)TOP-N域名(A)TOP-N源IP (A)TOP-N源IP+域名(A)TOP-N错误域名(D)TOP-N错误域名+源IP (D)统计上述指标最耗时的部分是如下几种TOP-N顶级域名TOP-N 二 /三级域名TOP-N域名TOP-N源IPTOP-N源IP+域名TOP-N错误域名TOP-N错误域名+源IP因为在统计TOP-N的数据时需要进行hash表的插入操作,这个操作在数据』匱大的
时候非常费时,所以这个部分使用多线程技术。 TPool类初始化的时候会产生一定数量的线程,并维护它们各自的一个 TaskThread类用以传递数据。每个线程初始化之后会被插入线程池的空闲线程队列idle_ queue上,同时自己把自己锁在一个self_l0ck的锁上,进入休眠状态。 一旦系统有工作要 做了,比如抓到了一个A类包,那么就会调用TPool的assignWorl方法,这个函数会从空闲 队列中取出一个线程,为它准备好相应的数据,然后解开它的self—lock让它开始工作。线 程工作结束之后会自己把自己插入空闲队列,然后再一次通过加锁self_l0Ck进入睡眠等 待下一个任务。这样就能够保证负载在各个线程之间是均衡的,不会出现一个线程比较繁 忙一个线程比较空闲的情况。 为了提高效率避免过多的加锁操作带来的等待,多个线程工作时并不是往同一个 Moniterlnterface表里插入,而是每个线程有自己的一个Monitorlnterface表,工作线 程每次只在自己的Monitorlnterface表插入数据。由于插入数据多了之后hash表效率 会下降,并且要保证每一分钟要把这一分钟收集到的数据写入到文件或数据库中,因此在 hash表中增加了一个功能,即统计平均每次插入时要寻找的链表长度,以此来衡量hash表 的效率。当线程自己的Monitorlnterface的hash表的插入长度超过一个指定的值(一 般设为1)或者是设置的时间到了 (一般设为5 IO秒的一个间隔),线程就会把自己的
6Monitorlnterface表的内容插入总的Monitorlnterface表中。 另外,处于性能考虑,这里用Set_Cpu_affinity函数手动指定抓包线程工作在
CPU核心1上,工作线程分布在CPU核心2 4上,用set_cpu_mask_aff inity函数指定每
分钟的汇集线程不要工作在CPU核心1上,这样能够保证抓包线程不会被其它工作线程争
夺cpu时间。同时还用block_Sig函数设定抓包和工作线程不要响应SIG_ALARM,防止它们
去做汇集的工作。 3、流量存储模块 流量存储模块每个整分钟汇总多个线程的统计指标值,得到汇总后的统计指标 值,直接插入统计指标值到文件或者数据库的数据表中。
权利要求
一种DNS流量的高性能监控方法,其特征在于,该方法镜像DNS流量采集服务器上联通讯设备的进出流量到DNS流量采集服务器,由DNS流量采集服务器进行数据包实时抓取、实时分析以及实时存储。
2. 根据权利要求1所述的一种DNS流量的高性能监控方法,其特征在于,所述的上联通讯设备包括交换机或者路由器。
3. 根据权利要求1或2所述的一种DNS流量的高性能监控方法,其特征在于,所述的DNS流量采集服务器实时抓取的数据包包括DNS服务器收到客户端的查询包A ;DNS服务器回复客户端的响应包B ;DNS服务器向上层DNS服务器发送的递归查询包C ;DNS服务器收到上层DNS服务器回复的递归响应包D。
4. 根据权利要求3所述的一种DNS流量的高性能监控方法,其特征在于,所述的DNS流量采集服务器实时分析抓取的数据包,得到关键统计指标值,该关键统计指标值包括查询包A的每秒查询次数;递归查询包C的每秒递归查询次数;响应包B的每秒响应次数;查询包A以及响应包B的解析成功率;查询包A以及递归查询包C的递归查询率;查询包A以及递归查询包C的缓存命中率;查询包A的查询类型分类;响应包B的响应类型分类;查询包A的TOP-N顶级域名;查询包A的TOP-N 二 /三级域名;查询包A的TOP-N域名;查询包A的TOP-N源IP ;查询包A的TOP-N源IP和域名;递归响应包D的TOP-N错误域名;递归响应包D的TOP-N错误域名和源IP。
5. 根据权利要求4所述的一种DNS流量的高性能监控方法,其特征在于,所述的DNS流量采集服务器以1分钟为最小时间单位进行实时分析。
6 根据权利要求4或5所述的一种DNS流量的高性能监控方法,其特征在于,所述的DNS流量采集服务器采用多线程技术对TOP-N数据进行实时分析。
7. 根据权利要求6所述的一种DNS流量的高性能监控方法,其特征在于,所述的DNS流量采集服务器每整分钟汇总多个线程的统计指标值,得到的统计指标值插入到存储文件或者数据库的数据表中。
全文摘要
本发明涉及一种DNS流量的高性能监控方法,该方法镜像DNS流量采集服务器上联通讯设备的进出流量到DNS流量采集服务器,由DNS流量采集服务器进行数据包实时抓取、实时分析以及实时存储。与现有技术相比,本发明方法使DNS数据分析具有准确性、及时性、实时性以及完整性。
文档编号H04L29/12GK101719847SQ200910197230
公开日2010年6月2日 申请日期2009年10月15日 优先权日2009年10月15日
发明者龙雷 申请人:上海寰雷信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1