在DNS查询过程中有两种查询类型:递归查询和迭代查询:
1、递归查询
当DNS客户端按照它的DNS服务器列表向DNS服务器发出查询请求的时候,接受查询请求的DNS服务器和客户端之间的查询关系一般都是递归查询。该DNS服务器会查询自己的区域文件、缓存,如果没有找到结果就向别的DNS服务器查询。递归查询时客户端得到的结果只能是成功或失败,接受查询的DNS服务器必须告诉客户端请求查询的IP地址或者告诉客户端找不到请求的地址及找不到的原因(查询超时或遇到错误)。
不是所有的查询都是递归查询,只有满足以下条件才会进行递归查询,否则将进行迭代查询。
a、客户机要求递归查询。
b、DNS服务器接受递归查询。
注意:
因为递归查询比较占用系统资源,有安全方面的隐患,所以可以设置DNS服务器不接受递归查询。
2、迭代查询
迭代查询又称为简单查询,是指DNS服务器根据自己的高速缓存或区域的数据,以最佳结果作答。如果DNS服务器无法解析,它可能返回一个指针。指针指向可能有目标域名记录的DNS服务器,继续该过程,直到找到拥有目标记录的DNS服务器,或者直到查询出错或超时为止。
注意:
DNS服务器之间一般都是发送迭代查询的请求,除非DNS服务器接受了一个递归查询请求,并且无法解析该查询,这时该服务器将向转发器中的DNS服务器发送递归查询请求。如果没有设置转发器,该服务器将向根提示中的根服务器发送迭代查询的请求,