Comment 18 for bug 81057

Mac (mac-jones) wrote :

OK so here's my theory and how i fixed it (on 100+ Ubintu machines).

There is some low level incompatibility between the Ubuntu dns requests and specific models of router. (I've heard this happens on a few other distros as well, so it's not Ubuntu specific)

Some models of router are absolutely fine, and some models resolve to 1.0.0.0 just about all the time.

Some success can be had by disabling ipv6 on some routers, but on most of my DSL connections with these faulty DSL routers, this had no effect.

The only fix guaranteed fix I have found is to avoid asking these routers for DNS information, because they LIE!

To do this I install a small package called "dnsmasq", this is a caching DNS proxy service that sits on your local machine and passes requests upstream to real DNS servers, and also caches the results.

(apt-get install dnsmasq)
(man dnsmasq)

I then set the .conf file of dnsmasq to pass DNS requests directly to opendns (http://en.wikipedia.org/wiki/OpenDNS). You could also use the DNS IP of your ISP's dns servers.

Your local machine is then set to use 127.0.0.1 (localhost) for DNS queries where dnsmasq will answer them from cache if it can (very fast) or go out to the DNS server you set in the .conf file.

This approach totally avoids the need to ask these buggy DSL routers DNS queries.

As I mentioned earlier I've got this running on 100+ ubuntu machines, and 60+ DSL routers, and it has not missed a beat.

Regards
Mac
New Zealand