题 我们应该托管自己的域名服务器吗?


这是一个 典型问题 关于是否为自己的域外包DNS解析

我目前有我的ISP为我的域提供DNS,但他们对添加记录施加了限制。因此,我正在考虑运行自己的DNS。

您更喜欢托管自己的DNS,还是让您的ISP更好?

有没有我可以研究的替代方案?


89
2018-06-10 22:46




添加到下面的答案,经验也很重要。你有很多错误 将 作为一个初出茅庐的DNS管理员,除了良好的指导或对文档的强烈关注。 (书籍和RFC, 不 HOWTOs)权威DNS层面的错误会导致中断 即使您的网络其余部分都很好。 - Andrew B
另请阅读相关的问答 为什么即使是小型站点也需要地理冗余DNS? - HBruijn


答案:


我不会运行我自己的DNS服务器 - 在我的情况下,托管我的网站的托管公司提供免费的DNS服务。除了DNS托管之外,还有其他公司可以做任何事情。DNS轻松实现 浮现在脑海中,但还有许多其他的东西,你可能应该研究这种东西。

我自己不这样做的原因是DNS应该是相当可靠的,除非你拥有自己的地理分布式服务器网络,否则你可以将所有鸡蛋放在一个篮子里。此外,还有很多专用的DNS服务器,足以让您无需启动新服务器。


63
2018-06-10 22:55



+1易于DNS。在过去7年多的时间里,他们拥有经过审核的100.0%更新记录。 - Portman
只是以为我会丢掉一张便条。就在今天,我们终于厌倦了来自我们当前提供商的糟糕DNS,根据此处的推荐切换到DNS Made Easy,并且它是粉丝血腥的。爱它。希望我多年前做过这件事。 - Mark Henderson♦
这不是为什么每个条目都有一个主服务器和辅助服务器?我从来没有出现过小故障,而且我的注册商是次要的;我的意思是我在小学时遇到了一个小故障,但没有人注意到,因为有一个可靠的中学。 - dlamblin
当然,如果您真的想要出于某种原因运行自己的DNS服务器,那没有错。但除此之外,只要您打算为DNS托管支付第三方(作为次要),您也可以让他们处理所有问题。我认为对于大多数人来说,运行DNS服务器比它的价值更麻烦。 - David Z
DNS Made Easy实际上拥有跨越多个大洲的服务器网络。他们使用任播路由。因此,它们的冗余非常荒谬,远远超出了传统的双服务器(主要和次要)设置。但从理论上讲,这也意味着全球的计算机将获得快速的DNS解析。 - Steve Wortham


我们总是拥有自己的DNS(也是优选的反向DNS)。这使我们可以在不依赖第三方的情况下进行紧急更改。如果您有多个位置,则可以轻松为DNS服务器设置可接受的冗余级别。

如果您没有多个站点,那么我会考虑使用Web界面专门进行DNS托管(而不是您的ISP)的人进行更改。同时寻找24x7支持和体面的SLA。


27
2018-06-10 22:54



在考虑外包时,还要问他们有哪些DDoS保护或缓解措施。 DNS服务提供商一直受到攻击,有些人能够继续运行而不会出汗,其他人会在流量最轻微的情况下崩溃成一堆碎屑,所以要小心外包,除非它是一个信誉良好的提供商,部署了许多服务器任播路由已启用。 - Justin Scott
根据你在第一句话中的个人经验,我即将投票(热情高涨!)但是你建议在第二句中使用第三方服务,这基本上意味着增加了一个额外的不必要的失败点几乎没有任何好处。 :/悲伤。 - cnst


要为您的域提供良好,可靠的DNS设置,您应该......

  • 至少为您的域提供两个授权DNS服务器;
  • DNS服务器应连接到不同的物理网络和电源;
  • DNS服务器应位于不同的地理区域。

由于您不太可能访问上述网络基础架构,因此最好选择具有上述网络基础架构的信誉良好的DNS托管提供商(正如其他人所建议的那样)。


18
2018-06-11 01:30



当你这样说时,很难不被说服。 - Filip Dupanović
这是行业共识的一个很好的总结,没有。 (你知道,这个行业是通过昂贵的过度设计解决方案赚钱的,这些解决方案甚至可能无法达到真正的真实规格。) - cnst


多年来,我使用BIND(版本8和9)运行自己的DNS服务器,没有任何重大麻烦。我将配置存储在版本控制中,并使用提交后检查来验证区域文件,然后让我的DNS服务器定期检查区域文件。问题始终是确保SOA序列号已更新,每次提交都被推出,否则缓存服务器将无法更新。

多年以后,我使用djbdns,因为格式非常适合使用自动化脚本来管理区域,并且没有遇到我使用BIND处理的相同SOA序列号问题。然而,它确实有必要格式化某些资源记录集以使它们被接受。

