1、只要发出递归查询,服务器必需回答目标 IP 与域名的映射关系。而迭代查询是,服务器收到一次迭代查询回复一次结果,这个结果不一定是目标 IP 与域名的映射关系,也可以是其它 DNS 服务器的地址。如图所示:从客户端到本地 DNS 服务器是属于递归查询,而 DNS 服务器之间就是的交互查询就是迭代查询。DNS 查询模式 1.递归查询: 一般客户机和服务器之间属递归查询,即当客户机向 DNS 服务器发出请求后,若 DNS 服务器本身不能解析,则会向另外的 DNS 服务器发出查询请求,得到结果后转交给客户机;2.迭代查询(反复查询): 一般 DNS 服务器之间属迭代查询,如:若 DNS2 不能响应 D
2、NS1 的请求,则它会将 DNS3 的 IP 给 DNS2,以便其再向 DNS3 发出请求;迭代查询和递归查询的区别迭代查询和递归查询迭代查询和递归查询是可以发送到域名服务器的两种请求。递归查询是最常见的发送到本地域名服务器的请求。当本地域名服务器接受了客户机的查询请求时,本地域名服务器将力图代表客户机来找到答案,而在域名服务器执行所有工作的时候,客户机只是等待。如果本地域名服务器不能直接回答,则它将在域名树中的各分支上下递归搜索来寻找答案。对于一个递归查询,DNS 服务器将持续搜索直到收到回答。这种回答可以是主机的 IP 地址,也可以回答“主机不存在” 。不论是哪种结果,递归域名服务器将把结
3、果返回给客户机。一个域名服务器若设置为使用前向服务器,则它将发送递归查询到指定的前向主机。这台收到前向查询的主机也将工作在递归模式以回答查询。如果本地服务器不是一个从属服务器,过一会儿它可能会自行开始查询过程,尽管它仍然希望从它的前向主机处得到回答。如果本地域名服务器设置为一个前向服务器的从属服务器,则工作方式会有所不同。客户机可以发送递归查询到一台从属服务器,但从属服务器不能进行递归查询,它实质上将成为其前向服务器的客户机等待回答。第 3 章曾对前向服务器和从属服务器进行了介绍。迭代查询则有所不同。迭代查询的最好例子是一台本地域名服务器发送请求到根服务器。当某个企业的本地域名服务器向根服务器
4、提出查询,根服务器并不一定代表本地域名服务器来担当起回答查询的责任。另一种说法是根服务器不接收递归查询。事实上,根服务器只是为解析查询做一件事:指引本地域名服务器到另一台主机来查询回答。这种做法通常称为重指引,也是期望得到的迭代查询的结果。例如,当根服务器被要求查询 www.isi.edu 的地址,根服务器不会到 ISI 域名服务器查询 www 主机的地址,它只是给本地域名服务器返回一个提示,告诉本地域名服务器到 ISI 域名服务器去继续查询和得到结果。DNS域名解析过程 主机向本地域名服务器的查询采用递归查询:主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知
5、道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。本地域名服务器向根域名服务器的查询通常采用迭代查询:本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。常见的两种方法“递归”和“迭代”:合理使用 DNS中的递归查询和迭代查询http:/ Hat Linux 服务器配置与应用第 6 章将详细介绍 DNS 服务器的基本概念、工作原理、配置及使用方法。本文为 DNS 查询的工作原理。