我试图find一些方法来做一些现有的网站高可用性DNS托pipe的选项。 今天早上,我工作的公司因为我们通过我们的注册商( bulkregister.com )为域名提供的DNS托pipe服务而倒闭了。 现在我正在负责寻找一种不会让我们受到单个DNS提供者的束缚的替代scheme。
我们在寻找什么:
那么有什么方法可以支持呢? 我本人更像一个程序员,但是他们已经把这个任务交给了我,所以我想要得到比我更有经验的人的意见。
您可以使用具有地理上分散的名称服务器的任意数量的DNS主机。
http://www.dyndns.com/services/dns/custom/
http://www.easydns.com/dnsmanage.php3
您还可以将名称服务器和DNS区域移到具有更强大和更具弹性的基础结构(例如networking解决scheme)的注册服务商。
如果没有问题,只需要更新主DNS服务器,剩下的作为从服务器,它将轮询主服务器,或者由主服务器通知挂起的更新。 一旦你有自动更新设置,你可以有尽可能多的奴隶,以满足您的可用性需求,然后他们会保持最新,只要主人本身是可及的。
您可以在多台服务器上运行自己的DNS服务器和多个colos,并设置故障转移和群集。 无论是使用Windows还是Linux,您都可以设置服务器之间共享的单个共享资源,最好是通过点对点或vpn,并且当一个服务器/位置在几秒钟内closures时,下一个可用的服务器将获取共享资源,例如ip地址。 我有一个类似的解决scheme在我的组织中运行,我们有多个build筑物,每个build筑物都作为一个DNS服务器以及一些其他的Windows和Linux服务器,sans等等。 大多数服务器都安装在故障转移群集中,因此如果一座build筑物爆炸,networking仍然存在。 例如,我们的DHCP服务器有一个IP地址,它是3个DNS服务器之间的共享IP,我可以拔掉3个DNS服务器中的2个,这个IP地址只能指向剩余的活动服务器。 这对于Windows 2008集群来说确实很容易,你可以使用linux和drbd( http://www.drbd.org/ )来实现。
如果所有这些工作或硬件成本都不是一个可行的select,那么您可以查看保证4或5个9的正常运行时间并且在美国各地有多个服务器的DNS服务器。 我不知道有哪些DNS提供商,但我确定有服务提供,但有很多的注册商在那里像godaddy.com
在您的一台服务器上托pipeDNS,并从其中获取任意数量的其他服务器。 BIND的创build者ISC甚至提供商业托pipe服务。 我不确定这些条款,但你可以在他们的网站上find更多的信息。
在本地托pipeDNS的好处是,您绝不会受到任何提供商的困扰 – 如果他们伤害了您,您可以转移到另一位。 这需要移动工作,但只需几个小时的面向networking的工作,而不会影响你的客户。 有时候,在某些registry中很难将您的区域数据从一个奇特的编辑工具中取出。
但是,除非您是DNS专家,否则我不build议您提供自己的DNS。 这并不像有些人认为自己做这件事那样微不足道。 尝试之前有各种有趣的事情要学习,而且不像HTTP托pipe。
你想要的是地理多样性,稳定性和能够运行的部分崩溃提供商。 也就是说,加利福尼亚州的地震不应该把他们的全部服务都拿走。 他们应该有多个“时区”的存在,如果可能的话,多个大陆的存在。
我们在寻找什么:
- 没有单点故障
- 时间有效。
- 一个build议的解决scheme是做多个DNS主机。 这似乎是一个很好的select,但是我们有超过20个域名,并且在两个提供商的所有这些域名上更新IP地址是令人望而却步的。
- 成本效益。
- 我必须把这个卖给高层pipe理人员。 快乐就是我。
那么有什么方法可以支持呢? 我本人更像一个程序员,但是他们已经把这个任务交给了我,所以我想要得到比我更有经验的人的意见。
辅导员可以通过很长的路子来缓解这一点。 你的ISP应该在你的上游提供免费的DNS服务器,此时你可以将它们命名为辅助服务器,并让它们获取你的区域。 这应该会大大降低成本,同时确保您拥有一些合适的东西 。
如果你的ISP没有,“真正的”DNS主机服务可以为你提供这个服务。 我推荐DynDNS,因为它们提供了大部分你正在寻找的东西(多个地点,最less的停机时间,体面的networking界面)。
这是一个古老的线程,但仍然只是看着DNS服务。 错误。 如果您的服务器出现故障,无论您的外部DNS提供商有多可靠,您都会失败。 你需要考虑一点。 更便宜,更好的方法是在你的网站上同时安装两台服务器。 名称服务器1位于一个框中,名称服务器2位于另一个框中。 所以如果一台服务器出现故障,另一台服务器将接pipe。
作为此处提供的build议的一个变体,只要能够进行区域转移,您就可以继续使用现有的注册服务商。 寻找另一个接受区域转移的提供者。 在你的区域文件上,为这个提供者添加更多的NSlogging(最好在地理上分布)。 完成此设置后,您应该在DNS查询中返回来自多个DNS提供商的NSlogging。 确保您的区域传输已设置。 更改后您的名称服务器可能如下所示:
example.com IN NS ns1.provider1.net 172800s (2d) example.com IN NS ns4.provider1.net 172800s (2d) example.com IN NS ns1.provider2.net 172800s (2d) example.com IN NS ns5.provider2.net 172800s (2d) example.com IN NS ns2.provider2.net 172800s (2d)
当provider1出现故障时,recursionDNS服务器只会在前两个NS上超时并继续下一个。 这样,即使地理位置分散,健壮的DNS提供商脱机,您仍然与提供商2联机。
要在这里展开解答,您需要一个具有自动故障转移function的基于地理位置的DNS服务。 如果自我托pipe是最重要的,我公司几年来一直在使用dnsmadeeasy.com取得了巨大的成功。
希望有所帮助。