您的位置:首页 > 其它

揭秘DNS后台文件:DNS系列之五

2010-03-25 10:56 190 查看
揭秘

DNS

后台文件


在前面的博文中我们介绍了
DNS
的体系结构,常用记录,还介绍了辅助服务器的配置,今天我们来介绍一下
DNS
服务器背后的几个文件。其实
DNS
服务器的工作完全依靠这几个文件,了解了
DNS
的后台文件后,有利于更好地理解
DNS
服务器,也可以让大家明白为什么有高手声称配置
DNS
最好的工具就是记事本。

DNS
服务器所使用的文件并不复杂,一个是
Boot
文件,负责存储
DNS
服务器的启动信息;一个是
Cache.dns
,负责存储根服务器的域名和
IP
地址;还有一个最重要的文件就是区域数据文件,负责存储区域内的所有
DNS
记录。这些文件都在
/Windows/System32/DNS
目录下,我们找到负责解析
hexun.com
区域的
DNS
服务器
202.99.16.1
,来分析一下这个
DNS
服务器所使用的上述文件。



Boot

文件


首先来看看
Boot
文件,奇怪的是,在
DNS
服务器
C:/Windows/System32/DNS
目录下,我们并没有发现
Boot
文件,具体如下图所示,这时为什么呢?



这时因为
DNS
的引导信息可以有三种保存的途径,一是可以保存在
Boot
文件,二是可以保存在注册表,三是可以保存在
Active Directory
。微软可能是怕用户误删除了
Boot
文件,因此默认情况下把引导信息用另外两种方式保存。如果我们想查看
Boot
文件的内容,首先要修改
DNS
服务器引导信息的保存方式。如下图所示,在
DNS
管理器中选择查看
DNS
服务器的属性。




DNS
服务器属性中切换到“高级”标签,如下图所示,选择从文件加载区域数据,这样
DNS
服务器就会把启动信息写到
Boot
文件中。



如下图所示,
Boot
文件终于出现了!



用记事本打开
boot
文件查看一下,其实内容很简单,
Primay
代表
DNS
服务器是当前区域的主服务器,从
Boot
文件可以看到,当前的
DNS
服务器是
hexun.com
区域的主服务器,同时也是
16.99.202.in-addr.arpa
区域的主服务器。但并不是根域的
DNS
服务器,要想解析根域,需要依靠
cache.dns

chache.dns
中记录了
13
个根服务器的域名和
IP
地址。



202.99.16.2

hexun.com
的辅助服务器,我们看看它的
Boot
文件内容是什么。如下图所示,
secondary
表示是当前区域的辅助服务器,主服务器是
202.99.16.1
,根域的解析也是要依靠
cache.dns
中的
13
个根服务器。



总结:看了两个例子,我们发现
DNS
服务器中的
Boot
文件其实很简单,就是描述了当前的
DNS
服务器负责哪些区域,是区域的主服务器还是辅助服务器,区域数据文件放在哪里等问题。我们完全可以利用
Boot
文件控制
DNS
启动时加载的区域数据,也可以改变
DNS
服务器的角色,例如从辅助服务器改为主服务器。




Cache.dns


以前我们介绍
DNS
体系结构时曾经描述过域名解析的过程:
DNS
服务器发现一个域名自己不能解析,就会把这个查询提交给根服务器,根服务器通过迭代方式可以让
DNS
服务器最终找到答案。这个过程中有个关键问题,
DNS
服务器怎么知道谁是互联网上的根服务器呢?答案现在就可以揭晓了,
Cache.dns
中存储了
13
个根服务器的域名和
IP
地址!这
13
个根服务器除了在东京,伦敦,斯德哥尔摩各有一台,其余都在美国。

如下图所示,
Cache.dns
中描述了
13
台服务器的完全合格域名以及
IP
地址,其中
@
是个缩写,代表当前区域,也就是根域。每个服务器用两条记录描述,一条记录是
NS
记录类型,一条是
A
记录类型。
NS
记录说明谁是根域的
DNS
服务器,
A
记录说明这台
DNS
服务器的
IP
地址是多少。



