it-swarm.cn

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

这是 规范问题 关于是否为自己的域外包DNS解析

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

您是希望托管自己的DNS,还是让ISP这样做更好?

我可以寻找替代方案吗?

95
Saif Khan

我不会运行自己的DNS服务器-就我而言,托管我的网站的托管公司提供免费的DNS服务。还有其他选择,除了DNS托管之外什么也不做的公司( 使DNS变得容易 ,但是还有许多其他选择),您可能应该研究这类事情。

我自己不会这样做的原因是,DNS应该是相当可靠的,可以这么说,除非您拥有自己的地理位置分散的服务器网络,否则您将把所有的鸡蛋都放在一个篮子里。而且,那里有很多专用的DNS服务器,您无需启动新的专用DNS服务器。

64
David Z

我们总是托管自己的DNS(也最好是反向DNS)。这使我们可以在不依赖第三方的情况下进行紧急更改。如果您有多个位置,则很容易为DNS服务器设置可升级的冗余级别。

如果您没有多个站点,那么我会考虑专门通过网络界面进行更改的DNS托管(不是您的ISP)的人。此外,还要寻求24x7全天候支持和不错的SLA。

27
Doug Luxem

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

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

由于您不太可能访问上述网络基础结构,因此最好选择具有上述网络基础结构的信誉良好的DNS托管提供程序(如其他人所推荐)。

19
Convict

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

多年后,我与djbdns一起工作,因为该格式非常适合使用自动化脚本来管理区域,并且没有遇到相同的SOA我必须使用BIND处理的序列号问题。不得不格式化某些资源记录集以使其被接受有其自身的问题。

当我发现我的大部分流量都是DNS时,必须同时维护主DNS服务器和辅助DNS服务器,以取悦我后来转移到使用 EasyDNS 的注册商我的DNS需求。他们的Web界面易于管理,并为我提供了管理RR集所需的灵活性。我还发现,与某些托管服务提供商(例如 1&1 )所提供的服务相比,它更容易使用,这些服务限制了您可以输入的可用RR集,或者甚至是 Network Solutions 之类的域名注册商也仅在使用Windows管理DNS时才起作用。

13
Jeremy Bouse

对于我的个人域(以及我帮助的一些朋友的域),我们托管自己的DNS,我的注册商(Gandi)提供辅助DNS。或另一个网络上的朋友提供辅助。 Gandi不会立即更新区域,它们似乎每24小时左右检查一次,但是更改很少。对我们来说足够好了,他们的服务器可能比我们的服务器更可靠。

在我的工作中,我们做自己的DNS,而上游网络提供商则提供辅助DNS。但是,我们是一所大学,我们99%的用户都在现场。如果本地网络关闭,则DNS是否关闭都无关紧要。此外,我们拥有完整的B类(/ 16),其中包含大约25k的DNS记录(当然还有25k的反向DNS记录),通过Web界面进行管理似乎有点尴尬。我们的本地DNS服务器具有高可用性,并且速度很快。

9
freiheit

我都做过托管自己的服务器可能会有好处:当老板询问您为什么花这么长时间时,您肯定会学到很多有关DNS工作原理的知识。此外,您还可以控制区域。这并不总是应有的功能,这在很大程度上归因于DNS的分层分布式特性-但是它时不时地会派上用场。令人怀疑的是,如果您可以让提供商将您分配为IP块的反向DNS的SOA,请假定您有一个。

但是,上面所有有关您实际上应该如何在上面构建大量的抗故障能力的评论都广为流传。不同地理位置的不同数据中心中的服务器很重要。在2003年东北地区发生大规模停电后,我们都知道,在同一城市,甚至省或州的两个不同数据中心中都装有一个盒子,并不一定能提供足够的保护。当您意识到自己的电池,然后柴油发电机节省了您的屁股时,兴高采烈的情绪很快就被意识到您现在正在驾驶备用轮胎而引起的恐惧所取代。

