Filter babel routes on a per-neighbor or per-interface basis

Toke Høiland-Jørgensen toke at toke.dk
Thu Jul 22 20:17:54 CEST 2021


Fabian Bläse <fabian at blaese.de> writes:

> Hi,
>
> is there any possibility to filter incoming babel routes on a
> per-neighbor or per-interface basis?
>
> As far as I can tell, the babel implementation in bird has its own
> route selection algorithm and only sends a single route to the bird
> table. This seems to make it impossible to add additional route
> filters (for example: adding extra penalty to specific routes received
> on a specific babel interface), because with regular filters only the
> already pre-selected route in the bird table is changed.

You are right, this is not currently possible. Babeld does have this
capability, so maybe adding an equivalent filter type to Bird which can
drop or modify updates before they are handed over to babel's route
selection logic would be useful.

> Also, this makes it impossible to use ECMP with babel.

Babel (the protocol) does not support ECMP. This is deliberate - see
this message for details:
https://mailarchive.ietf.org/arch/msg/babel/i4tqsRIL3DS9e22GJ0QuoMef-P0/

> Would it be possible to send all feasible babel routes to the bird
> table?

I don't think this would be the right approach; rather, there should be
a filtering step before routes are input into the babel route selection,
as mentioned above. And possibly adding an output filter so routes can
be modified on a per-interface basis would make sense as well?

-Toke



More information about the Bird-users mailing list