dns管理软件

2024-05-11

dns管理软件(精选12篇)

dns管理软件 篇1

wddns是一套可通过web在线管理的智能DNS系统,基于bind+mysql构建开发,安装方便,快速,让你可在最短时间内架构一套DNS/智能DNS系统.目前支持电信/网通/教肓网/移动/铁通/广电/按省份解析(31个省市)/搜索引擎蜘蛛等多线路,具有强大的监控功能,服务器健康检测,即宕机检测和切换,DNS服务器健康监控,宕机切换,防攻击检测,可选自动屏蔽攻击者IP,易扩展DNS服务器,数据自动同步等

结合wdcdn,即可组建一个自己的CDN网络,甚至可以架构一套大型或N多节点的CDN系统以及一套功能强大,高防的智能DNS系统

功能列表可设置或扩展N多台DNS服务器,默认是两台,如ns1.wddns.net,ns2.wddns.net后台增加/修改/删除域名,实时生效后台管理A记录,NS记录,MX记录,PTR记录,实时生效多用户功能,可限制普通用户的域名数量,记录数量健康检测,即宕机检测和监控,报警可发邮件或短信宕机切换,监控发现故障后,可选择故障切换(前提是有多台服务器)多台DNS服务器数据自动同步,也可手动同步某一台NS服务器数据负载均衡,可设置多台服务器现实均衡解析解析线路细分,按省,运营商,划分,即是可以按省份解析,还有针对搜索引擎的蜘蛛解析请求查询统计,可按小时,按天统计报表防攻击检测,可设置攻击的请求查询频繁值,并可选是否屏蔽攻击者IP,有攻击时自动屏蔽攻击者IP 12 DNS服务器监控,并可设置是否故障切换,即DNS服务器故障时切换至其它DNS服务器。

运行环境硬件要求

A 一般中等硬件配置就可,如Q8400,i3,i5等,对CPU要求不高

B 内存在2-16G不等,一般建议在4G,8G更好

C 硬盘要求不大,500G的都足够,现在硬盘也基本500G以上,可以SAS,SATA接口类型,还可以是SSD系统要求

A linux系统,支持版本wdOS/wdlinux_base/CentOS5.x,推荐wdOS

B 可以是32位,64位,大内存建议使用64位

C 安装wddns前,需先安装好wdcp 2.X版本,因为wddns需要用到wdcp的基础功能。

更多介绍可进 dns管理软件

dns管理软件 篇2

2015年第二届国家网络安全宣传周即将启动,5月底就传出各种网络攻击事件。先是支付宝短暂断网,后澄清是“施工被断光纤”,接着“携程故障,24小时以上不能提供服务,具体故障原因不明”,然后传出黑客公开要攻击国家重点网络设备。网络形势表明,网络安全无论是对于普通用户,还是对于服务器管理员已经到了非常重要的程度。

DNS服务器作为网络核心服务之一,是网络攻击的首要目标,如何做好DNS服务器的管理是服务器管理员的主要目标。

1DNS服务简介

1.1DNS简介

DNS是域名系统(Domain Name System)的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址。通常Internet主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。Internet的顶级域名由Internet网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为Internet的每一台主机分配唯一的IP地址。全世界现有三个大的网络信息中心:位于美国的Inter-NIC,负责美国及其他地区;位于荷兰的RIPE-NIC, 负责欧洲地区;位于日本的APNIC,负责亚太地区。

用户通过访问域名,DNS服务器解析域名,返回用户IP地址,完成整个服务。DNS服务器就是网络中提供地址解析服务的网络服务器。

1.2近期攻击事件

2014年12月10日,爆发了今国内规模最大的针对运营商DNS网络的恶性DDo S攻击事件。攻击是从12月10日凌晨开始,现场网络监控到攻击流量突增的情况,多个省份不断出现网页访问缓慢,甚至无法打开等故障现象。经过分析样本发现, 12月10日的攻击主要是针对多个域名的随机查询攻击,造成多省的DNS递归服务器延迟增大,核心解析业务受到严重影响。

2014年1月21日发生全国大部分网站不能访问的情况, 事后国家互联网应急中心发布通告宣称,此次事件是由网络攻击导致国内互联网用户访问国际域名解析服务时出现异常。

事实上,针对DNS的攻击就一直没有中断过。2009年国内断网,2010年baidu网络域名被劫持事件,2011年电信宽带断网事件等,网络攻击者针对DNS服务的攻击一直持续不断。 笔者作为DNS服务器管理员在日常维护中经常遇到对DNS服务器的各种攻击。

2DNS相关的攻击类型及原理

2.1针对DNS服务器的DDoS攻击