但是,我总是为局域网运行内部DNS服务器。完全控制网络内部使用的DNS可能非常方便-如果办公室电源中断,则由于位于服务器机架中的内部DNS服务器可能是电池,电池和柴油,而您的PC则不会,因此您的客户端将在服务器之前很长时间就处于脱机状态。

5
Kyle Hodgson

我正在很有趣地阅读所有这些解决方案,因为我们通过将主DNS托管在静态DSL线路之外,并让注册服务商(位于另一个大洲)在一个DSL上意外地适应了所有这些“要求”更严肃可靠的连接。通过这种方式,我们可以灵活地使用绑定和设置所有记录,同时可以合理地确保对辅助记录进行更新以反映这些更改,并且在人孔着火的情况下可用,以引用一次事件。

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

4
dlamblin

看看 Dyn.com ;它们具有与DNS相关的各种服务,例如DNS托管,动态DNS,MailHop等。我发现它们可靠,并且已经使用了大约5年。

4
Knox

这取决于。

自80年代末(BSD 4.3c)开始,我已经为各种工作运行了自己的DNS。在工作中,我始终托管自己的DNS,但是我始终具有多个数据中心位置,或者能够与合作伙伴交换辅助DNS。例如,在我的上一份工作中,我们为另一个.EDU(它们位于MN,我们位于CA)进行了辅助DNS,而它们也为我们做了同样的事情。地理和网络多样性。

或者,在我目前的工作中,我们拥有自己的东海岸和西海岸(美国)数据中心。托管我们自己的DNS,使我们可以放入某些GUI DNS服务可能不支持的异常DNS记录(SVR,TXT等)。而且,我们可以随时更改TTL。我们拥有极大的灵活性,但要自己付出代价。

对于家庭用品,我同时做到了。对于某些我在做异常工作或需要很大灵活性的域,我仍然运行自己的“隐藏”主DNS服务器,并与其他执行相同工作的人交换公共DNS服务。我使用RCS来版本控制区域文件以进行配置管理,因此我可以看到区域更改的整个历史可以追溯到时间的开始。对于简单的事情,例如具有单个博客的域或通用Web服务器(一个A记录或一个CNAME),使用可用的域注册商DNS服务会更容易,而现在担心CM。

这是一个权衡。最终的控制和灵活性是以您自己处理多样性,运行多台服务器,处理硬件/软件故障等为代价的。如果您不需要灵活性或完全控制权,那么任何顶级DNS提供商都会解决您的问题,可能总成本更低。

3
tep

正如该线程中已经提到的,DNS有几种特殊情况,最明显的区别是权威名称服务器部署和缓存名称服务器部署之间。

  1. 如果您仅需要DNS服务器来解析Internet资源,那么一些免费的现金DNS解析器是一个明智的选择。我个人在Linux上使用PowerDNS递归(pdns-recursor)。

  2. 为了为您的外部基础结构提供服务,例如网站或MX,我不会使用内部NSes(如果我们在这里谈论SOHO)。使用一些良好,可靠的防弹服务,例如 DNSmadeasy 。我使用他们的商务套餐,而且价格适中,但效果斐然。

3
Taras Chuhay

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

是的and您还应该使用一个或多个大型第三方DNS提供程序。出于多种原因,混合解决方案可能是最安全的长期解决方案,尤其是如果您的业务是SLA)或对客户有合同要求的企业。如果您是b2b,则更是如此。

如果您的主DNS服务器(隐藏的或公共的)是事实的来源,那么您可以在操作上保护自己,避免陷入供应商特定的功能中。一旦开始使用其超越基本DNS的精妙功能,您可能会发现切换到另一个提供商或托管自己的DNS是有问题的,因为您现在必须复制这些功能。 Dyn和UltraDNS提供的站点运行状况检查和DNS故障转移就是例子。这些功能很棒,但应视为一次性功能而不是依赖关系。这些功能在提供者之间也不能很好地复制。

如果只有第三方供应商,则在受到目标DDoS攻击时,正常运行时间可能会受到影响。如果您只有自己的DNS服务器,那么当您成为DDoS攻击的目标时,正常运行时间可能会受到影响。

