In Search of Public DNS
Some time ago, my ISP converted their DNS’s to search on bad URL strings. Not only is this not a good idea because something might be relying on a DNS look-up to legitimately fail, but the service randomly hangs, and takes too long to time out when it does. Worse yet, subsequent requests are lumped in with the failing DNS look-up while it is failing. You have to wait for the current DNS look-up to fail before another request is made.
Since then I’ve been on the search for a public DNS server.
My first stop was OpenDNS (184.108.40.206 and 2220.127.116.11), which solved the hanging problem but offered it’s own mixed bag of search and blocking. The blocking feature was nice until it blocked a legitimate site, and told me the site wasn’t being blocked with any of my filters. Blocking (among other things) requires OpenDNS to keep track of your IP address, which can be done with a client program or DNS-O-Matic. I chose the latter as my router had the option to send IP updates to services like DNS-O-Matic. Only problem was that DNS-O-Matic always failed to update my DynDNS account.
Now we have Google Public DNS (18.104.22.168 and 22.214.171.124). No redirects and speedy time-outs. It was impressive when the services behind the domain names all respond quickly, it’s like I have my own personal OC line. Which just goes to show how degraded my ISP’s DNS severs have become.
After some additional research I came upon Level 3 Communications’ public DNS servers (126.96.36.199 – 188.8.131.52). These servers were a little bit faster than Google’s Public DNS servers, and offered the same no-redirect on failure.
OK, now I had two alternatives to Armstrong’s and OpenDNS’ redirecting DNS servers. Time to run a benchmark and find out for sure which ones were fastest. This is when things got interesting. As the DNS server IPs I was given by Armstrong were 184.108.40.206 and 220.127.116.11, I decided to scan 24.154.1.[1-9] to see what else Armstrong had. Guess what? The IPs 18.104.22.168 – 22.214.171.124 held nothing but 126.96.36.199 and 188.8.131.52 held non-redirecting DNS servers. FFS.
Grrr. OK. Fine. Can we please run DNSBench already?
Well, this is surprising in some respects. The non-redirecting Armstrong DNS servers are the fastest, as is expected. Sprint pops up in the #2 position, which is more surprising that they have an open one than a fast one. (United Telecom, Sprint, Embarq, Century Link, or whatever they decide to call themselves tomorrow, has a central office in my town.) Rounding out the under-25ms category is Speakeasy, NTT, OpenDNS, and Level 3, in that order.
Google Public DNS servers come in around 40ms, putting them squarely in the middle tier. An average of 40ms is nothing to sneeze at considering Google isn’t an ISP, but higher expectations are put on Google due to its renowned search engine speed and load-balancing infrastructure.
In the end I’ve gone with one Armstrong DNS, one Sprint DNS, and one Level 3 DNS. And I haven’t had those strange hangs since.