码迷,mamicode.com
首页 > 其他好文 > 详细

【基础服务】简单理解DNS的递归、迭代查询 - DNS(一)

时间:2014-05-12 03:44:49      阅读:405      评论:0      收藏:0      [点我收藏+]

标签:dns   recursion   

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。


简单理解DNS的递归、迭代查询过程:


客户端发出查询www.163.com 域名对应IP地址的请求,下图是在dns服务端使用tcpdump抓取的通迅过程。


客户端(192.168.198.1服务端(192.168.198.190


bubuko.com,布布扣


bubuko.com,布布扣


1、客户端发一个dns查询请求到dns服务器

2、190收到请求后先查询本地缓存,若是没缓存有记录,则直接返回给客户机,若没有,服务端向根服务器发出dns查询请求。

3、根会返回负责.com的服务器190190又向这个IP发起查询,直到找出www.163.com对应的IP地址。(www.163.com是一个CNAMEcom服务器会返回lxdns.com190,直到找出163所对应的A记录)

4、190把查询出来的结果返回给客户端。


递归:客户端只发一次请求,要求对方给出最终结果。


迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。


授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。


环境如下:

客户端-----本地dns服务端----外网


从递归和迭代查询可以看出:

客户端-本地dns服务端:这部分属于递归查询。

本地dns服务端---外网:这部分属于迭代查询


一般情况下,dns client发送的请求,都是属于递归查询请求。

回到客户机查询163.com的场景,看下图:这个是客户机发出的请求,他的flags标中的RD位是1,即这个是递归查询请求,要求dns服务器(190)把最终的结果返回给我。


bubuko.com,布布扣


再看DNSnamed.conf配置:


bubuko.com,布布扣


190这台dns服务器named.conf配置文件中的recursion设成yes,表示这台服务器接收递归的dns查询请求。


bubuko.com,布布扣



Dig出来的结果中的flags行,有个ra标志,这个表示这台服务器允许递归。


上面说过:

本地dns服务端---外网:这部分属于迭代查询


OK,看190这台机器的查询请求数据包,可以看到190这台机发出去的dns查询请求,他的RD位都为0


bubuko.com,布布扣



RD位的解析如下:

bubuko.com,布布扣

如果named.conf设置:recursion no; 重启named服务。


bubuko.com,布布扣


Flags里的ra已没有了,说明这台服务器不允许我这个IP地址递归。

并提示递归请求,但不可用。recursion requested but not available



查这台服务器负责的域名,返回有结果,并且flags里有个aa,这个表示返回的是权威答案。


bubuko.com,布布扣



客户端使用迭代查询:

向根服务器发一个迭代查询

dig www.baidu.com +norecurse @199.7.91.13

+norecurse 表示发出去的dns请求是迭代查询,里面的rd标志位为0


由于根服务器没有授权回答,所以它返回能解答该查询的其他名字服务器列表。如下图:

bubuko.com,布布扣


注:根服务器flags没有ra,所以这台根服务器关闭递归查询。


本文出自 “尽管错,让我错到死!” 博客,请务必保留此出处http://hxw168.blog.51cto.com/8718136/1409219

【基础服务】简单理解DNS的递归、迭代查询 - DNS(一),布布扣,bubuko.com

【基础服务】简单理解DNS的递归、迭代查询 - DNS(一)

标签:dns   recursion   

原文地址:http://hxw168.blog.51cto.com/8718136/1409219

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!