部分授权DNS中断的真实世界影响

在周五停电之后,我们正在考虑增加一个第二权威的DNS提供商。 我们希望了解,如果其中一个提供商出现故障,那么这个实际影响就会消失。

例如,如果我们的NSlogging看起来像

ns1.provider-a.com ns1.provider-b.com ns2.provider-a.com ns2.provider-b.com 

并且提供者a或提供者b经历了中断,在最坏的情况下(没有caching),用户将会遇到什么? 我希望像增加的延迟得到一个有效的响应(如果parsing器首先尝试到达一个失败的服务器),或50%的时间可能解决scheme失败。 如果这个行为是依赖于实现的,那么对于各种行为传播的理解是非常有用的。

总之,它应该以你需要的方式运作。

权威DNS被devise为快速和容错。 recursionparsing器是为了尽可能快地从服务器池获得有效的权威响应而写的,其中包括一个或多个缓慢, SERVFAIL或错误configuration( SERVFAIL响应)的假设。 一个或多个不能使用的服务器在获得答案时可能会造成轻微的(可忽略的)开销,但是一旦获得了答案,就可以在该logging的TTL中指定的时间内对其进行高速caching。 只有在logging没有被caching的时候提出请求的用户会看到小的延迟,其他的请求会立即被回答。

通信失败的负面caching是可选的并经常实现(参见RFC 2308§7 ),但不会产生太多的退避。 失败最多只能存储五分钟,而且每个查询只能被记住。 ( <query name, type, class, server IP address> )如前所述,这不应该出现问题,我提到这个细节主要是为了避免混淆。

你将会遇到的最大的问题是同步。 您必须监视所有这些授权服务器的序列号不同步。 recursionparsing器将相信您的第一台服务器返回授权响应。 如果一台服务器返回NXDOMAIN但其他服务器则不返回,则根据您的SOAlogging的configuration情况,该logging的不存在可以被caching超过五分钟。


总而言之,了解无响应/错误configuration服务器的负面caching和正确响应服务器之间的区别是非常重要的。 服务器的function和响应,但服务区的陈旧副本,可以并且将做比这个configuration中的非function的对手更多的损害。 如果您可以避免陷入陷阱,那么在您提出的故障情况下,新的configuration应该是可靠的。

(注意:我假定提供者A和提供者B都是地理冗余的提供者,他们知道他们在做什么,任何想要在内部使用这些angular色的人都应该阅读BCP 16 ,并确保他们有一个DNS专家在他们的雇佣中,曾经读过一本书的服务器pipe理员正在玩火。)