Is there any DNS that supports Geo-location / Directional DNS?

Solution 1:

There are patches available to do GeoIP in various DNS servers.

Bind: http://www.caraytech.com/geodns/

Good writeup of Bind patches, includes RPMs: 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

Also interesting is this hack, which involves not patching Bind: http://phix.me/geodns/

Solution 2:

Wikipedia uses the free (as in free speech, not only as in free beer) software PowerDNS to do so, with a geoip backend.

Just remember that all the GeoIP databases are imperfect and that geographical location is a poor tool to estimate the network distance to a given server. Protocols like ICS are a much better solution.

Solution 3:

Also see http://code.google.com/p/ruby-pdns/ for something that lets you do GeoIP and a whole lot more.

Solution 4:

I would just like to point out the ip2location BIND ACL file is subscription based, and so costs. The methods described at http://phix.me/geodns/ allow anyone to create their own BIND ACL file free of charge, using the freely downloadable MaxMind CSV file, though granted, the ip2location one is probably more accurate (accuracy is what most people pay for).

On a tangent, if anyone is looking for geo-aware BIND on the IPv6 network, I have updated the page at http://phix.me/geodns/ with further scripts which can process 128 bit numbers within a CSV file. I have just found out today that MaxMind do offer a downloadable GeoIPv6 CSV file, which these scripts will operate over to produce a GeoIPv6.acl file for BIND.