OP问:
很好,但是如果我要使用相同的IP地址运行所有服务,那么冗余DNS服务器真的必要吗?如果没有人可以访问我的域提供的任何内容,我看不到拥有第二台DNS服务器会给我带来什么好处。
好问题!
最好的答案是由伯克利博士Daniel J. Bernstein教授提供的,他不仅是世界知名的研究人员,科学家和密码学家,而且还编写了一种非常流行且广受欢迎的DNS套件,称为DJBDNS(最新发布于2001年, 02-11,至今仍很流行)。
http://cr.yp.to/djbdns/third-party.html(2003-01-11)
第三方DNS服务的成本和收益
请注意以下简短部分:
第三方DNS服务的参数错误
…
第二种策略是声称,当无法访问所有DNS服务器时,广泛使用的DNS客户端将执行某些“特别邪恶”的操作。该论点的问题在于声明是错误的。任何此类客户端显然都是越野车,将无法在市场中生存:请考虑如果客户端的路由器短暂中断或客户端的网络暂时被淹没,会发生什么情况。
这样,这个问题的原始答案就不会错了。
是的,有时会持续几秒钟的短暂临时网络中断。不,在这种中断期间无法解析名称不会被缓存任何分钟(否则,即使世界上拥有最佳的高可用性权威名称服务器设置也无济于事)。
从1998-03年RFC 到5分钟内完全实施保守准则的任何软件来缓存故障的任何软件,都只会被设计破坏,而拥有额外的地理冗余服务器也不会造成任何影响。
实际上,按照DNS超时被缓存多长时间?,在BIND中,SERVFAIL
传统上在2014年之前根本不缓存该条件,并且自2015年以来,默认情况下仅缓存1秒,这比普通用户达到解析器超时并再次按下“刷新”按钮所需的时间少。
(甚至在到达是否应缓存解析尝试的上述点之前,即使首先出现第一个SERVFAIL,也要花费多个丢弃的数据包。)
此外,BIND开发人员甚至为该功能设置了一个上限,即30秒,即使作为上限(例如,该功能将接受的最大值),也已经比5分钟(300秒)建议低了10倍。通过RFC来确保,即使是最有心的管理员(眼球用户)也无法射击自己的用户。
此外,有很多原因,你可能不希望运行第三方DNS服务 - 在整个阅读djbdns/third-party.html
的所有细节,并租用一个小的额外服务器只为DNS到自己管辖时,无需很难保证除了BCP 16之外,还存在其他的方法。
至少从2002年开始,我个人拥有和设置域名的“轶事”经验可以肯定地说,由于专业运营,我实际上已经在各个域名上造成了严重的停机我的注册服务商和托管服务提供商的第三方服务器不可用,并且多年来一次都一次发生故障,这些服务器都无法使用,从而在我自己的IP地址(即否则,完全可以访问给定域的HTTP和SMTP托管来源。请注意,这些中断是由多家独立的,受人尊敬的和专业运营的提供商发生的,绝不是孤立的事件,并且每年都会发生,并且作为第三方服务,完全在您的控制范围之外 ; 碰巧的是,很少有人会长期谈论它。
简而言之:
对于小型站点,根本不需要地理冗余DNS。
如果您要使用相同的IP地址运行所有服务,则添加第二个DNS最有可能导致额外的故障点,并且不利于域的持续可用性。 在“智慧” 总是不得不这样做在任何可以想象的情况是一个非常流行的神话,确实; 没了
当然,如果域名的某些服务已经由第三方提供服务,则该建议将完全不同,例如Web(HTTP / HTTPS),邮件(SMTP / IMAP)或语音/文本(SIP / XMPP)提供商,在这种情况下,将您自己的IP消除为单点故障确实是一个非常明智的方法,而地理冗余确实非常有用。
同样,如果您有一个特别受欢迎的网站,拥有数百万的访问者,并且明知需要按照BCP 16的要求提供额外的灵活性和对地理冗余DNS的保护,那么……您可能没有将单个服务器/网站用于Web /邮件/语音/文字已经存在,因此此问题和答案显然不适用。祝好运!