我一直在使用 ZoneEdit 来管理我的 DNS。这通常很好,除了我确实有一半的中断,他们的两个 DNS 服务器出现故障导致我的网站无法访问。管理此问题的最佳方法是什么?我考虑过有一个替代域,可能由另一家公司管理的 DNS,以及某种重定向的故障转移。
我一直在使用 ZoneEdit 来管理我的 DNS。这通常很好,除了我确实有一半的中断,他们的两个 DNS 服务器出现故障导致我的网站无法访问。管理此问题的最佳方法是什么?我考虑过有一个替代域,可能由另一家公司管理的 DNS,以及某种重定向的故障转移。
有几个注意事项。
DNS 的构建是为了容忍主名称服务器出现某种程度的故障。当用户进行 DNS 查询时,提供商通常会将肯定的命中缓存一段时间(通常在特定域的区域配置中指定)。因此,在第一次命中后,如果后续查询在缓存的时间范围内,则后续命中不需要命中权威名称服务器。因此,如果权威名称服务器在短时间内变得不可用,如果用户 DNS 请求命中已缓存条目的名称服务器,则用户可能不会注意到这一点。从根本上说,如果名称服务器停机几分钟(或者一个小时),影响的重要性可能很低。然而,这假设 dns 条目被缓存(即通常用于更高流量的站点)。
但是,大多数企业通过在不同网段使用多个提供商来最大程度地降低 DNS 停机风险。为 GS.com (Goldman Sachs) 运行 SOA 查询,您会看到它们列出了四个名称服务器,两个由 ATT 托管,两个由 UUnet 托管。每个 DNS 服务器都在一个单独的网络中,以最大限度地降低网络故障导致 DNS 服务中断的风险。
ZoneEdit 似乎提供第三级 DNS 服务作为其托管 DNS 服务的附加组件。查看 ZoneEdit 的名称服务器,他们在不同网络上为 zoneedit.com 列出了 5 个名称服务器。我认为 ZoneEdit 运行一个冗余的 DNS 基础设施来实现冗余。这可能是为域名的名称服务器解析添加冗余的最简单方法。
您可以使用两个提供商。一个提供商将托管主(可编辑)副本,而第二个提供商(dyndns、easydns 等)提供备份服务(即记录被复制到它们的名称服务器)。要使此架构正常工作,您必须确保两个供应商的系统相互通信(并非所有 DNS 服务提供商都会让您将区域传输到外部方),然后更新您的域记录以反映新的名称服务器配置. 最后一部分很重要,因为如果您不更新域记录,则使用其他提供商可能不会为您的域名添加任何冗余。
如果您的提供商出现故障,请寻找新的提供商。
我们使用 EasyDNS。尽管它们非常出色,但并非万无一失。我未来的项目之一是建立我们自己的 DNS 服务器,然后从几个供应商(甚至可能是 ZoneEdit 和 EasyDNS)购买二级服务,这样万一失败,至少有人会起来。
如果您的主要 DNS 提供商可以配置为允许区域传输,则有几个提供辅助 DNS 的提供商,它会自动从主要提供商更新。您所要做的就是设置同步并在您的注册商处添加它们。
但实际上 dns 应该针对地理多样性进行设置,因此它几乎可以承受灾难 - 甚至整个数据中心失去连接或城市被摧毁。如果您的提供商有很多停机时间,可能是时候寻找更好的提供商了。