对于澳大利亚受众,未缓存的 .com.au 域是否会比未缓存的 .com 域名解析得更快?

tho*_*ter 3 domain-name-system nameserver

如果您的客户、托管和 DNS 服务在澳大利亚,特别是在最坏的典型情况下(域未缓存在客户的任何本地 DNS 中继中),使用 .com.au 域而不是 .com 是否有任何速度优势?假设两个域最终都指向相同的名称服务器。

我知道这主要是学术性的,因为我们正在谈论最多需要几百毫秒的 DNS 查找,并且只会在会话开始时相关一次。我只是好奇。

我知道未缓存的 .com 查找将涉及至少咨询一台?.gtld-servers.net.服务器,而未缓存的 .com.au 将涉及至少咨询一台?.au.服务器。

现在,我想我需要知道的是

  • 各种?.gtld-servers.net.服务器是否使用任播技术,在澳大利亚拥有本​​地完全权威的节点,使它们对澳大利亚人的速度与澳大利亚人一样快,?.au.并避免 200 毫秒以上的海外延迟,还是其中部分或全部仅托管在美国或北半球?

tho*_*ter 6

我的初步研究表明答案是肯定的。使用dig <domain> +trace我一直注意到相关顶级名称服务器从下一步(在大多数情况下,返回 ns1.someisp.com 和 ns2.someisp.com 的步骤)返回名称服务器所需的时间。

虽然对 .au 域和 .com 域的查询数量惊人,来自域名服务器的查询似乎涉及往返美国,但 .com 域比 .au 域发生的更多。

...

好的,所以我做了更多的研究,我想我也可以报告结果。

  • 所有 DNS 查询都从根区域开始,尽管根区域中的查询不太可能需要查询根区域服务器,因为它几乎总是会被缓存(这是一个小区域,只解析名称“com "、"org"、"au" 等。根区名称服务器在澳大利亚有相当不错的存在(我认为大约 13 个中有 4 个在澳大利亚有一个节点)。但我们可能不需要担心这一点。

  • 然后 DNS 查询将查询顶级域服务器。对于未知域名,这不会被缓存,因此这一步对于解决问题的速度很重要。

    .com.net域的 13 个 TLD 服务器中,其中1 个将从澳大利亚回复(很可能是因为它使用任播寻址并有一个澳大利亚节点)。在为未知的 .com 域尝试随机名称服务器时,它有 1/13 的机会会快速返回(我的意思是澳大利亚人 <25 毫秒,而不是 190-280 毫秒,这是往返美国的典型情况)。

    .au域的 12 个 TLD 服务器中,其中4个将来自澳大利亚。在为未知的 .*.au 域尝试随机名称服务器时,它有 4/12(或 1/3)的机会快速返回。仅供参考,其中两个在不到 5 毫秒内从我测试的悉尼位置回复。

    .org域的 6 个 TLD 服务器中,其中1 个将从澳大利亚东海岸回复,另外1 个将从约 55 毫秒外的附近位置回复(这可能意味着,例如新加坡),因此我们将给出那半点。在为未知的 .org 域尝试随机名称服务器时,它有 1.5/6(或 1/4)的机会快速返回。

    测试我花时间解析 .au 与 .org 支持这一点:未缓存域的返回时间各不相同,因为测试的 DNS 服务器随机选择名称服务器。但是.au域的平均查找时间为203 毫秒(12 次试验),而.com域的平均查找时间278 毫秒(12 次试验)。正如我在下面讨论的那样,当使用繁忙的 DNS 服务器(具有良好缓存的服务器)时,这可能会变得更快

  • 一个繁忙的递归 DNS 服务器运行类似于最近的 BIND 副本,它将缓存各种名称服务器的 RTT(返回行程时间),并且会优先选择以前返回最快的那些。这是个好消息,但要使其正常工作,它必须是一个流量相当大的 DNS 服务器。服务器的 RTT 信息会随着时间的推移而衰减,并在其使用 30 分钟或完成对更快服务器的一定数量的查询时被丢弃。要“准备好”这个 RTT 缓存,需要针对不同域进行数十次或数百次查询(以便您至少访问每个 ?.gtld-servers.net 名称服务器、每个 ?.au 名称服务器等)。因此,要保持启动状态,每半小时需要进行数十或数百次查询。

    大型 ISP 的一对典型递归 DNS 服务器在这方面应该做得很好。

  • 仅仅从 TLD 服务器获取结果是不够的 - 这只是将您指向域自己的名称服务器。然后你也必须查询这些。如果没有胶水的TLD服务器记录(这不会有如果,例如,您的域名是例子。的COM和你的名字服务器NS?。实例。组织),这需要一个全新的DNS查找各地再次用于名称服务器地址。

当我最初做这个测试时,我惊讶于有多少 .au 域名服务器在 190 毫秒内回复(表明他们几乎可以肯定在美国)。