目前,复旦大学共有5 台D N S 服务器分布于四校区,其中两台作为复旦域名名称服务器(Name Server),同时提供其他域名的递归解析服务。因此,D N S 服务直接关系到两方面内容:1. 公众访问复旦大学相关站点的质量;2. 校园网用户的网络访问质量。D N S 的性能指标和统计分析,成为信息化建设的一个关注点。建立一个功能全面完善的DNS 监控系统,提供DNS 服务关键信息的统计和分析,帮助排查网络故障,进行安全预警,具有重要的意义。
以使用最为广泛的DNS 软件ISC BIND 为例,对于BIND 服务的监控和统计,可以采取执行命令或使用第三方程序如DNSTOP 的方式获取BIND 进程的CPU、内存和网络等资源消耗情况,并通过编写脚本来统计BIND 产生的日志,获取相应的查询记录。但当DNS 服务处于高负载的条件下,这种方式无法及时处理迅速增长的日志,同时频繁的日志读取很快会带来I/O 上的瓶颈,甚至影响到DNS 服务的质量。
因此,本文提出了一种分布式架构的D N S 实时监控系统的设计方案,利用流式数据存储和分布式计算实时处理D N S 性能数据,改变了传统通过人工排查D N S 故障的方式,提高了D N S 服务关键信息统计和分析的效率,提升了系统的稳定性和安全性。
DNS 运行流程与性能指标
根据服务类型,D N S 可以分为递归和迭代两种。如图1 所示,当用户要访问目标域名时,首先查询本地D N S 缓存,如果没有该域名的解析记录,则向本地D N S 服务器提交查询请求,由本地D N S 服务器代为解析,这一过程称为递归。其中,本地D N S 服务器接收到请求后,首先判断本地缓存中是否有该域名解析记录。如果有则直接返回相应的I P 地址;如果没有则向十三台根域名服务器提交查询请求,并以迭代方式轮询,直到获知该域名的解析结果。
上述过程中产生了大量的数据交互,为了了解D N S 的运行服务状况,我们需要对DNS 的各项指标进行实时监控。除了常规的CPU、内存、I / O、网络和进程状态之外,还需要针对D N S 的各类请求进行更细粒度的监控和分析。
首先,需要对D N S 实时请求数、A 类地址查询数、C N A M E 类地址查询数、M X 邮件交换查询数、A A A A I P v6 地址查询数等不同类型的D N S 查询进行分析和统计,计算各类型的数量及比例,帮助管理员在总体上掌握网络概况。
其次,分析和统计不同域名的请求次数和频率,可以了解各业务系统的访问状态,以及互联网访问的集中区域。
再次,通过统计和分析DNS 请求的IP 来源也可以从宏观上掌握整个校园网的网络请求来源分布和热点区域;特别对于对外提供访问服务的站点,可以获知来访者在地区上的分布情况。通过以上信息,我们可以实时获取D N S 的运行状态,以及电子邮件、网站等访问情况。根据校园网用户的D N S 请求I P 来源统计,我们还可以判断出校园网热点区域,这些信息可以辅助我们判断网络状况。假如某个区域在一段时间内的D N S 请求数相比最近的一段时间,出现急剧下降的情况,很可能是该区域的网络连接出现了故障,如果出现急剧上升的情况,很可能是该区域存在恶意访问行为。这些信息都可以帮助管理员在第一时间内追踪问题根源。同时,通过监测来自互联网的D N S 请求,分析和统计其I P 来源、请求对象和频率,可以发现包括D N S 放大攻击在内的恶意请求,也可以有针对性地对爬虫的请求进行过滤和屏蔽。
最后,从用户体验的角度进行响应时间及DNS 服务可用性监测。用户的网络访问首先要通过D N S 解析获取所要访问域名的I P 地址,因此D N S 的服务质量直接关系到网页加载和页面打开的速度,影响用户对网络质量的整体感受。为了更深层次地了解DNS 的服务质量,还需要模拟用户向D N S 发出请求的过程,对D N S 响应结果和响应时间进行检测。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。