73

It seems like a good idea to use Google's public DNS 8.8.8.8 and 8.8.4.4 because it's really fast -- much faster than my own ISP's DNS! -- and probably more reliable, too. That seems like a ridiculously quick win for me, and much easier to remember.

Assuming we're not all "tin foil hat" about Google, why shouldn't everybody use Google DNS? How can I determine which DNS server would be the fastest, most reliable, or what would generally be considered the best?

Note: I've seen this question, but I don't want a comparison to OpenDNS. This is about everyday use by everyday people in their homes.

Update: I seem to have put my hand in a wasps' nest of privacy concerns. I appreciate the issue, but I was expecting a more technology-oriented discussion...

11 Answers11

55

There is a useful tool that test the different DNS nameservers available (your ISP, current configuration, DynDNS, Google Public DNS and other one).

From my point of view Google DNS are pretty fast but depending on the load GoogleDNS supports my ISP Dns is sometimes faster.

NameBench (Linux/Windows/Mac OS X)

Output : alt text
(source: googlecode.com)

Glorfindel
  • 1,213
Kami
  • 1,444
32

How about running your own caching DNS servers? You probably already host DNS for your internal services, so why not just setup those servers to do direct lookups instead of forwarding requests to your ISP or Google?

The benefits:

  • They are very close to your users (< 2ms)
  • Caching DNS is dead simple to run
  • Caching is still fairly effective since your users are probably accessing the same sites (e.g. serverfault.com and facebook.com)
  • You can do logging of DNS requests for troubleshooting
  • No need to worry about someone else logging your DNS queries
  • Required for split-brain DNS zones
Doug Luxem
  • 9,652
21

Larger websites and services, such as Facebook, often use a Content Delivery Network (CDN) to route your request to the closest (and therefore likely fastest) server for their content. They do this via DNS anycast routing, by returning the closest server's address when you perform a DNS query via your DNS server. In other words, where your DNS server is located physically can have an effect on the speeds and response times you get from certain CDN's. Use a DNS server that's close by.

However, these public DNS servers use anycast routing to provide your with a DNS response from the nearest server. Otherwise they couldn't provide you with such fast responses and high uptimes. For example, when you query 8.8.8.8 from The Netherlands, the server that answers the query is not the same one as when you query from Japan. This may partially compensate the CDN problem.

Google itself has a warning to the same effect (where resolver is the DNS server):

Note, however, that because nameservers geolocate according to the resolver's IP address rather than the user's, Google Public DNS has the same limitations as other open DNS services: that is, the server to which a user is referred might be farther away than one to which a local DNS provider would have referred. This could cause a slower browsing experience for certain sites.

Source: https://developers.google.com/speed/public-dns/faq#cdn

I couldn't find a list of Google's public DNS locations, but OpenDNS has a list of cities on their status page that should give you an idea which one you're closest too.

7

Every request sent through a DNS server can be logged and that data collated. This isn't tin foil hat stuff, I know companies that do similar. Who do you trust more with that data, your ISP or Google? That should be part of the decision.
Secondly, the reason everyone shouldn't be using Google's DNS is down the whole nature of the Internet. As it stands, no one company runs or controls the Internet in any way - you have a choice which ISP you use, who you host with, where you host, how you host, who your DNS is hosted with, who you use for your DNS lookups. There is no one person in control and there is no single point of failure or compromise.
Please note I'm not saying don't use Google, just don't put all your eggs in the same basket. Why not use 8.8.8.8 and your ISPs primary nameserver?

James L
  • 6,205
  • 1
  • 25
  • 26
7

Perhaps you aren't all "tin foil hat" yet; but Google internally is wondering if you should be. There was an internal Google document leaked recently where they ponder if they should start mining all the data they possibly can.

Chris S
  • 78,455
4

dns packet are routed through udp. Udp is connectionless protocol, so it means if you have lots of hop's (networks) to travel to google dns you will lose packet or two. Lost packets in your case mean delay so I would stick to closest DNS you can find to get faster response.

grawity
  • 17,092
damir
  • 353
3

Use your ISP's DNS servers they are closer to you, and they are less likely to be monitoring your traffic than google is.

topdog
  • 3,558
3

For most ISPs, it's a no brainer because their DNS tends to really suck. DNS makes a huge impact for user experience.

The only downside from my point of view is that you may notice poor performance for sites that use CDNs. I noticed that iTunes download performance wasn't as good with Google DNS... but that's just me.

The privacy issue is a non-starter for me. The only difference between Google monitoring your activities and your ISP is that Google is probably better at getting actual value out of the data. The Jeff and Joel had a really good discussion on the Google DNS issue in one of the later StackOverflow podcasts that is worth listening to.

duffbeer703
  • 22,305
3

The only way to really decide is to benchmark it. It is going to be different depending on your connection. You should use a tool like http://www.grc.com/dns/benchmark.htm to find out what is really quicker

trent
  • 3,094
2

I simply PING'ed the ISP / Google DNS servers IP, and the results favored the ISP, before and after altering the DNS Primary and Secondary configuration. 26ms vs 77ms

1

Google DNS is great but they do go down on occasion. As I write this, 8.8.8.8 and 8.8.4.4 are both unusably slow.

For a personal computer, I recommend Google because they are fast and they will give you an error if there is a failure unlike most ISPs which will take you to an annoying search page.

For servers colocated in data centers, I recommend using the DNS that your DC provides. You can call your DC in the event of an outage whereas Google cannot be contacted and is responsible for nothing.

tgurske
  • 11