这是一个有关是否将自己的域的DNS解析外包的规范问题。


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

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

是否有替代方法?我可以看看吗?

评论

除了以下答案外,经验也很重要。如果您是刚起步的DNS管理员,除非您提供良好的指导,否则您会犯许多错误,或者您对文件的鹰眼也不会。 (书籍和RFC,而不是HOWTO)即使在网络的其余部分都很好的情况下,在权威DNS层上犯的错误也会造成中断。

还请阅读相关的问答,为什么即使对于小型站点也需要地理冗余DNS?

#1 楼

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

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

评论


+1使DNS变得简单。他们在过去7年多的时间里拥有经过审核的100.0%更新记录。

–波特曼
09年6月10日在23:29

只是以为我会丢一张纸条。直到今天,我们终于从当前的提供商那里受够了糟糕的DNS,并根据此处的建议切换到DNS Made Easy,这是狂热的狂热。爱它。希望多年前能做到。

–马克·亨德森(Mark Henderson)
09年8月18日在4:32

这不是为什么每个条目都有一个主服务器和辅助服务器吗?我从来没有小故障是主要问题,而次要是我的注册商。我的意思是说我在小学阶段有毛病,但是没有人注意到,因为那里有可靠的中学。

– dlamblin
09年9月14日在7:47

当然,如果您确实出于某种原因想要运行自己的DNS服务器,那也没错。但是否则,只要您要为第三方托管(作为辅助域名)向第三方付费,您最好让他们处理所有这些。我认为对于大多数人来说,运行DNS服务器比其值得的麻烦更多。

– David Z
09年9月16日在2:16

DNS Made Easy实际上拥有跨越多个大洲的服务器网络。他们使用任播路由。因此,它们的冗余非常荒谬,远远超出了传统的两台服务器(主服务器和辅助服务器)的设置。但是从理论上讲,这也意味着全球各地的计算机都将获得快速的DNS解析。

–史蒂夫·沃瑟姆(Steve Wortham)
10年1月23日,0:07



#2 楼

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

如果您没有多个站点,那么我会考虑专门进行DNS托管的人(不是您的ISP),带有用于更改的网络界面。还需要24x7全天候支持和良好的SLA。

评论


在考虑外包时,还请询问他们采取了什么样的DDoS保护或缓解措施。 DNS供应商一直受到攻击,有些供应商能够不间断地继续运行,而其他供应商会在流量很小的情况下崩溃成堆,因此除非对信誉良好的供应商部署了许多服务器,否则请不要外包启用了任播路由。

–贾斯汀·斯科特(Justin Scott)
2011年12月1日上午9:01

我将根据您在第一句话中的亲身经历来投票(非常热情!),但是随后您建议在第二句话中使用第三方服务,这基本上意味着为该操作添加了额外的不必要的故障点几乎没有好处。 :/可悲。

–cnst
17年1月6日在20:24

#3 楼

为了为您的域提供良好,可靠的DNS设置,您应该至少为您的域设置两个授权DNS服务器;
DNS服务器应该连接到不同的物理网络和电源;
DNS服务器应该位于不同的地理区域。

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

评论


很难这样说服。

–FilipDupanović
2011年4月22日在8:21

这是业界共识的绝妙总结,别无所求。 (您知道,该行业是从昂贵的过度设计的解决方案中赚钱的,这些解决方案甚至可能无法达到实际的真实规格。)

–cnst
17年1月6日在20:57

如果您的主机仍然是非冗余的,那么拥有高度冗余的DNS服务器有什么好处?

–克里斯·史密斯(Chris Smith)
19-10-4在20:52

#4 楼

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

几年后,我与djbdns一起工作,因为该格式非常适合使用自动化脚本进行管理这些区域,并且没有遇到我必须使用BIND处理的同一SOA序列号问题。但是,确实存在一些问题,必须格式化某些资源记录集才能被接受。

由于我发现我的大部分流量都是DNS,并且必须同时维护主DNS服务器和辅助DNS服务器自那以来,我已经转移到使用EasyDNS满足我的DNS需求的注册商。他们的Web界面易于管理,为我提供了管理RR集所需的灵活性。我还发现,与某些托管服务提供商(如1和1)所提供的服务相比,它很容易使用,这些服务提供商限制了您可以输入的可用RR集,甚至像网络解决方案这样的域注册商也仅在使用Windows管理DNS时才起作用。

评论


