Thursday, February 11, 2010

Quest for the right DNS Service


So I've (had) been using OpenDNS for the past year or so. It worked great for me in the US - and I wanted to continue using that here in India as well. This is a tale of domain names, pr0n sites (or my attempt to provide a safe internet at home), latency, youtube and privacy.

To those not in the know, DNS or Domain Name System, essentially maps a name like www.google.com to the actual IP address of the machine(s) that www.google.com resides on. So instead of remembering 209.85.153.104 you remember www.google.com. I'm simplifying this - but it gives you a fair picture.

The DNS lookup happens through a series of servers on the internet. When you configure your computer (or your router) to connect to the internet - you specify something called as a Primary DNS and a Secondary DNS (some routers even offer a Tertiary DNS). Usually these DNS servers are hosted by your ISP.

Sometime down the line there came third party DNS servers like OpenDNS (www.opendns.com) - based on a freemium model. Recently Google also launched their free DNS service (8.8.8.8).

The big question is - Should you be using one of these? Or do you stick to your existing DNS service.

When in the US - I had started using OpenDNS - primarily because it offered better response times, some level of adult content blocking (by virtue of not resolving said domain names), and well, I like to try out new stuff!. The adult blocking worked well in the US - but India was another story and I'll come to that in a bit.

Thus began my quest to answer the question "Which DNS Service should I use in India". The network at home looks something like this. I setup OpenDNS - and things seem to be working fine - till I noticed youtube performance not really being upto mark. I even got my broadband speed upgraded to try and deal with that - but the problem continued.

BUT,  I asked myself the same question that you're wondering - how does a DNS service make a difference to overall throughput? You're right - it shouldn't (apart from the time delay introduced due to the initial lookup), but what happens is this: If you observe the bottom of the browser window - when you click on a youtube video - you will see a series of look-ups happening - this actually will slow things down if your DNS takes time to respond to each of the look-ups. This article explains this in a more detailed manner. Essentially, as per the article, there was a problem early on with OpenDNS and youtube. I was not sure if that was also affecting me. The other problem I noticed was that OpenDNS did not block adult sites as effectively as it did in the US (I was just testing - honest!).

Around the time I was struggling with this - Google announced the launch of their DNS service - so I quickly switched to using Google DNS (hey - google pretty much knows everything about me - so why not even everything I browse as well :-). I did notice youtube performance improve - a couple of days after I switched to Google DNS. 

Still not being truly convinced - I continued the quest for the perfect DNS for my network and ....I 'll conclude the results of that in my next post: Benchmarking different DNS servers (expect some nice graphs in that one :-).

1 comment:

Kiran Nataraj said...

Posting a comment from Anand R. (via Google Buzz)
Yes because it doesnt return IP addresses that are CDN friendly. If you ask for domain name which is akamaized (for example) from a dns resolution provider sitting in mountain view they will resolve it to the nearest geo. This could be reason why your youtube performance degrades as its now not served from nearest location. Maybe Google is going something better but generally it will be difficult for them to find out what you want and figure out which cdn is serving that content and ask that cdn to resolve the ip in an optimal fashion.

DNS is also not comprehensive for parental controls. You should McAfee Family Protection ;-).