在 ultradns.com 或 comwired.com 上,您可以根据位置选择多个 A 记录;
x.com (United States) 174.1.1.1
x.com (Europe) 65.2.2.2
因此请求是根据接近度/它们来自哪里来路由的。
您可以根据需要多次执行此操作,这对于我们的分布式应用程序需求来说是一项很棒的服务。
但是,我们希望在我们自己的服务器上管理它。你知道有什么 linux 软件包可以做到这一点吗?
在 ultradns.com 或 comwired.com 上,您可以根据位置选择多个 A 记录;
x.com (United States) 174.1.1.1
x.com (Europe) 65.2.2.2
因此请求是根据接近度/它们来自哪里来路由的。
您可以根据需要多次执行此操作,这对于我们的分布式应用程序需求来说是一项很棒的服务。
但是,我们希望在我们自己的服务器上管理它。你知道有什么 linux 软件包可以做到这一点吗?
Wikipedia 使用免费(如在言论自由中,而不仅仅是在免费啤酒中)软件PowerDNS这样做,并带有geoip 后端。
请记住,所有的 GeoIP 数据库都是不完善的,并且地理位置对于估计到给定服务器的网络距离来说是一个糟糕的工具。像ICS这样的协议是一个更好的解决方案。
有可用于在各种 DNS 服务器中执行 GeoIP 的补丁。
绑定: http: //www.caraytech.com/geodns/
Bind 补丁的好文章,包括 RPM: http: //www.devco.net/archives/2006/07/11/location_aware_bind.php
djbdns: http ://www.anders.com/cms/276/tinydns.GeoIP.patch/djbdns/Geographically.Aware
这个hack也很有趣,它涉及不修补绑定: http: //phix.me/geodns/
另请参阅http://code.google.com/p/ruby-pdns/了解可以让您执行 GeoIP 以及更多其他功能的内容。
我只想指出 ip2location BIND ACL 文件是基于订阅的,所以成本。http://phix.me/geodns/中描述的方法允许任何人免费创建自己的 BIND ACL 文件,使用可免费下载的 MaxMind CSV 文件,虽然允许,但 ip2location 可能更准确(准确度是最人们付钱)。
切线,如果有人在 IPv6 网络上寻找地理感知 BIND,我已经更新了http://phix.me/geodns/的页面,其中包含可以处理 CSV 文件中的 128 位数字的更多脚本。我今天刚刚发现 MaxMind 确实提供了可下载的 GeoIPv6 CSV 文件,这些脚本将对其进行操作以生成用于 BIND 的 GeoIPv6.acl 文件。