这是一个很好的诚实答案,但听起来您可能会在解决方案的健全性中自欺欺人–通过使用EasyDNS,您使它成为了单点故障;您的站点可能已经启动并且正在运行,但是如果您的第三方提供商遭受中断或针对其客户的DDoS,则您的名称可能无法解析。

–cnst
17年1月6日在20:52

#5 楼

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

我的工作对我们来说足够好,并且他们的服务器可能比我们的服务器更可靠。

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

评论


我们在这里做同样的事情。我们有两个运行BIND的Linux机器(一个pri另一个),我们的“ ISP”也正在运行辅助DNS。

–l0c0b0x
09年10月10日23:28

同上。同样具有B类,也运行我们自己的BIND DNS服务器。当我们遇到DNS问题时,通常是在我们的异地;)

– sysadmin1138♦
09年6月11日在1:51

好答案;到目前为止,这是我最喜欢的答案,因为它实际上是基于合理的工程实践以及对可用冗余和可用性以及个人经验的现实估计;而许多其他答案只是列出了他们最喜欢的第三方DNS提供商,或者盲目复制有明显利益冲突的人撰写的简介,这些人从他们提出的过度设计的解决方案中赚钱。

–cnst
17年1月6日在20:31

#6 楼

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

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

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

#7 楼

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

这有效地满足了以下条件:
“至少为您的域提供两台权威DNS服务器;”
“ DNS服务器应连接到不同的物理网络和电源;”
“ DNS服务器应位于不同的地理区域。”

评论


这当然是一种很好的方法。但是如果人孔着火了,并且您的整个基础结构都崩溃了,没有DNS,当没有服务器可以联系时,DNS仍然可用的意义是什么? :-)我认为,仅当您自己将其他一些服务也外包给其他第三方时,才有可能遇到第三方辅助DNS的麻烦。

–cnst
17年1月6日在21:41

@cmst关键是,当dns崩溃时,任何向您发送电子邮件的人都会看到直接的问题(客户,合作伙伴或非常不好的宣传)。如果dns正常工作,并且邮件服务器关闭了几个小时,那么他们通常不会注意到任何事情。

– Kubanczyk
17年1月6日在22:13

@cmst DNS不仅限于指向我的个人网络上的服务器。我可以在任何地方命名IP。就像,也许我为每个员工/朋友的家庭网络NAT框都起了个名字。或者,我可以使用其他记录类型并公开标识/验证某些内容。

– dlamblin
17年1月7日在6:47



#8 楼

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

评论


+1,我已经使用DynDNS大约2年了,对其服务完全满意。

– cdmckay
09年6月11日,0:14

Dyn.com在2013年左右之前曾经是dynDNS。

–诺克斯
15年8月8日在11:42

#9 楼

这要视情况而定。

自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提供商都会解决您的问题,可能总成本更低。

评论


确实,简单地使用注册服务商的DNS会更容易,但域名注册商和您自己的主机都已启动,但您的网站仍然不可用,注册服务商的DNS经常关闭并不罕见。因为为简便起见,您在设置中添加了一个额外的故障点。运行您自己的DNS确实没有那么困难;尤其是在当今,拥有大量轻巧易用的服务器。

–cnst
17年1月6日在21:32

#10 楼

正如该线程中已经提到的,DNS有几种特殊情况,最明显的区别是权威性和缓存名称服务器部署之间的差异。 ,一些免费的现金DNS解析器是一个明智的选择。我个人在Linux上使用PowerDNS递归(pdns-recursor)。
为维护您的外部基础结构(如网站或MX),我不会使用内部NSes(如果我们在这里谈论SOHO)。使用一些不错的,可靠的,防弹服务,例如DNSmadeasy。我使用他们的商务套餐,而且价格不菲,而且效果不错。


评论


许多人还赞同DJB的观点,即从不与服务DNS(区域文件存储)在同一系统上运行DNS缓存(递归解析器)。这是出于安全原因,因此一个漏洞不会影响另一个漏洞,反之亦然。

– Kubanczyk
17年1月6日在22:59



#11 楼

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

是的,您还应该使用一个或多个第三方大型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统计信息。这样做的竞争性方面可能会带来法律风险。就是说,我不是律师,所以您应该在此问题上咨询您的法律和公关团队。

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

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

评论


虽然过于以企业为中心,但这是一个合理的好答案,谁给了-1,请解释一下?

–cnst
17年1月6日在22:20

