今天我们的网站对某些人来说瘫痪了,因为 dotster 更改了他们的一些名称服务器的 IP。(ns1.nameresolve.com 等)..
这让我感到疑惑,所有访问过我们网站的人都会将其缓存,而没有访问过我们网站的人会在他们的 DNS 中查找它,而他们的 DNS 中没有它,因此会检查链中的下一个 DNS,最终会检查 nsX.nameresolve.com(如果记录太旧,则会失败)..那么它在哪个 DNS 上检查 nsX.nameresolve.com。
请随意编辑我的问题以使其更清楚。
答案1
根据 sybreon 的回复,我认为问题归结于 TTL。我认为这实际上与您的域的 TTL 无关,而是与 ns1.nameresolve.com 的 TTL 有关。所有递归 DNS 服务器都获取了 ns1.nameresolve.com 的 IP 和提供的 TTL。当 nameresolve 更改 IP 地址时,它们可能没有降低 TTL,因此所有缓存该 IP 地址的服务器都会继续使用它,直到 TTL 过期。
djbdns 的 tinydns 最酷的功能之一是您可以为特定地址设置到期日期。随着时间的临近,tinydns 会提供较小的 ttl,以便所有 dns 缓存同时到期。此时您的新记录将变为活动状态,并且转换将无缝进行。当然,它可能很少使用,但它非常适合这种情况。
答案2
如果您从递归 DNS 服务器请求您的名称服务器具有权威性的记录,它将首先要求其中一个根 DNS 服务器告诉他该com.
区域的权威 DNS 服务器(假设没有缓存)。然后,它nameresolve.com.
会请求该区域的名称服务器nsX.nameresolve.com.
。通过服务器响应中的粘合记录,com.
递归 DNS 服务器现在知道您的 DNS 服务器的 IP 地址,它将向您的服务器询问请求的记录。
答案3
除非您的域名本身是 nameresolve.com 的子域名,否则对根服务器的查询可能不会返回其名称服务器的任何 IP 详细信息,而只会返回名称(当然,除非您已向注册商特别指定了 IP 地址)。
在这种情况下,最有可能的罪魁祸首是启动查询的名称服务器(例如在其 ISP 处)已经将 nameresolve.com 的 NS 详细信息与旧 IP 一起缓存。在他们请求您的域名后,它将被分配到 nsX.nameresolve.com。如果请求服务器已经缓存了该 IP,它就不会再查找它了。
当托管大量域名时,通常最好在名称服务器 IP 更改之前的一段时间内减少缓存时间,以防止发生这种情况。更改完成后,可以再次增加时间。
答案4
这一切都取决于您为域设置的 TTL 值。一个典型的值是将其设置为 24 小时。这意味着您的旧地址将被层次结构中的其他 DNS 服务器缓存 24 小时。