[Babel-users] Merging v4-via-v6: need advice

Juliusz Chroboczek jch at irif.fr
Wed Jun 2 16:12:38 BST 2021


Hi,

I'm in the process of merging v4-via-v6 into mainline babeld, and I need
some advice about the default configuration.

V4-via-v6, is described here:

  https://datatracker.ietf.org/doc/html/draft-ietf-babel-v4viav6

It's a technique that allows an IPv6-only router to forward IPv4 packets,
which makes it easier to administer a double-stack network, since only
IPv6 addresses need to be allocated inside the network.  However,
a v4-via-v6 router needs to be able to originate ICMPv4 packets, and these
packets need to have a source address.

I haven't done extensive testing yet, but my preliminary investigations
indicate that the Linux kernel behaves as follows:

  - if the router has an IPv4 address on at least one interface, the
    address is borrowed as the source of the ICMPv4 packet;
  - if the router has no IPv4 address at all, no ICMPv4 packet is sent,
    which may cause blackholes.

The issue is describes in Section 3 of the draft, which suggests using the
IPv4 dummy address 192.0.0.8 when no IPv4 address is available.  Using the
dummy address will require some minor surgery to the Linux kernel, and
I haven't implemented it yet.  So while we wait for somebody (me or
someone else) to implement support for the dummy address, what should
babeld's default behaviour be?

1. Disable v4-via-v6 by default, and assume that an administrator who
   enables it knows what they're doing?
2. Check for IPv4 addresses, and enable v4-via-v6 automatically if there
   is at least one IPv4 address?
3. 3=1+2, behave like (2), but allow overriding the daemon's decision?

Any better ideas?

-- Juliusz



More information about the Babel-users mailing list