关于API和供应商合并的两个很好的新观点。两个DC都可以,但要注意每个DC都有单独的ISP,而不是同一ISP。

– Kubanczyk
17年1月6日在23:22

@kubanczyk好点是多个入口链接,可确保对它们进行自动故障转移和运行状况检查。

–亚伦
17年1月6日23:51

#12 楼

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

#13 楼

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

评论


您的电子邮件也托管在该站点吗?请记住,如果您在那里失去连接,并且电子邮件在该网络之外,则即使您的MX记录位于其他地方,它也会消失并且电子邮件将停止工作。如果它也是在同一站点上,也没什么大不了的,但是我以前曾多次因为这个原因而看到这种说法破裂。

–贾斯汀·斯科特(Justin Scott)
2011年12月1日,9:04

是的,这些家伙正在同一站点上存放他们的电子邮件(我已经不在那家公司了)。

–mrdenny
2011年12月1日在21:25

#14 楼

我两全其美。

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

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

评论


第三方DNS的问题在于,即使它关闭了,即使您的站点启动了,人们也无法访问您的域。 (这么多的冗余!)

–cnst
17年1月6日在21:00

#15 楼

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

评论


这种做法称为水平分割。坦率地说,它可能不适用于大多数设置,并且在大型企业之外已经相当陈旧了一段时间。

–cnst
17年1月6日在21:03

@cnst Split-horizo​​n(或split-view)在同一域名下为不同区域提供服务,XTZ并未表示他推荐这样做。内部服务器通常提供不同的域名(可能是子域)。

– Kubanczyk
17年1月6日在22:51



#16 楼

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

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

#17 楼

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

评论


好答案,+ 1!快进到2017年,您是否仍然认为内部DNS是必经之路? :-)

–cnst
17年1月6日在21:34

@cnst ffwd到2017年,我不再有足够的经验来提出建议。

– Maximus Minimus
17年1月6日23:35

#18 楼

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

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

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

#19 楼

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

评论


大声笑,很好的广告素材,我能得到您的市场部门及其抄袭员的电话号码吗?我标记为明显的垃圾邮件候选者,但是与此同时,如果该标志也被拒绝,我将不会感到惊讶!

–cnst
17年1月6日在21:45

#20 楼

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

因此,在我的情况下,如果找不到我们域的MX记录,则电子邮件将立即被拒绝。

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

评论


对于MX记录,我认为并非如此;实际上,这是cr.yp.to/djbdns/third-party.html中记录的误解之一。

–cnst
17年1月6日在21:38

#21 楼

取决于。™

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

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

我位于IP的服务器可用但没有DNS的次数太多了。

这是我的战争故事:



莫斯科的一家yuge提供商(第一个基于VZ的提供商)将我的VPS置于便宜的“价值” DC中,但他们的DNS处于高级状态-当时某些TLD需要在两个不同的/ 24子网中使用流量昂贵的最新DC。在某一时刻,发生了灾难(可能是2005年停电了吗?),昂贵的DC脱机了,我的站点(仍在莫斯科,但处于“有价值的” DC)只能通过其IP地址访问。 br />
有趣的是,即使在发生任何事件之前,我也清楚地记得做过traceroute,并且注意到我的ISP的ns1ns2都使用相同的DC,要求他们也将一个DC移到“我的” DC -冗余;他们拒绝了地理冗余的想法,因为服务器已经处于最高DC中。

我有另一个提供商(基于ISPsystem的第一个)他们在现场有一个ns,在国外有一个ns。长话短说,整个安装过程非常荒谬,“国外”服务器经常无法维护其区域,因此,即使我的整个服务器仍然运行平稳,我的域实际上也有一个额外的故障点,并且无法访问。
我有一个运行自己网络的注册商。即使我的异地服务器启动了,它也一次又一次地关闭。我的DNS已关闭。
我最近使用了多个大型云提供商作为辅助服务器,在那里我自己运行一个隐藏的主服务器。两家提供商至少更改了一次设置;永不发布任何公告;我的某些域停止解析。也与同一个提供者之一发生在我的一个朋友身上。在第三方服务中,这种情况发生的频率比人们在公共场合要承认的情况要多。

简而言之,http://cr.yp.to/djbdns/third-party.html在主题。

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

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

我要说的是,除非您的域已经使用了第三方服务(例如,用于网络,邮件,语音或文本),否则添加第三方DNS几乎总是适得其反,这是通过在任何情况下都没有最佳实践。