如果您拥有一个或多个DNS提供程序以及您自己的分布式DNS服务器,它们是您控制的隐藏主DNS服务器的从属服务器,那么您将确保您没有被锁定在特定的供应商中,并且始终保持对区域的控制,并且攻击必须使您的服务器以及奴隶您的服务器的一个或多个主要提供程序都崩溃。缺少任何这些都会降低服务质量,而导致严重停机。

拥有自己的主服务器(理想情况下是隐藏的,未发布的服务器)的另一个优点是,您可以构建自己的API并以适合您业务需求的方式对其进行更新。使用第三方DNS供应商,您将需要适应他们的API。每个供应商都有自己的;或在某些情况下,只有一个Web UI。

此外,如果您的主服务器在您的控制之下,而供应商遇到问题,那么仍然可以访问您的主服务器的任何从服务器都将获得更新。当您意识到在大型DDoS事件期间让第三方作为您的主人是错误的,并且您无法更改不受攻击的提供程序上的任何服务器时,您会希望拥有这种东西。

从法律角度来看,防止供应商锁定对于您的业务也可能很重要。例如,Dyn可能被Oracle收购。这使他们处于独特的位置,可以收集Dyn所有客户的DNS统计信息。这样做的竞争性方面可能会带来法律风险。也就是说,我不是律师,因此您应该就此事咨询您的法律和公关团队。

如果我们想深入研究杂草,则该主题还有许多其他方面。

