基于 DNS 协议分析的流量监测系统


-1- 基于 DNS 协议分析的流量监测系统 罗海峰 北京邮电大学信息与通信工程学院,北京 (100876) E-mail:fengfeng0418@gmail.com 摘 要:本文结合现有网络协议分析与流量监测技术,在广域网环境下,设计出一个新的基 于 DNS 协议分析的网络流量监测系统, 通过使用流量监控设备可以将 TCP/IP 网络中传送的 数据包完全截获下来,并根据需求启用数据包捕获过滤机制,进行过滤和协议分析,进而解 析还原得到我们所需要的 DNS 相关信息,然后利用关键字过滤技术,结合 DNS 服务提供商 需求,达到对如 DNS 部署效率、用户行为分析等特定信息的快速获取和跟踪的目的,从而 不仅可以方便 DNS 服务提供商有针对性地部署 DNS 服务器, 同时也为其用户业务策略提供 了一个很好的手段。 关键词: DNS;协议分析;流量监测;用户行为分析 中图分类号: TP393 1.引言 DNS服务器作为用户访问因特网的必经之路,其重要性不言而喻,因此对 DNS服务器的 监测和分析显得格外重要,通过对 DNS服务器的流量监测,可着重监测和分析 DNS服务器流 量数据,从而获取 DNS服务提供的详细情况以及用户的上网行为规律和特点。了解 DNS服务 器流量具有以下意义: 1. 网络优化的关键所在。详细了解和分析 DNS服务器端流量,可以对网络的提供和负载等 进行一个全面的了解,为网络优化可以提供第一手的分析和参考资料; 2. 方便了解服务提供。如何更好地为用户提供更精美更完善的服务,单纯靠市场调查仅仅 是一个参照物,可以通过 DNS服务器的流量监测和分析得出确定结果。 3. 了解用户分布和服务需求情况对网络规划和网络优化具有重要意义。 用户的上网时间和 流量直接影响着网络的使用情况,针对不同时段不同地点的网络情况进行相应地调整, 能更充分地利用网络资源,提供更良好的网络通道;如获取访问服务器的用户分布,获 取用户地域信息,对于合理分布服务器地理位置,具有良好的指导作用,而获取用户停 留时间和总流量,获取用户对网络的使用率则对服务器的使用时段具有指导意义。 4. 了解用户使用服务器的情况,有助于合理发展网络业务,为网络用户提供更好的网络服 务。我们能够获取用户的兴趣点,增加相应的业务来吸引用户,如通过监测可以获得某 用户群的访问信息,获取用户群的共同兴趣点;通过了解用户和市场的差异和变化,促 进有针对性地面向用户的市场营销活动 [1]。 本文在第二部分描述 DNS协议的设计特点和鉴别方法; 第三部分介绍 DNS网络监测系统 设计的核心思想和总体架构,该系统使用 JAVA、Struts2框架、JSP语言编写,通过定时采集、 监测和分析 DNS服务器辖区的网络参数,实现了对辖区用户的流量分析和管理;第四部分介 绍该系统的性能,通过部署该系统来统计 DNS请求数等衡量 DNS服务器的一些工作指标、用 户请求的域名统计 TOP N排名等分析用户行为的一系列指标;第五部分对全文进行总结。 2.DNS 协议特点与鉴别方式 DNS是域名系统 (Domain Name System)的缩写,该系统用于命名组织到域层次结构中的 计算机和网络服务。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一 的IP地址,在 Internet上域名与 IP地址之间是一一对应的, DNS就是进行域名解析的服务器。 http://www.paper.edu.cn 中国科技论文在线 -2- DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。DNS是因 特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库而存在。 DNS 是一个分层级的分散式名称对应系统,有点像电脑的目录树结构:在最顶端的是 一个“root”,然后其下分为好几个基本类别名称,如:com﹑org﹑edu 等;再下面是组织 名称,如:IBM﹑Microsoft﹑Intel 等;继而是主机名称,如:www﹑mail﹑ftp 等[2]。 一个具体的 DNS 运作过程如下: 1. 当被询问到有关本域名之内的主机名称的时候,DNS 服务器会直接做出回答; 2. 客户端向服务器提出查询项目; 3. 当被询问到有关本域名之内的主机名称的时候,DNS 服务器会直接做出回答; 4. 如果所查询的主机名称属于其它域名的话,会检查缓存(Cache),看看有没有相关资料; 5. 如果没有发现,则会转向 root 服务器查询; 6. 然后 root 服务器会将该域名之下一层授权(authoritative)服务器的位置告知(可能会超过 一台) ; 7. 本地服务器然后会向其中的一台服务器查询,并将这些服务器名单存到缓存中,以备将 来之需(省却再向 root 查询的步骤) ; 8. 远方服务器回应查询; 9. 若该回应并非最后一层的答案,则继续往下一层查询,直到获得客户端所需的结果为止; 10. 将查询结果回应给客户端,并同时将结果储存一个备份在自己的缓存里面; 11. 如果在存放时间尚未过时之前再接到相同的查询,则以存放于缓存里的资料来做回应。 从这个过程我们可以看出,没有任何一台 DNS 主机会包含所有域名的 DNS 资料,资料都 是分散在全部的 DNS 服务器中[3]。 2.1 DNS 协议报文结构 通过研究发现,DNS 协议分成包头和数据两部分。如图 1 所示,该报文由 12 字节的首 部和 4 个长度可变的字段组成。 图 1 DNS 报文结构 http://www.paper.edu.cn 中国科技论文在线 -3- 以下会详细介绍个字段: 1. 标识 标识字段由客户程序设置并有服务器返回结果, 16 位,在对应的 query 和 response 报文 中有着相同的 ID,可以在抓到的包中配对请求和应答报文,提取相关信息,同时也可以根 据他们的时间戳大致估计 DNS 的相应时间。 2. 标志 标志字段长 16bit,结构如图 2 所示: 图 2 标志字段结构 标志字段各字段解释: QR(查询 /响应):这是定义报文类型的字段。若为 0,就是查询报文。若为 1,就是 响应报文。 OpCode:这是 4 位字节段,定义查询或响应的类型(若为 0 则表示是标准的,若为 1 则是反向的,若为 2 则是服务器状态请求)。 AA(授权回答):这是 1 位字节段。当它置位时(值为 1,下同),表示名字服务器 是权限服务器。它只用在响应报文中。 TC(截断的):这是 1 位字段。当它置位时,表示响应已超过 512 字节并已截断。 RD(要求递归):这是 1 位字段。当它置位时,表示客户希望得到递归回答。它在查 询报文中置位,在响应报文中重复置位。 RA(递归可用):这是 1 位字段。当它在响应中置位时,表示可得到递归响应。它只 能在响应报文中置位。 未知 1、未知 2 均为新增字段。 保留:这是 1 位字段,置为 0。 RCode:4 位字段,表示在响应中的差错状态。当然,只有权限服务器才能做出这个判 断。下表 1 是该字段的一些可能值: 表 1 RCode 的一些可能值 Tab.1 The possible values of RCode 值 意义 值 意义 0 无差错 4 查询类型不支持 1 格式差错 5 在管理上被禁止 2 问题在域名服务器上 6-15 保留 3 域参照问题 3. 问题数部分 问题部分报文格式如图 3 所示。 图 3 问题部分报文格式 查询名:为要查找的名字,它由一个或者多个标示符序列组成。每个标示符已首字节数 http://www.paper.edu.cn 中国科技论文在线 -4- 的计数值来说明该标示符长度,每个名字以 0 结束。计数字节数必须是 0~63 之间。该字段 无需填充字节。如: gemini.tuc.noao.edu。 查询类型:每个问题有一个查询类型,通常查询类型为 A(由名字获得 IP 地址)或者 PTR(获得 IP 地址对应的域名)。具体类型有如表 2 所示。 表 2 查询类型 Tab.2 Query types 类型 助记符 说明 1 A IPv4 地址 2 NS 名字服务器 5 CNAME 规范名称。定义主机的正式名字的别名 6 SOA 开始授权。标记一个区的开始 11 WKS 熟知服务。定义主机提供的网络服务 12 PTR 指针。把 IP 地址转化为域名 13 HINFO 主机信息。给出主机使用的硬件和操作系统的表述 15 MX 邮件交换。把邮件改变路由送到邮件服务器 28 AAAA IPv6 地址 252 AXFR 传送整个区的请求 255 ANY 对所有记录的请求 类域(class):置为 0x0001 即可。 4. 资源记录部分 资源记录部分是 DNS 协议的最后 3 个字段,回答字段,授权字段和附加信息字段均采 用资源记录 RR(Resource Record)的相同格式。报文格式如图 4 所示。 图 4 资源部分格式 各字段解释: 域名:是记录中资源数据对应的名字。它的格式和查询名字段格式相同。 类型:说明 R R 的类型码。类通常为 1,指 Internet 数据。 类域(class):这个字段与问题记录的查询类型字段相同。 生存时间:字段是客户程序保留该资源记录的秒数。 数据长度:说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类型 1(A 记录)资源数据是 4 字节的 I P 地址[4]。 2.2 DNS 实例报文 通过报文捕获工具捕获 DNS 报文,得到用户请求 DNS 报文和服务器返回 DNS 报文两 种报文格式。分别如图 6 和图 7 所示。 http://www.paper.edu.cn 中国科技论文在线 -5- 图 6 用户请求 DNS 报文格式 图 7 服务器返回 DNS 报文格式 3.DNS 监测系统设计 3.1 DNS 协议报文结构 结合现有网络协议分析与流量监测技术,在广域网环境下,设计一个基于协议分析的网 络流量监测系统, 通过使用流量监控设备可以将 TCP/IP 网络中传送的数据包完全截获下来, 并根据需求启用数据包捕获过滤机制,进行过滤和协议分析,进而解析还原得到我们所需要 的网络信息,然后利用关键字过滤技术,结合 DNS 服务器需求,达到对特定信息的快速获 取和跟踪的目的。它可以作为一个实用工具使用于网络管理、故障分析和入侵检测等。对于 DNS 服务器,系统主要提供对 DNS 请求重定向、用户黑白名单设定、 DNS 服务器性能、流 量趋势分析、用户请求流量统计分析等情况 [5]。 3.2 系统总体架构模型系统主要功能模块 http://www.paper.edu.cn 中国科技论文在线 -6- 图 8 DNS 服务器监测系统架构 3.3 系统主要功能模块 http://www.paper.edu.cn 中国科技论文在线 -7- 图 9 DNS 服务器监测系统主要功能模块 3.4 流量报文捕获模块实现 流量报文捕获模块主要通过 TMA 流量监测平台来实现。 TMA(Traffic Monitoring & Administrator)是北京宽广电信高技术发展有限公司积多年开发宽带交换设备的经验,结合 长期宽带网络基础技术的研究成果,针对以互联网 IP 技术为核心的各级网络实际运行过程 中出现的流量监控和管理问题, 开发的具有完全自主知识产权的新一代网络流量监控管理系 统,由硬件探针( TMA 1100)、光分路合路器( OptiSwap)和流量监控中心服务器( TMA Server)构成。 TMA 流量监测平台能实现对流量的监视、多协议的业务识别、以及流量控 制[6]。 3.5 网络协议分析模块实现 网络协议分析模块主要是对捕获的报文( DNS 协议)进行解封装,提取相应信息。本 模块的功能为: 1. 解析捕获报文,提取 DNS 协议段。 2. 实时分析 DNS 报文数据,得到响应时间、用户请求时间、请求域名、用户和 DNS 服务器的 IP 地址等信息。 3. 将分析数据传递给数据存储模块,数据存储模块将数据存入数据库,供上层应用分 析和调用。 3.6 数据存储设计实现 监测流量经分析后以数据表的形式存在于数据库中。针对每一种形式的流量,数据库提 供一种形式的数据库表对其进行存储,供读取、分析、使用。由于抓取时间是连续的,所以 每一个数据库表的数据时间均是连续的。一个普通的流量分析数据表格设计大致如下表 3。 http://www.paper.edu.cn 中国科技论文在线 -8- 表 3 数据库表的设计 Tab.3 Design of Database table 字段名 类型 长度 为空 Time numeric(16,6) x SrcIP int8 8 x DestIP int8 8 x Destination varchar <64 x 字段解释: Time:流量报文抓取的时间。 SrcIP:源 IP 地址。 DestIP:目的 IP 地址。 Destination:目的类型、 URL 等。 3.7 查询模块设计实现 查询模块主要是负责数据显示。主要包括服务器端模块、服务器端客户端交互模块、以 及客户端显示模块。 服务器端模块主要由 struts2 框架实现。包括了权限管理模块、数据库连接池模块、系 统配置模块、定时器任务管理模块、图表绘制模块。从整体上对系统起到了一个支撑作用, 负责了系统的管理配置、数据库连接、一些定时任务的执行、页面图表的绘制等功能。 服务器客户端交互模块主要是采用了 ajax 技术来方便客户端页面异步地和服务器进行 通信,主要用于一些动态图表的更新,如 DNS 服务器的 CPU 占用率等,还用于异常通知管 理。当配置系统时,由于系统的实时实施性,配置不一定成功,这时需要通过客户端服务器 端交互模块,在不占用当前客户端访问线程的情况下将通知记录并反馈给用户。 客户端显示模块主要是页面的显示,显示数据列表、图标、配置文件等 [7]。 4.DNS 网络监测系统的实现 4.1 系统运行环境 本系统以宽广电信 TMA 为监测设备, 编程语言采用 JAVA 语言, 数据库采用 PostgreSQL 数据库,开发工具采用 Eclipse。本系统采用标准的 DNS 协议和纯 JAVA 语言,这样有利于 保证系统的通用性和平台无关性。 4.2 系统性能 系统的性能显示就是将采集到的性能数据系统的性能显示就是将采集到的性能数据以 用户需要的方式表现出来,以供用户监测网络的性能制定性能管理的策略。性能显示可以是 实时的或历史的,通过性能监测实时显示图 (如图 10、图 11 所示),我们可以看出 DNS 服务 器的工作状态和用户访问网络的一些行为,以便网络管理员能更好的调控网络流量,使网络 整体流量趋于合理,从而提高网络的整体性能。通过图表,可以方便地对当前 DNS 服务器 的运行情况进行一个良好的检测效果, 得到 DNS 服务器的服务的一个趋势图。 如图 10 所示, 这是一个 DNS 服务器运行趋势的图表。 http://www.paper.edu.cn 中国科技论文在线 -9- 图 10 DNS 服务器监测系统得出的 DNS 服务趋势图 同时,也可以对用户行为进行一个详细的分析,对用户请求的域名网站进行一个全面的 分析和排名, 从而可以得知用户群的上网特征。 如图 11 所示, 这是用户请求域名的一个 TOP 10 排名图。 图 11 DNS 服务器监测系统得出的用户请求域名排名 图 12 DNS 服务器监测系统得出的域名访问分析 图 12 则完整的显示了一个域名在各个采集时间点的请求情况。通过该图表可以清晰地 了解到该域名的访问热门程度、该域名所在 DNS 服务器的性能情况。通过该类分析可以精 http://www.paper.edu.cn 中国科技论文在线 -10- 准定位用户的访问历史,从而可以指定完善的商业推送策略。 5.总结 本系统采用 JAVA 语言编写,通用性好,可扩展性强,能有效的在该系统所设计的接口 上进一步进行业务开发,使用简捷、直观、方便,并在大型骨干网上进行了试运行,实现了 实时监控 DNS 网络设备和链路并利用历史性能数据分析和预测网络趋势等基本功能。但是 如何应增强网络性能管理中的主动性、智能性,使网络可以自动及时地调整自身状态,减少 人工参与,这些都是我们亟待解决的问题。 参考文献 [1] 郑人杰等. 《实用软件工程》(第二版) [M] . 北京:清华大学出版社, 2003 年. [2] 互动百科. DNS 协议 [OL] . http://www.hudong.com/wiki/DNS%E5%8D%8F%E8%AE%AE, 2004 年. [3] Wikipedia. Domain Name System [OL] . http://en.wikipedia.org/wiki/Domain_Name_System, 2006 年. [4] 谢希仁. 《计算机网络》(第四版) [M] . 北京:电子工业出版社, 2005 年. [5] 刘芳. 《网络流量监测与控制》(第一版) [M] . 北京:北京邮电大学出版社, 2009 年. [6] 张玮. 基于协议分析的网络流量监测系统研究与开发 [D] . 长沙:中南大学, 2008 年 4 月. [7] Bruce Eckel. 《Thinking in JAVA》(The 4th Edition) [M] .北京:机械工业出版社, 2007 年. A Traffic Monitoring System Based on DNS Analysis Luo Haifeng Department of Information and Communication engineering of Beijing University of Posts and Telecommunications, Beijing, PRC, (100876) Abstract In this paper, a new network traffic monitoring system which is based on DNS protocol analysis is designed, combined with network protocol analysis and network flow monitoring technology. Data packages of TCP/IP network can be captured by network traffic monitoring equipment, and it can be analyzed through data package filtering mechanism according to requirement, then the information we care about which is related to DNS will be resolved and be retrieved from the complicated protocols. The key word filtering technology will also be used and combined with the requirement of DNS service provider, the goal of DNS servers' deployment and the behavioral analysis of the whole users all can be captured and tracked quickly and completely. So this system is not only make DNS server's deploying more convenient, but also a better way to make policy for user's business service pushing. Keywords: DNS; Protocol analysis; Traffic monitoring; User’s behavioral analysis 作者简介: 罗海峰,男, 1985 年生,硕士研究生,主要研究方向是宽带 IP 网络。 http://www.paper.edu.cn 中国科技论文在线
还剩9页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

juwell913

贡献于2012-10-24

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf