We talk about networking quite a bit on AnandTech, covering everything from the upper end of home routers to WiFi stacks in smartphones and extending all the way up to 10GbE in the enterprise. What we haven't really talked much about is some of the open source networking software that's out there to improve and manage your network.

As router hardware is effectively general purpose hardware running a specific OS/application workload, it's possible to load custom firmware on your router provided it meets the right hardware requirements. It's akin to loading a custom ROM on a smartphone, all you need is a compatible platform. In some cases, that's limited to Broadcom or Atheros, but there are other solutions that run on embedded x86 as well.

The upside to loading a custom firmware on your router is a potentially significantly expanded list of features and improvements. Much finer grained QoS, packet filtering, OpenVPN support, local storage (SMB or FTP shares) from USB, better stability, control over WiFi power amplifier Tx power, and now of increasing import - tracking bandwidth usage. Many home/SMB routers simply don't offer good network monitoring tools, security features or just decent management, and the alternative is to go for some open source based firmware with many more options. Ultimately the tech-savvy home networker will buy a router for the platform and features (eg. CPU speed, RAM, WiFi options like 2.4/5 GHz or number of spatial streams), and choose a firmware to run atop that platform.

Over the years, I've personally tried m0n0wall and pfSense on embedded x86 platforms like PC Engines' ALIX and WRAP, as well as the more common options including OpenWRT, DD-WRT and Tomato on a variety of Broadcom based routers. I generally end up drifting back and forth, but usually use Victek's mod of Tomato-USB on either a WRT54G-TM or more recently a Netgear WNR3500L. I've been wanting to try out and review ASUS' RT-N16 router which seems to be gaining considerable developer traction in the DD-WRT and Tomato communities as well. 

Tomato USB - Victek's Mod

I've tossed around the notion of doing a comparative look at all the open source home/SMB router platforms and thought it might be useful to get some feedback on whether this is something that you guys would be interested in, and if so whether there were any specific topics. Of course that would also be alongside a look at some of the newer 802.11n/GigE routers that are still compatible with the popular open source firmware distros all vying for the now somewhat aging WRT54G/GS/GL's crown. 

I've shared a bit about what I use in my personal setup - but what about you guys? How many of you are using custom firmware on your router? If you are, what are you running?




