如果有人在 Google 公共 DNS 的名称服务器关闭时清除主机,会发生什么情况?

如果有人在 Google 公共 DNS 的名称服务器关闭时清除主机,会发生什么情况?

在最近对 Dyn 服务器的 DDoS 攻击中,许多网站在相当长的一段时间内都无法访问。但是,这些网站可以通过 Google 的公共 DNS 服务器解析。我假设 IP 地址自上次检查以来被缓存了一段 TTL 时间,该时间是域所有者在 Dyn 停机前通过 Dyn 配置的,对吗?如果是这样,这是否意味着如果有人使用 Google 的公共 DNS 刷新缓存工具刷新 twitter.com,那么在 Dyn 停机期间,所有使用 Google 公共 DNS 作为备份来解析该域的人都将无法使用该域名?

答案1

但是,这些网站可以通过 Google 的公共 DNS 服务器进行解析。

不久,当缓存 TTL 过期时,这些 DNS 也必须转到权威 DNS 来解析记录。

这是对的吗?

是的,一点没错。

如果是这样,是否意味着如果有人使用 Google 的公共 DNS 刷新缓存工具来刷新 twitter.com,那么在 Dyn 停机期间,使用 Google 公共 DNS 作为备份来解析该域名的每个人都将无法使用该工具?

没错,在这种情况下这些服务器将无法使用。但无论如何,即使您不清除(刷新)TTL,它也可以在有限的时间内使用(无论剩余多少缓存)。

另一件需要注意的事情是,Google 公共 DNS 在 LB(负载均衡器)后面运行多个实例,我猜是这样,如果你注意到了,即如果你快速查询公共 DNS,它会在每次回复中给出不同的 TTL。这意味着具有最低 TTL 的服务器实例是您可以无缝获得记录回复的最长时间,此后,如果您查询 TTL 已过期的 DNS,您将不会收到回复。

解决这个问题最简单的方法是进入/etc/hosts无论您希望哪个网站 100% 可用。(这就像是倒退 ;))

希望这可以帮助!

答案2

您的假设是正确的。如果缓存名称服务器不再具有您所请求的记录的有效副本(即,它已被“刷新”或已达到 TTL),则它必须联系上游服务器才能处理响应。

如果缓存服务器直接查询权威服务器,而权威服务器无法响应(就像上周 Dyn 攻击的情况一样),那么缓存服务器可以返回给客户端的唯一响应就是失败。

相关内容