With each passing year, hardware devices grow less dependent on proprietary components and more reliant on open source technologies. Network routers are among the main beneficiaries of this trend, especially those that can support a variety of third-party open source firmware projects. Two of these firmware projects stand apart from the rest: DD-WRT and OpenWrt.
DD-WRT has become a common out-of-the-box option for many routers, but also exists in stand-alone implementations that can be installed on routers that support it. Hundreds of routers can run DD-WRT firmware, including nearly 100 Linksys models alone.
[ Also on InfoWorld: Linksys WRT1900AC, the best open router yet. | Get expert networking how-to advice from InfoWorld's Networking Deep Dive PDF special report and Technology: Networking newsletter. ]
DD-WRT has a slightly convoluted history. In 2002, Linksys started releasing a line of routers (the WRT54G models) that used Linux as an embedded system. The company was eventually obliged to release the source code for those routers under the terms of the GPL. Another company, Sveasoft, picked up on the results and created its own third-party firmware (aka Alchemy). Eventually this work was turned into a commercial offering, which encouraged the folks at DD-WRT.com to launch their own branch of the project.
The project was successful enough that DD-WRT has become the basis for other firmware created by router manufacturers themselves. Consequently, while DD-WRT has been released under the terms of the GPL, commercial builds of the firmware may incorporate much non-GPL code. While DD-WRT has its roots in open source, it has a more commercial flavor than some of the projects in the same vein.
OpenWrt is open source firmware similar to DD-WRT, but with a markedly different approach to its construction and deployment. The OpenWrt project home page unpretentiously describes the technology as "a Linux distribution for embedded devices," but that humble label doesn't cover the whole picture. Instead of being released as a monolithic build à la DD-WRT, OpenWrt is more akin to an actual Linux distribution with its own package manager.
Because of all this, setting up and running OpenWrt can become a much more involved process, since the user has the freedom to make most any changes they want directly inside OpenWrt. But it also means access to a much broader range of components. By the same token, OpenWrt components tend to be more frequently updated than those for DD-WRT, while its package manager makes it easier for users to take advantage of those updates.
Why use DD-WRT or OpenWrt?
For me, the single biggest reason to go with an open firmware like DD-WRT or OpenWrt is the balance it strikes between convenience and openness. I can go out and buy a router that runs open firmware out of the box -- such as the Buffalo router I currently use -- and either upgrade it at my leisure to other open firmware builds or rely on Buffalo's own official (albeit proprietary) builds. In many respects, using an open firmware is analogous to the use of an alternative Android ROM, like CyanogenMod, where an older phone can be kept current long after the manufacturer decides it's not worth supporting anymore.
In the past I've bought a router, upgraded it faithfully as new revisions to the firmware come out, then ground my teeth in disgust when I discovered, 18 months or two years later, that it's no longer supported. This is dismaying, especially in a post-Heartbleed world where an unpatched embedded device can be bad news. The only thing worse than no protection at all is a false sense of security, so I like the idea of using software that has at least a modicum of third-party oversight.