实用任播

我读过如何使用DNS将访问者发送到最近的服务器? 但是还有一些东西,在实际的层面上,我不明白。

说我有两台服务器。 一个在纽约另一个在巴黎。 他们都有不同的IP地址1.1.1.1和1.1.1.2,它们是由ISP(或托pipe公司)分配给他们的IP地址,

我需要遵循哪些步骤,以便欧洲人在inputhttp://blabla.com:8080时将被转换为与客户端最近的服务器的IP?

我的最终目标是通过将用户引导到最近的服务器来提高我写的TCP-Socket应用程序的速度。

更新:感谢球员的答案。 我想我还有很多需要学习的东西:\我才能真正做到这一点。

亚马逊AWS的Route53是一个可靠,价格合理的全球负载均衡器,它利用任播。 这是迄今为止最简单的路线。

如果您想要自己设置任播DNS,则需要获取IP地址,并将多个数据中心位置在其BGP中通告此IP地址。 通常情况下,人们从相关权限购买IP地址范围,但是我看到一些愿意租用人们IP地址的数据中心,并允许他们从其他数据中心做广告。

典型的设置是每台服务器都有自己的唯一IP地址和一个任播地址。 例如:

伦敦有1.1.1.1和3.3.3.3纽约有1.1.1.2和3.3.3.3

每台监听3.3.3.3的服务器上运行一个DNS服务器,并为该服务器发出唯一的IP地址。

请记住,任播是在IP层,因此在传输技术,如TCP。 因此,任何跟踪状态的传输(例如TCP)都不适用于任播。 DNS(通常)是UDP,用作将客户端分配到最近的服务器以build立TCP连接的一种方法。

您需要使用将DNS响应基于其位置的服务。 无论是外包给DNS公司还是自己build立。 我认为您真正需要的技术是全球服务器负载平衡(GSLB),而不是AnyCast。

大多数DNS公司都提供这种服务。

PowerDNS似乎是DIY GSLB的热门解决scheme: http : //www.powerdns.com/auth.html

如果你只有两个服务器,一个在北美,另一个在欧洲,那么你可以决定自己运行你的TCP套接字应用程序和你的DNS。

使用DNS,您可以使用像Split-Horizo​​n DNS方法,这可以通过DNS服务器的集成function来实现,也可以通过防火墙将不同的IP地址范围redirect到服务器的不同运行实例(可以在本地机器上运行服务器的两个不同副本,这些副本将在不同的本地IP地址上进行监听)。

只有一个NA和一个EU主机,通过回答来自RIPE的DNS请求和在欧洲有主机的Alogging的AfriNIC IP地址,以及来自IP地址的请求,您可能会在约90%的案例中获得预期的结果从ARIN,APNIC,LACNIC和/ 8地址空间的其余部分pipe理的/ 8块,在北美的服务器的Alogging。 这在某些情况下会有一些错误的结果(欧洲和北美之间共有8个块,有些地址空间是任播等),但最坏的情况是受影响的一方会有一些额外的延迟,这不应该是一个大问题。

(是的,应该有办法让这些事情变得更容易,但到目前为止,似乎没有。)