转载请标明:http://write.blog.youkuaiyun.com/postedit/6993461
DNS,最早于1983年由保罗·莫卡派乔斯(Paul Mockapetris)发明。汉语叫域名系统(英语:Domain Name System,缩写DNS)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。DNS 使用TCP和UDP端口53。
当我们在浏览器的地址栏里敲入地址:www.163.com访问网易网站的时候,事实上www.163.com最终会被解析成218.60.31.75这个IP地址,而我们的浏览去访问这个IP地址,就可以登录网易的网站了。DNS是一个分布于全球各个角落的分布式数据库系统,类似于我们生活中的114电话查询系统。
下图简要说明了DNS的工作原理。
BIND,(Berkeley Internet Name Domain)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。20世纪80年代,柏克利加州大学计算机系统研究小组的四个研究生Douglas B Terry、Mark Painter、David W. Riggle和周松年(Songnian Zhou)一同编写了BIND的第一个版本,并随4.3BSD发布。
查看bind版本 named -v
[root@localhost Packages]# named -v
BIND 9.7.0-P2-RedHat-9.7.0-5.P2.el6
FQDN(Full Qualified Domain Name),完全合格域名,它由主机名(Host Name)和域名(Domain Name)组成。如果一台主机的主机名为hostname,域名为example.com,那么这个主机的完全合格域名就是hostname.example.com。尽管有些主机的主机名相同,但由于它们的域名不同,所以它们的完全合格域名也是不同的。
DNS的管理是分层的,每一层主机只需要记录下一 层的主机的名称即可。比如“.cn"管理着”.com.cn" , ".net.cn" ,".org.cn", ".edu.cn"等主机,而“.edu.cn"管理着”.neu.edu.cn" , " .pku.edu.cn"等主机,以此类推。
DNS查询流程
以客户端查询abc.edu.cn主机为例,其查询流程如下:
- 客户端首先检查本机的/etc/hosts 文件,查询是否有对应记录。
- 如果没有对应记录,则向DNS服务器A查询。如果没有记录,则DNS服务器向根服务器查询。
- 根服务器判断被查询的主机属于“.c n"主机管辖,于是通知A去“.c n" 查询。
- DNS域名服务器A查询".cn",后者判断被查询的主机属于".edu.cn"主机管辖,于是通知A去".edu.cn"查询。
- DNS域名服务器A查询".edu.cn",后者查找到域名对应的IP记录,于是将结果告知A。
- DNS域名服务器A得到了域名对应的IP,并且将IP和域名的对应关系存放在缓存中,同时将对应关系告诉客户端。A中的缓存数据将维持一段时间(即TTL值),在这段时间内,如果有任何主机向A查询abc.edu.cn的IP,A直接从缓存中将结果返回给发起请求的主机。
缓存的工作原理
DNS 服务器采用递归或迭代来处理客户端查询时,它们将发现并获得大量有关 DNS 命名空间的重要信息。然后这些信息由服务器缓存。
缓存为 DNS 解析流行名称的后续查询提供了加速性能的方法,