How does Google do DNS Geo Location request routing?

I'm wondering who is doing DNS geo location for google.com? By request geo location I mean detecting the location of the user, calculating the nearest server farm to his location, and then routing the request to selected location.

We are evaluating several offers from different vendors for this service and I thought I should know what the big boys are using.


Solution 1:

Google has documented their methods at least partially in their paper Moving Beyond End-to-End Path Information to Optimize CDN Performance. It is largely based on latency to various ASes according to this paper.

Solution 2:

Google uses anycast to route DNS traffic to the closest server farm.

Solution 3:

If you're looking for a IP GeoLocation database you can download one for free from MaxMind. They also offer a non-free version with higher accuracy (though the free one is good enough for most uses).

There are several services out there that are free as well.

I suspect Google has their own database and does not rely on an external company to provide the information.

Edit:
The process of sending traffic to the nearest server has basically nothing to do with DNS. It's a BGP routing protocol called Anycast. You'll need to contact some large hosting providers to coordinate that. Google has their own data-centers, they're not hosted.

Solution 4:

Google use their own servers and quite possibly custom software. Some companies like UltraDNS can offer the same service, but it can be quite expensive, there might even be different pricing tiers depending on how much accuracy you require (city/country).