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

本文深入解析DNS服务器背后的关键文件,包括Boot文件、Cache.dns及区域数据文件的作用和配置方法,帮助读者理解DNS服务器的工作原理。
揭秘 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 就进行访问,而且也可能把 [url]www.hexun.com[/url] 误输为 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 私有根!敬请期待!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值