如何使用DNS将访客发送到最近的服务器?


20

有一种本地化dns条目的方法吗?这意味着,与来自美国或欧洲的用户相比,来自亚洲的用户将mydomain.com解析为另一个IP。这将有助于向用户提供附近的服务器。到目前为止,DNS是唯一使用的技术,这意味着我无法放置一些软件路由或中央系统来代替dns来解决此问题。

Answers:


20

是的,目前有两种流行的解决方案。

第一个称为Anycast,其中相同的IP块实际上在全球多个地方都在使用。也就是说,您的域的名称服务器始终返回相同的IP地址,但该IP地址实际上已分配给一组以上的物理服务器。

您可以在这里阅读更多有关它的信息http://en.wikipedia.org/wiki/Anycast

第二种技术再次涉及AnyCast,但是这次,任播的IP地址范围是指我们的名称服务器本身。由于名称服务器也将仅从其最近的客户端请求(由BGP的魔力决定),因此名称服务器本身可以返回逻辑上本地的IP地址。

谷歌的l.google.com域就是一个例子。

来自澳大利亚的房东

crimson:~ dave$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-notmumbai.l.google.com.
www-notmumbai.l.google.com has address 66.249.89.99
www-notmumbai.l.google.com has address 66.249.89.147
www-notmumbai.l.google.com has address 66.249.89.103
www-notmumbai.l.google.com has address 66.249.89.104

来自美国的一位主持人

[dave@odessa ~]$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.95.99
www.l.google.com has address 74.125.95.147
www.l.google.com has address 74.125.95.104
www.l.google.com has address 74.125.95.106
www.l.google.com has address 74.125.95.105
www.l.google.com has address 74.125.95.103

因此,CNAME www.google.com解析为www.l.google.com,但是当您解析时,根据您的位置,您的客户端会收到另一组IP地址。这是因为接收到请求的名称服务器是相对于客户端www.l.google.com本地名称服务器。


5
这个答案从技术上讲解决了这个问题,但是我认为这是对一个实际问题的真实答案,这是没有用的:大多数参与者都没有任何要求,所以您的答案对所有这些参与者都是遥不可及的。
cnst

那么哪个注册人提供此解决方案?
动态

同样值得注意的是,DNS本身具有此功能。将DNS服务器放置在一个区域中,该记录指向该区域中的Web服务器。在其他区域重复。利润。
dmourati

@dmourati:这不会传播和更新其他DNS服务器吗?我一直认为DNS服务器始终传播信息,直到所有服务器都同步为止。
大师普拉萨德

@GuruPrasad多个主机(通常位于不同的地理区域)被赋予相同的单播IP地址,并且通过BGP宣布到该地址的不同路由。路由器将它们视为到达相同目的地的替代路由,尽管它们实际上是到达具有相同地址的不同目的地的路由。像往常一样,路由器根据正在使用的距离度量(成本最低,拥塞最少,最短)来选择路由。在此设置中选择路线等同于选择目的地。==维基/播----但它在IPv6的比这说明效果更好
杰拉尔德Claborn

2

如果您只想本地化亚洲,北美和欧洲的服务器,则可以决定自己运行webapp和DNS。

借助DNS,您可以使用诸如水平分割DNS方法之类的方法,该方法既可以通过DNS服务器的集成功能(它们可以称为GeoDNS)来实现,也可以通过将不同IP地址范围重定向到不同运行状态的防火墙来实现DNS服务器实例(您可以在本地计算机上运行该服务器的多个不同副本,这些副本将侦听不同的本地IP地址)。

通过回复来自RIPE和AfriNIC IP地址的DNS请求并A记录您在欧洲的主机,来自APNIC的请求(在亚洲的主机)以及来自IP地址的请求,您可能会在大约90%的情况下获得预期的结果。由ARIN,LACNIC和其余/ 8地址空间管理的/ 8块以及您在北美的服务器记录。在某些情况下,这将导致错误的结果(欧洲和北美之间共享一些/ 8块,任播地址空间等),但是最糟糕的情况是受影响的一方会有额外的延迟,因此,不应没什么大不了的。A

(是的,应该有一种方法可以使这些事情变得更容易,但是到目前为止,似乎还没有。)


2

我有同样的问题。我们公司在俄罗斯和中国都有客户,他们都需要非常快速地连接到我们的服务。我们使用Amazon Route 53 Geo dns并创建了两个记录,一个记录将把客户从中国路由到我们的东京地区集群,并将客户从俄罗斯路由到伦敦。

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.