您可以在 DNS 中为您的服务器设置备份 IP 吗?

您可以在 DNS 中为您的服务器设置备份 IP 吗?

有没有办法让 DNS 协议自然地保存备份 A 记录服务器地址,就像备份名称服务器或邮件服务器记录一样?搜索时,我只看到备份名称服务器(NS 记录)的结果。

如果 DNS 无法支持备份 A 记录,那么模拟结果的最佳方法是什么,以便在主服务器没有响应的情况下将用户定向到正常工作的服务器?

答案1

是的,有点这样。

您可以在此处执行两项操作:如果您在 DNS 服务器中为给定名称设置多个 A 记录,则它们将全部提供给客户端,而这些客户端将从集合中选择一个进行连接,这意味着流量将同时“公平”地分布在所有站点之间。这似乎并不是您所描述的情况,但这是一种常见情况(尽管出于各种原因,我不相信它)。

另一种选择是,您只在 DNS 服务器中放置一条 A 记录,DNS 服务器(或它的辅助程序,如监控脚本)会密切关注您网站的主地址,如果发生故障,DNS 服务器的 A 记录将更改为您的其他网站。这意味着一次只有一个网站会获得流量。

第二种策略的缺点是 DNS 缓存。任何获得旧网站地址的人都将处于 SOL 状态,直到包含旧地址的 DNS 缓存条目被清除。这意味着您必须将 TTL 保持在较低水平(这会增加 DNS 基础设施的负载,尽管这很少是一个实际问题),但仍然存在“流氓”DNS 缓存的问题,它们不遵守 TTL。这对任何人任何人都可以更改 DNS 条目,但对于需要“经常”更改 DNS 条目的人来说,情况要糟糕一百万倍(希望您的网站不会一天宕机几次,但仍然...)基本上,任何使用这些行为不当的 DNS 缓存的人都会看到您的网站在很长一段时间内处于“宕机”状态,然后试着向他们解释是他们的 DNS 缓存有问题...哎呀。

简而言之,我不会为网站这样做,因为有更好的方法来减轻你所想到的任何风险,但如果你想要关于如何减轻风险的建议,你就需要描述这种风险。

答案2

似乎每个人都认为你在谈论 WWW 服务器,即使你明确地写了

像备份名称服务器或邮件服务器

经常被忽视的事实是 HTTP 服务是例外这不是常态。在正常情况下,是的,一种通过 DNS 发布信息给客户端的机制,以便客户端能够正确地从主服务器回退到备份服务器。 该机制是SRV资源记录,被服务客户端用于许多其他协议除了HTTP。 参见 RFC 2782。

有了SRV资源记录,客户端就会收到一份服务器列表,其中包含优先级和权重,并需要按优先级顺序尝试服务器,根据权重在优先级相同的服务器中进行选择,选择权重较高的服务器的频率要高于选择权重较低的服务器。因此,有了SRV资源记录,服务器管理员可以告诉客户端哪些是后备服务器,以及如何在一组优先级相同的服务器上分配负载。

现在,内容 DNS 服务器通过其自己的特殊类型的资源记录(NS资源记录)来定位,这些资源记录没有优先级和权重信息。同样,SMTP 中继服务器也通过其自己的特殊类型的资源记录来定位,MX这些资源记录具有优先级信息但没有权重信息。因此,对于内容 DNS 服务器,没有发布后备和负载分配信息的规定;如果使用MX资源记录,那么对于 SMTP 中继服务器,没有发布负载分配信息的规定。

然而,SRV现在已经有了支持 - 的 MTS。(第一个是exim,自 2005 年以来就SRV支持 -。)并且对于其他MX服务协议,不受资源记录的束缚NSSRV采用更加彻底和广泛。例如,如果您有一个 Microsoft Windows 域,那么SRV通过DNS 查找可以找到大量服务到目前为止,这种情况已经持续了十多年。

问题在于每个人都想到了 HTTP,但迄今为止,在 2011 年的今天,HTTP 只是例外,而不是规则。

答案3

如果您正在提供动态内容,而简单地让两台服务器同时提供内容是不切实际的,那么您的另一个选择是在 DNS 上拥有多个记录,并配置备份服务器以向尝试连接到它的客户端抛出 ICMP 端口不可达;如果主服务器在任何时候出现故障,那么您只需删除备份服务器上的端口 80 阻止,流量就会开始进入。

您能够执行此操作的唯一其他(预算)方法是设置一台单独的机器(或两台)来对请求执行 NAT,因此,如果 Web 服务器死机,您只需删除它的 NAT 规则即可。

答案4

没有备份 A 记录,但可以有多个 A 记录,这些记录以随机顺序给出。

如果一个服务器出现故障,大多数浏览器都可以尝试另一个服务器。(参见:使用循环 DNS 实现 Web 弹性

您可以使用以下方式让多个服务器支持一个集群 IP 地址:虚拟专用网络备份组或者鲤鱼. 当主服务器发生故障时,备份服务器接管地址。

相关内容