当主 DNS 服务器关闭时,是否可以访问缓存的 DNS 条目?

当主 DNS 服务器关闭时,是否可以访问缓存的 DNS 条目?

我尝试访问subdomain.a.com用于dns.b.comDNS 的服务器,但该 DNS 服务器(实际上全部 10 个)已宕机约 2 小时。subdomain.a.com 运行正常,但您无法使用其域名访问它。

我不是这方面的专家,但据我所知,DNS更改通常需要24-48小时才能传播。我是否应该能够subdomain.a.com使用host命令进行查找并要求它查询例如Google或Cloudflares的DNS服务器(8.8.8.8或1.1.1.1)?我试过了,但没有得到回应(Host subdomain.a.com not found: 3(NXDOMAIN))。

我也尝试过https://dnshistory.org/https://completedns.com/dns-history/但没有这个域名的任何数据(我猜可能是因为它是一个子域名)。

还有其他方法可以找出 DNS 服务器暂时不可用的站点的 IP 地址吗?

答案1

我不是这方面的专家,但据我所知,DNS更改通常需要24-48小时才能传播。我不应该使用host命令查找subdomain.a.com吗?

有时,是的。但 DNS 更改“传播”的描述可能给人的印象是它们被推向世界各地,并且每个 DNS 服务器(Google、Cloudflare 等)都保留每个现有域的缓存。但事实并非如此。

事实上,一旦做出改变,新的信息就会被发送仅有的到域名自己的名称服务器 1 您所说的已关闭的名称服务器),而世界其他地方根本无法接收它。

在这个小圈子之外,DNS实际上是一个基于“拉”的系统,缓存就是在这个系统中建立起来的一经请求当(Google 或 Cloudflare 或 ISP)DNS 服务器收到特定名称的查询时。除非 Google 的 DNS 服务器至少收到一次“subdomain.a.com”查询,否则它对该域名一无所知。

其次,缓存条目会在一定时间后过期(域名所有者设置的“TTL”,可以是 24 小时,但也可以高达 1 周或低至 1 分钟)。例如,如果您的域名的 TTL 为 1 小时,那么 Google 只会将结果缓存一小时在进行查询后;此后条目消失,后续查询将导致重新检索数据(给人一种需要 1 小时来“刷新”数据的错觉)。

最后,由于 Google 和 Cloudflare 都使用任播它们的 8.8.8.8 和 1.1.1.1 地址 – 相同的 IP 地址由世界各地的许多服务器代表,每个服务器都有自己的缓存 – 这些缓存条目或多或少是本地的。相同的条目可能仍在为纽约服务的 8.8.8.8 实例中缓存几个小时,但在为伦敦服务的实例中根本不缓存。

因此,如果该域名的所有名称服务器都瘫痪了,您将能够查询缓存的信息除非先前的查询导致它被主动“拉”并缓存在特定的服务器上。


( 1甚至这也不能保证;仍然有域名使用旧式设置,即使其权威名称服务器也按照设定的时间表(例如每小时)进行复制,而不是立即复制。这是经常重复的“24-48h”的另一个起源——许多 TLD 过去仅每小时甚至每天部署一次更改。)

我尝试过,但是没有得到回应(未找到主机 subdomain.a.com:3(NXDOMAIN))。

这是一个非常不同的问题。你做过得到响应;“未找到 (NXDOMAIN)”是成功查找的结果 - 虽然结果为否定,但该结果始终来自该域的权威 DNS 服务器。(它也以与肯定结果相同的方式缓存,具有 TTL。)

因此,获取 NXDOMAIN 表明“dns.b.com”并未完全关闭 - 它处于开启状态,并且主动声明该子域名在其数据库中不存在(无论是现在,还是在缓存负面结果时)。

如果缓存服务器确实无法联系权威 DNS 服务器并从其获取响应,您将得到“SERVFAIL”的结果。

相关内容