After buying a brand new router you are almost guaranteed to run into issues with wireless stability, limited configuration options, ugly router management interface pre-loaded with a ton of bloat-ware features, incompatibility with your existing network, etc... There are absolutely no existing routers for sale in U.S. that will include an unmodified version of the popular OpenWRT firmware distribution. Buffalo was the first major router manufacturer to ship a slightly modified version of DD-WRT, while Netgear and Linksys routers remained heavily locked down. Buffalo clearly made a step in the right direction by offering an OpenWRT derived firmware. But have they done enough? Why did they pick DD-WRT over OpenWRT? Was it done in the interests of consumers, or are they just trying to minimise their support costs?
Before comparing the two largest router firmware distributions it is necessary to understand the history and the relationship between the two projects. OpenWRT is a large project that is being actively developed by many participating developers. Additionally, OpenWRT has a large user community that is open to new contributions. DD-WRT on the other hand, being a fork of an old OpenWRT WhiteRussian firmware, is controlled by a single lead developer. There is almost no contribution from the rest of WRT developer community. As a result, DD-WRT tends to be more focused on core functionality, but severely lacks configuration options available in OpenWRT. The following table summarises major differences between the two projects:
| Feature | OpenWRT | DD-WRT |
|---|---|---|
| Web Interface | LuCI | Proprietary |
| Default package manager | opkg with 3000 packages in the latest Backfire | ipkg with 350-1200 packages depending on your version. |
| Preferred CLI login | requires ssh after changing password | telnet, ssh is optional |
| Internet connectivity testing | Ping, Traceroute, Nslookup from Web interface Network -> Diagnostics or command line | No connectivity tests from Web interface, you have to use command line tools. |
| Quality of Service | Available under Network -> QOS, assuming that you have "luci-app-qos" installed. Allows prioritising traffic based on specific source and destination criteria. | Available under Applications and Gaming -> QOS. Can prioritise a mac, ip, or a port. Cannot prioritise based on packet destination. |
| Managing Interfaces | Very intuitive Web based configuration with ability to create new interfaces and bridges under Network -> Interfaces. | No ability to create new interfaces. Setup -> VLANs allows you to set bridges among existing interfaces. Cannot restart wireless or lan interface using Web UI. |
| Application Management | Find, Install, Uninstall, Upgrade applications under System -> Software. All application management can happen in Web UI, but you could also use CLI "opkg install xxx". | No way to list installed packages, or to add/remove applications using Web UI. On the command line ipkg was not functional by default because of read-only file system. |
| Process Management | Hangup, Terminate, or Kill any running process under Status -> Processes. | Unable to do any process management using Web interface. |
| Firewall Management | Flexible firewall configuration using Network -> Firewall and monitoring under Status -> Firewall. Allows fine-grained firewall customization for individual users. | Minimal configuration under Security -> Firewall and Access Restrictions -> Internet Access. No way to restrict ports for a particular user or network ip. |
| Creating a backup | Backup all current settings under System -> Backup/Restore. The resulting file is a backup-yyy-mm-dd.tar.gz archive of the /etc folder. Very useful when comparing two configurations. | Create a backup under Administration -> Backup. The resulting file is an nvrambak.bin which is in binary format not suitable for comparing different backup configurations. |
| Configuring Default Services | Customize each individual system service under its own Services -> tab. Allow telnet, ssh, and LuCI to run under a custom port. Configure mountpoints and enable/disable startup services under System -> Startup. | No ability to control telnet, ssh, DNSMasq, system log, besides being able to turn them on or off. No way to configure custom ports for telnet, ssh, or web interface. No dedicated configuration for file system mountpoints. Obscure start-up service management. |
| Samba Configuration | Samba can be easily installed using System -> Software. LuCI Samba extension adds Services -> Network Shares tab that allows a very intuitive Samba server management. | Samba is not pre-installed and since ipkg is crippled by default, it is impossible to get it from the repos without some serious hacking. Once samba is installed it is impossible to manage it via web interface as in OpenWRT. |
| Statistics Visualisation | Advanced realtime traffic visualisation with ability to monitor live connections or historical CPU/Memory/Network usage. | Only the basic aggregate traffic statistics under Status -> Bandwidth. No ability to view CPU/Memory usage. No ability to view separate traffic for each interface. |
| Pre-installed Bloat-ware | Absolutely no bloat-ware. It comes bare-bones. You only install the components that you need. | DD-WRT comes preinstalled with multiple captive wifi portals. On the command line you have Midnight-Commander preinstalled, yet BusyBox does not have a netstat command. Comes loaded with dozens of rarely used services like OpenVPN and DDNS. |
It is important to remember that DD-WRT strives to provide the ease of use while supporting a "great number of functionalities". I would not say that DD-WRT is any easier to use than OpenWRT. In fact, while attempting to configure my DD-WRT based router I have spend more time in CLI trying to enable the functionality that should have been turned on from the start: ipkg package management, Samba, USB storage, mountpoints. All of the DD-WRT tutorials I have seen are assuming that you are using the command line. And not just using it the Ubuntu way (apt-get install, sudo nautilus, etc...), but using it like a pro! Take for example their Samba server tutorial that gives you 4 alternative ways for installing samba server. Not confused yet? Have a look at yet another convoluted example: USB storage. I have noticed that many DD-WRT tutorials require you to run custom scripts for firewall or disk mounting using the Administration -> Commands screen in the web interface. Overusing the custom commands screen is a clear sign that the appropriate configuration section is missing from the Web interface.
In my opinion OpenWRT is by far the most advanced router firmware available. It is not only superior in terms of features, number of devices and platforms supported, but it is also superior in terms of ease of use, user-friendliness, support, and customisation. I rarely have to go to the command line to change any configuration on my OpenWRT router, because most of the tasks can be easily handled in LuCI. In a situation where I do have to go to CLI, the OpenWRT UCI configuration system is much easier to use.
Back to main index