[Babel-users] A Babel experiment at funkfeuer.at

Juliusz Chroboczek jch at pps.jussieu.fr
Sun Dec 14 21:04:45 UTC 2008

>> Hmm... the current implementation of Babel requires IPv6 in the kernel.

Let me explain a little more.

Babel is a hybrid protocol: Babel messages can be transported over IPv4 or
over IPv6, and whatever protocol it runs over, it can transport both IPv4
and IPv6 routes.  This is similar to the way BGP works, and somewhat
analoguous to IS-IS.  (BGP routes all network-layer protocols over IPv4 or
IPv6, just like Babel, while IS-IS runs directly over Ethernet.)

However, the current implementation only works over IPv6: while Babel will
route IPv4, IPv6 or both, the Babel messages will only be transported over
IPv6.  (There are very good reasons to prefer IPv6 for transporting
protocol messages, most notably the fact that it makes it easier to
implement routing over unnumbered interfaces -- i.e. a router is able to
forward packets even before it's been assigned an address, or when only
some interfaces have an address.  Additionally, the IPv6 multicast APIs are
somewhat more portable than the IPv4 ones.)

I'd like to be clear that you don't need global IPv6 addresses, you don't
need router advertisements, you don't need global IPv6 connectivity.  You
only need kernel support for IPv6, which is all that's needed to do
link-local multicast.

> So on an openwrt router you need kmod_ipv6 installed ... we have such
> a setup (using 6to4 and radvd)

Once again -- you don't need 6to4, you don't need radvd, you only need the
IPv6 kernel module.

> With olsrd and ipv6 and babel and openvpn or vtun and $monitor_tool
> running on the same mesh node we will most likely hit the RAM limit.

FWIW, I'm happily running Babel + ahcpd + ntpd on 16MB OpenWRT machines
(MIPS).  Ntpd is the largest of the three ;-)

I don't know about vtun, but I know that Babel happily runs over SIT
tunnels, IP-IP tunnels, GRE tunnels and OpenVPN.  For IP-IP, GRE and
OpenVPN, a small hack is needed.  For IP-IP, a recent kernel is needed.
I have no idea about vtun.

I'm using OpenVPN and GRE in my network.  Since vtun is insecure anyway,
I don't see any reason to prefer it to GRE.

> OTOH if we need IPv6 support in the kernel anyway, then I don't see
> a reason not to do the whole experiment in IPv6 space - but perhaps
> I miss something.

Don't worry about that -- it's a hybrid protocol.  You can do both, or
either, or have some nodes doing IPv6 and other doing IPv4.  By default,
Babel will route IPv6 on all interfaces, and route IPv4 on all interfaces
that have an IPv4 address.

So as long as you get Babel running, you don't need to choose between IPv4
and IPv6 -- you get whatever protocol you have configured addresses for.


More information about the Babel-users mailing list