IMB*_*IMB 7 domain-name-system disaster-recovery failover high-availability datacenter
作为他非常受欢迎的问题的后续问题:为什么不建议使用 DNS 故障转移?,我认为由于缓存,DNS 故障转移不是 100% 可靠的。
然而,投票最高的答案并没有真正讨论在两个不同数据中心之间实现故障转移的更好解决方案是什么。提出的唯一解决方案是本地负载平衡(单个数据中心)。
所以我的问题很简单,跨数据中心故障转移的真正解决方案是什么?
sym*_*ean 10
这开始是作为评论......但它变得太长了。
遗憾的是,上一个问题的大部分答案都是错误的:他们假设故障转移与 TTL 有关系。投票最高的答案是惊人的错误,特别是没有引用任何来源。TTL 应用于整个区域记录,与循环无关。
来自 RFC 1794(关于循环 DNS服务)
There is no use in handing out information with TTLs of an hour [or less]
Run Code Online (Sandbox Code Playgroud)
(IME 在您获得完全传播之前接近 3 小时)。
来自 RFC 1035
When several RRs of the same type are available for a
particular owner name, the resolver should either cache them
all or none at all
Run Code Online (Sandbox Code Playgroud)
RFC 1034 规定了负缓存的要求 - 一种指示必须从权威 DNS 服务器新鲜提供所有请求的方法(在这种情况下,TTL 控制故障转移) - 根据我的经验,对此的支持各不相同。
由于任何故障转移都必须在客户端堆栈的高层实现,它可以说不是 TCP/IP 或 DNS 的一部分——事实上,SIP、SMTP、RADIUS 和其他运行在TCP/IP之上的协议定义了客户端应该如何使用 Round Robin - RFC 2616 (HTTP/1.1) 在没有提及它应该如何表现方面非常出色。
但是,根据我的经验,如果连接似乎比预期花费的时间长,那么在过去 10 年中编写的每个浏览器和大多数其他 HTTP 客户端都会透明地检查额外的 A RR。不仅仅是我:
故障转移时间因实施而异,但都在几秒钟的范围内。这不是一个理想的解决方案,因为(由于 DNS 的限制)失败节点的发布需要 DNS TTL - 同时您必须依赖客户端检测。
循环不能替代站点内的其他 HA 机制。但它确实是对它的补充(编写 HAProxy 的人建议使用一对通过循环 DNS 访问的安装)。它是跨多个站点实施 HA 的最佳支持机制:事实上,据我所知,它是标准客户端上可用的唯一受支持的故障转移机制。
整个数据中心需要关闭或无法访问才能应用。然后可以通过将 IP 地址路由到另一个数据中心来访问您在另一个数据中心的备份。这将通过不再提供来自主数据中心的 BGP 路由公告来实现。然后将使用来自辅助数据中心的辅助通知。
较小的企业通常规模不够大,无法证明可移植 IP 地址分配和他们自己的自治系统编号来宣布 BGP 路由的费用是合理的。在这种情况下,提供者将多个位置是要走的路。
您要么必须通过原始 IP 地址与您联系,要么通过 DNS 更改 IP 地址。由于 DNS 并非旨在以“故障转移”的含义所需的方式执行此操作(至少与您的 TTL 或某些缓存服务器强加的 TTL 一样长的时间,用户可能无法访问),请使用以下命令访问备份站点相同的IP是最好的解决方案。
| 归档时间: |
|
| 查看次数: |
6624 次 |
| 最近记录: |