--- Begin Message ---
Hello, all.
It is the time to update on the new routing protocol daemon, "babeld", which is
available in the development branches of Quagga.
Babel is a routing protocol designed by Juliusz Chroboczek with the specific
purpose of routing wireless networks in mind. The protocol used to be
implemented in a standalone babeld software, and Juliusz's colleague, Matthieu
Boutier, is now making it available as one of the Quagga components. I have
personally verified, that the involved changes do not interfere with any other
Quagga daemon (at least in the RE-testing-0.99 branch), and that the current
implementation allows a couple of routers to learn each other's IPv6 loopback
addresses over a IPv6 link and install respective routes into kernel FIB.
Matthieu and Juliusz can surely refer to examples of larger-scale deployments
of Babel.
Getting your own Babel testbed is as easy as checking Quagga out of git and
building it. To be specific, the following branches at the time of this writing
are known to work:
git://code.quagga.net/quagga-RE.git (commit f05fecd)
git://github.com/boutier/babeld-for-quagga.git (commit 78b1013)
I had put the following into babeld.conf to make it work:
!
password z
service advanced-vty
!
router babel
network eth0
redistribute kernel
redistribute connected
redistribute static
!
log file /var/log/quagga/babeld.log
!
The result looks like this (30::1/128 is the loopback interface of the remote
host):
localhost.localdomain# sh ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv6, I - IS-IS, B - BGP, A - Babel,
> - selected route, * - FIB route
C>* ::1/128 is directly connected, lo
C>* 20::1/128 is directly connected, dummy0
A>* 30::1/128 [95/0] via fe80::22cf:30ff:fe02:b052, eth0
C * fe80::/64 is directly connected, eth0
C * fe80::/64 is directly connected, wlan0
C>* fe80::/64 is directly connected, dummy0
localhost.localdomain#
In the process of setting it up I realized the need to understand what in
particular the routing processes are exchanging. This is quite hard without a
packet analyzer understanding Babel protocol packets, i.e. Wireshark 1.6.5 or
tcpdump 4.2.1. The former is available in Fedora 16, which I didn't have handy
at the time of setup, but the latter compiled and installed just fine. For
example, this is an example of a regular periodic PDU dissection once the
adjacency is established:
17:50:51.326330 IP6 (hlim 1, next-header UDP (17) payload length: 115)
fe80::217:42ff:fe3e:3612.6696 > ff02::1:6.6696: [udp sum ok] babel 2 (103)
Hello seqno 15804 interval 400
IHU fe80::22cf:30ff:fe02:b052 txcost 96 interval 1200
Router Id 62:69:23:ff:fe:69:d9:52
Update/prefix 30::1/128 metric 96 seqno 2794 interval 1600
Router Id d6:98:f9:ff:fe:e7:08:96
Update/prefix 20::1/128 metric 0 seqno 21994 interval 1600
To sum it up, this effort is still a work in progress, but all hidden bugs are
believed to be isolated in the babeld process. In case you manage to approach
such a bug, please file it to the standard Quagga bugzilla, it will be
dispatched appropriately.
Thanks for reading!
--
Denis Ovsienko
--- End Message ---
_______________________________________________
Babel-users mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/babel-users