Anycast 和 GeoDNS / GeoIP wrt HA 有什么区别?

Riy*_*lla 19 domain-name-system high-availability anycast geodns amazon-route53

根据维基百科对Anycast 的描述,它既包括跨多个 DNS 服务器的域名到多 IP 映射的分布,也包括使用地理位置最接近(或最快)的服务器回复客户端。

在像 google.com 这样的全球分布、高度可用的站点(或具有许多全球边缘位置的任何 CDN 服务)的上下文中,这听起来像是人们需要的两个关键功能。

亚马逊的 Route53、EasyDNS 和 DNSMadeEasy 等 DNS 服务都宣称自己是支持 Anycast 的网络。

因此,我的假设是,这些 DNS 服务中的每一个都透明地为我提供了这两个杀手级功能:多 IP 到域的映射和将客户端路由到最近的节点。

然而,这些服务中的每一个似乎都将这两个功能分开,将第二个(将客户端路由到最近的节点)称为“GeoDNS”、“GeoIP”或“全球交通指挥”,并为该服务收取额外费用。

如果支持任播的系统的核心租户已经这样做了,为什么要将此功能指定为此额外功能?这个“GeoDNS”功能是什么,标准 Anycast DNS 服务不会做(根据 Wikipedia 中 Anycast 的定义——我理解正在宣传的内容,只是不知道为什么它没有被暗示)。

当不支持这种模糊的“GeoDNS”功能的 Route53 等 DNS 服务列出的功能如下时,我感到非常困惑:

快速 – Route 53 使用全球 DNS 服务器的全球任播网络,旨在根据网络状况自动将您的用户路由到最佳位置。因此,该服务为您的最终用户提供低查询延迟,并为您的 DNS 记录管理需求提供低更新延迟。

...这听起来与 GeoDNS 的意图完全一样,但地理定向客户是他们明确不支持的事情

最终,我正在从 DNS 提供商那里寻找以下两个功能:

  1. 将多个 IP 地址映射到单个域名(如 google.com、amazon.com 等)
  2. 利用 DNS 服务,该服务将使用距离请求者最近的服务器的 IP 地址响应对该域的客户端请求。

如前所述,这似乎是“任播”DNS 服务(所有这些服务都是)的一部分,但我从他们那里看到的功能和营销表明并非如此,让我觉得我需要更多地了解如何DNS 在做出部署选择之前起作用。

提前感谢您的任何澄清。

sys*_*138 17

GeoDNS 的主要优点是它根据请求者的 IP 地址将相同的名称解析为不同的 IP 地址。

任播 DNS 服务器将返回相同的 IP 地址,无论是谁在询问。

两者在不同的网络层工作。Anycast 位于 GeoDNS 之下,因为它不知道请求者 IP 地址的位置,只知道它在网络图中的位置。可能靠近 DNS 服务器的可能并不靠近被请求的资源,而 Anycasted DNS 服务器无法告诉这一点。

GeoDNS 使用资源位置地图并执行逻辑以确定哪些资源最接近给定的请求 IP 地址,然后返回该 IP 地址。

除非您将 DNS 服务器与网络资源并置,否则靠近 DNS 服务器的内容并不总是靠近资源,因此使用 Anycast 作为数据本地化方法不如直接使用 GeoDNS 有效。


Sha*_*den 7

BGP 任播方面允许客户端向给定的 DNS 服务器发送请求,并通过 BGP 路由表将该请求发送到附近的 DNS 服务器实例,希望得到快速响应。

但是,地理分布和任播的普通 ol' DNS 服务器不具有根据请求客户端的位置对查询做出不同响应的能力- 这是那些“Geo-DNS”服务提供额外成本的额外功能,允许您将客户发送到靠近他们的服务实例。

存在此功能的原因是 BGP 任播适用于像 DNS 这样的无状态事物,它快速而肮脏,不需要连接或会话持久性,但对于像 Web 服务器这样的事物,您希望将实例粘贴到世界各地并确保给定的客户端将坚持特定的实例 - 全局 BGP 表中的路由更改会中断 TCP 连接,中断 Web 应用程序会话,并且通常会造成严重破坏;出于这个原因,任播通常不用于 Web 服务器。

最好通过 DNS 为 X 县的用户提供 X 国家实例的 IP,这就是您使用 Geo-DNS 服务支付现金的目的。


小智 5

传统上,您将拥有多个 DNS 服务器。客户端将随机选择一个,并询问您的 Web 服务器的 IP 地址。如果 DNS 服务器靠近客户端,这很好,但如果 - 通常情况下 - DNS 服务器远离客户端,则这很糟糕。无论哪种方式,客户端都将获得与答案相同的 IP 地址。

Anycast 允许多个服务器响应同一个 IP 地址。使用任播 DNS,当客户端尝试与您的名称服务器通信时,最近/最快的名称服务器会做出响应。这意味着客户端总是能快速响应他的 DNS 查询。但是,他的 DNS 查询始终会得到相同的答案 - 您服务器的 IP。如果您的服务器离客户端很远,则客户端体验可能不是最佳的。

GeoDNS 允许 DNS 服务器使用不同的 IP 地址进行响应,具体取决于客户端所在的位置。(显然,这要求您拥有多个分布在不同地理位置的服务器。)GeoDNS 并不意味着任播,尽管通常您会同时部署两者,这样客户端最终会得到地理位置附近的 DNS 服务器的响应,然后回复地理位置附近的 Web 服务器的 IP 地址。