当Web服务器在地理上分布时,DNS服务器如何解决

一个域名abc.com有两个networking服务器位于印度和马来西亚两个不同的位置。 如果请求由服务器根据请求发起的位置来处理,那么当我的客户端系统configuration为印度的本地DNS服务器或Malyasia的DNS服务器时,DNS服务器如何parsing这样的地理分布的服务器?

温暖的问候

Supratik

有两种方法可以做到这一点。 一个是tore提到的地理感知DNS,另一个是Anycast DNS。 (请参阅: 地理DNS提供商? )

Anycast DNS与权威DNS服务器通告一个IP地址但在不同的位置(例如马来西亚和美国的一个)之间略有不同。 当有人查询Anycast DNS时,他们将到达最近的服务器,每个服务器将有不同的答案组。 (见: http : //www.netlinxinc.com/netlinx-blog/45-dns/118-introduction-to-anycast-dns.html )

您需要的是您自己的地理感知DNS服务,或者获取可以为您提供此服务的提供商。

如果DNS服务器具有地理位置感知function,它将执行的操作是查看请求查找abc.com的IP,并根据该DNS服务器设置,将IP返回到位置A或B.

为了简化它,您可以设置一个DNS服务器,将127.0.0.1作为所有请求的区域google.com的IP返回,除非您来自欧洲。

通常使用DNS处理地理感知redirect,但并不总是最佳的。

这样做的原因是,DNS请求中的IP地址与用户的物理位置有任何关联,因此没有任何保证。 大多数情况下,这可能是,但这只是一个巧合。 如果用户使用OpenDNS会发生什么 – 那么您如何redirect他们呢?

“正确的”答案是应用程序级redirect – 让您的服务器查看实际的HTTP请求的IP地址,然后在客户端遇到错误的服务器时redirect到另一个服务器(使用不同的名称)。

Google和其他一些公司目前正在IETF DNSEXT工作组中提出一个新的DNS扩展 ,允许开放的DNS服务(如OpenDNS)告诉内容交付networking(例如Akamai)你的真实地址是什么,但是由于隐私影响。

据我所知,DNS中没有任何内容涉及根据请求者的地理位置将一个主机名parsing为不同的IP地址。 DNS不知道或不在乎你在哪里,在哪里,或者被请求parsing的主机在世界地图上,只是在互联网地图上。

您可能需要在http://www.example.com上有一个通用login页面,查看用户的IP,然后根据用户的位置从india.example.commalaysia.example.com等提取内容,或者使用像akamai这样的人,如果它的stream量会很高的话。

它不是。 DNS根本不在乎。 每个caching区域的服务器都会循环所有IP地址。 点。

如果你想要有效的路由,你将不得不在UNICAST IP地址下发布你的Web服务器。 这需要很多的基础设施。 正常的托pipe人不这样做;)