揭秘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
私有根!敬请期待!
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.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
私有根!敬请期待!
相关文章推荐
- 揭秘DNS后台文件:DNS系列之五
- 揭秘DNS后台文件:DNS系列之五
- 揭秘DNS后台文件:DNS系列之五
- 揭秘DNS后台文件:DNS系列之五
- 揭秘DNS后台文件
- SpringMVC系列(十一)把后台返回的数据转换成json、文件下载、文件上传
- 安卓反编译揭秘(爱加密系列教程十一)伪加密APK文件被破坏
- ios开发系列-后台文件
- 深入浅出DNS系列(十一)- 压力测试工具与根服务器提示文件
- DNS扫盲系列之五:域名配置ZONE文件
- 探索Windows命令行系列(4):通过命令操作文件和文件夹
- CodeSmith系列(二)——使用CodeSmith生成ASP.NET后台代码
- MP4系列之--如何获取mp4文件信息
- 2.2Bind建立配置文件和实体的映射「深入浅出ASP.NET Core系列」
- 深入理解JavaScript系列(2) 揭秘命名函数表达式
- 转载系列之一:浅析Hadoop文件格式
- Android官方开发文档Training系列课程中文版:分享文件之请求一个共享文件
- Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】
- 【Linux_Fedora_应用系列】_5_如何安装XZ Utils 解压缩工具以及利用 xz工具来解压缩.xz文件
- Android官方开发文档Training系列课程中文版:通过NFC共享文件之发送文件到另一台设备