一个 DNS 名称服务器同时充当缓存服务器(递归是)和权威服务器(具有“example.com”区域的区域文件),如果我向此名称服务器查询有关“host.example.com”的资源记录,会发生什么?A)。服务器询问根区域--> com 区域> example.com 区域 B)。服务器检查其区域文件并根据此区域文件做出响应
简单来说,哪一个优先?
另一个类似的问题是区域文件和 DNS 缓存之间哪一个优先?
答案1
启用递归的服务器将在执行以下任一操作之前检查自己的区域递归地查询或转发到另一台服务器(转发是将查询传递到另一台服务器的另一种方式)。
如果 DNS 服务器未检查其具有权威性的本地区域,则递归查询将无限循环,因为查询只会循环回到您的 DNS 服务器(因为它是该域的权威服务器)。
请注意,递归与缓存无关。一些 DNS 服务器实施缓存是为了加快检索经常或最近查询的域,但这并不是递归查询过程工作方式不可或缺的部分。
递归的工作原理如下。三个红色箭头从上到下依次出现。向 root 询问 .com 在哪里,然后向 .com 询问 contoso.com 在哪里,然后向 contoso.com 询问 example.contoso.com 在哪里,并将该答案路由回客户端。
需要特别注意的是,我们在这里处理的是根服务器和通用顶级域名服务器,它们在全球互联网生态系统中占有特殊地位。它们不允许递归,因为它们的负载会非常大。
因此,在上图中,客户端正在向本地 DNS 服务器请求单个查询,该服务器决定以递归方式处理请求(它将完成解析地址的所有准备工作并返回单个响应)。然后,服务器迭代查询根和 gTLD 服务器。但是,dns.contoso.com 服务器本身可能启用递归,因此它可能能够向 contoso.com 的其他子域(如 example1.example.contoso.com(对 dns.example.contoso.com 具有权威性))提供答案,而无需客户端本地 DNS 服务器进行其他查询。