当 DNS 没有缓存时

当 DNS 没有缓存时

过去几天我们遇到了一些奇怪的 DNS 问题,我不完全明白。

由于我们的 DNS 提供商进行了一些“未知”服务器重新配置,我们的一些 DNS 名称无法为某些客户进行解析。

该问题似乎是间歇性的,即在几天内停止工作并在几分钟内开始工作。

我不是 DNS 专家,但我曾期望 DNS 缓存可以防止此类事情发生 - 当我们需要更改 DNS 记录的 IP 地址时,可能需要 24 小时才能传播,那么我们的 DNS 提供商怎么会如此轻易地为我们的客户间歇性地中断名称解析?DNS 缓存不应该在这里发挥作用吗?

大约一个月前,我们遇到了类似的问题,当时他们的一个名称服务器“决定从头开始重新加载 DNS 数据库”——这也破坏了我们的名称解析。同样,为什么缓存不能满足名称解析请求。

任何猜测都值得感激。约翰

答案1

您需要更好地了解 DNS 的工作原理。DNS 记录不会传播。如果我的 DNS 客户端或 DNS 服务器尚未查询您的 DNS 记录,那么他们就不会缓存它们。如果我尝试解析您的 DNS 记录并且您的名称服务器不可用,那么我将一无所获,也无法解析您的 DNS 记录。

只有成功查询过您的 DNS 记录的客户端才会缓存您的 DNS 记录,并且缓存时间仅限于这些记录的 TTL 期限。一旦这些记录的 TTL 到期,这些客户端将不得不重新查询……如果您的名称服务器不可用,那么他们将一无所获。

答案2

嗯,通常这取决于记录的 TTL 时间和缓存 DNS 服务器的配置。每个客户端的体验都会有所不同,因为他们都使用(无论如何很可能)不同的 DNS 服务器。如果客户端 A 使用其 ISP 的 DNS 服务器,并且两天内没有访问过您的网站,但在您的 DNS 提供商犯错后不久就向您的网站发出请求,则客户端 A 使用的 DNS 服务器将在其缓存中查找您的域,它很可能会找到它,但它随后会注意到它已超过 TTL,因此需要进行新的查找。但由于您的提供商遇到问题,它很可能会返回无法解析的错误。

这是一种可能的情况。

相关内容