为同一主机添加多个 A 记录以进行备份

为同一主机添加多个 A 记录以进行备份

我有一个网络服务器。我有来自 2 个不同 ISP 的 2 个静态 IP。我想确保当其中一个 ISP 的网络出现故障时我的网络服务器可以访问。

例如

my host name a.example.com
my ISP1 IP : x.134.x.100
my ISP1 IP : x.10.x.10

我的 DNS 中当前的 A 记录为 example.com。

a.example.com x.134.x.100
a.example.com x.10.x.10

我的防火墙将两个请求路由到同一台服务器,并且运行正常。

我的问题是

“这是解决问题的正确方法吗?如果不是,那么正确的解决方案是什么?”

编辑:我看到了这个链接http://www.linuxquestions.org/questions/linux-general-1/multiple-a-records-in-dns-734680/

现在我的问题是:提供高可用性的最简单/最便宜的方法是什么?

答案1

此解决方案的问题在于,即使一台服务器/ISP 宕机,DNS 仍会继续分发两个 IP,这意味着它无法真正实现您的目标。如果您确实需要一个真正的备份站点,那么最好的方法是设置 BGP。

这是一个过程,但您可以与 ISP 合作,在每个站点设置一个 BGP 路由器来宣传您的公共网络。当一个路由器或 ISP 宕机时,备份路由器只需几秒钟就可以开始从备份站点宣传您的网络。无需更改 DNS,无需等待任何超时或清除 - 它就可以正常工作。

编辑** 添加辅助解决方案。
如果由于预算或其他限制而无法设置 BGP,我建议您在每个站点设置一个具有非常短 TTL 的 DNS 服务器(例如,假设您没有大量流量,则为 10 分钟)。在每个 DNS 服务器上,创建一个包含该站点中服务器 IP 的 A 记录。因此,在站点 A 中,使用站点 A 中的 IP 配置主机记录,在站点 B 中,使用站点 B 中的 IP 创建主机记录。这样,当 ISP 出现故障时,您将不再提供不可用的 IP。
请记住,使用此解决方案,您将拥有缓存“坏”IP 的客户端,它们必须等待超时,然后才能从其他 DNS 服务器获取“好”IP。

答案2

对于特定客户端类型的 Web 服务,此方法可行,如果您运行命令“host www.google.com”,您会看到它们返回一个旋转的地理重要 WIP 列表。现代浏览器(google 的主要客户端)知道它们可以按顺序使用该地址池,而无需进行额外的解析器查找。

当然,有些客户端不会这样做,而是会使用第一个地址并且永远不会继续。

这不是一种有价值的高可用性形式,但它确实解释了当您查看某些人的网站 DNS 实现时所看到的内容。

相关内容