如何查找 DNS“链”中哪个服务器返回 NXDOMAIN

如何查找 DNS“链”中哪个服务器返回 NXDOMAIN

近 48 小时以来,我们一直遇到 A 和 CNAME 记录的零星 DNS 中断。我们主要通过 Windows 上的 ping 和 nslookup 来跟踪问题。

查找“www”(A)、“img1”(CNAME)、“store”(A)均未找到(Windows ping 或 nslookup 说它只是找不到主机)——并且在一个在线 DNS 测试器上我甚至看到了 NXDOMAIN 响应。

我很确定在 DNS“链”的某个地方有一个缓存的 NXDOMAIN 响应返回,并且在 46 小时后仍然被缓存。

我甚至见过这样的情况 - 使用 nslookup - 我img1.example.com在 5 秒内对 CNAME 记录进行了 10 次查找,并在一秒钟内从同一个 verizon DNS 服务器得到了否定和肯定的响应。

就像我说的,这种情况已经发生了 48 小时。“中断”只持续了几分钟,但至少有 4 个不同的地理位置/网络都出现了这种情况。

我以为现在不良记录应该已经清除了,但我希望找到有问题的 DNS 服务器,至少可以尝试联系他们 - 或者找出是谁的错。

显而易见的问题的答案

  • DNS目前为godaddy,完全没有改变
  • 域名已在 godaddy 托管的 DNS(ns41.domaincontrol.com)上处于活跃状态 3 年
  • 在多个不同的网络上观察到问题,Verizon DSL、Comcast Cable、Verizon EVDO、Site24x7 网站
  • 甚至发生在亚马逊 A3 的 CNAME 记录上(即 100%不是网络服务器问题,而是 100% DNS 问题)
  • 我不是专家,但该问题已得到两个比我更了解的人的证实。一个人认为最可能的问题是某处缓存的 NXDOMAIN 响应。

我们是否应该等待最多 4 天再更换 DNS 提供商?是否有某种工具可以追踪 DNS 的来源并找到缓存 NXDOMAIN 响应的实际服务器 - 或者也许有一种服务可以测试数百/数千个 DNS 服务器的响应?

答案1

我认为您可能对 DNS 的工作方式存在概念上的问题。

只有 DNS 服务器执行递归解析缓存查找。受影响的“verizon DSL、comcast cable、verizon EVDO、site24x7 website”用户使用的 DNS 服务器正在缓存查找。

根 DNS 服务器、.com 服务器以及您域名的权威服务器不会缓存查找,因为它们不提供递归解析服务。

有可能(实际上,从我在 Google 搜索中看到的情况来看,很有可能)GoDaddy 会偶尔返回您域名的 NXDOMAIN,而这些 NXDOMAIN 正被递归解析器缓存。(根据RFC2308,它们最多应该被缓存 SOA 中指定的区域的 TTL,或者 SOA 最小值(以最小者为准)。)

显然,GoDaddy 的“免费”DNS服务不太受推崇。我个人不使用它,所以我无法评论它。

没有提供递归解析的 DNS 服务器中央“列表”供您“测试”。(我家里就有一台,如果需要,我可以在虚拟机上再启动几台……)您需要一个可靠的提供商来为您的域名提供权威性,并且您只需要希望世界上的其他人都遵守 TTL 并充当“良好的 DNS 公民”。


编辑:

“递归解析”是 DNS 服务器解析不属于其权威的记录的过程。该过程从根 DNS 服务器开始,然后以递归方式(即循环回自身)处理查询中指定的域的所有权威 DNS 服务器,直到到达最后一个 DNS 服务器并返回所需的资源记录(或否定响应)。

对于三级查询,例如“www.example.com”,将发生以下情况(为了使这一点更清楚、更简单,我忽略了这一事实:在整个过程中,ISP DNS 服务器都在检查其缓存,而不是向远程 DNS 服务器发出查询并将收到的结果放入其缓存中):

  • 您的 PC 向指定的 DNS 服务器(例如,在您的 ISP 处)发出查询。

  • ISP DNS 服务器验证其在缓存中没有响应,然后查询其中一个根 DNS 服务器。

  • 根 DNS 服务器仅对根具有权威性,它会响应查询中指定的 gTLD(.com、.net、.tv、.fu 等)的权威 DNS 服务器列表。协议会继续执行,在此过程中,始终会将完整查询发送到每个后续 DNS 服务器。由于无法知道哪个 DNS 服务器对任何给定查询具有权威性,并且我们希望最大限度地减少往返次数,因此我们始终在每个查询中发送完整域。

  • ISP DNS 服务器向返回的其中一个 DNS 服务器进行查询,作为指定 gTLD 的权威服务器。

  • gTLD DNS 服务器仅对二级域名(例如 microsoft.com、example.com 等)具有权威性,它会返回一个对二级域名具有权威性的 DNS 服务器列表。

  • ISP DNS 服务器向返回的其中一个 DNS 服务器查询该二级域名的权威 DNS 服务器。

  • 对第三级域名(www.microsoft.com、ftp.example.com 等)具有权威性的二级 DNS 服务器,域返回所请求的记录。

  • ISP DNS 服务器将您的 PC 查询的记录返回给您的 PC。

通常,ISP 会向其客户提供递归解析服务。托管提供商的 DNS 服务器(对客户托管的域具有权威性)通常不提供递归服务(如果查询不具有权威性的域,则会返回根服务器)。

答案2

你确实需要解决问题的根源。我会这样做:

  1. 对相关域名执行 whois 查询。

  2. 写下该域名列出的名称服务器。

  3. 对 whois 中列出的每个名称服务器执行 NS nslookup,并确保它们返回与 whois 列出的相同的名称服务器列表。

  4. 查询步骤 2 中每个名称服务器以查找相关域,并确保它们都返回正确的信息。如果任何名称服务器返回 NXDOMAIN 响应,则您已找到罪魁祸首。

任何在 whois 中列出但在您单独查询名称服务器时未列出的名称服务器都需要从 whois 中删除。

相反,任何从 NS nslookup 返回但未在 whois 中列出的名称服务器都需要作为名称服务器删除。

相关内容