我正在尝试寻找一些方法来为一些现有网站进行高可用性 DNS 托管。今天早上,我工作的公司陷入了困境,因为我们通过注册商 ( bulkregister.com )为我们的域提供的 DNS 托管服务出现故障。我现在的任务是寻找一个不会让我们受制于单一 DNS 提供商的替代方案。
我们在寻找什么:
- 没有单点故障。
- 时间有效。
- 建议的一种解决方案是创建多个 DNS 主机。这似乎是一个不错的选择,但我们有 20 多个域,并且跨两个提供商更新所有这些域的 IP 地址是令人望而却步的。
- 具有成本效益。
- 我必须把它卖给高层管理人员。喜悦是我。
那么存在哪些支持这一点的方法呢?我自己更像是一名程序员,但他们给了我这个任务,所以我想得到比我更有经验的人的意见。
您可以使用任意数量的 DNS 托管服务商,这些托管服务商拥有地理上分散的名称服务器。
http://www.dyndns.com/services/dns/custom/
http://www.easydns.com/dnsmanage.php3
您还可以将您的名称服务器和 DNS 区域移动到具有更强大和弹性基础架构的注册商,例如网络解决方案。
如果操作正确,您需要做的就是更新主 DNS 服务器,并将其余的作为从属服务器,这将轮询主服务器或由主服务器通知挂起的更新。设置自动更新后,您可以拥有尽可能多的从属服务器以满足您的可用性需求,然后它们将保持最新状态,前提是主服务器本身是可访问的。
您可以在多台服务器上运行自己的 DNS 服务器和多个 colos,并设置故障转移和集群。无论是使用 windows 还是 linux,您都可以设置在服务器之间共享的单个共享资源,最好是通过点对点或 vpn,当一个服务器/位置在几秒钟内出现故障时,下一个可用服务器会获取共享资源,例如 ip 地址. 我有一个类似的解决方案在我的组织中运行,我们有多个建筑物,每个建筑物都作为 DNS 服务器以及其他一些 windows 和 linux 服务器,sans 等。大多数服务器都设置在故障转移集群中,因此如果一栋建筑物爆炸,网络仍然正常。例如,我们的 dhcp 服务器中有一个 ip 地址,它是 3 个 dns 服务器之间的共享 ip,我可以拔掉 3 个 dns 服务器中的 2 个,并且那个单个 ip 地址只会指向剩余的活动服务器。使用 Windows 2008 集群非常容易做到这一点,而且您可以使用 linux 和 drbd 以非常便宜的方式做到这一点(http://www.drbd.org/)。
如果所有这些工作或硬件成本都不是一个可行的选择,您可以查看 DNS 提供商,这些提供商可以保证 4 或 5 9 的正常运行时间,并且在美国各地的 colo 中有多个服务器。我不知道这些 DNS 提供商中的任何一个,但我确定有提供服务,但有很多注册商,例如 godaddy.com 之类的地方
在您的一台服务器上托管 DNS,并让任意数量的其他服务器从中提取。BIND 的创建者 ISC 甚至提供商业托管。我不确定这些条款,但您可以在他们的网站上找到更多信息。
在本地托管 DNS 的好处是您绝不会被任何提供商所困——如果他们伤害了您,您可以转移到另一个。搬家需要工作,但这只是几个小时的面向网络的工作,根本不会影响您的客户。有时很难从某些注册表上的精美编辑工具中获取您的区域数据。
但是,除非您是 DNS 专家,否则我不建议您使用自己的 DNS。这并不像某些人认为的那样微不足道。在尝试之前有各种有趣的东西需要学习,而且它不像 HTTP 托管。
您想要的是地域多样化、稳定且能够在部分崩溃时运行的提供商。也就是说,加利福尼亚的地震不应该取消他们的全部服务。他们应该有多个“时区”存在,如果可能的话,多个大陆存在。
这是一个旧线程,但您仍然只查看 dns 服务。错误的。如果您的服务器出现故障,无论您的外部 dns 提供商有多可靠,您都将失败。你需要考虑一下。便宜且更好的方法是在两台服务器上都安装 2 台服务器。名称服务器 1 在一个盒子上,而名称服务器 2 在另一个盒子上。因此,如果一台服务器出现故障,另一台将接管。
作为此处提供的建议的变体,您可以继续使用现有的注册商,只要他们提供进行区域转移的能力。寻找另一个也接受区域传输的提供商。在您的区域文件中,为此提供者添加更多的 NS 记录(最好在地理上分布)。完成此设置后,您应该在 DNS 查询中返回来自多个 DNS 提供商的 NS 记录。确保您的区域转移已设置。更改后,您的名称服务器可能如下所示:
当 provider1 出现故障时,递归 DNS 服务器只会在前两个 NS 上超时并继续下一个。这样,即使地理位置分散、强大的 DNS 提供商离线,您仍然与 provider2 在线。
次要服务器可以在很大程度上缓解这种情况。 您的 ISP 应该在您的上游提供免费的 DNS 服务器,此时您可以将它们命名为辅助服务器并让它们获取您的区域。这应该对降低成本有很大帮助,同时确保你有一些东西到位。
如果您的 ISP 没有,“真正的”DNS 托管服务可以为您提供此服务。我推荐 DynDNS,因为它们提供了您正在寻找的大部分内容(多个位置、最少的停机时间、体面的 Web 界面)。
要在此处扩展答案,您需要具有自动故障转移功能的基于地理的 DNS 服务。如果自托管是最重要的,我的公司多年来一直在使用dnsmadeeasy.com并取得了巨大的成功。
希望有帮助。