有没有办法告诉所有DNS服务器在根DNS服务器脱机时继续parsingURL?

它已经发生了两次,其中一个域名注册的webhoster(一家知名公司)的根DNS服务器由于DOS攻击而停止了数小时。 我们的网站在那段时间是不可用的 ,除非你在当地解决了URL。

这是一个由软件开发人员提出的非专业问题,也许天真,但是因为全世界有这么多的DNS服务器都带有一个Alogging副本(需要几个小时,直到一个变化,比如IP变化,到达最后一个他们), 为什么会发生这一切 ? 为什么其他DNS服务器不知道负责域名的DNS刚刚脱机,并且继续将URLparsing为最新的已知IP,直到另行通知为止?

问题:是否有任何方法(任何DNS条目),使他们这样做?

正如Joeqwerty在评论中所说的,你需要扩展你对DNS的理解。 DNS更改需要一段时间才能传播的原因是recursioncaching和生存时间(TTL)。

考虑这种情况:

用户在mysite.com访问您的网站。 用户的机器查询他们configuration的DNS服务器(很可能是他们的家庭路由器)。 他们的路由器设置为将DNS查询转发给Google的公共DNS服务器,地址为8.8.8.8

如果Google的服务器已经查询了mysite.com的IP地址,它将检查它是否被logging的时间与logging的TTL相比较 – 通常TTL被设置为86400秒(1天 – 60 * 60 * 24)。 如果logging比TTL更旧,它将丢弃它并尝试查找它。 用于查找logging的确切algorithm可能有所不同(例如,可以使用自己的recursor / forward或使用“root提示”)。 无论哪种方式,为域指定的名称服务器(如果不确定,请检查WHOIS)是域名logging的存在位置,如果沿查询path的服务器都没有caching您的logging,则将查询这些服务器。 因此,您的DNS TTL是DNS服务器将caching您的logging的长时间,这就是为什么DNS更改需要时间在整个Internet上完全传播的原因。

你提到你的虚拟主机的DNS服务器坏了。 这可能会导致许多问题,具体取决于什么是失败的。

如果您自己的服务器用于名称parsing的DNS服务器发生故障,您的networking服务器将无法解决任何问题,这意味着他们仍然会对其他服务器做出响应,但是任何DNS查找(很可能是反向PTR)都会失败。 例如,这将打破Drupal或WordPress中的任何“手机之家”function。

如果虚拟主机的名称服务器失败,这意味着您的域的所有DNS查询都会失败 – 由于上面的TTL设置,caching的结果将会成功,因此,并非所有的用户都会遇到问题。

底线:如果你担心你的域名不能被解决,如果你的域名服务器失败了,而且你不担心失去快速改变IP的能力,你应该考虑提高你的logging的TTL。 如果有疑问,请联系您的虚拟主机。

“根DNS”是SPoFconfiguration问题 – 不应该是“一个”根DNS,而是多个DNS服务器。 如果他们真的要有行政根源,那么没有理由公开 – 它可以是一个隐藏的主人,副局面是公开的。 这将是一个更标准的设置。

对你的问题:因为它不是那样编程的。 有caching和到期。

build议:您不必使用您的Web主机的DNS服务器。 你可以让你的DNS托pipe在其他地方。 我会build议寻找替代品。