只要发出递归查询,服务器必需回答目标IP与域名的映射关系。
而迭代查询是,服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其它DNS服务器的地址。
 
如图所示:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
DNS迭代查询与递归查询的区别  _递归查询
 
 

DNS查询模式 
1.递归查询: 
一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;
2.迭代查询(反复查询): 
一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;

迭代查询和递归查询的区别

      迭代查询和递归查询

   迭代查询和递归查询是可以发送到域名服务器的两种请求。递归查询是最常见的发送到本地域名服务器的请求。当本地域名服务器接受了客户机的查询请求时,本 地域名服务器将力图代表客户机来找到答案,而在域名服务器执行所有工作的时候,客户机只是等待。如果本地域名服务器不能直接回答,则它将在域名树中的各分 支上下递归搜索来寻找答案。
  对于一个递归查询,DNS服务器将持续搜索直到收到回答。这种回答可以是主机的IP地址,也可以回答“主机不存在”。不论是哪种结果,递归域名服务器将把结果返回给客户机。
一个域名服务器若设置为使用前向服务器,则它将发送递归查询到指定的前向主机。这台收到前向查询的主机也将工作在递归模式以回答查询。如果本地服务器不 是一个从属服务器,过一会儿它可能会自行开始查询过程,尽管它仍然希望从它的前向主机处得到回答。如果本地域名服务器设置为一个前向服务器的从属服务器, 则工作方式会有所不同。客户机可以发送递归查询到一台从属服务器,但从属服务器不能进行递归查询,它实质上将成为其前向服务器的客户机等待回答。第3章曾 对前向服务器和从属服务器进行了介绍。
迭代查询则有所不同。迭代查询的最好例子是一台本地域名服务器发送请求到根服务器。当某个企业的本地域名服务器向根服务器提出查询,根服务器并不一定代 表本地域名服务器来担当起回答查询的责任。另一种说法是根服务器不接收递归查询。事实上,根服务器只是为解析查询做一件事:指引本地域名服务器到另一台主 机来查询回答。这种做法通常称为重指引,也是期望得到的迭代查询的结果。例如,当根服务器被要求查询www.isi.edu的地址,根服务器不会到ISI域名服务器查询www主机的地址,它只是给本地域名服务器返回一个提示,告诉本地域名服务器到ISI域名服务器去继续查询和得到结果。
DNS迭代查询与递归查询的区别  _dns服务器_02
 


DNS域名解析过程  

主机向本地域名服务器的查询采用递归查询:

             主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
 
 
本地域名服务器向根域名服务器的查询通常采用迭代查询:
       本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。

 

 

常见的两种方法“递归”和“迭代”:

DNS迭代查询与递归查询的区别  _dns服务器_03
 

 

 

DNS迭代查询与递归查询的区别  _查询  _04
 合理使用DNS中的递归查询和迭代查询
 
《Red Hat Linux服务器配置与应用》第6章将详细介绍DNS服务器的基本概念、工作原理、配置及使用方法。本文为DNS查询的工作原理。