分布式拒绝服务(DDo S:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDo S攻击,从而成倍地提高拒绝服务攻击的威力。这类攻击就是向受害者DNS服务器发送大量的DNS解析请求包,由于DNS服务器每秒查询的次数有限, 使得它忙不过来造成拒绝服务,从而发生故障。

简单说就是攻击者可以借助多个肉鸡同时向DNS服务器发起请求,从而引起服务器解析故障,造成服务宕机。

2.2DNS反射型攻击

大量主机伪造受害者ip向网络上的大量开放式递归DNS服务器发送DNS查询请求包。由于开放递归DNS服务器并不对请求包进行地址真实性验证,因此都会进行应答,这样受害者将同时接收到大量的DNS请求应答包,堵塞受害DNS服务器的网络,最终形成拒绝服务攻击。

这种攻击利用了递归查询的漏洞,攻击者伪造DNS服务器ip向递归查询DNS服务器发起查询请求,递归查询DNS服务器返回请求,当这种请求达到一个量级,就对正常DNS服务器形成了一种DDo S攻击。

2.3针对用户的DNS劫持

dns劫持就是本来你想访问百度的网站www.baidu.com,结果输入域名后返回给你的是搜狐的服务器ip,那么自然显示在浏览器中的也就是搜狐的页面。那么这是怎么发生的呢?

首先的原因是DNS服务器地址被劫持。用户的网络中的DNS服务器地址被修改为恶意的DNS服务器。当你访问网络时,你访问的任何域名都被解析成其他的地址。

但是这种情况一般是不会发生的,因为恶意人员登录不了的路由器修改不了DNS服务器地址,就更修改不了你本机的DNS设置。不过当几个小的漏洞结合在一起的时候就成为了大的漏洞。比如之前出现过的路由器劫持事件。

还有一种情况是用户的hosts文件被修改。根据解析流程来看,如果要解析www.qq.com的ip,系统会首先访问hosts文件, 看看有没有相关的绑定。如果有直接返回绑定ip,如果没有访问DNS服务器进行解析。如果hosts文件被修改,那么用户访问绑定域名就会访问绑定ip。

还有一种劫持就是直接劫持域名服务器根服务器,这种情况比较少见,但也有出现的例子。

2.4侵入DNS服务器修改记录。

针对网络服务提供商的DNS地址,进行暴力入侵DNS服务器,获取管理员权限,直接进行域名记录修改。这种方式比较困难,但也是存在着可能。

2.5缓存区中毒攻击

恶意人员向受害DNS服务器发送域名的解析请求,然后抢在权威服务器应答前伪造应答包发送给受害服务器。这样错误的解析记录就保存到了缓存中,那么接下来缓存时间内所有该域名的解析就都是错误了。这种攻击伪造的是回答资源记录, 攻击时间很短,效率低。

3DNS服务器安全管理与防范

DNS服务是网络基础服务,由于网络的自适应性,DNS采用的面向非连接的UDP协议,但UDP协议又是不安全的,而域名的树形结构是为了便于查询服务,这都使得单点故障明显, 网络安全威胁加剧。要提高DNS服务器安全,有以下几种思路:

3.1把DNS服务器放在网络内部区域

在网络设计过程中,把DNS服务器放在安全区域。访问互联网时,先有防火墙进行安全保护,现在防火墙产品可以有效抵御大多数网络攻击。

3.2提高DNS服务器的安全配置和硬件等级

DNS服务器内部的安全防护策略有很多,应针对DNS服务器安全设定高优先级防护策略。首先要对服务器进行专一化服务,去掉各种不需要的网络服务,DNS服务器的防火墙也要打开,只开放管理端口和53端口,使用非root权限、隐藏DNS服务器软件的版本信息,降低针对漏洞进行的DNS攻击。设置单一ip管理,也就是只有固定的ip才能进入修改记录和管理。 提高硬件等级,可以提高服务器响应处理能力,面对DDo S攻击时能提高处理能力。

3.3根据需要分ip进行递归查询

一般把DNS服务器的查询ip进行区分,可信任的ip可以进行递归解析,不信任的或不属于区域的ip地址一律不给于递归查询,只能进行权威查询。这样可以防止恶意递归查询攻击。

3.4加强DDoS攻击的防护

目前的域名服务器有自己搭建的bind系统,也有购买的智能DNS系统。目前已经有了针对DDo S攻击的防护产品,必须增加DNS服务器的DDo S防护模块,加强DNS服务器的DDo S攻击防护是服务器管理员的重要工作。

3.5要做好DNS服务器系统的定期升级服务

这里有操作系统的升级和DNS应用系统的升级。服务器应不仅使用最新版本的DNS服务器软件,随时更新版本,及时下载并安装相应的补丁程序,预防攻击者利用软件漏洞进行攻击,也要经常操作系统升级,防止攻击者利用操作系统漏洞攻入服务器。

DNS安全管理刻不容缓 篇3

2014年1月,中国所有通用顶级域的根服务器出现异常,导致国内大部分用户无法正确解析域名,对全国互联网链接造成系统性影响,引暴互联网DNS安全讨论热潮。

“简单来说DNS就是域名解析服务,它就像互联网的一个电话簿,提供终端到IP地址的指向,也就是说没有它或者说攻击它,就会使所有终端都无法找到正确的应用。”Infoblox大中华区的售前经理邱迪解释说。

在Gartner研究机构的最近一篇报告中指出:“企业在2013年遭遇的DDoS问题飙升。Gartner估算,从2012年9月到2013年9月DDoS(DNS是DDoS攻击的热点目标之一。)问题咨询量翻了四倍。针对企业网络的更大规模且基于应用的DDoS攻击将迫使首席信息安全官(CISO)和安全团队寻求新的、积极的解决方案,以减少由此造成的宕机时间。”

为什么DNS攻击会在近两年愈演愈烈?“因为,它是理想的攻击目标。”邱迪说。

据悉,DNS中断造成的损失很大,而攻击成本却不高。邱迪解释,例如要对新浪或者腾讯的服务器发动一次大规模攻击,由于分布式的云解决方案,可能需要大量的资源才能攻下来。但是,如果攻击它的DNS解析,1G或者5G的流量就可以了。

除此之外,DNS本身也“漏洞百出”。古老的DNS协议伴随着互联网诞生,现在平均每个月或者每个季度都有一个严重的补丁爆出。“据不完全统计,大概60%以上的用户都没有打补丁,而且仍然在对外提供服务。”邱迪说。

看到了这一市场环境,Infoblox结合自身产品推出了Infoblox Advanced DNS Protection(高级DNS防护)解决方案。“这是集成防御分布式拒绝服务(DDoS)攻击、缓存毒害、异常查询、隧道技术以及其他DNS安全威胁的域名系统(DNS)设备。”Infoblox公司中国区总经理王平说。

Infoblox解决方案将防御功能直接加入到强化的DNS服务器中,可提供多级防御。包括:首先,独特的威胁检测与削减能力。Infoblox Advanced DNS Protection可智能分析进站DNS查询,并可将真实用户的合法流量与DNS DDoS攻击产生的恶意流量区分开来。通过这些信息,Infoblox设备就会抛弃DDoS流量,而只对合法查询做出响应。这样就能在DDoS攻击时保持业务的持续在线运营,而传统的响应率限制方法只是简单地限制DNS查询响应数量,导致所有流量变慢。其次,持续防护不断进化的威胁。自动更新服务定期向Infoblox Advanced DNS Protection设备发送新规则,确保不断进化的威胁一经发现即可起到保护作用,而传统安全修复与更新则需要等待数周时间。最后,也是最吸引人的集中可见性与透明度。企业和服务供应商可通过一个独立控制界面发现其网络上所有流经Infoblox Advanced DNS Protection的异常DNS流量,实现早期检测,有助于实施更有效的防御。“它可以报告DNS攻击,以及提示遭受攻击的种类,关呈现与攻击相关一些信息、报表,帮助管理员去了解当前这类攻击的情况,以便做出相应防护。”邱迪说。

DNS系列二:搭建DNS服务器 篇4

1、正向查找区域:用于计算机名到IP地址的映射,当DNS客户端向DNS服务器发起请求要求解析某个计算机名的IP地址时,DNS服务器在正向查找区域中查找,然后返回给DNS客户端相应的IP地址

2、反向查找区域:用于IP地址到计算机名的映射。当DNS客户端向DNS服务器发起请求要求解析某个IP地址对应的计算机名时,DNS服务器在反向区域中查找,然后返回给DNS客户端相应的计算机名

3、主要区域:包含相应DNS命名空间所有的资源记录,是区域中包含的所有DNS域的权威DNS服务器。有权限对域中所有资源进行读写,DNS服务器可以修改此区域中的数据

4、存根区域:此区域中包含了用于分辨主要区域权威DNS服务器的记录,有三种

① SOA记录:又叫区域起始授权记录,用于识别该区域的主要来源DNS服务器和其它区域属性

② NS记录:又叫名称服务器,包含了此区域的权威DNS服务器列表

③ A记录:又叫粘连A记录,包含了此区域的权威DNS服务器的IP地址

下面我们来看一个试验:创建正向查找区域

试验环境如下

在DNS服务器florence上操作

打开控制面板→添加或删除程序→添加/删除windows组件

双击“网络服务”

选择“域名系统”单击“确定”

单击“下一步”

安装完成后我们试一下看是否安装成功呢?

DNS所用的端口是UDP53和TCP53,因此我们只需要检查53端口是否出现就可以了

在命令提示符下输入:netstat –an | find “53”

如下图所示

新建区域

打开管理工具中的“DNS”

在正向区域上面右击,选择“新建区域”

单击下一步

选择“正向区域”,单击下一步

区域名称:luwenju.com,单击下一步

区域文件:在此选择默认,单击下一步

动态更新:选择“允许非安全和安全动态更新”,如果是在域的环境下一定要选择允许动态更新,

单击下一步

修改SOA记录

在起始授权记录上右击,选择“属性”

在主服务器中输入:florence.luwenju.com 单击确定

修改NS记录

在名称服务器上右击,选择“属性”

选择“编辑”

在服务器完全合格的域名中写入:florence.luwenju.com. IP地址为192.168.1.100 单击确定

按F5键刷新,如下图所示,多了一条A记录

关于DNS服务的停止和启动:

在命令提示符中输入 Net stop dns :停止DNS服务

Net start dns :启动DNS服务

客户机测试

dns管理软件 篇5

为了帮助一些新手朋友更好的了解DNS服务器,本文和大家讨论一些部署DNS服务器的经验和常识,介绍DNS服务器可以胜任的角色,以及DNS服务器在网络中应该部署的位置,还有,对于你的网络来说,应该部署多少DNS服务器才是最佳选择。

你需要多少DNS服务器?

一般来说,对于一些大型网络,仅仅依靠一个DNS服务器来满足名称解析的需要,不是一个最佳的方式。那么到底多少个DNS服务器才能满足你的需要呢?涉及到的因素可能很多,让我们从DNS服务器的能力开始说起。

即时你的DNS服务器是一台中等配置的服务器,它能处理的名称解析请求也是惊人的。举个例子来说,以前在一篇老的微软文章中看到过,把安装在一台Pentium III 700MHz的计算机上Windows Server 2003作为一台专门的DNS服务器,它能够每秒处理一万多个名称解析。如果微软的这个数据正确的话,你可以根据你的网络中的名称解析的数量,来估算一下你需要的DNS服务器数量。

除非你工作在一个大型公司,当你看到这个数字的时候,可能会想你的DNS服务器可能永远不会达到这个负载,那么是不是部署一台DNS服务器就足够了呢?

有很多理由可以说明,部署一个单一的DNS服务器是一个很差的想法。我将在文章中介绍这些不同的理由。其中最具说服力的一个理由就是容错的问题。如果你的网络中只有一个DNS服务器,而一旦这个DNS服务器出了问题,那么你的网络将停止正常运行。因此,出于容错的目的,你将至少需要部署两台DNS服务器

DNS服务器角色

容错只是需要部署多DNS服务器的不同理由之一;一个DNS服务器可以完成多个不同的任务。公司通常根据这些DNS服务器所行使的角色,来决定是否要部署多台DNS服务器。或者,从性能上来说,一台DNS服务器可以完美的同时胜任多个角色,但是从安全角度来讲,让一个DNS服务器同时做很多其他事情显然不是一个好想法,尤其是这个DNS服务器要被曝露在外部的话,更加不安全。即使不考虑安全方面的问题,让一个DNS服务器干两样工作显然也会影响这个服务器的性能。

在下面的部分,我将介绍一个DNS服务器可以担任的不同角色,以及担任这些角色对DNS的影响。

提供互联网接入

从技术上来说,一个DNS服务器本身并不提供互联网接入服务。但是,它使你的网络中的用户可以访问互联网。我相信大家应该知道,每一个网站都对应一个相应的IP地址。为了访问一个网站,计算机必须知道这个站点的IP地址。因此,每一个访问网站的计算机都需要进行一个DNS查询来获得被请求网站的IP地址。

如果你只是想为你的网络中的用户提供互联网接入,那么从技术上来讲,你并不需要部署一个DNS服务器,通常情况下,你的网络服务提供商都有自己的DNS服务器,你可以使用它们。你只需要在网络属性中TCP/IP配置中,在首选DNS中输入你的网络提供商的DNS服务器地址就可以了。

尽管网络接入商提供了DNS服务器供用户使用,从而要想实现网络访问并不一定需要部署一个本地的DNS服务器,但是很多公司还是选择部署一个本地DNS服务器,好处是拥有一个本地DNS服务器可以节省带宽资源,因为它可以缓存已经解析过的地址。

举个例子来说,假若你的网络中的某个人需要访问Google的网址www.google.com。他在浏览器中输入这个网址后,浏览器到DNS服务器上去解析google.com的域名。你的DNS服务器然后将这个查询往上提交到你的网络接入商的DNS服务器。网络接入商的DNS服务器将解析后的信息发回给本地DNS服务器,再返回给最初发出请求的浏览器。

这个过程听起来似乎有些低效,但是你的DNS服务器现在知道了Google网站的IP地址。当另一个用户试图访问Google网站的时候,本地DNS服务器已经知道到了这个IP地址,因此它不再将请求转发给你网络接入商的DNS服务器。你可以部署一个缓存DNS,不用必须登记你的DNS服务器的IP地址。事实,从安全角度来看,这也是最佳选择,你可以使用一

dns管理软件 篇6

其实对于 DNS 漏洞,我们普通用户唯一的解决方案就是使用一个安全的 DNS 解析服务器。但什么是安全的 DNS 还真是很难界定。今天介绍这个 Web 界面的 DNS 漏洞测试工具就是个不错的方案。您只需要访问这个网站,点击页面中的 Test My DNS,稍等片刻即可知道你的 DNS 是否安全,

结果就像下图所示。

我使用的是 OpenDNS,安全性确实不错,都达到了 Great。而当我将 DNS 服务器换成网通 ADSL 自动分配的 DNS 服务器时,我真是彻底被雷到了,结果竟然是一个 Great 一个 Poor。看来网通很多的 DNS 服务器还没有打补丁或是做相应的漏洞修复工作,使用这样的 DNS 还是相当危险的。

您不妨也用这个东西测一下您正在使用的 DNS。当然,如果您测出 Poor 的话也不用担心,换用 OpenDNS 就是个很好很简单的解决方案。具体方法是在你的网络连接(或路由器)中,将 DNS 由自动改为 208.67.222.222,就可以用上安全的 DNS 了。

基于DNS攻击的安全加固策略 篇7

1 DNS存在的安全问题

DNS服务面临的安全问题主要包括:DNS欺骗 (DNS Spoffing) 、拒绝服务 (Denialofservice, DoS) 攻击、分布式拒绝服务攻击和缓冲区漏洞溢出攻击 (BufferOverflow) 。

1.1 DNS欺骗 (DNS Spoffing)

DNS欺骗即域名信息欺骗是最常见的DNS安全问题。当一个DNS服务器掉入陷阱, 使用了来自一个恶意DNS服务器的错误信息, 那么该DNS服务器就被欺骗了。DNS欺骗会使那些易受攻击的DNS服务器产生许多安全问题, 例如:将用户引导到错误的互联网站点, 或者发送一个电子邮件到一个未经授权的邮件服务器。网络攻击者通常通过三种方法进行DNS欺骗。图1是一个典型的DNS欺骗的示意图。

1.1.1 缓存感染

为了提高解析效率, DNS将收到的有关域名与IP地址的映射信息存放在高速缓存中。对以后相同的请求, DNS直接使用缓存中的信息。如果黑客使用DNS请求将数据放入DNS服务器的缓存当中。这些缓存信息会在客户进行DNS访问时返回给客户, 从而将客户引导到入侵者所设置的运行木马的Web服务器或邮件服务器上, 然后黑客从这些服务器上获取用户信息。

1.1.2 DNS信息劫持

入侵者通过监听客户端和DNS服务器的对话, 通过猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号, DNS服务器根据这个ID号获取请求源位置。黑客在DNS服务器之前将虚假的响应交给用户, 从而欺骗客户端去访问恶意的网站。

1.1.3 DNS复位定向

攻击者能够将DNS名称查询复位向到恶意DNS服务器。这样攻击者可以获得DNS服务器的写权限。

1.2 拒绝服务攻击 (Denial of service, DoS)

黑客主要利用DNS软件的漏洞, 如在BIND9版本 (版本9.2.0以前的9系列) 如果有人向运行BIND的设备发送特定的DNS数据包请求, BIND就会自动关闭。攻击者只能使BIND关闭, 而无法在服务器上执行任意命令。如果得不到DNS服务, 那么就会产生一场灾难:由于网址不能解析为IP地址, 用户将无方访问互联网。这样, DNS产生的问题就好像是互联网本身所产生的问题, 这将导致大量的混乱。

1.3 分布式拒绝服务攻击

DDOS攻击通过使用攻击者控制的几十台或几百台计算机攻击一台主机, 使得服务拒绝攻击更难以防范:使服务拒绝攻击更难以通过阻塞单一攻击源主机的数据流, 来防范服务拒绝攻击。Syn Flood是针对DNS服务器最常见的分布式拒绝服务攻击。

1.4 缓冲区漏洞溢出攻击 (Buffer O verflow)

缓冲区溢出是由于DNS服务软件存在着安全漏洞, 对于特定的输入请求串没有做详细的检查。攻击者利用特殊的数据包攻击DNS服务器, 一旦造成缓冲区溢出, 攻击者可以在服务器上运行特殊的代码, 得到服务器的控制权;或者造成DNS服务的停止。

2 DNS加固的办法

应对以上这些安全问题有两个比较有效方法:TSIG和DNSSEC技术。

2.1 TSIG技术

交易签章 (TSIGRFC2845) , 是为了保护DNS安全而发展的。从BIND 8.2版本开始引入TSIG机制, 其验证DNS讯息方式是使用共享金钥 (Secret Key) 及单向杂凑函式 (One-wayhashfunction) 来提供讯息的验证和数据的完整性。主要针对区带传输 (ZONETransfer) 进行保护的作用, 利用密码学编码方式为通讯传输信息加密以保证DNS讯息的安全, 特别是响应与更新的讯息数据。也就是说在DNS服务器之间进行辖区传送时所提供保护的机制, 以确保传输数据不被窃取及监听。

2.2 DNSSEC技术

DNS欺骗是对目前网络应用, 最大的冲击在于冒名者借着提供假的网域名称与网址的对照信息, 可以将不知情用户的网页联机, 导引到错误的网站, 原本属于用户的电子邮件也可能因而遗失, 甚而进一步空开成为阻断服务的攻击。目前较新的BIND版本, 针对这一类问题, 已经有加入许多改进的方法, 不过真正的解决方案, 则有赖封包认证机制的建立与推动。DNSSEC就是试图解决这一类问题的全新机制, BIND9已经完整加以设计并完成。DNSSEC引入两个全新的资源记录类型:KEY和SIG, 允许客户端和域名服务器对任何DNS数据的来源进行密码验证。

DNSSEC主要依靠公钥技术对于包含在DNS中的信息创建密码签名。密码签名通过计算出一个密码hash数来提供DNS中数据的完整性, 并将该hash数封装进行保护。私/公钥对中的私钥用来封装has h数, 然后可以用公钥把has h数译出来。如果这个译出的has h值匹配接收者刚刚计算出来的hash树, 那么表明数据是完整的。不管译出来的hash数和计算出来的hash数是否匹配, 对于密码签名这种认证方式都是绝对正确的, 因为公钥仅仅用于解密合法的hash数, 所以只有拥有私钥的拥有者可以加密这些信息。下面我们看看如何为名称是dom ain.com的域建立DESSEC配置。

步骤一:为domain.com域建立一对密钥。在/var/named目录下, 使用命令:“/usr/local/sbin/dnssec-keygen-a DSA-b 768-n ZONEdom ain.com”这个命令产生一对长度768位DSA算法的私有密钥 (Kdomain.com.+003+29462.private) 和公共密钥 (Kdomain.com.+003+29462.ke y) 。其中29462称作密钥标签 (ke ytag) 。

步骤二:使用命令:“/usr/local/sbin/dnssec-makekeyset-t3600-e now+30 Kdom ain.com.+003+29462“建立一个密钥集合。该命令以3, 600 seconds的生存时间 (time-to-live) 建立密钥集合, 有效期限三十天, 并且创建一个文件:domain.com.keyset。

步骤三:使用命令“/usr/local/sbin/dnssec-signkey domain.com.ke ys e t Kdom ain.com.+003+29462“为密钥集合签字。然后建立一个签字文件:domain.com.signedkey。

步骤四:使用命令“/usr/local/sbin/dnssec-signzone-o dom ain.com dom ain.db com m and, w he re dom ain.db”为区带文件签字。然后建立一个签字文件:domain.db.signed。

步骤五:替换配置文件/etc/named.conf中domain.com的区带文件部分。清单如下:

从上面的配置过程我们也看到DNSSEC的一些缺点:

除了配置负责, 还有标记和校验DNS数据显然会产生额外的开销, 从而影响网络和服务器的性能。签名的数据量很大, 这就加重了域名服务器对互联网骨干以及一些非骨干连接的负担。产生和校验签名也占用了很多中央处理器的时间。有时候, 不得不把单处理器的DNS服务器换成多处理器的DNSSEC服务器。签名和密钥占用的磁盘空间和RAM容量达到它们表示的数据所占容量的10倍。同时数据库和管理系统也不得不进行相应的升级和扩容。

3 结语

DNS目前被广泛应用于“目录服务”, 但它在很好地完成这个任务的同时, 也存在严重的安全问题。事务签名 (TSIG) 和DNS安全扩展 (DNSSEC) 提供了端到端的安全性和真实性验证, 从而较好地防范了网络上针对DNS的许多攻击。

参考文献

[1]李德全.拒绝服务攻击[M].北京电子工业出版社, 2007.

强化DNS设置安全管控 篇8

认识DNS服务

DNS的全称为Domain Name System,中文含义为域名系统,它是Internet网络中的一项很重要服务,善于使用该服务,用户可以更方便的上网冲浪,而不需要用脑去记忆能直接被计算机系统识别的IP地址。当然,该服务并不是一项单纯的服务,而是广泛意义上的全球域名解析系统,由若干台DNS服务器以及DNS成员机组成的这么一个计算机组织。而DNS服务器是指存储有特定网络中所有主机的域名和对应IP地址,同时具有将域名转换为IP地址功能的服务器。

当用户在应用程序中使用DNS域名访问一个网站时,本质上就是需要将DNS域名解析为与之相关的信息,也就是IP地址,因为用户在上网时输入的网站地址,必须通过DNS服务器找到合适的IP地址,才能保证上网成功,而DNS服务器必须依靠用户手工输入地址来指定。局域网中的DNS客户端系统向DNS服务器发出上网请求时,DNS服务器会利用递归方式从根域开始逐级解析,最终获得用户需要的IP地址,同时将IP地址返回给客户端,此时客户机就能向解析出来的IP地址发送HTTP请求了。

DNS安全威胁

为了增强网络的适应能力,DNS服务采用了面向非连接的UDP协议,不过该协议自身安全防范能力不强。而且DNS服务在工作时,采用树形体系结构,尽管方便域名查询操作,不过发生单点故障的机率很高,这也容易增加安全威胁。一些DNS服务器软件自身也存在安全漏洞,例如缓冲区溢出漏洞、拒绝服务漏洞,恶意用户能通过缓冲区溢出漏洞,在DNS服务器中自由执行任何命令,通过拒绝服务漏洞,会造成DNS服务器无法正常对外提供域名解析服务,从而使得本地网络中的所有客户机都无法正常上网。

DNS服务在工作时,默认会采用缓存方式,来改善域名查询效率,在DNS缓存内容还没失效之前,位于DNS缓存中的内容如果被上网用户查询时,DNS服务器会直接将缓存中的内容反馈给DNS客户端系统。而一些病毒木马程序恰好会利用DNS缓存功能的这一特性,偷偷在缓存区中保存错误的或恶意的数据,这样DNS客户端系统只要上网访问时,就会自动访问DNS缓存中的恶意内容,那么该系统受到非法攻击自然也就不可避免了。而且在DNS缓存内容生效期间,遭遇DNS缓存病毒攻击的客户机,又可能将病毒传播出去,造成更多的客户机感染病毒。此外,DNS服务还可能存在类似域名劫持、区域信息泄露等安全威胁,这些威胁或许为各类非法攻击提供了机会。

DNS安全控制

使用安全DNS

尽管最新版本的上网浏览器以及防病毒软件都支持网站过滤功能,善于使用这项功能,可以有效降低用户访问恶意网站的机率。不过,现在越来越多的用户开始使用手机之类的移动上网设备,这些设备中一般都没有安装特别的安全保护软件,那么这些设备接入局域网时,局域网还会受到来自DNS方面的安全威胁。为此,一些网络服务提供商在DNS服务方面,增加了安全防范功能,部署了一些支持恶意网站过滤功能的公共DNS服务器,让上网用户不管在什么类型的终端设备上冲浪时,只要将其终端设备的DNS服务器地址指向那些公用的、具有保护性的DNS服务器,就能在一定程度上保护终端设备安全了。例如,目前就有一些可供用户免费使用并且十分流行的公共DNS服务器,包括Norton DNS、Goole DNS、OpenDNS等等,这些公用DNS不但支持安全防范功能,而且DNS数据更新频率也比普通的DNS系统快很多,有效避免了目标网站地址更改时有一段时间无法访问的现象。大家只要进行简单设置,就能享受到公共DNS所提供的安全防范服务。当然,在连接Norton DNS之类的公共DNS时,往往会有一定的延迟时间,毕竟普通上网用户离这些公共DNS距离有点远。而且,网络中的某些下载服务,可能会要求上网用户根据所在地选择合适服务器,这时公用的DNS服务器容易导致网络下载操作更慢,所以在使用公用DNS服务器之前,不妨先尝试试用,以选出更适合自己的公用DNS服务器。

在设置使用公用DNS服务器地址时,可以先在客户端系统依次点击“开始”|“控制面板”命令,切换到系统控制面板窗口,用鼠标双击“网络和共享中心”图标,弹出网络和共享中心管理界面,按下左侧区域中的“更改适配器设置”按钮,在其后界面中用鼠标右键单击“本地连接”图标,执行快捷菜单中的“属性”命令,打开本地连接属性对话框。

选中“Internet协议版本4(TCP/IPv4)”选项,按下“属性”按钮,进入如图1所示的属性设置对话框,选中“使用下面的DNS服务器地址”选项,然后输入自己想要使用的免费公用DNS服务器地址,最后单击“确定”按钮保存设置操作,同时重新启动计算机系统,这样DNS设置就能正式生效了。

要提醒大家的是,Norton DNS提供的DNS服务器地址为“198.153.192.1”或“198.153.194.1”,该DNS服务可以即时更新钓鱼网站和恶意网站,防止用户遭遇恶意网站攻击。Goole公司提供的公用DNS服务器地址一般为“8.8.8.8”或“8.8.4.4”,记忆起来比较方便,虽然该公司号称能提供快速、安全的DNS服务,但是在安全防范方面,它仅针对DNS的攻击而设,暂时还没有提供钓鱼网站、恶意软件、病毒程序的防护。OpenDNS提供的公用DNS系统,自带有多项过滤功能,不过很多功能只有基础会员才能使用,比方说黑/白名单功能、拦截钓鱼网站功能等,OpenDNS为用户提供的服务器地址往往为“208.67.222.222”或“208.67.220.220”。

nlc202309030049

进行安全设置

1. 停用DNS缓存

为了加快网页浏览速度,改善网站访问效率,不少用户都在本地计算机系统中开启了DNS缓存功能,日后所有被访问过的站点页面地址,其解析记录都会被DNS缓存功能自动存储在本地硬盘中。当下次需要访问以前浏览过的页面内容时,浏览器将不会耗费时间去连接DNS服务器,而会直接从本地DNS缓存中寻找对的地址解析记录,从而实现高效冲浪目的。在尽情享受DNS缓存功能带来高效快捷服务的同时,该功能也容易将用户的私密信息对外泄露出去,比方说,以前浏览过的页面地址会被缓存功能悄悄记忆,恶意用户很方便利用该功能偷窥到用户的访问痕迹。为了保护上网隐私安全,建议大家立即采取措施,停用本地计算机系统的DNS Client服务,来拒绝DNS缓存功能悄悄记忆个人访问痕迹:

首先在本地计算机系统中,使用“Win+R”快捷键,调出系统运行对话框,输入“services.msc”命令,单击“确定”按钮,弹出系统服务列表界面。从中找到DNS Client服务,并用鼠标右键单击该服务选项,执行快捷菜单中的“属性”命令,展开如图2所示的选项设置对话框,在“常规”选项设置页面中,看看DNS Client服务是否已经处于运行状态。

当发现其已经开启运行时,那就意味着DNS缓存功能可能会泄露用户上网隐私,所以必须及时单击“停止”按钮,强行停用这项功能。为了防止该功能日后自动运行,建议大家最好将该服务启动类型参数设置为“自动”选项,再单击“确定”按钮保存设置操作即可。

2. 控制配置安全

如果本地局域网中架设了独立的DNS服务器时,那么该服务器的配置信息默认会保存在系统DNS文件夹中,当然也有一些配置会出现在系统注册表DNS节点。要是非法用户能自由访问这些配置内容,并对它们进行随意调整的话,DNS服务器的运行安全性将无法得到保证,那么本地客户端系统自然也就不能稳定地享受到域名解析服务了。所以,我们应该加强对DNS文件夹以及注册表相关节点访问权限进行严格控制,避免普通用户随意访问或修改DNS配置信息,下面就是具体的操作步骤:

首先以超级权限登录DNS服务器,在对应系统桌面上依次点击“开始”|“程序”|“附件”|“Windows资源管理器”命令,弹出系统资源管理器界面,依次展开“WinNT”|“System32”文件夹窗口,从中找到“DNS”子文件夹,用鼠标右键单击该文件夹图标,点击右键菜单中的“安全”选项,进入DNS文件夹安全选项设置页面,在这里将所有普通用户账号的访问权限全部取消,仅将系统管理员的访问权限保留下来,之后单击“确定”按钮退出设置对话框。

接着使用“Win+R”快捷键,调出系统运行对话框,输入“regedit”命令并回车,切换到系统注册表编辑界面,将鼠标定位于该界面左侧列表中的“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”节点上,同时用鼠标右键单击该节点下的“DNS”选项,选择快捷菜单中的“权限”命令,弹出如图3所示的编辑权限对话框,将这里的普通账号全部删除,同样仅保留系统管理员账号,最后重新启动计算机系统即可。

3. 限制探测地址

如果DNS服务器架设在多宿主主机中,那么Windows系统默认会将DNS服务器配置为使用所有可用IP地址来探测DNS查询,不过该探测方式容易给恶意用户带来攻击机会。为了避免任意用户自由访问DNS服务器,我们可以进行下面的设置操作,强制DNS服务器以特定IP地址进行探测,日后只有将探测IP地址作为首选DNS服务器的客户机,才能享受DNS服务器提供的服务,其他客户机则无法访问DNS服务器:

首先以系统管理员权限登录DNS服务器,依次单击“开始”|“设置”|“控制面板”命令,逐一双击其中的“管理工具”|“DNS”图标,进入DNS管理控制台界面,选中DNS服务器所在主机选项,依次选择“操作”、“属性”选项,切换到DNS服务器属性设置框。点击“接口”选项卡,在对应选项设置页面中,按下“只在下列IP地址”按钮,在“IP地址”位置处输入DNS服务器要使用的IP地址,再单击“添加”按钮,确认后退出设置对话框。

其次客户机还需要进行合适的配置,才能访问DNS服务器。在进行配置时,不妨用鼠标右键单击系统托盘区域处的网络连接图标,执行右键菜单中的“打开网络和共享中心”命令,按下“更改适配器设置”按钮,进入网络连接列表界面,用鼠标右键单击本地连接图标,点击快捷菜单中的“属性”命令,弹出本地连接属性界面,选中“Internet协议版本4(TCP/IPv4)”选项(如图4所示),按下“属性”按钮,展开协议属性设置框,选中这里的“使用下面的DNS服务器地址”选项,并输入DNS服务器用来探测DNS查询的特定IP地址,最后单击“确定”保存设置即可。

4. 控制访问端口

大家知道,DNS服务器默认使用TCP 53、UDP 53这两个端口,向本地网络中的客户机提供域名解析服务。为了防止黑客或木马程序偷偷使用这些端口攻击DNS服务器,并影响DNS服务器的运行安全性,我们可以将对应服务端口调整成一个陌生的号码,日后恶意用户即使知道了DNS服务器地址,也不能轻易访问DNS服务器。

在调整DNS服务端口时,依次单击“开始”|“程序”|“附件”|“Windows资源管理器”选项,进入系统的资源管理器界面,找到Windows系统安装分区,然后在该分区窗口中下逐一双击“system32”|“drivers”|“etc”文件夹,选中该文件夹下面的“services”系统文件,并用鼠标右键单击之,执行右键菜单中的“打开方式”命令,选用“记事本”之类的文本编辑程序来打开该文件。

接着在“services”文件编辑界面中,依次选择“编辑”|“查找”命令,展开查找设置对话框,输入关键字“Domain Name”,按下“查找下一个”按钮,这样鼠标指针就能自动定位在DNS服务内容描述处,如图5所示;在这里,DNS服务默认使用的通信协议以及端口号码能被一眼看出,将默认使用的“53”端口修改为其他陌生端口号码,再保存设置操作即可。当然,要提醒大家的是,上面的设置操作必须在DNS服务器和DNS客户机中都进行一次,否则客户机将无法正常享受到DNS服务。

5. 查询分析日志

如果能将DNS服务器的工作状态信息追踪记录下来,日后定期查询、分析其中的内容,就能在第一时间发现DNS服务器存在的安全隐患,这样有利于保证它始终能安全、稳定地运行。默认状态下,DNS服务器的日志功能并没有被开启,我们可以在DNS服务器所在主机系统中,进行下面的设置操作,来开启这项功能:

首先以系统管理员权限登录DNS服务器,依次选择“开始”|“程序”|“管理工具”|“DNS”选项,进入DNS控制台窗口,选中DNS服务器的主机名称,并用鼠标右击之,选择快捷菜单中的“属性”命令,弹出DNS服务器属性设置对话框。

其次选择“日志”标签,进入如图6所示的标签设置页面,在这里选中需要跟踪记忆的状态信息,单击“确定”按钮后,DNS服务器日后会将所有状态信息自动存储在系统日志文件中。

当需要查询分析日志内容时,只要打开DNS服务器的事件查看器窗口,从中就能查询到DNS各方面的状态信息,比方说DNS查询、应答、发送、接收等方面的状态信息等,根据这些内容,我们基本就可以了解到DNS服务器的安全状况了。

DNS实验报告 篇9

实验环境:两台2003服务器。一台xp客户端 实验目的:在xp客户端上可以正向反向拼通ip和域名 实验步骤:

第一步:在控制面板中添加DNS服务器,然后打开正向查找区域

做辅助服务器的时候区域名称必须和主机保持一致,下一步:在主机上把DNS服务器改成本地回环

然后在客户端上把DNS改成主服务器的IP

然后用命令拼通,nslookup sjk.axl.com可以得到服务器的ip,用nslookup同样也可以

dns管理软件 篇10

在linux下配置DNS服务器,下面是配置过程中设置过的一些文件,

/etc/hosts 文件的具体内容如下:

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost fc4

192.168.1.3 a.test.com a

192.168.1.1 b.test.cn b

/etc/host.conf 文件:

order hosts,bind

表示先用hosts文件做解析,在用DNS解析

/etc/resolv.conf 文件:

; generated by NetworkManager, do not edit!

search test.com

nameserver 127.0.0.1

search test.cn

nameserver 192.168.1.1

nameserver 61.144.56.100

/etc/named.conf 文件:

//

// named.conf for Red Hat caching-nameserver

//

options {

directory “/var/named”;

dump-file “/var/named/data/cache_dump.db”;

statistics-file “/var/named/data/named_stats.txt”;

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

//

// a caching only nameserver config

//

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

zone “.” IN {

type hint;

file “named.ca”;

};

zone “test.com”IN {

type master;

file “test.com”;

allow-update { none; };

};

zone “1.168.192.in-addr.arpa”IN {

type master;

file “192.168.1.rev”;

allow-update { none; };

};

zone “test.cn”IN {

type master;

file “test.cn”;

allow-update { none; };

};

zone “0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0

快速打造本地DNS服务器 篇11

要想解决上述问题,最简单的方式就是在本地电脑系统自建一个DNS服务器,不过这对普通用户来说很难,我们不妨借助一些工具软件来完成,比如DNSAgent(下载地址:tinyurl.com/nssyjvc,此软件需微软.NET Framework 4.5支持)。

下载上述软件并解压,用文本编辑器打开其中的Options.cfg文件,可以看到该工具默认使用的是谷歌的DNS服务器(图1)。可以根据需要修改为自己常用的DNS服务器,比如114DNS(114.114.114.114)、阿里DNS(223.5.5.5)、OpenDNS(208.67.222.222)等。修改完成后对配置文件进行保存,再运行文件夹中的DNSAgent.exe文件,该工具就开始在系统后台工作了(图2)。

DNS服务转移到本地

接下来打开Windows的“控制面板”,点击“网络和Internet”下面的“查看网络状态和任务”命令,在弹出的对话框中点击左侧的“更改适配器设置”命令,然后打开系统的“网络连接”窗口。如果用户是通过路由器上网的,那么就选择列表中的“以太网”项。如果用户还是使用传统的拨号上网方式,那么就选择列表中的拨号连接即可。

选中自己的网络连接后,右击它,选择“属性”,在弹出的窗口列表中选择“Internet 协议版本 4”项。点击下面的“属性”按钮后,在弹出窗口的“首选DNS服务器”选项中,将其设置为127.0.0.1即可(图3)。以后所有系统发出的域名解析请求,就会经过该工具的处理后,再发送到设定的DNS服务器进行处理。接下来该工具将DNS服务器的解析数据存放到本地系统中,这样当用户下一次访问同一个网站域名的时候,就不需要再向DNS服务器发送解析请求了,将直接调用还存储在本地系统的解析信息。这样一来就避免了DNS信息被干扰的可能。

提效率 为不同网站定制解析服务

除了域名解析,DNSAgent还有很多比较实用的网络功能。如针对不同的网站域名,可以使用不同的DNS服务器进行解析,国外的网站域名使用谷歌DNS,国内的网站域名使用114DNS等。不过要想使用这个功能的话,需要自己编写相应的规则才行。现在通过文本编辑器打开DNSAgent中的rules.cfg文件,按照下面的格式来编写几行代码即可。

{

"Pattern": "^(.*\\.)?baidu\\.com$",

"NameServer": "114.114.114.114"

},

这几行代码的意思就是,当访问含有baidu.com信息的网站域名的时候,就使用114.114.114.114这个DNS服务器进行域名解析。虽然这个规则使用了正则表达式,依葫芦画瓢也是可以完成的。但是对于普通用户来说还是比较繁琐,所以下面我们利用网友制作的网站规则,进行转换后就可以为我所用了。

首先通过浏览器访问tinyurl.com/mac5gh4,在列表中找到accelerated-domains.china.conf项并点击它,在弹出的网页中就可以看到网友制作的网站规则(图4)。现在点击“Raw”按钮后打开一个网页,接着点击鼠标右键选择菜单中的“全选”命令,将所有的网站规则都复制下来,接着在浏览器中访问tinyurl.com/m6cnymo,将刚刚复制下来的网站列表粘贴到左侧列表中,然后点击左上角的“Convert”按钮,在右侧列表中就可以看到转换好的网站规则了。点击右上角的“Select Results”按钮,自动选中转换完成的规则(图5)。接下来点击鼠标右键将其复制粘贴到一个文本编辑器中,再将开头的“[”和结尾的“]”符号删除。最后将这些编辑后的规则,粘贴到rules.cfg文件最后一个“]”符号之前就可以了(图6)。

替代hosts更方便

Windows系统的hosts不仅可以直接进行域名解析,还可以起到过滤广告的作用,但是现在要想修改系统中的hosts文件,首先需要获得系统的管理员权限才可以,操作上有些繁琐。而现在DNSAgent工具就可以通过类似的功能替代hosts文件,从而减少系统权限获取等操作,而且以前一个域名就需要编写一条规则,DNSAgent则可以通过一条规则替代hosts文件中的多条规则,从而减少大量规则输入的麻烦。

以亚马逊为例,现在很多用户喜欢到亚马逊的美国站进行海淘,就可以通过修改hosts中的信息,让其直接连接到亚马逊的美国服务器而非中国的服务器,从而避免我们在不同的站点之间进行切换。首先右击“开始”,点击“命令提示符(管理员)”启动它,在其中输入“ping www.amazon.com”并按下回车键,可以得到服务器对应的IP地址。接着用文本编辑器打开DNSAgent中的rules.cfg文件,输入下面的一段代码并保存就可以了。这段代码表示只要访问域名包括http://www.amazon.com/的链接,就直接连接到205.251.242.103这个服务器的IP地址(图7)。

{

"Pattern": "www\\.amazon\\.com$",

"Address": "205.251.242.103"

dns管理软件 篇12

本文设计并实现了DNS解析异常处理系统,基于现有的DNS系统改进,使用静态配置文件和动态分析历史解析即结果,支持主机记录、别名记录等,具有较强的异常处理能力。经过测试,Ehdns借助少量的硬件资源来获得高可用性和高可靠性。

1 相关工作

最近几年,因为DNS的问题,包括授权DNS和根DNS,导致出现了多次大范围的网民无法正常上网的现象[2]。

域名出现没法解析有多种可能,其中可能是DNS问题的情况包括本地DNS本身故障、授权DNS故障、根DNS故障[3]。

IDNA是使用基于Punycode码,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“x.中国”这样的域名可以在地址栏直接输入并可正常解析。

OpenDNS是2006年7月由David Ulevitch创建,为个人和商业提供DNS方案,加快域名解析速度,并拥有反钓鱼过滤器和输入纠正等功能[4]。

EDNS是在RFC2671中提出的一种展DNS机制,其在已有DNS消息格式的基础上增加一些字段,来支持更多的DNS请求业务。

DNSPod创建于2006年3月,可根据请求来源,将多种运营商的线路细致划分至省(国内)/ 大洲(国外),智能化返回最佳解析结果,也被称为智能动态DNS[5]。

尽管DNS周边相关产品较为繁多,但是关于DNS的异常处理的很少,现有的处理手段只是将所有的异常请求响应到一个固定的导航或错误提示ip[6],并没有起到异常处理的效果,故增加一定的异常处理显得越发必要。

2 原理概述

2.1 递归和迭代

目前绝大多数网民上网的场景是,网民会自动获取并使用接入运营商的本地DNS进行解析,解析过程分为递归和迭代两种。

网民客户端向本地DNS服务器查询,属于递归查询;如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文;

DNS服务器之间就是的交互查询就是迭代查询,如图1所示,当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。

2.2 缓存

每个DNS都会有缓存,缓存的时长(即TTL)由域名授权服务器设置的,发起请求方会将域名解析结果缓存TTL时长,从而减少不必要的频繁访问,也减少了服务器的压力。如图2所示,在任何解析前都会先检查缓存,如有便直接返回。

2.3 解析异常

域名出现没法解析有多种可能,其中可能是DNS问题的情况包括本地DNS本身故障、授权DNS故障、根DNS故障;故障又可能源自硬件、网络、压力等异常。如图3所示,这些异常最终会产生NXDOMAIN的响应。

于是,DNS得到错误的响应、并响应给网民和缓存很长时间,便造成了大范围的长时间的错误影响[7]。

3 系统结构

本节描述了Ehdns的系统结构及其中附加缓存和备选记录的工作原理[8]。

3.1 结构概述

如图4所示,在原DNS的基础上外围添加了域名备选记录和附加缓存模块,其在异常处理过程中会被使用。

3.2 域名备选记录

在DNS的配置文件中指定域及其相应静态记录文件的路径[9],例如下:

定义静态记录文件的内容,类似bind的zone文件[10]:

3.3 附加缓存

附加缓存中的数据结构如图5所示:

按如下方式存储,类似于JSON,用于定时在硬盘上持久化数据。

{"www.ctyun.cn": [{"record": {"type":"C","data": ["ctyun.cn.ctycdn.com"],"times":"99"}}, {"record": {"type":"A","data": [ "118.85.194.43","118.85.194.44"],"times":"31"}} ,{"record":{"type":"A","data":["118.192.68.122"],"times":"11"}}]}

其中type类型可完美支持原DNS的类型,A表示ipv4主机记录,AAAA表示ipv6主机记录,C表示CNAME别名记录。

4 关键技术

4.1 异常处理步骤

如图6所示,在本地DNS服务器上为域名添加相应的域名备选记录;当域名解析服务器无法正常获得记录时查询该配置文件,当有对应的Zone文件存在时,便给出响应。

为本地DNS服务器附加一套缓存机制,用于缓存历史解析结果及次数,默认缓存三条,当某一次解析请求在缓存中没有记录时,便会经过原始一般的递归解析:

当解析结果正常时,除了要将结果返回给用户并缓存外,还需要对结果进行附加缓存处理,从而可以动态分析;

当解析出现异常导致结果为空记录时,且备选解析文件中也没有相应的记录时,则从附加缓存中查找次数最多的记录,该记录被认为最可靠、最可能正确的记录。继而将此记录返回给客户,且将记录伴随60s的TTL写入内存,提高在异常期间的响应效率及保障在异常消失后的1分钟内能获取到真正正确的结果。

4.2 附加缓存处理

在附加缓存中,每个域名都对应一个记录结构,存放有历史解析结果,作为异常发生时的纠正参考。每个域名的记录结构实为一个有序链表,按照解析次数由高到低排序。为了高效的增删改查,本链表又设计为双向链表[11]。

当某一次解析请求在缓存中没有记录时,且解析结果正常时:除了要将结果返回给用户并正常缓存外,还需进行附加缓存处理[12],将结果和附加缓存中的历史信息进行比较:

(1)如已存在,则将对应记录次数加一;

(2)如不存在,则生成临时记录,次数为1;

(3)对记录和临时记录进行链表处理;

a.附加缓存中数据结构如图5所示,为有序的双向链表,可以高效地增删改查,节点数据结构为三元数据组{类型,值数组,次数};其中类型可以为A,AAAA,C分别对应域名的ipv4记录,ipv6记录及Cname记录;因为解析出来的ip记录可能为多个,所以值设计为普通数组;次数则是该记录为正常解析的次数。

b.链表为空时,如图7所示,临时记录会作为新节点,加入链表;

c.加入一个节点后如图8所示,当又有新节点后来时,如图9所示,会比较次数,再进行插入。

d.链表头部始终是历史正常解析次数最多的记录,该记录被认为最可靠、最可能正确的记录

e.在处理过程中,使用Head和Tail指针直接快速获取头部和尾部。

4.3 缓存刷新

因为在DNS运行过程中会需要变更域名备选记录,又因为缓存中有海量的有用缓存,那么就不能采用会丢失内存数据的冷重启,而是借鉴bind中Rndc的思想,使得配置文件可以热加载;并且可以加上域名名称作为参数,只需要热加载配置文件中某个域名,而不是所有域名,不仅不中断在线服务,并且最小影响服务和性能。

5 性能评测

5.1 实验准备

实验采用域名生成器来生成各顶级域下各类型的域名,且有一定比例的异常;相关参数见表1。另外还选取了不同配置服务器进行测试,以内存大小为参数。

5.2 性能测试

本节不但测试了EhDns在异常纠错的可用性,还测试了各种约束条件对Ehdns性能的影响,然后将其作为测试变量,与bind(版本9.2)进行对比测试。

域名重复的概率:

因为EhDns在域名解析前后的处理逻辑有所差异,故以此为变量测试。

如图10所示,EhDns的吞吐量要略小于Bind,这是因为EhDns的附加缓存链表处理需要消耗一些额外的运算,导致了吞吐量下降;但是随着域名重复概率的加大,差距在逐渐缩小,这是因为对于重复的域名,EhDns的额外处理需要的资源较少,并且对于实际DNS请求,绝大部分都会重复,甚至重复很多次。

内存大小:

因为DNS需要内存缓存数据,不同大小的内存会导致内存不够、以致影响效率,故以此为变量测试。

如图11所示:EhDns的吞吐量要略小于Bind,这是因为EhDns需要消耗一些额外的内存,导致了吞吐量下降;但是随着域名重复概率的加大,差距在逐渐缩小,这是因为对于重复的域名,EhDns占用的内存不会增加,在内存足够大的时候,几乎没有差距。并且在实际生活中,内存越来越大且越来越廉价,这使得占用额外的内存资源成为可能。

6 结论

本文设计并实现了一个域名系统解析异常处理系统 -Ehdns。本系统使用静态配置文件和动态结果分析,基于有序链表对记录进行存储和管理,再配有缓存刷新功能,使系统具有实时性、高吞吐量、可扩展性和鲁棒性等特点。

上一篇:打动考官的面试技巧下一篇:32116改棚措施