Past Christmas I bought a Linksys WRT54GSv4 router to improve wireless access to my home network. Of course, I’d have bought an access point, but I also wanted to replace most of my home server/router functionality with this little device so that I could eventually remove the server box. Therefore it had to provide:

  • NAT.
  • Firewalling.
  • Port redirection.
  • A dynamic DHCP server.
  • Ability to configure DHCP static entries (used for servers within the network).
  • A local DNS server to resolve names for local machines.

The first four items were all provided by the official firmware but unfortunately not the last two. However, if I chose that specific model was because it could easily be flashed using OpenWRT or DD-WRT, both of which allow to set up those services by using, e.g. Dnsmasq.

However, due to lazyness and fear of breaking it, I didn’t flash the router with these non-official firmwares until a couple of days ago. I finally decided to give DD-WRT a try given that it includes the same (but improved) nice web interface that came with the official software. I certainly did not want to configure it through the command line.

For some reason the first flashing attempt failed in a strange way because I could access the router through telnet but not through the web. Trying to fix that through the command line resulted in much worse results rendering the router useless: it wouldn’t boot at all because the firmware was corrupt. Panic!

Fortunately, after playing a lot with TFTP I finally achieved to flash it again with the correct firmware. After that, I was greeted by the web interface waiting for me to configure everything again. At first everything looked as before (except for the visual theme change) with some minor additions, but then I discovered the “Services” tab which accomplished my initial goal: set up static DHCP entries for hosts and configure local DNS names. Simply wonderful.

So now that the router provides DHCP and DNS as I needed, the only remaining tasks that the server does are file sharing, Monotone database serving (for the local network only), P2P management and daily NetBSD rebuilds. Note that in the past it also ran Apache, Courier IMAP, Spamassassin, FTP and probably something else. I’m now thinking how to best get rid of them all and shut down that annoying machine that continuously pollutes the living room with noise and wastes power unnecessarily.