【问题标题】:Is DNS lookup time affected by the use of subdomains and CNAME?使用子域和 CNAME 是否会影响 DNS 查找时间?
【发布时间】:2013-04-05 12:25:28
【问题描述】:

使用子域和 CNAME 是否会减慢 DNS 查找时间?据我了解,如果客户想要查找例如rweb.stat.ucla.edu,至少需要四个步骤:

[registrar] NS ucla.edu ==> ns2.dns.ucla.edu
[ns2.dns.ucla.edu] NS stat.ucla.edu ==> dns.stat.ucla.edu
[dns.stat.ucla.edu] CNAME rweb.stat.ucla.edu ==> id-86-243.stat.ucla.edu
[dns.stat.ucla.edu] A id-86-243.stat.ucla.edu  ==> 128.97.86.243   

这是否意味着客户端在访问页面时必须连接到这些服务器中的每一个?或者 DNS 服务器是否相互连接并直接解析(和缓存)rweb.stat.ucla.edu ==> 128.97.86.243?我也不清楚找到根域的初始记录需要做多少工作?

【问题讨论】:

  • 大多数 DNS 服务器都配置为缓存。就像改名可能需要 12 小时才能在全国范围内迁移。
  • 他们到底缓存了什么?整个往返?还是单独查找?
  • 通常他们会缓存他们已经缓存的内容。它通常只是一个队列,其中最后一个 x 被超时缓存。关于 DNS 服务器必须如何确定答案并没有硬性规定。这真的不是我的专长。你为什么在乎?导航到多个服务器的不是客户端。您的 DNS 服务器有责任走出去获取它没有的东西。
  • 伟大的书是 Comer 的计算机网络和互联网。

标签: dns nameservers


【解决方案1】:

首先,注册商从不参与实际的 DNS 查找。注册商(实际上是注册管理机构)是 DNS 协议范围之外的管理实体。实际的查找过程看起来更像这样:

  1. 向根服务器请求Arweb.stat.ucla.edu.
    • 他们不会告诉你,但会为你指出edu. 的服务器。
  2. edu. 服务器询问Arweb.stat.ucla.edu.
    • 他们不会告诉你,但他们会为你指出ucla.edu. 的服务器
  3. ucla.edu 服务器询问Arweb.stat.ucla.edu.
    • stat.ucla.edu 可能是委托给另一组名称服务器的区域,在这种情况下,您将第三次获得推荐答案。
    • 但不能说不是。
    • 你会得到答案:rweb.stat.ucla.edu.CNAME id-86-243.stat.ucla.edu

现在你必须重新开始并查找id-86-243.stat.ucla.edu...

...除了因为CNAME 的目标与原始记录在同一个区域内(或者,一般来说,在恰好由同一个名称服务器提供服务的任何区域内),名称服务器将有助于提供你在 DNS 响应的附加部分中的 A 记录 id-86-243.stat.ucla.edu。解析器会注意到这一点,并且不必在 A 记录本身之后运行。

由于解析器会缓存答案,因此可以从缓存中回答许多查询,而实际上不必每次都询问。尤其是查询的前几个步骤很可能已经被解析器缓存,除非在它启动后立即使用冷缓存。所以解析器通常可以从第 3 步开始(因为它记得 ucla.edu. 的名称服务器来自其缓存),或者至少在第 2 步(因为它记得 edu. 的名称服务器是什么),如果它没有已经知道最终答案了。

因此,您的问题的简短回答是,使用CNAME 会使解析器工作更多,并使解析过程花费更长的时间。但实际上这并不重要,因为解析器的缓存非常有用。如果CNAME 的目标与CNAME 记录本身位于同一区域,则由于有帮助的附加记录,它的重要性就更小了。

【讨论】:

  • 你知道吗,我怎样才能知道子域是使用 CNAME 还是 A 记录?本质上,我对子域有几个请求。基本上,a.domainb.domain 以及 DNS 查找两者的时间大致相同。我想这意味着dns 分辨率没有被缓存。
猜你喜欢
  • 2019-08-09
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 2020-02-04
  • 2010-10-13
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
相关资源
最近更新 更多