View All Comments

  • Azethoth - Tuesday, February 28, 2012 - link

    DD-WRT user on a Buffalo.

    What I need more than anything is best practices guidelines, and really I only care about 1) security 2) performance (if it does not clash with 1).

    There is just such an overwhelming amount of options out there it is a research project just to get vaguely ok settings. Never mind actually getting close to optimal. This is true for everything, motherboard bios, firewalls, routers, switches, OS.

    A review is nice, but how about also giving us the settings you recommend and updating those based on comments once or twice after publishing the article.
  • GeorgeH - Tuesday, February 28, 2012 - link

    I've played around with DD-WRT and similar in the past, and found that while the extra features were nice wireless performance was abysmal (in some cases producing less than half the bandwidth of stock firmware.)

    Maybe things have improved, but if they have I doubt it's by much - the "extra tweaking" options simply aren't worth my time and loss of wireless performance.
  • angstrom60 - Tuesday, February 28, 2012 - link

    Having setup WRT54G's and WNR3500L's using DD-WRT in the not-so-distant past, I think a lot of good could be achieved by just testing the most used features of the most popular 3rd party firmware providers. As other commenters have pointed out, it's quite the task to sift through all of the choices available even when you already have target hardware. Without a target platform in mind, it becomes herculean. I ended up using DD-WRT solely on the basis of incidental prior experience, not because it offered any compelling advantage over Tomato. I simply didn't have time to try both.

    Perhaps a reasonable approach would be to pick a small subset of hardware (3-5 across price/performance range) and then do usability/correctness testing with OpenWRT, DD-WRT and Tomato. For performance testing, the most important characteristic for home routers is stability, followed by WAN-LAN throughput and possibly simultaneous connection limits. VPN throughput for routers that can establish tunnels is also useful info.

    I would bet that, for most that try open source firmware, a successful experience with one package will generate high brand loyalty. It's just a matter of familiarity, and not wanting to undergo the effort of learning some other arcane ritual to just get the firmware onto the device without bricking it. With that first choice being vitally important, therefore, an article helping guide users to it would be great.
  • l8gravely - Tuesday, February 28, 2012 - link

    This would be a good article, if even if it's only a survey of what's out there as options.

    I used to run a WRAP board with m0n0wall and a WRT54G WAP for years, until the WAP got flaky, as well as the WRAP board. I didn't have time to chase them both down and since I wanted new stuff, I got a WNDR 3700 (N600?) I think. Can't remember since the model on the box and the model on the unit were different. Stupid marketting people.

    Anyway, just finding a dual band router with 2.4 and 5Ghz, supported by DD-WRT was a challenge, mostly in terms of figuring out exactly which model to get.

    I first tried running the stock firmware, but it couldn't do what I wanted. Now I run DD-WRT but I'm annoyed at the DNS server it has. If I add my own internal entries, the stupid thing doesn't append my internal domain name (foo.home) to hostnames, nor does it allow you to look them up with either name, So either I end up entereing the name twice into the dnsmasq.conf file with both the hostname and the FDQN, which is just stupid.

    And I haven't had time to hunt down the reason, because I demand a system that stays up and just runs, I have enough other things to fart around with.

  • turb0chrg - Tuesday, February 28, 2012 - link

    I've been using m0n0wall on a Soekris box for many years. Used to have a 4501 that worked great for many years. Now running a 4801 which has been in place for another another many more years. These things are bulletproof and cheap on power. On another deployment I've had the CF card (don't cheap out on it), and also Soekris shipped a PSU that had a bad coax plug which they replaced w/o issue.

    I have had great success with m0n0wall. Before m0n0wall updated to the freebsd kernel that supports wireless AP's, I had a Linksys AP connected to it, now it's all in the same box and works great. Does what I need, don't see much point in changing it. I've only got a 7.5/0.5Mbps connection and I am not saturating the CPU cycles on it. Soekris offers other models that have more processing power that I would look at if I need it.

    I've got a PPTP VPN, traffic shaping, etc going on it. Note that it doesn't support uPNP (a plus or a minus depending on who you talk to) and it's definitely geared towards the more networking skills than some of the alternatives out there.

  • korkwin - Tuesday, February 28, 2012 - link

    +1 for the comparative look. I love my WRT54G v.2, however it is old and starting to bite the bullet. I have been using Tomato for the last few years and would like to continue doing so (although I'm not afraid to change from one open source firmware to another), but I find that between the different options available for both routers and firmware, it's a daunting task to find what would work best. Reply
  • EvilWobbles - Tuesday, February 28, 2012 - link

    Been running PFSense version 1.2.3 and more recently 2.0 for a couple of years now with great success. Originally I had an old PC with a couple of 3Com 3C905C NICs in it.

    I decided to move to something smaller and more energy efficient so I purchased a Zotac miniITX board with a Sempron 140 CPU and 2 gigs of RAM. I bought a small ITX case with external power supply and added a PCIe gigabit card to the mix. Nice little box and plenty powerful for my needs.

    I have a static IP block on my cable line and it handles the multiple IP addresses flawlessly which is something DD-WRT never seemed to do cleanly. You had to hack at it to add multiple external static IPs.
  • Solidstate89 - Tuesday, February 28, 2012 - link

    I can't recommend that Asus RT-N16 router enough. Especially after reading this thread with all these people complaining about how they have to reset their routers ever week. I'm still using the stock firmware (the latest "Russia only" build, don't worry it isn't in Russian and it's ridiculously stable) and I haven't reset it since I installed the firmware update. I'm going on 3-4 months now and not a single problem.

    I would imagine with installing DD-WRT or Tomato on it for those that like more granular control would be like heaven for many people on this board. Seriously, go out and buy it right now if you're sick of messing with that underpowered Linksys router that everyone keeps buying for some god knows why reason.
  • EnsilZah - Tuesday, February 28, 2012 - link

    I recently bought a WR1043ND and figured I'd try OpenWRT or DD-WRT, both have pretty bad support for L2TP.
    In the case of OpenWRT the functionality didn't come with the image file and I couldn't connect to the repository because I needed an internet connection to do that.
    In the case of DD-WRT I'd get disconnected after a while and won't be able to reconnect without restarting the router.
    On top of that the web interface for DD-WRT doesn't have a log viewer which required screwing around with SSH, symlinks and external software.

    So while I'm sure there are features unavailable in the original firmware it doesn't help me when there are problems with such basic functionality.
  • steveswin - Tuesday, February 28, 2012 - link

    I have a couple of WNDR3700 and use DD-WRT on them. Although I am satisfied with the features and performance, and I don't in any way tax them, I would like to try OpenWRT / Gargoyle or Tomato, just to see the difference. Unfortunately for me the step from DD-WRT to the others is not for the novice and I have always hesitated.
    A good, broad based article, with specific suggestions would be most welcome and I'm sure meet the needs of an ever growing community.
    Stock firmware is definitely basic and lacks frequent upgrades. On the other hand open source firmware seems to always be updated on a regular basis and generally follows the requests and wishes of the community it services.
    So, go ahead and present an article for the open source masses.

Log in

Don't have an account? Sign up now