-
Notifications
You must be signed in to change notification settings - Fork 8
Babel
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).
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.
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.
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.)