Skip to content
infrastation edited this page Mar 27, 2012 · 1 revision

The Babel protocol is described in detail on http://www.pps.jussieu.fr/~jch/software/babel/, and defined precisely in RFC 6126. The Quagga implementation of Babel interoperates with all recent versions of the original Babel daemon (including the experimental Babel-Z variant).

Basic configuration

Babeld is configured in its own file called babeld.conf. Assuming you want to run Babel on an Ethernet interface eth0 and a wifi interface wlan0 and redistribute static and connected routes, the following can be used as a starting configuration:

router babel
  network eth0
  network wlan0
  redistribute static
  redistribute connected

interface eth0
  babel wired
  babel split-horizon

interface wlan0
  babel wireless
  no babel split-horizon

The wired statement disables link quality estimation and causes Babel to use a lower link cost (96 rather than 256). Split-horizon enables an optimisation that can safely be enabled on wired interfaces but not on wifi interfaces in ad-hoc mode.

Advanced tweaks

On stable links with little packet loss, you will want to increase the hello and update intervals. The values are in milliseconds.

interface eth0
  babel wired
  babel split-horizon
  babel hello-interval 10000
  babel update-interval 40000

The hello interval determines how fast Babel notices a link failure. On wired links, a link failure is detected after two hello intervals; on wireless links, the link quality is recomputed every hello interval.

The update interval determines how fast Babel will recover after a triggered update is lost. On links with little loss, it can be set to a fairly high value.

Limitations

Unlike the stand-alone babeld daemon, Quagga needs the IPv4 prefixes of your interfaces to be set correctly and to be disjoint. For example, if your mesh nodes have addresses of the form 192.168.4.x, then you will need to set the prefix 192.168.4.0/24 on your mesh interface. (Unfortunately, this precludes using multiple mesh interfaces for now.)

Clone this wiki locally