[Babel-users] Babeld vs. BIRD [was: Please test master]

Dave Taht dave.taht at gmail.com
Tue Sep 25 02:52:21 BST 2018


Thank you very much toke!

Thus far the bird version is interoperating with 1.8.3 and the other 6
babel versions I have deployed, ipv4 and ipv6 just fine. I don't get
source specific of course, but after I run it for a bit I'll go beat
it up some more with rtod in a controlled environment.

Anyway...

There is a longstanding kernel behavioral change that both bird and
FRR do, that I would like to push back into babeld itself. Here, I
withdraw a route:

d at dancer:~$ ip route | grep 172.25
172.25.0.1 via 172.22.0.172 dev eno1 proto bird metric 32
d at dancer:~$ ip route | grep 172.25
unreachable 172.25.0.1 proto bird metric 32

Note how the metric stays the same?

In addition to unreachable, babeld also explicitly changing the kernel
metric to INFINITY also, A) makes doing atomic updates impossible.
(there's another bug with atomic updates than this, but...) B) It also
introduces a window where some other route with a lower metric can
still win.

babel example:

172.25.0.1 via 172.22.0.172 dev eno1 proto babel
172.25.0.1 via 172.22.0.172 dev eno1 proto static metric 1024

vs:

172.25.0.1 via 172.22.0.172 dev eno1 proto static metric 1024
unreachable 172.25.0.1  proto babel  metric 4294967295 onlink

I don't think there's anything massively in the field that depends on
this behavior (? OSX? ?), and I've been bit by this multiple times.

PS total aside: does anyone know why class E routes are not exported?

241.0.2.0/24 dev eno1 proto kernel scope link src 241.0.2.2



More information about the Babel-users mailing list