[Babel-users] Kernel metrics/route redistribution

Juliusz Chroboczek Juliusz.Chroboczek at pps.jussieu.fr
Wed Oct 20 14:52:56 UTC 2010


> Why does metric_to_kernel() overwrite the internal metrics with the
> fixed, global kernel_metric value before installing the route?

The term "metric" is a misnomer -- I prefer to think of the kernel value
as the "priority".  It's a way of preferring a set of routes to another
one when they come from different protocols.  (It's equivalent to what
Cisco calls "administrative distance", which is distinct from a given
routing protocol's metric.)

> Would a "babeld -k copy" option to redistribute Babel metrics into the
> kernel without modification be an appropriate addition?

Early versions of Babel used to do that by default (except that the
Babel metrics were divided by 256), and most of the code is still there,
so it would be trivial to do that (and I'll be glad to send you a patch
if you insist that's what you need).  But I'm pretty much convinced that
it's not a good idea.

Just for starters: this would mean that every minor flucutation in ETX
causes Babel to munge the kernel's routing tables.  (See also my
comments at the bottom of this mail.)

> Relatedly, has anyone attempted, succeeded, or failed to redistribute
> Babel into or out of other routing protocols?

I'm happily redistributing from RIPng into Babel.

> The path of least resistance would seem to be letting both Babel and
> another routing daemon act independently, interacting via kernel
> routes.

Yes, that's the way you're supposed to do it.

  redistribute ip ::/0 metric 128

(The ``ip ::/0'' might seem redundant, it is used to restrict the
statement to IPv6 routes only.)

If you're participating in more than just two protocols, you can use the
"proto" keyword to filter out some routes.

> Exposing the metrics seems like a good idea in general, and entirely
> necessary if a Babel network exchanges routes with some other network
> at more than one point.

That's where we disagree.  I'm not sure whether it makes sense to map
metrics from one routing protocol into another one.  I feel it is better
to redistribute by mapping all routes to a single priority -- in my
case, I'm making the whole Babel network appear as a single hop to RIP.

If you have a topology in which you want the metrics from two distinct
routing protocols to be compared with each other, rather than having one
routing protocol preferred to the other, then I'm very much interested
in hearing more.

(In OSPF terms, Babel only implements the semantics of Type 2 external
LSAs, not Type 1.  What you want is the semantics of Type 1 LSAs.)

                                        Juliusz



More information about the Babel-users mailing list