[[Edit]如果这仅用于小型个人/爱好域,则运行一个小型DNS守护程序的两个VM彼此不在同一数据中心中就足够了。我这样做是出于我自己的个人领域。对我来说,您的域名是从事业务还是业余爱好尚不清楚。无论您能获得最小的VM,都绰绰有余。我将rbldnsd用于我的域;在我的记录中使用非常高的TTL,因为它占用了900 KB的内存,并且可以处理人们对它的滥用。

3
Aaron

最近,当我们将所有服务引入内部时,我们将内部公共DNS引入了内部。这使我们可以根据需要尽快更新所有内容。由于Web服务器都在同一个站点中,因此目前我们不需要地理分布DNS。

2
mrdenny

我两全其美。

我为我的网站托管我的公共DNS,而我的MX记录在“其他地方”。它可靠,安全,有效,我可以随意对其进行修改。我为服务付费,并且对价值感到满意。

但是在家里,我运行自己的缓存DNS服务器,而不是依靠我的ISP。我的ISP习惯于丢失DNS,DNS速度慢,DNS无效,有时他们想要扭曲DNS,以便将故障转移到他们认为我可能感兴趣的地方。我对使用ISP的DNS不感兴趣。因此,我有自己的缓存DNS服务器,并自己完成。在开始时(可能需要2个小时)进行了一些设置,但是很干净,我有可靠的DNS。一个月一次,cron作业会询问根服务器并刷新提示表。也许每年一次,我不得不摆弄它,例如将doubleclick.com发送到127.0.0.1或类似的地址。除此之外,它不需要干预,效果很好。

2
codebunny

如果您决定为自己的爱而托管自己的DNS,那么每个站点有两台dns服务器。一个用于您的外部DNS,直接连接到您的防火墙,全世界都可以找到您。在您的内部dns中,在您的网络内部还有一个单独的域。

2
XTZ

我在Linux服务器上使用BIND运行自己的DNS。我目前在英国伦敦,佛罗里达迈阿密,加利福尼亚圣何塞和新加坡有四个办事处。效果很好,我拥有完全的控制权。数据中心的稳定性非常重要,因此我选择了好的DC来运行服务器(而不依赖ISP或其他“未知”基础架构)。我能够使用我根据严格的标准选择的世界一流的DC在世界任何地方设置DNS服务器和其他服务。坚如磐石的DNS对于我运行的电子邮件和Web服务至关重要。

2
Justin Jones

我还无法发表评论,但我的行为与freiheit相同。我们在DMZ中运行我们的主DNS,并且我们的ISP在全国范围内拥有数个从DNS服务器,在对主DNS进行更改后,这些服务器会立即进行更新。

它提供了两全其美的优势;立即控制和冗余。

2
pauska

每种方法都有优点和缺点,但是我绝对赞成在内部托管内部DNS。如果您在外部托管基本网络服务,则需要依靠的东西清单令人费解。首席执行官可能会认为通过外部托管在DNS服务器上省钱是很聪明的,但是如果互联网链接断开,他收不到电子邮件时会怎么想呢?

2
Maximus Minimus

根据经验,如果您想引起拒绝服务攻击,请托管自己的DNS。和您自己的网站。

我相信有些事情你不应该自己做。 DNS托管是其中之一。就像许多人说过的那样,您将需要冗余服务器,连接和物理位置,并且即使是规模较小的托管公司,您也将无法获得弹性。

托管自己的DNS的最大好处是可以立即进行更改。是否需要缩短TTL,以进行即将到来的迁移?您可能会编写一个脚本在自己的服务器上执行该操作;对于托管DNS,您可能需要登录并手动更改记录,甚至更糟的是,致电提供商,获得3级支持,直到最终达到可以拼写DNS的级别,只是让他们告诉您他们将提交DNS。 2-3天后发生变化。

2
David Oresky

我已经用Zonedit或几年了。它便宜(或免费),并且我添加了许多CNAME,A,MX,TXT,SRV和其他记录。

2
Steve Jones

将DNS托管视为您的公共服务的基础。就我而言,电子邮件对我们的业务至关重要。如果您在内部托管DNS,并且互联网连接中断,则DNS记录可能会过时,从而导致您的域不可用。

因此,就我而言,如果找不到我们域的MX记录,则电子邮件将立即被拒绝。

因此,我的DNS由外部托管。

如果MX记录可用,但我们的Internet连接已断开,则邮件将继续在尝试向我们的域发送电子邮件的服务器上排队。

1
Brian

取决于。™

至少从2002年开始,我一直在运行自己的服务器并管理域。

我经常使用提供商的DNS服务器。

IP上的服务器可用但DNS不可用的次数太多了。

这是我的战争故事:

  • 莫斯科的一个庞大的提供商(第一个基于VZ的提供商)将我的VPS放在了便宜的“价值” DC中,但是他们的DNS却是最先进的DC在两个不同的/ 24子网中具有昂贵流量的 当时某些TLD要求 。有一次,灾难降临了(可能是 2005年断电了? ),他们昂贵的DC脱机了,我的站点(仍在莫斯科,但价值“ “ DC)只能通过其IP地址进行访问。

    有趣的是,甚至在发生任何事件之前,我都清楚地记得做过 traceroute ,并且注意到ns1ns2都使用相同的DC我的ISP,要求他们也将一个移动到“我的” DC,以实现地理冗余;他们否定了地理冗余的想法,因为服务器已经处于DC的最高级状态。

  • 我有另一个提供商(基于ISPsystem的第一个),他们在现场有一个ns,在国外有一个ns。长话短说,整个安装过程非常荒谬,“国外”服务器经常无法维护其区域,因此,即使我的整个服务器仍然运行平稳,我的域实际上也有一个额外的故障点,并且无法访问。

  • 我有一个运行自己网络的注册商。即使我的异地服务器启动了,它也一次又一次地关闭。我的DNS已关闭。

  • 我最近使用了多个大型云提供商作为辅助服务器,在那里我自己运行一个隐藏的主服务器。两家提供商至少更改了一次设置;从来没有任何公开公告;我的某些域停止解析。也与同一个提供者中的一个朋友发生了一起。 这种情况在第三方服务中发生的频率要比人们在公众场合承认的情况要多。

简而言之, http://cr.yp.to/djbdns/third-party.html 在该主题上是绝对正确的。

麻烦第三方DNS的成本通常不值得。

拥有第三方DNS的缺点常常被不公平地忽视。

我要说的是,除非您的域已经使用了第三方服务(例如,用于Web,邮件,语音或文本),否则添加第三方DNS几乎总是适得其反,绝不是在每种情况下的最佳实践。 。

0
cnst