Friday, June 30, 2006
Linksys DNS Timeout Problem
I figured out why the Linksys WRT56G, v5 802.11g wireless router is making DNS queries time out. I used my favorite packet sniffer, called WireShark, to watch what happens when I tell a DNS query program to use my router as the root server. I got very different results from DIG and nslookup.
DIG tries to establish a Transmission Control Protocol (TCP) connection with the router, and the router completely ignores it! Nslookup, on the other hand, uses the connectionless User Datagram Protocol (UDP), and the router responds instantaneously! Voila! Mystery solved!
I'm still looking for a way to make the Linux DNS server use only UDP for queries, but I think I will find it's not possible and it's inadvisable. My understanding is that UDP is fine for short responses, and that TCP is necessary for long responses that get truncated. I bet people who use the Linksys router as their DNS server are unable to reach sites that have long responses.
Thursday, June 29, 2006
Wireless Routers Suck!
So, a couple of weeks ago I decided to upgrade my router and 802.11b access point. At the cable modem I was getting about 6mb/s, but behind my old router I was only getting about 2mb/s. Besides the slowness, my little SMC Barricade was perfect, and my SMC access point was perfect.
I remembered reading about that wireless Linksys router that supports alternative firmware (which I discovered is no longer true as of version 5, BTW) so I went out to buy one. I brought it home, hooked it up, and configured it easily. The only problem was that DNS was screwed up and wouldn't resolve "google.com" to an IP address. It took me a while to diagnose that.
I have a Linux server that runs a DNS server so "router" resolves to my private router, "printer" resolves to my private printer, and so on, and it had been running nicely that way for many months. I had it set up to try to resolve my private names, then forward to my router, which knew how to reach my ISP's DNS servers.
I upgraded the firmware, I IM'ed Linksys technical support for a couple of hours to try to explain my setup and how I really do know what I'm doing, and then I gave up on teaching routers 101 and returned the router.
I figured it was time to go back to an SMC router, so I boxed up my Linksys router, returned it, and bought one. Great! It has a rebate that makes it cost half as much, and it doesn't seem to have any problems!
Three days later the router locked up on me. I called tech support, they made me reset the router several times, and told me if it happens again I should exchange it. Another few days later it locked up again. Dammit!
I boxed up the SMC router, returned it, and then asked the sales person (who seemed fairly clueful) what he would recommend. He handed me a Belkin router, but it was $10 more. Oh well, it's worth it if it works, right?
This Belkin router was the most horrible little thing I've ever had to use. DHCP to my ISP wasn't working for a long time, then once everything seemed to be working, the throughput was below 2mb/s! (Yes, I verified it was not my ISP by hooking up to the cable modem directly.) The available firmware was two versions older than what my router told me it was running, and it crapped out every time I tried to follow tech support's advice to "update" the firmware. They put me on hold for their next level of tech support, then I waited, and waited, and waited, until I hung up. I was so frustrated!
I boxed up the Belkin router, returned it, and decided to put up with the stable Linksys with the broken DNS. I had to hard-code the ISP's DNS servers into my Linux server, but at least things seem stable.
Do these manufacturers purposely add flaws to these routers to make us upgrade to professional networking gear?