[Babel-users] IPv4 over IPv6

Toke Høiland-Jørgensen toke at toke.dk
Tue Mar 31 20:24:50 BST 2020


Juliusz Chroboczek <jch at irif.fr> writes:

> Dear all,
>
> Some of you might remember that Théo Bastian (in copy of this mail) is
> working on implementing a Babel extension for IPv4 routing with IPv6 next
> hops.  Since the extension is meant to interoperate with other Babel
> routers, we've decided to encode IPv4-over-IPv6 routes as a new AE.  So an
> IPv4-over-IPv6 route announcement consists of:
>
>   1. a normal Router-ID TLV ;
>   2. an IPv4-over-IPv6 Next Hop TLV carrying an IPv6 next-hop ;
>   3. an IPv4-over-IPv6 Update TLV carrying an IPv4 prefix.
>
> The Update is encoded in the new AE, which updates a separate set of
> compression state; the normal IPv4 compression state is left undisturbed.
> On the other hand, we have two natural ways of encoding the NH :
>
>   (1) use a new NH, in the new AE ;
>   (2) reuse the IPv6 NH (AEs 1 and 2).
>
> Encoding (1) has the advantage of being easier to explain.  Encoding (2)
> has a number of advantages:
>
>    (i) if a packet carries both IPv4 and IPv6 routes, the next-hop is only
>        encoded once;
>   
>   (ii) we can use both AEs 1 and 2, which means that we can use the more
>        compact encoding for link-local next-hops ;
>
>  (iii) the code is slightly simpler.
>
> Initially, Théo preferred encoding (2), while I was in favour of (1).
> Théo rewrote all of his code in style (1), and after looking at his code,
> I'm having second thoughts.
>
> Does anyone have any good arguments one way or the other?  Scratch this --
> does anyone have any arguments, not necessarily good?

I think I would lean towards (2). As you say, it's more compact, but
also, I think it makes sense conceptually: A v4-over-v6 *route* is
certainly something new, but a *next hop* itself is not v4-over-v6, it's
just a v6 address; so why would it need its own AE?

-Toke



More information about the Babel-users mailing list