近 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
你确实需要解决问题的根源。我会这样做:
对相关域名执行 whois 查询。
写下该域名列出的名称服务器。
对 whois 中列出的每个名称服务器执行 NS nslookup,并确保它们返回与 whois 列出的相同的名称服务器列表。
查询步骤 2 中每个名称服务器以查找相关域,并确保它们都返回正确的信息。如果任何名称服务器返回 NXDOMAIN 响应,则您已找到罪魁祸首。
任何在 whois 中列出但在您单独查询名称服务器时未列出的名称服务器都需要从 whois 中删除。
相反,任何从 NS nslookup 返回但未在 whois 中列出的名称服务器都需要作为名称服务器删除。