[Babel-users] Multiple internet gateways in the mesh

Juliusz Chroboczek jch at irif.fr
Sun Nov 7 23:47:16 GMT 2021


> I have a hack which pings from each site to see if its own internet
> connection is up. If it is, it installs a default route.

How do the pings reach the Internet before a default route has been
installed?

> Babel will not put its own proto route into the table, if there is
> a static route already configured.

That's not quite right.  Babeld will refuse to install a route that has the
same destination as a route that it redistributes, but will blindly ignore
any routes that it's not redistributing.  So the solution is to make sure
that Babeld does not see your default route.

  1. Make sure that the static route is not visible to babeld:

     redistribute ip 0.0.0.0/0 proto xxx allow
     redistribute ip :::/0 proto xxx allow
     
     where xxx is *not* the protocol of the static route.  (This is the
     difference with your configuration, where you ask Babeld to
     redistribute routes for all protocols, including the one of the
     static route.)

  2. When the route has been shown to be routable, have your reachability
     daemon install a route tagged with the protocol that Babeld redistributes:

     ip route add ... proto xxx

Babel-pinger works like this, but with an added subtlety: the default
route that it redistributed into Babel is an unreachable route, so it
won't interfere with the pinging it performs.

> I've tried playing with "allow-duplicates 20", but Babel crashed (1.10).

Thanks for the report, I'll have a look.  (I might even remove
allow-duplicates altogether, it's only useful for monitoring and tends to
confuse people.)

-- Juliusz





More information about the Babel-users mailing list