DNS递归查询与迭代查询

原文连接:https://www.cnblogs.com/qingdaofu/p/7399670.htmlhtml

DNS递归查询与迭代查询

 

基础知识

1.域名系统浏览器

 

 2.域名服务器缓存

域名解析过程

1.在浏览器中输入www.qq.com域名,操做系统会先检查本身本地的hosts文件是否有这个网址映射关系,若是有,就先调用这个IP地址映射,完成域名解析。


2.若是hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,若是有,直接返回,完成域名解析。


3.若是hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此咱们叫它本地DNS服务器,服务器

此服务器收到查询时,若是要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具备权威性。


4.若是要查询的域名,不禁本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具备权威性。post



5.若是本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,url

若是未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)是谁来受权管理,并会返回一个负责该顶级域名服务器的一个IP。操作系统

本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,若是本身没法解析,3d

它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动做,进行查询,直至找到www.qq.com主机。


6.若是用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器若是不能解析,或找根DNS或把转请求转至上上级,以此循环。htm

无论是本地DNS服务器用是是转发,仍是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。blog

递归查询与迭代查询

 1、主机向本地域名服务器的查询通常都是采用递归查询。

        所谓递归查询就是:若是主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,

        向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机本身进行下一步查询。

        所以,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示没法查询到所需的IP地址。

 

2、本地域名服务器向根域名服务器的查询的迭代查询。

       迭代查询的特色:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪个域名服务器进行查询”。

        而后让本地服务器进行后续的查询。根域名服务器一般是把本身知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。

        顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪个权限域名服务器进行查询。

        最后,知道了所要解析的IP地址或报错,而后把这个结果返回给发起查询的主机

 

 

 

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

迭代:客户端发出一次请求,对方若是没有受权回答,它就会返回一个能解答这个查询的其它名称服务器列表,

          客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它获得最终结果。

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

 

从递归和迭代查询能够看出:

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

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

递归查询时,返回的结果只有两种:查询成功或查询失败.

迭代查询,又称做重指引,返回的是最佳的查询点或者主机地址.

相关文章
相关标签/搜索