当 DNS 客户端需要查询正在使用的名称时,它会查询 DNS 服务器来解析该名称。客户端发送的查询报文包含以下3条信息:
指定的 DNS 域名必须是完全限定域名 (FQDN);
指定查询类型可以根据类型指定资源记录,也可以指定为查询操作的特殊类型;
DNS域名的指定类别。
DNS 查询可以通过多种不同的方式解决。客户端可以使用从先前查询获得的缓存信息在本地回答查询; DNS服务器还可以使用自己的资源记录信息缓存来回答查询; DNS服务器还可以代表请求客户端查询或联系其他DNS服务器来完成查询。解析名称并将响应返回给客户端称为递归。
另外,客户端本身也可以尝试联系其他DNS服务器来解析该名称。然后,根据 DNS 服务器的参考答案使用其他独立查询,这一过程称为迭代。
总之,DNS 查询过程分为两部分:
名称查询从客户端计算机开始,发送到本地DNS客户端服务程序进行解析;
如果本地无法解析查询,可以根据配置的查询 DNS 服务器解析名称。
上述两种查询方法的具体工作流程如下。
1.本地解析
当客户端发出解析请求时,该请求首先发送到 DNS 客户端服务,使用本地缓存信息进行解析。如果可以解析所查询的名称,则 DNS 客户端服务响应查询,请求处理结束。本地DNS服务客户端解析流程如图6-2所示。
图6-2 本地DNS服务客户端解析流程
本地解析器的缓存包含两种类型的名称信息:
本地配置的host文件,即主机名到地址的映射信息,在DNS客户端服务启动时预加载到缓存中;
从之前的 DNS 查询的响应中获取的资源记录,在缓存中保留一定时间。
如果此查询与本地缓存中的项目不匹配,解析过程将继续,客户端查询 DNS 服务器来解析该名称。
2.查询DNS服务器
当客户端请求无法在本地解析时,该请求将被发送到 DNS 服务器。当DNS服务器收到查询请求时,首先检查是否可以获取服务器本地配置区域中的资源记录信息来进行响应。原理如图6-3所示。
如果查询的名称与本地区域信息中对应的资源记录匹配,则使用该信息解析查询的名称,服务器响应,查询完成。
图6-3 查询DNS服务器示意图
如果查询的名称不在区域信息中,服务器将检查是否可以使用先前查询的本地缓存信息来解析该名称。如果找到匹配的信息,服务器将使用该信息回答查询,并且查询完成。
如果在首选服务器中没有找到与查询名称匹配的答案,无论是从缓存还是从区域信息,查询过程可以继续使用递归来完全解析该名称。递归查询的工作过程如下。
如图6-4所示,对于要递归查询的地址,首选DNS服务器通过分析完全限定域名来查询顶级域com,com DNS服务器联系该服务器以获取进一步的地址。这样循环查询,直到得到需要的结果,并逐级返回查询结果,最终完成查询。
图6-4 递归查询流程
需要注意的是,为了让 DNS 服务正确运行递归查询,需要一些必要的信息。此信息通常以根目录的形式提供。通过使用根目录提示找到根域服务器,DNS服务器就可以完成递归查询。 。
如果客户端申请使用递归过程,但DNS服务器未启用递归或者客户端向DNS服务器查询时未申请使用递归过程,则采用迭代查询。迭代查询的工作过程如下。
如图6-5所示,如果要迭代查询到的地址,首先,当DNS服务器在本地无法查询到客户端请求的信息时,它会作为DNS客户端继续查询其他配置的DNS服务器,以便解析的信息。姓名。大多数情况下,搜索可能会扩展到互联网上的根域服务器,但根域服务器不会完全响应请求。它只会返回服务器的 IP 地址。此时,DNS服务将基于服务器的IP地址。向服务器查询信息,服务器完成域名解析后,将结果返回给DNS服务器。
图6-5 迭代查询流程
对于大多数迭代查询,如果其主 DNS 无法解析名称,客户端将使用本地配置的 DNS 服务器列表来联系整个 DNS 命名空间中的其他名称服务器。
扫一扫在手机端查看
-
Tags : DNS学习(三)---DNS查询原理 博客 51CTO博客
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。