继周五 Dyn 发生中断之后,我们正在考虑添加二级权威 DNS 提供商。我们想了解如果其中一个提供商发生中断,会造成怎样的实际影响。
例如,如果我们的 NS 记录如下所示
ns1.provider-a.com
ns1.provider-b.com
ns2.provider-a.com
ns2.provider-b.com
并且提供商 a 或提供商 b 发生中断,在最坏的情况下(没有缓存),用户会遇到什么情况?我预计会出现类似获得有效响应的延迟增加的情况(如果解析器首先尝试访问已关闭的服务器),或者 50% 的时间解析失败。如果行为依赖于实现,那么了解各种行为的传播情况将非常有帮助。
答案1
简而言之,它应该按照您需要的方式运行。
权威 DNS 旨在快速且具有容错能力。递归解析器旨在尽快从服务器池中获取有效的权威响应,其中包括假设一个或多个服务器可能速度慢、不负责任或配置错误(SERVFAIL
响应)。一个或多个不可用的服务器可能会导致获取答案的开销很小(可忽略不计),但一旦获得该答案,就可以将其缓存在该记录的 TTL 中指定的时间段内。只有在记录未缓存时发出请求的用户才会看到短暂的延迟,其他请求将立即得到答复。
通信故障的负面缓存是可选的,并且经常被实现(参见RFC 2308§7),但不会在退避方面产生太大影响。故障最多只能存储五分钟,并且只能被记住每个查询。(<query name, type, class, server IP address>
)如前所述,这不应该是个问题,我提到这个细节主要是为了避免混淆。
你将遇到的最大问题是同步。你必须监控所有这些权威服务器,看是否有序列号不同步。递归解析器将信任第一个返回权威响应的服务器。如果一个服务器返回,NXDOMAIN
而其他服务器没有返回,则可以缓存该记录的不存在更久,更长取决于您的SOA
记录配置方式,少于五分钟。
总而言之,了解无响应/配置错误的服务器的负面缓存与正确响应的服务器之间的区别非常重要。在这种配置下,正常运行且响应良好但提供区域陈旧副本的服务器可能比无功能的服务器造成更大的损害。如果您能避免陷入这种陷阱,那么新配置应该可以在您提出的故障场景中保持稳定。
(警告:我假设提供商 A 和提供商 B 都是地理冗余提供商,他们知道自己在做什么。任何打算在公司内部担任这些角色的人都应该阅读16号作战计划确保他们雇佣了 DNS 专家。读过相关书籍的服务器管理员是在玩火。)