aaron Asked: 2019-05-27 19:13:04 +0800 CST2019-05-27 19:13:04 +0800 CST 2019-05-27 19:13:04 +0800 CST 一个dns服务器同时充当缓存服务器和权威服务器 772 如果我查询此名称服务器以获取有关“host.example.com”的资源记录,则 dns 名称服务器同时充当缓存服务器(递归是)和权威服务器(具有“example.com”区域的区域文件) ,会发生什么?A). 服务器询问根区域-->com 区域> example.com 区域 B). 服务器检查其区域文件并根据该区域文件做出响应 简而言之,哪个优先? 另一个类似的问题是区域文件和 dns 缓存之间哪个优先? dns cache 1 个回答 Voted Best Answer Frank Thomas 2019-05-27T20:18:39+08:002019-05-27T20:18:39+08:00 启用递归的服务器将在递归查询或转发到另一台服务器之前检查其自己的区域(转发是将查询传递到另一台服务器的另一种方式)。 如果 DNS 服务器不检查它们在其上具有权威性的本地区域,递归查询将无限循环,因为查询只会循环回您的 DNS 服务器(因为它是该域的权威服务器)。 请注意,递归与缓存无关。一些 DNS 服务器实施缓存以加快对频繁或最近查询的域的检索,但这并不是递归查询过程工作方式的组成部分。 这是递归的工作原理。三个红色箭头从上到下依次出现。向 root 询问 .com 在哪里,然后向 .com 询问 contoso.com 在哪里,然后向 contoso.com 询问 example.contoso.com 在哪里,然后将答案路由回客户端。 需要特别注意的是,我们在这里处理的是 Root 和 gTLD 服务器,它们在全球互联网生态系统中占有特殊的位置。它们不允许递归,因为它们的负载将是巨大的。 结果,在上图中,客户端从本地 DNS 服务器请求单个查询,它决定递归地处理请求(它将完成解析地址的所有步骤并发回单个响应)。然后服务器反复查询 Root 和 gTLD 服务器。dns.contoso.com 服务器本身可能会启用递归,因此它可能能够为 contoso.com 的其他子域提供答案,例如 example1.example.contoso.com(在 dns.example.contoso.com 上具有权威性),而没有客户端本地 DNS 服务器的额外查询。
启用递归的服务器将在递归查询或转发到另一台服务器之前检查其自己的区域(转发是将查询传递到另一台服务器的另一种方式)。
如果 DNS 服务器不检查它们在其上具有权威性的本地区域,递归查询将无限循环,因为查询只会循环回您的 DNS 服务器(因为它是该域的权威服务器)。
请注意,递归与缓存无关。一些 DNS 服务器实施缓存以加快对频繁或最近查询的域的检索,但这并不是递归查询过程工作方式的组成部分。
这是递归的工作原理。三个红色箭头从上到下依次出现。向 root 询问 .com 在哪里,然后向 .com 询问 contoso.com 在哪里,然后向 contoso.com 询问 example.contoso.com 在哪里,然后将答案路由回客户端。
需要特别注意的是,我们在这里处理的是 Root 和 gTLD 服务器,它们在全球互联网生态系统中占有特殊的位置。它们不允许递归,因为它们的负载将是巨大的。
结果,在上图中,客户端从本地 DNS 服务器请求单个查询,它决定递归地处理请求(它将完成解析地址的所有步骤并发回单个响应)。然后服务器反复查询 Root 和 gTLD 服务器。dns.contoso.com 服务器本身可能会启用递归,因此它可能能够为 contoso.com 的其他子域提供答案,例如 example1.example.contoso.com(在 dns.example.contoso.com 上具有权威性),而没有客户端本地 DNS 服务器的额外查询。