正如我发现我的大部分流量都是DNS并且必须维护主DNS服务器和辅助DNS服务器以取悦注册服务器以后我已经转移到使用 EasyDNS 我的DNS需求。他们的Web界面易于管理,并为我提供管理RR套件所需的灵活性。我还发现它比一些托管服务提供商提供的更容易使用 1和1 限制您可以输入的可用RR集,甚至是域名注册商 网络方案 只有在使用Windows管理DNS时才有效。


13
2018-06-11 01:14



这是一个很好的诚实答案,但听起来你可能在解决方案的可靠性上欺骗自己 - 通过使用EasyDNS,你将它作为你的单点故障;您的网站可能已全部启动并运行,但如果您的第三方提供商遭遇中断或针对其中一个客户的DDoS,您的名称可能无法解决。 - cnst


对于我的个人域名(以及我帮助的一些朋友的域名),我们托管自己的DNS,而我的注册商(Gandi)提供辅助DNS。或者另一个网络上的朋友提供辅助。 Gandi不会立即更新区域,他们似乎每24小时左右检查一次,但变化非常罕见;对我们来说效果很好,他们的服务器可能比我们的服务器更可靠。

在我的工作中,我们自己做DNS,上游网络提供商提供辅助DNS。但是,我们是一所大学,99%的用户都在现场;如果本地网络关闭,DNS是否关闭并不重要。此外,我们还有一个B级(/ 16),大约有25k个DNS记录(当然还有25k反向DNS记录),这似乎有点难以通过Web界面进行管理。我们的本地DNS服务器具有高可用性和快速性。


8
2018-06-10 23:23



我们在这里做同样的事情。我们有两个运行BIND的Linux机箱(另一个是pri),我们的'ISP'也在运行辅助DNS。 - l0c0b0x
同上。还有一个B类,也运行我们自己的BIND DNS服务器。当我们遇到DNS问题时,通常是我们的异地;) - sysadmin1138♦
很好的答案;到目前为止,这是我对这个问题最喜欢的答案,因为它实际上是基于合理的工程实践和可用冗余和可用性的实际估计,以及个人经验;而其他许多答案只是列出他们最喜欢的第三方DNS提供商,或者盲目地复制人们写的简报,明确的利益冲突是从他们提出的过度设计的解决方案中赚取额外的钱。 - cnst


我做过两件事。托管自己可以带来好处:当老板问你为什么花这么长时间时,你肯定会学到很多关于DNS的工作原理。此外,您可以更好地控制您的区域。这并不总是像它应该的那样强大,这在很大程度上是由于DNS的分层分布式特性 - 但是它不时地会派上用场。如果你能让你的提供商为你的IP块的反向DNS分配你的SOA,那么假设你有一个。

但是,上面关于你如何真正应该在上面建立了很多故障阻力的所有评论都是爆炸性的。不同地理区域的不同数据中心的服务器很重要。在2003年通过东北部的大规模停电管理 - 我们都知道在同一个城市,甚至省或州的两个不同的数据中心都有一个盒子 - 不一定足够保护。当你意识到你的电池然后柴油发电机拯救了你的屁股时,兴奋之情很快就会被你意识到你正在驾驶你的备用轮胎所引起的恐惧所取代。

但是,我总是为LAN运行内部DNS服务器。它可以非常方便地完全控制您的网络在内部使用的DNS - 如果您的办公室电源耗尽,您的内部DNS服务器由于位于服务器机架中,可能是电池或电池和柴油,而你的电脑不会 - 所以你的客户将在服务器之前很久离线。


5
2018-06-11 02:06





我正在阅读所有这些解决方案,因为我们设法通过在静态DSL线路上托管我们的主DNS而意外地适应所有这些“要求”,并且让注册商(在另一个大陆上)提供了一个辅助DNS。更加严肃和可靠的连接。通过这种方式,我们获得了使用bind和设置所有记录的所有灵活性,同时合理地确保次要更新以反映这些变化,并且在人孔着火的情况下可用,引用一次。

这有效地实现了:
“至少为您的域名提供两个权威DNS服务器;”
“DNS服务器应连接到不同的物理网络和电源;”
“DNS服务器应该位于不同的地理区域。”


4
2017-09-14 07:56



这当然是一种感觉良好的方法;但是如果一个沙井发生火灾,你的整个基础设施发生故障,没有DNS,那么当没有任何服务器可以联系时,DNS的重点仍然是什么? :-)我认为,如果你自己将其他一些服务外包给其他第三方,那么进入第三方二级DNS的麻烦才有意义。 - cnst
@cmst关键是,当dns关闭时,任何向您发送电子邮件的人都会看到一个直接的问题(客户?合作伙伴?非常糟糕的宣传)。如果dns工作并且邮件服务器停机几个小时,他们通常不会注意到任何事情。 - kubanczyk
@cmst DNS不限于指向我个人网络上的服务器。我可以在任何地方命名IP。就像,也许我的每个员工/朋友家庭网络NAT盒都有一个名字。或者我可以使用其他记录类型并公开识别/验证某些内容。 - dlamblin