Babel and AHCP FAQ

General questions

How do I get help?

Posting rate on babel-users

If this FAQ didn't solve your problem, please feel free to ask on the Babel-users mailing list.

You may browse the archives on Alioth, at Gmane using HTTP, at Gmane using NNTP, and at mail-archive.com.

What is Babel? What is babeld?

Babel is a routing protocol that is designed to be efficient and robust on both normal wired networks (say, a bunch of Ethernets connected together) and on wireless networks. It is therefore particularly suitable for building hybrid networks -- networks that are composed of both wired and wireless links.

The sample implementation of Babel is called babeld.

What is Babelz?

Babelz is an extension to the Babel protocol that is able to take radio interference into account when picking routes. Some information about Babelz.

The Babelz protocol is supported by the babeld binary — just run with "-z3" on the command line.

What is AHCP? What is ahcpd?

AHCP is a protocol that is able to distribute IP addresses in a mesh network, just like DHCP distributes IP addresses in a wired network. AHCP is routing-protocol agnostic: it can work with Babel, with OLSR, etc.

The current implementation of AHCP is called ahcpd.

Usage

How do I perform redistribution?

There are currently two implementations of Babel, and they perform redistribution differently. The standalone babeld daemon performs redistribution by reading routes from the kernel -- this is described in detail in this posting giving a few examples of redistribution with babeld.

The quagga version of babeld performs redistribution in just the same way as all quagga routing daemons; check the quagga documentation.

Filtering is somewhat more flexible in the standalone version (which allows you to filter e.g. by source router-id), but this should not matter much in practice. The choice is therefore mainly a matter of which style of redistribution you feel more comfortable with.

Troubleshooting

What tools are there for debuginng Babel networks?

You can ask Babel to dump its internal tables. With the standalone daemon, send a HUP1 signal to the daemon to get it to dump its tables to the log file. With the quagga version, type

show babel interface
show babel neighbour
show babel database

Tcpdump groks Babel starting with version 4.2.1. Wireshark has support since version 1.6.0.

I am trying to simulate a wireless environment using firewall rules, and Babel doesn't converge

The babeld daemon automatically detects wired interfaces, and makes a number of optimisations that are not correct for wireless interfaces. Your firewall rules probably broke the assumptions that make these optimisations correct on wired links.

You may disable these optimisations by running babeld with the -w flag, or by saying something like

interface eth0 wired false
in the /etc/babeld.conf file.

Back to the Babel page.