The Deliverator – Wannabee

So open minded, my thoughts fell out…

DD-WRT on WRT54GL

Posted by Deliverator on July 24th, 2006

When setting up Frankenputin at Ryan’s house, we discovered that his router, a Linksys WRT54G (version 1.0) did not support port forwarding, at least not in the way we wanted. Sure, we could forward a port on the router’s ip address to an internal ip, but we couldn’t choose the internal port to map to, just the ip address. This became a problem, because Ryan has a couple servers operating within his firewall and he wanted to be able to ssh to each of them (without altering the port ssh was running upon). Rather than getting a new router, I suggested we try one of the 3rd party firmwares designed for the WRT54G. We ended up loading up DD-WRT without too much trouble. Actually, we had trouble, but it was due to a bad upstream cable connection, but that took us a while to figure out, so we ended up undeservedly cursing DD-WRT for a while before figuring out the issue. I was impressed with the plethora of advanced options, layed out very cleanly in DD-WRT’s web interface panel. I was extra impressed given how much functionality the author had crammed into the minimal version of DD-WRT that we installed in just under 3 MB of flash memory.

My initial experience with DD-WRT was really rather positive (our own bonehead cabling issues aside), so a few weeks later I decided to install DD-WRT on a Linksys WRT54GL, which I purchased at Frys. Frys is the only Seattle store where I have found the GL model being sold. So, why did I have to go to Frys to pickup a WRT54GL…I thought this thing ran on those WRT54G’s which you can get at any computer store?….

The WRT54GL is essentially a WRT54G model 4, with a new model number on the front. The L presumeably stands for Linux, and a ominously worded message on a sticker on the box warns that the enclosed device may contain open source code. Danger! Danger! A while back, Linksys pulled a bait and switch and the current products sold as the WRT54G and GS are now entirely different beast inside their little blue boxes, with much less ram and flash than the WRT54G and GS have hisorically been equiped with. The new WRT54G’s also runs an embedded OS, which I believe is VXworks. These new devices are horribly crippled compared to their earlier, identically named older bretheren. In my opinion, Linksys did nothing less than build a good reputation among consumers with a particular product and then swap it out for a piece of crap with the same name and appearance. To draw an analogy, it would be like buying a Mustang and then popping the hood, only to find that the engine had been replaced by one from a Geo Metro. Linksys continues to sell the “real” WRT54G under the WRT54GL model name. Unfortunately, virtually nobody carries this model and if they do, they are selling it for much more than the original price point of the old WRT54G’s. Still, even at a streat cost of $80 (when you can actually find one), a WRT54GL when coupled with the advanced functionality of DD-WRT is a bargin at twice the price. So, what amazing whizbang features do you get with your DD-WRT equiped router?

Well, that last question was a bit of a trick, as DD-WRT comes in several varieties. There are multiple versions, each designed for enchanced functionality in a specific area, such as VOIP, Quality of Service and VPN use. In addition, there is a standard, mini and micro edition. The micro edition is small enough that it will even run on the new crippled WRT54G version 5, although the flashing procedure is rather involved, requiring knowledge of JTAG. The Standard version is probably what most home users will want to use. One can’t flash directly to any version above mini using the web interface, as Linksys now institutes a check to ensure that a flash image is no bigger than ~3MB. So, to get your router up and running, you reset your router, flash to the mini version using the Linksys web interface, reset the router again and then flash to the final intended firmware. In my case, I chose the VPN version. So, what do you get in the VPN version? Well, I am not going to list them all, but here are a few standouts:

  • Ability to act as a client to another AP. Great if you want wire up a bunch of computers in an inconvenient location (think lan parties!).
  • Dynamic DNS support for a number of popular services. Great if you are hosting a server on a dynamic ip.
  • A number of hotspot portal solutions. Great if you are running an internet cafe, or just want your neighbors to play nice with your connection. Also supports adjusting DHCP lease time, which is a sorely needed feature in any WAP used by a cafe, as long lease times often result in a WAP becoming non-functional due to the high number of users that cycle through during a day, exhausting the lease pool
  • OpenVPN Client and Server, as well as PPTP Client and Server. Great if you want secure remote access into your lan, or want to connect your lan securely to your main business network. I am not sure how many simultaneous connections this will support, as it is doing everything in software. On the plus side, DD-WRT supports overclocking :)
  • Better Quality of Service features than many business class routers I have worked with, and this isn’t even the QoS version (which unfortunately is only available with a donation)
  • Support for static routing, BGP, OSPF and RIP2 routing
  • support for automatically mounting a remote fileshare using Samba
  • Remote logging abilities, keepalive, watchdog, etc.
  • SSH server and client
  • Static DHCP Assignment. It is surprising how many fairly high consumer/small business routers throw in everything but the kitchen sink, but leave this useful feature out
  • VLAN support
  • UPnP support for automatic configuration of router by applications with special needs.

I haven’t had a chance to play around with all of DD-WRT’s advanced features, but have been very happy with the implementation of the features I have used. I have been using the WRT54GL with DD-WRT v23sp1 VPN edition for several days now with no complaints.