这是一个关于是否将自己的域的DNS解析外包的规范问题
我目前有我的ISP为我的域提供DNS,但是它们对添加记录施加了限制。因此,我正在考虑运行自己的DNS。
您是希望托管自己的DNS,还是让ISP这样做更好?
我可以寻找替代方案吗?
这是一个关于是否将自己的域的DNS解析外包的规范问题
我目前有我的ISP为我的域提供DNS,但是它们对添加记录施加了限制。因此,我正在考虑运行自己的DNS。
您是希望托管自己的DNS,还是让ISP这样做更好?
我可以寻找替代方案吗?
Answers:
我不会运行自己的DNS服务器-就我而言,托管我的网站的托管公司提供免费的DNS服务。还有其他选择,除了DNS托管之外什么都不做的公司(想到DNS变得容易,但还有许多其他事情),您可能应该考虑一下。
我自己不会这样做的原因是,DNS应该是相当可靠的,可以这么说,除非您拥有自己的地理位置分散的服务器网络,否则您将把所有的鸡蛋都放在一个篮子里。而且,那里有很多专用的DNS服务器,您无需启动新的专用DNS服务器。
我们总是托管自己的DNS(也最好是反向DNS)。这使我们可以在不依赖第三方的情况下进行紧急更改。如果您有多个位置,则很容易为DNS服务器设置可达到的冗余级别。
如果您没有多个站点,那么我会考虑专门通过网络界面进行更改的DNS托管(不是您的ISP)的人。此外,还要寻求24x7全天候支持和不错的SLA。
为了为您的域提供良好,可靠的DNS设置,您应该...
由于不太可能访问上述网络基础结构,因此最好选择具有上述网络基础结构的信誉良好的DNS托管提供程序(如其他人所推荐)。
多年来,我一直使用BIND(版本8和9)运行自己的DNS服务器,而没有任何麻烦。我使用提交后检查将配置保存在版本控制中,该检查将验证区域文件,然后让我的DNS服务器定期检出区域文件。问题总是要确保每次提交都更新SOA序列号,否则缓存服务器将不会更新。
多年后,我与djbdns一起工作,因为该格式非常适合使用自动化脚本来管理区域,并且没有像使用BIND一样遇到SOA序列号问题。但是,它确实有自己的问题,必须格式化某些资源记录集才能使其被接受。
当我发现我的大部分流量都是DNS时,必须同时维护主DNS服务器和辅助DNS服务器,以取悦我此后转向使用EasyDNS以满足我的DNS需求的注册商。他们的Web界面易于管理,为我提供了管理RR集所需的灵活性。我还发现,与某些托管服务提供商(例如1&1)所提供的服务(它们限制了您可以输入的可用RR集)甚至网络注册服务商(如Network Solutions)(仅在使用Windows来管理DNS时才起作用)所提供的服务相比,它更容易使用。
对于我的个人域(以及我帮助的一些朋友的域),我们托管自己的DNS,而我的注册商(Gandi)提供辅助DNS。或另一个网络上的朋友提供辅助。Gandi不会立即更新区域,它们似乎每24小时左右检查一次,但是更改很少。对我们来说足够好了,他们的服务器可能比我们的服务器更可靠。
在我的工作中,我们做自己的DNS,而上游网络提供商则提供辅助DNS。但是,我们是一所大学,我们99%的用户都在现场。如果本地网络已关闭,则DNS是否关闭都无关紧要。另外,我们拥有完整的B类(/ 16),其中包含大约25k的DNS记录(当然还有25k的反向DNS记录),通过Web界面进行管理似乎有点尴尬。我们的本地DNS服务器具有高可用性,并且速度很快。
我都做过 托管自己的服务器可能会有好处:当老板询问您为什么花这么长时间时,您肯定会学到很多有关DNS工作原理的知识。此外,您还可以控制区域。这并不总是应有的功能,这在很大程度上是由于DNS的分层分布式特性-但是它时常会派上用场。令人怀疑的是,如果您可以让您的提供商将您分配为IP块的反向DNS的SOA(假设您有一个)。
但是,上面所有有关您实际上应该如何在上面构建大量的抗故障能力的评论都广为流传。不同地理位置的不同数据中心中的服务器很重要。在2003年东北地区发生大规模停电后,我们都知道,在同一城市,甚至省或州的两个不同数据中心中都装有一个盒子,并不一定能提供足够的保护。当您意识到自己的电池,然后柴油发电机节省了您的屁股时,兴高采烈的情绪很快就被意识到您现在正在驾驶备用轮胎而引起的恐惧所取代。
但是,我总是为局域网运行内部DNS服务器。完全控制网络内部使用的DNS可能非常方便-如果办公室电源中断,则由于位于服务器机架中的内部DNS服务器可能是电池,电池和柴油,而您的PC则不会,因此您的客户端将在服务器之前很长时间就处于脱机状态。
我正在很有趣地阅读所有这些解决方案,因为我们通过将主DNS托管在静态DSL线路之外,并让注册服务商(位于另一个大洲)在一个DSL上意外地适应了所有这些“要求”更严肃可靠的连接。通过这种方式,我们可以灵活地使用绑定和设置所有记录,同时可以合理地确保对辅助记录进行更新以反映这些更改,并且在人孔着火的情况下可用,以引用一次事件。
这有效地满足了:
“您的域中至少有两个权威DNS服务器;”
“ DNS服务器应连接到不同的物理网络和电源;”
“ DNS服务器应位于不同的地理区域。”
看看Dyn.com ; 它们具有与DNS相关的各种服务,例如DNS托管,动态DNS,MailHop等。我发现它们可靠,并且已经使用了大约5年。
这取决于。
自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服务器来解析Internet资源,那么一些免费的现金DNS解析器是一个明智的选择。我个人在Linux上使用PowerDNS递归(pdns-recursor)。
为了为您的外部基础结构提供服务,例如网站或MX,我不会使用内部NSes(如果我们在这里谈论SOHO)。使用一些不错的,可靠的,防弹服务,例如DNSmadeasy。我使用他们的商务套餐,而且价格适中,但效果斐然。
我两全其美。
我为网站托管公共DNS,而MX记录则位于“其他位置”。它可靠,安全,有效,我可以随意对其进行修改。我为服务付费,并且对价值感到满意。
但是在家里,我运行自己的缓存DNS服务器,而不是依靠我的ISP。我的ISP习惯于丢失DNS,DNS速度慢,DNS无效,有时他们想要扭曲DNS,以便将故障转移到他们认为我可能感兴趣的地方。我对使用ISP的DNS不感兴趣。因此,我有自己的缓存DNS服务器,并自己完成。在开始时(可能需要2个小时)进行了一些设置,但是很干净,我有可靠的DNS。一个月一次,cron作业会询问根服务器并刷新提示表。也许每年一次,我不得不摆弄它,例如将doubleclick.com发送到127.0.0.1或类似的地址。除此之外,它不需要干预,效果很好。
每种方法都有优点和缺点,但是我绝对赞成在内部托管内部DNS。如果您在外部托管基本网络服务,则需要依靠的东西清单令人费解。CEO可能认为通过外部托管在DNS服务器上省钱是很聪明的,但是如果互联网链接断开,如果他收不到电子邮件,他会怎么想呢?
我在Linux服务器上使用BIND运行自己的DNS。我目前在英国伦敦,佛罗里达迈阿密,加利福尼亚圣何塞和新加坡有四个办事处。效果很好,我拥有完全的控制权。数据中心的稳定性非常重要,因此我选择了好的DC来运行服务器(而不依赖ISP或其他“未知”基础架构)。我能够使用我根据严格标准选择的世界一流的DC在世界任何地方设置DNS服务器和其他服务。坚如磐石的DNS对于我运行的电子邮件和Web服务至关重要。
我们应该托管自己的域名服务器吗?
是的,而且你也应该用大的第三方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的内存,并且可以处理人们对它的任何滥用。
将DNS托管视为您的公共服务的基础。就我而言,电子邮件对我们的业务至关重要。如果您在内部托管DNS,并且互联网连接中断,则DNS记录可能会过时,从而迫使您的域不可用。
因此,就我而言,如果找不到我们域的MX记录,则电子邮件将立即被拒绝。
因此,我的DNS由外部托管。
如果MX记录可用,但我们的Internet连接已断开,则邮件将继续在尝试向我们的域发送电子邮件的服务器上排队。
至少从2002年开始,我一直在运行自己的服务器并管理域。
我经常使用提供商的DNS服务器。
IP上的服务器可用但DNS不可用的次数太多了。
这是我的战争故事:
莫斯科的一个庞大的提供商(第一个基于VZ的提供商)将我的VPS放在了一个便宜的“有价值”的DC中,但是他们的DNS却是一个流量昂贵的高级DC,流量很大,其中有两个不同的/ 24子网,这在当时是一些TLD所要求的。有一次,一场灾难(可能是2005年的电力中断?)造成了灾难,他们昂贵的DC脱机,而我的站点(仍在莫斯科,但处于“有价值的” DC)只能通过其IP地址访问。
有趣的是,即使在发生任何事件之前,我也清楚地记得traceroute
,并且,我ns1
和ns2
我的ISP 都注意到了一个DC ,要求他们也将一个DC移到“我的” DC,以实现地理冗余。他们放弃了地理冗余的想法,因为服务器已经处于可能的最高级DC中。
我有另一个提供商(基于ISPsystem的第一个),他们在现场有一个ns,在国外有一个ns。长话短说,整个安装过程非常荒谬,“国外”服务器经常无法维护其区域,因此,即使我的整个服务器仍然运行平稳,我的域实际上也有一个额外的故障点,并且无法访问。
我有一个运行自己网络的注册商。即使我的异地服务器启动了,它也一次又一次地关闭。我的DNS已关闭。
我最近使用了多个大型云提供商作为辅助服务器,在那里我自己运行一个隐藏的主服务器。两家提供商至少更改了一次设置;永不发布任何公告;我的某些域停止解析。也与同一个提供者之一发生在我的一个朋友身上。 与第三方服务相比,这种情况发生的频率要高得多,而人们并不愿意公开承认。
简而言之,http ://cr.yp.to/djbdns/third-party.html在该主题上是绝对正确的。
麻烦第三方DNS的成本通常不值得。
拥有第三方DNS的缺点常常被不公平地忽视。
我要说的是,除非您的域已经使用了第三方服务(例如,用于Web,邮件,语音或文本),否则添加第三方DNS几乎总是适得其反,绝不是在每种情况下的最佳做法。