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. One variant, DD-WRT, has become a common out-of-the-box option for many routers, but also exists in stand-alone implementations that can be placed on routers that support it. Hundreds of routers can run DD-WRT firmware, including nearly 100 Linksys models alone.
DD-WRT has a slightly convoluted history. In 2002, Linksys started releasing a variety of router, the WRT54G line, 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.
[ Get expert networking how-to advice from InfoWorld's Networking Deep Dive PDF special report and Technology: Networking newsletter. | Follow the latest in open source developments and thinking with InfoWorld's Technology: Open Source newsletter. ]
The project was successful enough that DD-WRT has itself become the basis for other firmware created by router manufacturers themselves. Consequently, while DD-WRT has been released under the terms of the GPL, there are commercial builds of the firmware that incorporate much non-GPL code. It's therefore best to say that while DD-WRT has its roots in open source, it has a more commercial flavor than some of the projects in the same vein, such as the Tomato firmware or OpenWRT.
Why use DD-WRT?
For me, the single biggest reason to go with DD-WRT is the balance it strikes between convenience and openness. I can go out and buy a router that runs DD-WRT out of the box -- such as the Buffalo router I currently use -- and either upgrade it at my leisure to other builds of DD-WRT or rely on Buffalo's own official (albeit proprietary) builds.
In the past I've bought a router, upgraded it faithfully as new revisions to the router firmware come out, then ground my teeth in disgust when I discover, 18 months to two years later, it's suddenly no longer supported. This is dismaying, given the number of security flaws that have been found in consumer-level routers, not all of which are due to user misconfiguration. The only thing worse than no protection at all is a false sense of security, so I like the idea of using something that has at least a modicum of third-party oversight.
A full list of the features in DD-WRT would spill over to pages on end, but here's a rundown of the most significant stuff you'll likely use:
- Firewall. Every router these days comes with a firewall, but the one included with DD-WRT is based on the iptables firewall in Linux and, thus, is extremely powerful and configurable. You can edit the firewall through DD-WRT's own Web-based interface or use a tool like Firewall Builder to do most of the heavy lifting for you.
- IPv6 support. With the world rapidly running out of IPv4 address space, it's nice to know your router can speak IPv6 natively if it has to. DD-WRT has native IPv6 functionality, as well as the 6to4 address-translation system.
- Quality-of-service controls. Most routers have some basic QoS management, but some of the DD-WRT builds (mainly the commercially available version) can give you more sophisticated QoS settings, allowing you to specify such items as maximum bandwidth per netmask or MAC address. UPnP media streaming is also included as a standard item on just about every DD-WRT build.
- DNS controls. These include Dnsmasq, a local DNS server that speeds up host-name lookups, and support for dynamic DNS providers like TZO, No-IP, and DynDNS.
- Afterburner. A speed-enhancement system supported by some wireless network devices based on the Broadcom chip set. You should use it only if your router and your other network hardware support it, or you'll actually see a net loss in performance.
- Kai Daemon. This one's for gamers. It's a service to allow network tunneling for game consoles -- mainly Microsoft's Xbox -- so that they can connect to the XLink Kai gaming network.