OpenWrt is a Linux distribution for all sorts of embedded devices like routers, residential gateways or smartphones. The Ben NanoNote or Neo FreeRunner are being shipped with OpenWrt. There is a lot of Hardware supported by OpenWrt, but the main focus of the project are routers and networking, especially for wireless scenarios. Instead of trying to cram every possible feature into the firmware before it is being flashed to the device, OpenWrt comes with a fully writable file system. Using the package manager opkg you can choose from more then 2000 software packages. The available flash memory is the only limit. Even LuCI, one of the three available web administration packages, can be comfortably installed and be removed again. Having the possibility to alter files of the operating system will lead to doing so, and for the occasions, when this leads to breakage, the failsafe mode can easily be triggered and the firmware repaired again. To make this less likely and also, to make the configuration as simple and straight forward as possible, and also to make the configuration done via web browser and SSH consistent, OpenWrt utilizes UCI.
The people to whom the writable file system does not offer enough possibilities to adapt the firmware to their needs can use OpenWrt Buildroot to build custom firmwares tailored to their demands:
Success with different routing protocols on OpenWrt
Running OLSR on OpenWrt
The Optimized Link State Routing Protocol is a protocol to connect mobile ad-hoc networks, also sometimes called wireless mesh networks. It collects data about which network members can communicate, and then calculates an optimized routing table.
Here is a step by step guide to installing OLSR on a WRT54G with the Freifunk Firmware: http://www.vdomck.org/blog/?p=48
You can find Unik-Olsr There are some instructions on how to install the OLSR daemon. You need to install OpenWrt b2 and get olsrd binairies. Olsrd seem not working in daemon mode, so you need to launch it with -d 1 debug mode option in background. You also need to configure /etc/olsrd.conf. OLSRd dynamically changes the route table ; in my /etc/rc/olsr script, I removed the default route before running olsrd.
- There are 2 ways of running OLSR : Internet gateway mode, or client mode. You'll find 2 different configurations files (usr.local.wrt5.tar.gz) with the necessary environment for running a mesh network.
- Caution : filters are not filtering at all !
Running BGP on OpenWrt
The Quagga Routing Suite is an opensource software suite, and provides a stable implementation of BGPv4 for Unix platforms. It consists of a core zebra daemon, and daemons for supporting various routing protocols, including RIP, OSPF and BGP.
Any BGP node only needs to be configured with details of its immediate neighbouring nodes, and will then start exchanging routes. This means adding a new node to a network only requires BGP configuration on the new node, and its immediate neighbours, and routes to the new node will then propagate through then entire network.
For details on installing, configuring and running BGP on OpenWrt, see BGP Routing on OpenWrt with Quagga
Running B.A.T.M.A.N. Adv on OpenWrt