DNS名称服务器如何回退工作?

我们有两个DNS服务器列在我们的NSlogging。 昨天晚上,我们的一台DNS服务器出现故障。 正如所料,一些DNS服务器没有parsing我们的主机名。 我认为这是暂时的,一旦NSlogging的TTL过期(1小时)就会开始工作。

一小时以后,我仍然从使用Earthlink,Verizon和OpenDNS服务器的桌面获得DNS超时。 我testing了一下,看看其他DNS服务器是否正在回答:

dig @ns2.example.com www.example.com +short 

这工作。

我的问题:

  1. 有没有人有答案,为什么其他的DNS服务器,甚至在TTL过期后还没有打我们的其他DNS服务器?
  2. DNS服务器是否喜欢域名的主DNS服务器(来自SOAlogging)?
  3. 是否有任何algorithm用于从可用的NSlogging中select名称服务器? 我假设这是具体的实现,但也许有一些适用于这里的标准。

这是一个不幸的烦恼。 多DNS服务器应该是为了提高可靠性,但在实践中往往有相反的影响。

问题是客户端只等待响应,服务器等待大约相同的时间。 假设你有两个DNS服务器,A和B.说A正在工作,B已经失败。 这发生了:

  1. 客户端连接到名称服务器Z并询问它的信息。 ZselectB并发送查询。

  2. 客户端超时,因为名称服务器Z没有响应。

  3. 客户端尝试使用名称服务器Y.YselectB并发送查询。

  4. 名称服务器Z超时并尝试A.它得到正确的答案,但客户端不再等待。

  5. 客户端超时,因为名称服务器Y没有响应。

  6. 客户端放弃了,它们的名字服务器都无法响应。

  7. 名字服务器Y超时并且尝试A.它得到正确答案,但客户端不再等待。

没有好的解决scheme。 您等待查看名称服务器是否回复的时间越长,因为您等待的名称服务器本身等待的时间越长,您需要等待的时间越长。 可以说,问题是Y和Z没有足够快地放弃B,

从本质上讲,如果你的名字服务器出了问题,有些客户会因为运气不好而超时,因为他们只尝试了不好的名字服务器。

好的一面是,如果有两个域名服务器,一个域名服务器出现故障,大约75%的域名服务器将会得到一个答案,而不是0%。