--- 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

Reply via email to