DNS中的递归查询和迭代查询

递归查询的工作方式

递归查询是最常见的查询方式,域名服务器将代替提出请求的客户机(下级dns服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。
示例: (红色为查询,蓝色为迭代查询返回的提示信息,棕色为递归查询返回的IP信息)

 DNS 查询流程图

示例说明:A向B发送递归查询请求,B向C发送迭代查询请求(下一节将介绍迭代查询),得到C给出的提示后,B向D发送迭代查询请求,得到D给出的提示后,B向E发出迭代请求,得到E给出的提示后,B向F发出迭代查询请求,得到F给出的提示后,B得到了F返回G的IP地址,B向A返回G的IP地址,整个查询结束。
也许你现在还很难理解什么是迭代查询,下一节中将以一个非常易于理解的方法说明。

迭代查询的工作方式

迭代查询又称重指引,当服务器使用迭代查询时能够使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般的,每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。从上节的图中可以知道,B访问C、D、E、F、G,都是迭代查询,首先B访问C,得到了提示访问D的提示信息后,开始访问D,这时因为是迭代查询,D又返回给B提示信息,告诉B应该访问E,依次类推。
说明:假设你要寻找一家你从未去过的公司,你会有2种解决方案,1是找一个人替你问路,那可能是你的助手,2是自己问路,每走过一个路口,就问一个人,这就好比递归查询和迭代查询,递归查询在这里代表你的第1种解决方案,而迭代则是第2种解决方案。

如何配置递归查询及迭代查询

在默认情况下DNS服务器既接受来自其他客户机(其他DNS服务器)的迭代查询也接受其他客户机(其他DNS服务器)的递归查询。
提醒:在DNS服务器属性中,你可能会混淆高级选项卡中的“禁止递归”选项和转发器选项中的“不对这个域使用递归”后者控制将要接受的查询类型。
修改:
禁止递归查询。在DNS服务器属性中,高级选项卡,服务器选项,“禁止递归”。
通常根服务器或者流量较大的域名服务器都不使用递归查询,其原因也很简单,大量的递归查询会导致服务器过载。
问题:为什么不连迭代查询也关闭?这样不更节省损耗吗?这绝对是一个让人哭笑不得的问题。原因是如果不建立迭代查询,你的DNS又可以做什么事情呢?那不如不建立DNS服务器。

调整最佳性能的查询方式

一般的,你的企业内部如果有超过300台机器,你就应该在你的部署计划中建立多个DNS服务器了。根据活动目录或者物理位置将多个DNS平均分布。而根域名服务器总应该使用迭代查询,而不应该使用递归查询。同时,为了减轻客户机的负担,所有的下级域名服务器就都应该使用递归查询与迭代查询的混合模式。若你的企业整合了活动目录及有分公司分布在全球,通过使用多层的域名服务器,可以得到最佳的性价比!

原文地址: 合理使用DNS中的递归查询和迭代查询

XeonWell Studio