DNS是域名系统(Domain Name System)的缩写,是一种由最多255个字符128层组织域组成的有层次结构的计算机和网络服务命名空间系统。当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与此名称相关的IP 地址信息。
 
 
根服务器:
 
目前的域名解析方式采用的是"集中+分散解析"的方式,全世界目前共有13个根服务器,负责全世界的所有的互联网域名解析工作.
我们平时私下里搭建的DNS服务器默认都是指向这些根服务器.
 
目前全世界的13个服务器及IP地址
 
 
 
解析过程
 
 
以查询example.microsoft.com为例
 
1.当用户用浏览器提出一个域名解析要求时,会在系统的DNS缓存中查找是否有附合的记录信息,如果没有便会向自己系统中配置的首选的DNS服务器发起查询.
 
2.如果首选DNS服务器缓存内没有相应的记录信息则会向全球离自己比较近的根服务器发起查询请求,这时根服务器会分析提交上来的域名,根服务器通过查询发现他已经把以com为结尾的所有域名解析的工作委派给了另一个他下级的DNS服务器.
 
3.这时他会把负责解析com结尾的这个DNS服务器的IP返回给提出查询请求的首选服务器.
 
4.这时首选服务器会通过根服务器发来的IP找到下一级DNS服务器并提交example.microsoft.com的查询请求,这时处在二级的服务器通过查询发现自己将microsoft.com结尾的解析工作委派给了另一个他下级的DNS服务器
 
5.这时二级服务器会把负责解析microsoft.com结尾工作的服务器IP返回给首选服务器.
 
6.这时首选服务器会根据这个IP找到处在三层的DNS服务器,并继续提交example.microsoft.com的查询请求,这时处在三级的服务器通过查询发现自己负责的example.microsoft.com的服务器IP记录.
 
7.然后三层的DNS服务器将该IP返回给首选服务器.
 
8.9.首选服务器通过这个IP联系到了最终要找的服务器
 
10.然后首选服务器将最终查询到的结果IP返回给用户
 
 
常用DNS记录说明
 
A记录(主机记录)
DNS解析记录的基础,许多记录(象别名记录,NS记录等等)都依赖于他,并且A记录还可用作简易的负载均衡.
 
NS和SOA记录
NS记录(描述域名服务器,指明区域中有几个DNS服务器)
SOA记录(起始授权记录,用于描述区域中的主DNS服务器)
 
Cname记录
别名记录,用于给已存在的解析记录起别名用
 
MX记录
邮件交换器,用于邮件服务的记录
 
SRV记录
服务器位置记录(作用是指明区域内的 XXX 计算机提供 XXX 服务)
 
 
 
私有根DNS服务器搭建:
实验环境:操作系统均采用Windows2003,安装DNS服务组件
其中 Istanbul  Perth 被设计成负责解析 test.com
          Florece   Firenze 被设计成负责解析 163.net
 
 
 
Berlin设置
 
打开Berlin的DNS管理控制工具,在正向查找区域内新建区域
 
 
 
 
 
Windows传统的欢迎界面,习惯性的点下一步吧
 
 
 
 
 
 
这里我们要新建一个“主要区域”
 
其中“辅助区域”为DNS辅助服务器使用,该区域为只读,数据来源于主要区域,也就是说不能脱离主要区域单独存在。
 
其中“存根区域”可以看作是一个特殊的辅助区域,存根区域只包含标识该区域的权威DNS服务器所需的资源记录。这些资源记录包括名称服务器(NS)、起始授权机构(SOA)和可能的glue主机(A)记录,因此存根区域也是要依赖于主要区域的。
 
 
 
 
 
 
 
这里要注意了,根服务器的区域名称是个“.”
 
 
 
 
 
这时会创建存储区域信息的文件
 
 
 
 
 
根据需要选择是否动态更新
 
 
 
 
 
OK,根服务器的主要区域就创建完成了
 
 
 
 
此时区域中会生成NS和SOA记录
修改NS记录使其能正确解析,服务器的合格域名如果Windows系统中未明确设置,可以按域名规范随意制定。
 
 
 
 
 
修改SOA记录就简单多了,不过记得要跟NS记录里保持一致
 
 
 
 
 
下面我们需要把com结尾的解析权委派出去,让我们来创建一个委派
 
 
 
 
 
 
见着这个你可以直接下一步了
 
 
 
 
 
填入我们要委派出去的域名部分
 
 
 
 
 
 
填入接受委派的服务器NS解析记录信息
 
 
 
 
 
完成创建委派
 
 
 
 
 
 
委派创建成功后会产生如下信息包括委派区域及接受委派的服务器NS记录
 
 
至此Berlin配置完成了
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Istanbul设置
 
首先要把Istanbul的默认根提示指向Berlin.root.com. 将其他的根提示删除掉
**也正是因为默认的我们的DNS服务器的根服务器指向了世界上的13台根服务器,因此我们才能解析互联网上纷繁的域名,这也正是我们私人搭建的DNS为什么不能对我们自己委派的DNS进行正确解析的关键所在。
 
 
 
 
 
因为 Istanbul 负责接受com 结尾的域名解析工作,因此要在 Istanbul 创建 主要区域 com 并修改NS及SOA记录以保证能正确解析自己
 
 
 
 
 
 
接着让 Istanbul 把 test 域名的解析工作继续向下委派给 Perth  让 Perth 负责以 test.com 结尾的域名的解析工作。(详细的委派过程参考Berlin 的委派方式)
 
 
 
至此 Istanbul 的设置工作全部完成
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Perth设置
 
首先还是将 Perth 的根提示指向我们自己搭建的私有根服务器 Berlin.root.com.
 
 
 
 
 
因为 Perth 接受了负责 test.com 结尾的域名解析工作,因此我们要在 Perth 上创建 主要区域 test.com 同时修改 NS 及SOA记录以保证对自己正确解析。
 
 
到这里 test.com 这边的解析工作布署基本完成了。同样的我们再在 Florence  和 Firenze 上完成对Home.net 的解析布署(具体过程参考以上过程)
 
 
 
测试:
 
将Denver设置好IP并将其DNS指向DNS服务器 Firenze 的 IP
然后我们在 Denver 上 PING  [url]www.test.com[/url] 并抓包得到如下结果
 
 
可以看出DNS的解析过程。
 
到这里 我们便完成了与互联网解析系统体系架构相仿的 DNS 解析服务布署。希望对大家有所帮助。