Some really deep geekery

So, I finally got fed up today and took the plunge. I warn you that the elaboration on that statement is going to get pretty nerdy.

WRT54GMy primary router is a Linksys WRT54G. It’s on the old side–it’s the V1.1 hardware. Over the years I’ve made some changes to get it the way I want it: I’ve replaced the default antennae with more powerful ones, I’ve added a “range expander” (apparently “repeater” is too difficult a concept for the masses), and I’ve done a lot of upgrading of the firmware as Linksys released new versions.

The antennae and range expander were simply to deal with the fact that the router is in the basement, and I wanted a strong signal all through the house, including the deck. No big deal there.

WRE54GThe firmware thing is something I should have been doing for security reasons, but which I was actually doing because I lived in hope that Linksys would fix a particularly annoying characteristic of the router. Essentially the router remembered connections too long, so when it was used with software that made a lot of short term connections (like, oh I don’t know, Bittorrent clients) it would “run out” of connections. Whenever this happened, I had to power cycle the router, and then everything was fine again.

Linksys’ firmware never gave me the means to address that problem.

Now, the WRT54G is an interesting piece of hardware, in that it’s “open” to the firmware that runs in the router being replaced with unofficial software. There are actually several open source firmware projects that provide firmware that turns this < $100 router into a serious piece of enterprise hardware. I've been following this for quite a while, from the original Sveasoft days, through several other projects, but I’ve never actually made the move. The various ominous notes about the possibility of “bricking” the router–i.e. turning it into a non-functional block of plastic–and the poor documentation of the powerful set of options available with the open source firmware kept me from making the move.

Today, though, I finally had enough. I couldn’t be bothered to reboot that router one more time.

So I resurveyed the projects out there, looking at OpenWRT, eWRT, Thibor’s HyperWRT, DD-WRT, etc.

Finally I settled on DD-WRT and made the move.

I wish I could say it was a painless transition, but I actually came this close to bricking my router, and I actually had to open the box and do some manual pin-to-pin grounding to get the move completed. (Fortunately I had an old SMC router in a drawer I could pull out to keep my wired machines connected while I got the information on how to do this. The wireless machines were hosed for most of the day).

WRT54G guts

Anyway, after an hour or so of scary hardware pain, things were completed and I was up and running on the new DD-WRT firmware.

Pretty much immediately I started noticing a few things:

1) Communications between machines inside the house were much faster–copying a file from one machine to a share on another was noticeably faster. I assume this is some optimization in the DD-WRT firmware. I wasn’t expecting this, so it’s extra good. Actually, since I have a terabyte of NAS, this is a great thing–any access to that NAS stuff seems to be boosted almost 100%.

2) Configuring MAC address based static IP assignment in the DHCP server is trivially easy. What that alphabet soup means is that I can very easily set it up so that specific computers always get the same IP address from the router. This makes port forwarding much less of a pain, which is nice for certain applications that require it. This also opens the door to my machines functioning as real servers on the broader internet at some point…

3) The DD-WRT firmware lets me both see and delete UPnP mappings. This means I can tell which applications have punched a hole in my firewall, and I can close those holes if I wish. This was driving me nuts with Azureus, and I also expect it to be helpful in figuring out why MSN Messenger can send video, but Trillian apparently can’t.

4) The original thing that was bothering me–the holding connections too long/running out of connections problem–is now gone. I tweaked three settings, and the problem is a thing of the past. I note that Linksys could have exposed those settings in their firmware at any time and I would have been able to fix this.

5) I’ve been able to turn on the QoS system and configure it the way I want. What this means is that I can guarantee that my various torrents running full out won’t interfere with my web browsing, or the speed of my VPN connection to work.

6) It’s also trivially easy to boost the transmit power to the radio signal. While this is less useful than a bigger antenna, it helps. I don’t need the repeater anymore.

That’s all stuff that was easy. This firmware can do A LOT more stuff, some of it very interesting and complicated. I suspect I’ll have things to play with here for quite some time.

  1 comment for “Some really deep geekery

Comments are closed.

Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Canada
This work by Chris McLaren is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Canada.