Open Source Router Platforms - Part 1: The Hardwareby Brian Klug on August 22, 2012 11:59 AM EST
Open Source Router Spotlight
A few months ago we asked a simple question - what do you use for your router, and what would you look for in a router review. Unless you’re entirely mobile, getting online these days pretty much requires the use of some kind of NAT router. Picking that hardware is often a function of what software can be tossed on top, and having a consistent and familiar set of configuration pages makes setup and maintenance much less of a nightmare than dealing with the third party alternatives. There are so many arguments for using some open source package instead of the first party software which is usually derived from the board software package the SoC vendor hands out.
In the responses to that article, a few major things stuck out for me: what is the current landscape as far as hardware goes, and what performance impact if any is there that arises from running a third party software package on a router. I've split the follow up into two sections as a result. The first focuses on the current hardware landscape, and the second is a performance investigation of the third party software packages.
Ganesh and myself are currently sitting on two 802.11ac routers from Buffalo and Netgear, and a big part of this piece is simply feeling out what axes of performance need measuring for a typical router review. This is by no means a be-all or end-all review, but hopefully gives a bit of perspective for users setting up a connection for the first time and looking for a router, or wondering about the differences between a few different popular platforms.
The motivations for installing third party firmware on a router are often pretty simple: for adding features, increasing stability, or the desire for a better designed UI. Users either feel restricted by the feature set of the first party firmware, either from a lack of updates by the OEM or simply a perceived value-add from moving to a platform that’s actively being developed. Some of the original desire to move to third party firmware in years past was born out of necessity - a limited number of NAT connection states made use of P2P across some routers impossible without third party software. Other features that drive people to open source distributions include better QoS (Quality of Service) traffic shaping and management, static DHCP functionality, the ability to mount and serve attached storage or printers, compatibility with a wide variety of VPN services, ability to change WiFi Tx power, client status reporting, and even overclocking.
For the purposes of this piece, I chose two hardware platforms that have seen widespread adoption and have great support among the most popular open source third party router firmwares. In the next article I'll also toss in my venerable WRT54G-TM into the fray, just to illustrate how that platform performs in comparison with much more modern hardware.
First is ASUS’ RT-N16 single band 2x2:2 router, which is rapidly becoming the new go-to router to replace the aging WRT54GL series. It seems like just about every third party platform I can find supports the RT-N16, and the device even has a small but growing lineup of accessories, including external fans for overclockers (really). The features that make it desirable are actually pretty straightforward.
First, it has three easily removable antennas which are just screw-on SMA connectors. This makes it easy to upgrade or replace the stock 2 dBi antennas with just about anything. SMA antennas are very easy to find these days, I literally have a drawer full of antennas with SMA connectors, from highly directional yagis or a cantenna, to directional patch antennas, or very flat profile 9 dBi omnidirectional ones as shown below.
Second, the RT-N16 is based around the fastest Broadcom SoC that most open source firmware packages currently support, BCM4718. This SoC includes a MIPS32 72K CPU which can run up to 533 MHz (the RT-N16 ships with a 480 MHz stock clock, but users can run it at 533 MHz with appropriate cooling), support for 1x32 bit PCDDR2 RAM up to 533 MHz, onboard GigE, one PCIe x1 interface, and support for 2x2:2 802.11n on either 2.4 or 5 GHz. The hardware also includes 128 MB of DDR2 and 32 MB of flash, which is among the most for this class.
I opened up the RT-N16 and all of this is visible immediately. The BCM4718 SoC is under a small heatsink at center which is held on with some double sided tape and easy to upgrade if you want to push it all the way to 533 MHz. There are two DRAM modules off to the right, and below that is the BCM53115S five port gigabit ethernet switch, which gets muxed out as 1 WAN and 4 LAN ports.
Remember that although the SoC’s WiFi baseband supports both 2.4 and 5 GHz, simultaneous operation would require an additional radio, hence why the RT-N16 is 2.4 GHz only. In addition, you’ll notice the RT-N16 includes three external antennas, but supports only two spatial streams. This third antenna is used in a switched diversity mode to increase signal to noise ratio at the receiver. ASUS has a simultaneous dual band 3x3:3 router built around a faster BCM4706 SoC and two BCM4331 radios, the “Dark Knight” RT-N66U, which also is starting to garner a serious open source following. We’re going to take a look at that in a later piece, however.
Next, the RT-N16 includes gigabit ports all around, and a four port switch which supports jumbo frames. In an age where DOCSIS 3.0 cable modems include GigE by default and where cable ISPs sometimes allow QoS boosts past 100 Mbps, it makes sense to have a WAN port that likewise will do the full PHY rate.
The BCM4718 also includes USB 2.0 support for two ports, which are exposed on the back of the RT-N16 for mounting storage or printers. The power supply is an external wall unit which is pretty standard, which supplies 5V at 1.25A maximum.
The RT-N16 has been out for some time, which is partly why it’s so well supported among the commercially available router platforms out there today, and isn’t very expensive at around $85 from Newegg.
PC Engines ALIX
While the ASUS RT-N16 (and most other Broadcom-based routers) are MIPS based (although Broadcom’s latest 802.11ac SoC is ARM), our second platform is an embedded x86 platform I’m a big fan of, and it comes from a Swiss company named PC Engines. The platform originally started out as WRAP (Wireless Router Application Platform), and evolved into ALIX with better connectivity when AMD came out with a faster CPU. It’s essentially an embedded PC in the truest possible form – there’s no active cooling, and the device has the form factor of a normal off the shelf router, actually alongside the RT-N16 the Netgate is notably smaller. You’d be hard pressed to tell that there’s a PC inside.
At the core is an AMD Geode LX800 CPU which runs at 500 MHz and draws just 1.8W, requiring no active cooling. Also onboard is 256 MB of PCDDR RAM, one miniPCI slot, and three VIA VT6105M 10/100 NICs. Storage comes using a CF card which works over IDE. There are also two USB ports, but not USB 2.0, and a serial port on the back for debugging and configuration. Having 500 MHz of x86 makes the platform very well suited to doing much more than a cheaper off the shelf router platform. The current generation of ALIX is constrained pretty much only by the fact that it is limited to 10/100 ethernet thanks to those VIA NICs. I’m hoping that PC Engines upgrades the platform to GigE sooner than later.
PC Engines makes the board, and you can either assemble the mainboard and chassis yourself by ordering from them, or go to an assembler and get the whole combo including power supply in a nice wrapped up package. I’ve used the Netgate m1n1wall 2D3 assembled kit which runs $225 for some time now to much success. You’ll notice that you still need a WLAN card, in this case miniPCI. That’s a bit of a limitation since most miniPCI cards top out at 802.11a/b/g support, and for this reason many people running the ALIX platform use it for routing alongside an additional wireless AP. That said, you can get a card or kit, and I’ve gone with the pretty powerful Atheros based 250 mW DCMA–82 which has two MMCX connectors, pigtails, and 5 dBi omnidirectional antennas.
The combination is more expensive than a normal off the shelf router, but because it’s x86, you can run a host of different Linux, FreeBSD, and commercial router platforms simply by flashing them onto the CF card, some of which offer considerably more functionality.
The power profile of the Netgate / ALIX is actually right alongside the RT-N16 as well, as I'll show later, at around 6-7 watts. The ALIX platform uses a 15 V, 1.25 A external wall power supply, though again even under maximum use the box only draws a maximum of around 7 watts.
In high school I ran a WRAP based router because I wasn't satisfied with the QoS on other platforms, and since then have deployed WRAP and ALIX in a bunch of different places when people aren’t able to get by with just a normal consumer grade router running third party firmware. It truly is some of the most robust hardware out there, usually with insane uptime in the months or years. Some examples of where I’ve deployed ALIX include a chain of local cafes with the exact same configuration above, where they serve a captive portal as well as internet to an endless deluge of WiFi users, a research lab with around 50 clients and lots of VPN use, a small business with 10 desktops and VPN telecommuters, and another growing small business that only recently outgrew ALIX and moved onto a 1U appliance. It’s a competent platform that definitely sits somewhere between consumer router territory and much more industrial solutions.
To be Continued...
In part 2 we'll focus on on some of the third party software packages and how they perform on these platforms. Stay tuned!