[Babel-users] MTU based routing for tunnel based babel networks?

Juliusz Chroboczek jch at irif.fr
Sun Jul 16 20:22:40 BST 2023


> I've been running babel on top of my wireguard IPv6 network for a while now
> and I have a problem that keeps biting me and I can't find a good solution
> for: babel is oblivious to a link's MTU and picks paths that involve
> wireguard-in-wireguard tunnels even though paths without this stacking are
> available.

Is the MTU of your interfaces set correctly?  Please type

    ip link show

and check that the value is right.

Babeld already checks the interface's MTU, so if the MTU is set correctly,
it's a simple matter of tweaking this code:

  https://github.com/jech/babeld/blob/master/interface.c#L300

If the MTU is not set correctly, then you'll run into trouble with
higher-layer protocols.

> So this got me thinking (for the hundreth time) perhaps this should be
> something the routing protocol takes care of? Babeld would essentially have
> to pad it's hello packets to a (configurable) size to detect if
> fragmentation is required (or they are being blackholed outright).

That's certainly a good idea, it would allow us to discard interfaces
whose MTU is set incorrectly.  I'll think it over.

> PS: Just to clarify why the tunnel stacking happens in my setup: my network
> tunnels IPv6 over IPv4 (most of the time), but I want to support IPv6-only
> underlay networks so I have wireguard tunnels with IPv6 endpoints which can
> in turn get routed over V6-over-V4 wg tunnels (when the ether is flowing
> just right).

Hehe.

-- Juliusz



More information about the Babel-users mailing list