[Babel-users] Babel and IPV4

Juliusz Chroboczek Juliusz.Chroboczek at pps.jussieu.fr
Tue Nov 6 19:24:15 UTC 2007


[ Replying to the list, with the OP's permission. ]

> what would it take to implement IPV4?

There's basically nothing in Babel itself that is fundamentally linked
to IPv6.  The main reason for using IPv6 rather than IPv4 for the
initial development was simply that it is easy to get a /64, while
getting just a /24 in IPv4 would be politically challenging.  Other
than that, the APIs are more portable (especially when dealing with
multicast traffic), and that the unconditional presence of link-local
addresses makes certain things easier (notably dealing with unnumbered
links).

Now, however, the time has come to think about IPv4.  I can see three
ways to do that:

1. Implement a purely IPv4 version of Babel, that would be run in
   parallel to the IPv6 version;

2. Make Babel a hybrid protocol, similar to multi-protocol BGP.  The
   routing traffic would still be carried by IPv6 packets, but they
   would announce both IPv4 and IPv6 prefixes.

3. Only route IPv6 natively, and use tunnels for IPv4.

(1) is the natural approach; however, it almost doubles the routing
traffic, and causes a number of issues (such as finding a suitable
multicast group for IPv4 Babel).  (3) has the advantage of allowing
the use of multiple unsynchronised NAT gateways on a single Babel
mesh; however, it suffers from the overhead of tunnelling; more
generally, tunnelling has bad press (wrongly or rightly) in the
routing community.

My current preference is therefore (2).  The basic idea is to encode
the (link-local or global) IPv4 address of a node either in HELLO
messages, in the Babel packet header, or in an ad-hoc message.  I'm
thinking of simply reusing the same message type for IPv4 prefixes,
and simply encode them as IPv6-mapped addresses, rather than defining
a new message type.

So I do have a fairly clear plan of how to proceed, I just need to
take a few days to implement it (and this is a rather busy time).  Let
me know if you want to help.

                                        Juliusz



More information about the Babel-users mailing list