At my home I have a DSL connection that is shared between my Ubuntu desktop machine (which is my main development machine), laptop and kids’ desktop. For the last several weeks I was experiencing strange problems with Internet connection, mostly affecting my Ubuntu. The problem was looking like a DNS issue - I was using sites normally until, without any viable reason, all new connections stalled. Firefox’s status bar was showing “Looking for www.google.com” although I was there few minutes ago… it was very irritating. The problem was appearing several times per hour and lasted for 2-5 minutes and during which time I was not able to open any new Internet connection.
Anyway, my ISP even replaced my ADSL modem but that didn’t help. ADSL modem statistics was showing zero errors all time. The problem was persistent, still mostly reproducible on my Ubuntu (well, I use it good part if the day so it wasn’t surprising) but was appearing on other machines too. I was already desperate when I decided to run TCP sniffer and see what’s going on…
Well,the result was interesting. I’ve found that my Ubuntu was generating an avalanche of DNS requests (triggering RSS feeds, etc.) that apparently caused a temporary denial of service (I guess by my ISP’s DNS). After googling a bit, I decided to install local DNS cache service dnsmasq, as explained here. I’m running it for the last few days and so far so good - I didn’t see a single connection failure.
P.S. Although dnsmasq appeared sufficient, while I’m at it, I decided to prepend Google’s Open DNS servers to the list received via DHCP.