DNS 迭代查询与递归查询

DNS 查询以各种不同的方式进行解析。有时,客户端也可使用从先前的查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询。DNS 服务器也可代表请求客户端查询或联系其他 DNS 服务器,以便完全解析该名称,并随后将应答返回至客户端。这个过程称为递归。

另外,客户端自己也可尝试联系其他的 DNS 服务器来解析名称。当客户端这么做的时候,它会根据来自服务器的参考答案,使用其他的独立查询。该过程称作迭代。

只要发出递归查询,服务器必需回答目标IP与域名的映射关系。
而迭代查询是,服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其它DNS服务器的地址。
如图所示:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
dns查询
2010-10-13 14:09 上传
下载附件 (81.93 KB)
dns查询



总之,DNS 查询过程按两部分进行:

名称查询从客户端计算机开始,并传送至解析程序即 DNS 客户服务程序进行解析。
不能就地解析查询时,可根据需要查询 DNS 服务器来解析名称。
下面的部分将更加详细地解释这两个过程:

第一部分:本地解析程序
下图显示了完整的 DNS 查询过程的概况。
dnsq2.png 
  
如查询过程的初始步骤所示,DNS 域名由本机的程序使用。该请求随后传送至 DNS 客户服务,以便使用本地缓存信息进行解析。如果可以解析查询的名称,则应答该查询,该处理完成。

本地解析程序的缓存可包括从两个可能的来源获取的名称信息:

如果本地配置主机文件,则来自该文件的任何主机名称到地址的映射,在 DNS 客户服务启动时将预先加载到缓存中。
从以前的 DNS 查询应答的响应中获取的资源记录,将被添加至缓存并保留一段时间。
如果此查询与缓存中的项目不匹配,则解析过程继续进行,客户端查询 DNS 服务器来解析名称。

第二部分:查询 DNS 服务器
如前面的图中所示,客户端将查询首选 DNS 服务器。在此过程的初始客户/服务器查询部分中使用的实际服务器,选自全局列表。有关如何编译和更新该全局列表的详细信息,请参阅客户端功能。

当 DNS 服务器接收到查询时,首先检查它能否根据在服务器的本地配置区域中获取的资源记录信息作出权威性的应答。如果查询的名称与本地区域信息中的相应资源记录匹配,则使用该信息来解析查询的名称,服务器作出权威性的应答,。

如果区域信息中没有查询的名称,则服务器检查它能否通过来自先前查询的本地缓存信息来解析该名称。如果从中发现匹配的信息,则服务器使用该信息应答查询。接着,如果首选服务器可使用来自其缓存的肯定匹配响应来应答发出请求的客户端,则此次查询完成。

如果无论从缓存还是从区域信息,查询的名称在首选服务器中都未发现匹配的应答,那么查询过程可继续进行,使用递归来完全解析名称。这涉及来自其他 DNS 服务器的支持,以便帮助解析名称。在默认情况下,DNS 客户端服务要求服务器,在返回应答前使用递归过程来代表客户端完全解析名称。在大多数情况下,DNS 服务器被默认配置为支持递归过程,如下图所示。

dnsq2.png 
  
为了使 DNS 服务器正确执行递归过程,首先需要在 DNS 域名空间内有关于其他 DNS 服务器的一些有用的联系信息。该信息以根提示的形式提供,它是一张初始资源记录列表,DNS 服务可利用这些记录定位其他 DNS 服务器,它们对 DNS 域名空间树的根具有绝对控制权。根服务器对于 DNS 域名空间树中的根域和顶级域具有绝对控制权。详细信息,请参阅更新根提示。

使用根提示查找根服务器,DNS 服务器可完成递归的使用。理论上,该过程启用 DNS 服务器,以便那些对域名空间树的任何级别使用的任何其他 DNS 域名具有绝对控制权的服务器。

例如,当客户端查询单个 DNS 服务器时,请考虑使用递归过程来定位名称“host-b.example.microsoft.com”。在 DNS 服务器和客户端首次启动,并且没有本地缓存信息可帮助解析名称查询,就会进行上述过程。根据其配置的区域,它假定由客户端查询的名称是域名,该服务器对该域名没有本地知识。

首先,首选服务器分析全名,并确定它需要对顶级域“com”具有权威性控制的服务器的位置。随后,对“com”DNS 服务器使用迭代查询,以便获取“microsoft.com”服务器的参考信息。接着,来自“microsoft.com”服务器的参考性应答,传送到“example.microsoft.com”的 DNS 服务器。

最后,与服务器“example.microsoft.com”联系上。因为该服务器包括作为其配置区域一部分的查询名称,所以它向启动递归的源服务器作出权威性地应答。当源服务器接收到表明已获得对请求查询的权威性应答的响应时,它将此应答转发给发出请求的客户端,这样递归查询过程就完成了。

尽管执行上述递归查询过程可能需要占用大量资源,但对于 DNS 服务器来说它仍然具有一些性能上的优势。例如,在递归过程中,执行递归查询的 DNS 服务器,获得有关 DNS 域名称空间的信息。该信息由服务器缓存起来并可再次使用,以便提高使用此信息或与之匹配的后续查询的应答速度。虽然打开与关闭 DNS 服务时,这些缓存信息将被清除,但是随着时间的推移,它们会不断增加并占据大量的服务器内存资源。

dnsq2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值