Cache.dns
的内容也可以通过
DNS
服务器属性中的“根提示”来查看,如下图所示,我们查看
DNS
服务器的属性,在属性中切换到“根提示”标签,所看到的内容就是
cache.dns
中所描述的
13
个根服务器。



总结:
Cache.dns
中记录了互联网上
13
个根服务器的域名和
IP
,我们有很多地方需要利用
Cache.dns
,例如北京新增加了一个
DNS
根服务器,但
Win2003
并不知道这个变化,这时我们就需要通过修改
Cache.dns
来完成这个工作。或者是假设一个大企业使用了私有根,自己做了一个根服务器,这时也要修改
Cache.dns
才能让
DNS
服务器知道这个私有根的存在





区域数据文件


接下来我们要介绍的就是最重要的区域数据文件了,区域数据文件保存了区域中所有的
DNS
记录,是
DNS
服务器的核心数据。从前面的
Boot
文件可以看出,
hexun.com
区域的数据都存放在了
hexun.com.dns
文件中,接下来我们就用记事本打开
C:/windows/system32/dns/hexun.com.dns
,结果如下图所示。



我们从区域数据文件中可以看出
DNS
记录的具体存储方式,首先我们来分析一下文件中的
SOA
记录,记录内容如下图所示。
@
是缩写,代表当前区域,相当于
hexun.com

.


SOA
是记录类型,
ns1.hexun.com.
表示的是
hexun.com
的主服务器,
12
是记录的更新序列号,
900
秒是
15
分钟的刷新间隔,辅助服务器和主服务器每隔
900
秒联系一次;
600
秒是
10
分钟的重试时间,如果辅助服务器和主服务器失去了联系,就每隔
10
分钟联系一下主服务器;
86400
是过期时间,如果辅助服务器过了一天都没和主服务器联系上,辅助服务器就认为自己的数据过期了;
3600
秒是
DNS
记录在缓存中的生存时间。



刚才分析的内容其实和下图中的
SOA
记录是完全一致的。



再来看看其他的几条记录,如下图所示,注意其中的
A
记录。
DNS
中的记录是要以完全合格域名的形式存在的,如果域名不以点结尾,那么
DNS
会自动在域名的最后追加上当前区域,把格式补充为完全合格域名的形式。例如
mail
就会被补充为
mail.hexun.com

.




我们利用
DNS
的区域数据文件完成两项常见任务,
DNS
的空域名解析和泛域名解析。空域名解析就是解析
hexun.com
,泛域名解析就是把所有以
hexun.com
结尾但又没有出现在
DNS
区域中的域名进行解析,例如
ww.hexun.com
。一般情况下网站对这两种域名解析会进行处理,因为有时访问者喜欢省事在浏览器中直接输入
hexun.com
就进行访问,而且也可能把
www.hexun.com
误输为
ww.hexun.com


空域名解析比较简单,如果我们想把空域名解析成
202.99.16.80
,那就可以在区域数据文件中输入
@
A
202.99.16.80
,刚才我们提到了,
@
代表了当前区域,相当于
hexun.com

.




泛域名解析也不难,例如我们想把泛域名也解析成
202.99.16.80
,那么我们就可以在区域数据文件中输入
*
A
202.99.16.80

*
是通配符,代表任意字符的组合,具体如下图所示。



在保存
DNS
区域数据文件之前,最好先停止
DNS
服务,然后保存文件之后再启动
DNS
服务。
如下图所示,我们发现空域名解析和泛域名解析都生效了。



再用区域数据文件完成一项常见任务,
DNS
的委派!介绍
DNS
体系结构时我们就提到过,正是由于有了伟大的委派,
DNS
才发展到今天。我们这次准备把
shanghai.hexun.com
的解析权委派给
DNS
服务器
ns.shanghai.hexun.com
,这台服务器的
IP

211.99.213.1
,那么我们在区域数据文件中写入下列两条记录就
OK
了。




DNS
管理器中可以看到,我们设置的委派已经生效了。



总结:接触到区域数据文件后,我们发现其实所有的
DNS
记录都可以很轻松地在区域数据文件中创建出来,而且效率很高,有了记事本,就可以创造
DNS
的一切!了解了
DNS
的后台文件后,我们在下篇博文中将把这些文件综合利用,创建出属于自己的
DNS
私有根!敬请期待!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: