当客户端应用程序需用到域名对应IP地址时,向解析器发出查询请求。解析器首先检查本地DNS缓存,看是否有匹配的项目。如有,解析器立即将结果返回应用程序,否则解析器会产生DNS查询报文,并将其发送到本地域名服务器。
当询问到有关本域名内主机时,域名服务器直接做出回答。如服务器无法解析,则会先从缓存中查找,看该域名是否最近被解析过,如找到相应记录,服务器从缓存中获取的IP地址信息返回客户端,并标记为“非权威”,表示该结果可能已过期,同时附上解析该域名的权威服务器的域名和IP地址。客户端收到响应后,可直接使用“非权威”的IP地址进行访问,但可能会因结果过期而造成访问失败,如果不允许出现这种情况,客户端可直接联系附加信息中的权威域名服务器以检验返回的结果是否有效。如本地域名服务器在缓存中也无法找到匹配的记录项,通常有两项选择:递归或迭代。这依赖于服务器的配置方式。(www.xing528.com)
递归查询最典型。如域名服务器对于请求查询的域名来说并不是“权威”的,就将请求传送给另一域名服务器,如那个域名服务器仍无法解析域名,其同样会请求其他域名服务进行解析,这个过程如同爬梯子。如某个域名服务器成功解析该域名,则IP地址信息会沿相反路径返回客户端,如同从梯子上下来。如查询费了很多时间,超时也未找到记录,查询过程将停止。发出请求的域名服务器返回一个在迭代查询中,如域名服务器不能解决查询,将给客户端返回响应,告诉客户端能解决该查询的那个域名服务器,由客户端需自行与该服务器联系,以获得域名解析结果。迭代查询被强制在局部范围内进行,其中最主要原因是不一定能得到另一个能解决查询的域名服务器。需注意的是,所有的域名服务器都必须知道根服务器的地址,根服务器即包含顶级域中区域详细信息的服务器。如域名服务器不能对收到的域名进行解析,就需要将查询请求重定向到一个能解析该域名的服务器上,但如找不到这样的服务器,就只能把查询转发到根服务器,根服务器再负责将查询送到合适的域名服务器去。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。