Router Software/Firmware

Uit DBLUG, Den Bosch Linux Users Group
Ga naar: navigatie, zoeken

Router Software

A router becomes more and more important in your home. Today a router has most-likely a wifi attached to it, multiple ethernet ports and much more. Also a router today is not only used for just connecting multiple computers to the same network. People want more and more functionally in their routers, the router software is important part in this story. We want as network administrator the possibility to create VLAN's, NAT, control your own network setup & installed software on your router and maybe even realtime network monitoring and much more... With the right router software/firmware it can all be possible.

Sometimes the stock firmware, delivered by the manufacture, has not all the functionality that you might want to have. In my case I really want a QoS (Quality of Service) within my router, Netgear WNDR3700, however by default there is no QoS available in my router back-end nor it could be installed. OpenWrt or other router optimized operating systems could just be the solution so solve this problem.

What is out there?

At this moment there are at least 35 active different pieces of router or firewall software. I will treat 4 different router distro's. Below some screenshots.


Gargoyle (OpenWrt-based)



In the next chapter there will be more information about OpenWrt. Gargoyle is one of many router firmware, it is based on OpenWrt Linux distribution. It works on different chipsets, like Broadcom and Atheros. The main features are by default the great real-time bandwidth monitoring with nice graphs and pie charts. The possibility to set quotas, limits and throttling. Last but not least you can easily block sites by IP and/or host name.

DD-WRT support may devices, check the list of supported devices. DD-WRT was originally designed for the Linksys WRT54GL. One of the main features is QoS, radio output power control, RADIUS, and IPv6. Also with DD-WRT is the kernel part is based on OpenWrt.

Tomato is recommended for Linksys Devices, and offers a nice alternative for DD-WRT. It is some what heavy comparing it with other interfaces avaible, because Tomato makes use of AJAX as well as an SVG-based GUI. The end result of this all is astonishing.

What is OpenWrt?

OpenWrt is a GNU/Linux distribution especially designed for embedded devices and mainly used for routers and firewalls. OpenWrt is a read & write file system, as we are used from a PC. It has a package manager, like many other Linux distribution, which makes it possible to install all kind of software and configure it as you want.

Perhaps it is now clear that OpenWrt, in contrast to the rest of the router distributions, is build from crash and became a full-featured, easily modifiable operating system for your router. OpenWrt is constatily in development and will support more and more devices. The current supported hardware list can be found here. The OpenWrt Wiki has a nice how-to guide for every supported device, which makes the installation easier.

OpenWrt has BusyBox & GNU on board, so it common commands you are familiar with using a normal Linux distribution. The package manager of OpenWrt is opkg, which is very simular to the dpkg or pacman. Opkg can be used for installing, updating and removing software on your router without rebuilding or flashing a complete new firmware image.

OpenWrt offers a great wide range of functionality and features. It can great VLANs, it has a very configurable firewall, port forwarding, QoS (Quality of Service), traffic shaping and even load balancing, IP tunneling and real-time network monitoring plus statistics.

Almost naturally it has static DHCP leases, UPnP & NAT-PMP, support for Dynamic DNS with a fixed domain name, printer sharing, file sharing (like SAMBA and FTP), audio/video streaming, and much more. By default OpenWrt has a ajax-enabled web interface called LuCi. You can configure wireless, repeaters, wireless access points and bidges it supports mesh networking and you can configure your own actions to the hardware buttons available on the router itself.

Sysupgrade upgrade your system files, it will basically back-up your /etc/config and write the image and finally it re-appends the previously saved configs to the new partition. You can also just use the web interface and go to upgrade and upload the latest supported image.

Why should I use this software?

  • Pros
    • Linux
    • Stability
    • Install a lot of packages on your router
    • UPnP
    • Load balancing
    • Tor
    • Wake-on lan
    • QoS (Quality of service)
    • Quotas
    • Better firewall possibilities
    • DMZ
    • Realtime (!) Bandwidth usage (including graphs) per distribution and the overall connection
    • Web monitor
    • Access restrictions
    • USB Storage (file sharing) & Printer, including Samba, network streaming and much more...
    • Advanced WiFi & LAN connection information
    • Choose your (G)UI
    • Mesh networking
    • And much more features!

  • Cons
    • Takes time to research
    • Learning curve
    • Not all devices are supported
    • Chance to brick ('destroy') your router

How to flash the router?

Flashing a firmware image is very router specific. OpenWrt has a list of supported devices (Table of Hardware) where you can find the installation procedure per device.

If no guide is described you can try the generic how to guide. Sometimes you should install it into the RAM, boot OpenWrt over the network (via a bootloader) or the generic way if the router has non-volatile memory. In the last case there are four common ways, via the original firmware, ethernet (like TFTP, FTP), serial port or JTAG port.

  • Web-based interface (uploading the image)
  • Redboot
  • Serial port (bootloader)
  • Ethernet port (bootloader)
    • TFTP
    • FTP
    • XMODEM

Last but not least, you can install OpenWrt image into the main memory via serial and ethernet. In this case the original firmware keep existing on the flash memory.