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


17

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

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

诸如Amazon的Route53,EasyDNS和DNSMadeEasy之类的DNS服务都将自己宣传为支持Anycast的网络。

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

但是,每种服务似乎都将这两种功能分开,将第二种功能(将客户端路由到最近的节点)称为“ GeoDNS”,“ GeoIP”或“ Global Traffic Director”,并对该服务收取额外费用。

如果具有Anycast功能的系统的核心租户已经这样做了,为什么将此功能指定为该额外功能?什么是标准的Anycast DNS服务无法实现的“ GeoDNS”功能(根据Wikipedia的Anycast的定义-我了解正在宣传的内容,而不是为什么它尚未隐含)。

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

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

...听起来完全像GeoDNS打算做的那样,但是地理上定向客户是他们明确不支持的东西

最终,我正在寻找DNS提供者的以下两个功能:

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

如前所述,这似乎是“ Anycast” DNS服务(所有这些服务都是)的一部分,但是我从中看到的功能和市场营销表明存在其他问题,这使我认为我需要学习更多有关如何DNS在做出部署选择之前起作用。

预先感谢您的任何澄清。

Answers:


17

GeoDNS的主要优势在于,它可以根据请求者的IP地址将同一名称解析为不同的IP地址。

无论谁进行询问,Anycasted DNS服务器都将返回相同的IP地址

两者在不同的网络层工作。Anycast位于GeoDNS下方,因为它无法识别请求者IP地址的位置,而无法知道其在网络图中的位置。DNS服务器附近的资源可能与请求的资源不太接近,Anycasted DNS服务器无法告知这一点。

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

除非您将DNS服务器与网络资源并置在一起,否则与DNS服务器最接近的地方将不一定总是与资源接近,因此,将Anycast用作数据本地化方法的效果不如直接使用GeoDNS。


当场,我什至没有考虑解析地址的两个阶段(首先找到DNS服务器本身,然后找到目标服务器)。谢谢!
里亚德·卡拉

6

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

但是,按地理位置分布且任意播送的普通DNS服务器无法根据请求客户端的位置来不同地响应查询 -这是那些“ Geo-DNS”服务提供额外费用的额外功能,允许您可以将客户发送到与他们接近的服务实例。

之所以存在此功能,是因为BGP任播对于像DNS这样的无状态的东西来说运行良好,它既快速又肮脏,并且不需要连接或会话持久性,但是对于像Web服务器这样的东西,则希望在世界范围内保留实例。并确保给定的客户端坚持特定的实例-全局BGP表中间连接中的路由更改将中断TCP连接,中断Web应用程序会话并通常造成破坏;因此,通常不将Anycast用于Web服务器。

最好通过DNS为X县的用户提供X国家的实例的IP,这就是您通过Geo-DNS服务分摊现金的原因。


4

传统上,您将有多个DNS服务器。客户端会随机选择一个,并要求您提供您的Web服务器的IP地址。如果DNS服务器靠近客户端,那么这很好,但是如果DNS服务器(通常是这样)远离客户端,则不好。无论哪种方式,客户端都会获得与答案相同的IP地址。

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

GeoDNS使DNS服务器根据客户端的位置使用不同的IP地址进行响应。(显然,这需要您具有多个地理位置分散的服务器。)GeoDNS并不意味着任播,尽管通常情况下您会同时部署这两个服务器,以便客户端最终得到其地理位置附近的DNS服务器的DNS查询答复,然后用地理位置附近的Web服务器的IP地址。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.