[Babel-users] babel jumps my default route

Antoine Beaupré anarcat at anarcat.ath.cx
Thu Aug 2 20:58:29 UTC 2012


I noticed that the default route problem started to happen when I
reverted the RTF_PROTO2 patch. Running without the patch: no such
problem. Of course, reverting the patch brings me back to the point
where the FreeBSD node announces the mesh's routes as itself's again and
basically breaks the whole mesh.

What follows is a bunch of paste of debug data that you asked on IRC.

========================================================================
With the PROTO2 patch reverted
========================================================================

I start with the RTF_PROTO2 patch reverted (ie. that we do install
routes with the PROTO2 flag). This makes babel overwrite the default
route.

Here is the output of babeld -d1 when it installs the evil default route:

My id 00:00:24:ff:fe:cc:93:46 seqno 59203
Neighbour fe80::21c:10ff:fe22:2ac dev vr2 reach f3f0 rxcost 96 txcost 256 chan -2.
fd64:2c08:9fa7:1::1/128 metric 0 (exported)
172.16.0.1/32 metric 0 (exported)
192.168.2.1/32 metric 0 (exported)
192.168.0.1/32 metric 0 (exported)
2001:1928:1:9::/128 metric 0 (exported)
fd64:2c08:9fa7::1/128 metric 0 (exported)
2001:1928:0:ffff::1b/128 metric 0 (exported)
192.168.100.3/32 metric 0 (exported)
72.0.72.144/32 metric 0 (exported)
0.0.0.0/0 metric 128 (exported)
66.96.31.6/32 metric 128 (exported)
192.168.0.0/24 metric 128 (exported)
192.168.2.0/24 metric 128 (exported)
192.168.100.0/24 metric 128 (exported)
::/4 metric 128 (exported)
2001:1928:0:ffff::1a/128 metric 128 (exported)
2001:1928:1:9::/64 metric 128 (exported)
fd64:2c08:9fa7::/48 metric 128 (exported)
172.16.0.0/12 metric 384 refmetric 128 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 8 via vr2 neigh fe80::21c:10ff:fe22:2ac nexthop 172.16.1.1 (installed)
172.16.1.1/32 metric 256 refmetric 0 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 8 via vr2 neigh fe80::21c:10ff:fe22:2ac nexthop 172.16.1.1 (installed)
192.168.4.0/24 metric 384 refmetric 128 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 8 via vr2 neigh fe80::21c:10ff:fe22:2ac nexthop 172.16.1.1 (installed)
192.168.4.1/32 metric 256 refmetric 0 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 8 via vr2 neigh fe80::21c:10ff:fe22:2ac nexthop 172.16.1.1 (installed)
fd64:2c08:9fa7:1::/64 metric 384 refmetric 128 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 8 via vr2 neigh fe80::21c:10ff:fe22:2ac (installed)
fd64:2c08:9fa7:1::2/128 metric 256 refmetric 0 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 8 via vr2 neigh fe80::21c:10ff:fe22:2ac (installed)
fd64:2c08:9fa7:2::/64 metric 384 refmetric 128 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 8 via vr2 neigh fe80::21c:10ff:fe22:2ac (installed)
fd64:2c08:9fa7:2::1/128 metric 256 refmetric 0 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 8 via vr2 neigh fe80::21c:10ff:fe22:2ac (installed)

Notice the absence of an actual "installed" default route.

Here's netstat -rn:
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            172.16.1.1         UG2        18     3124    vr2
66.96.31.6         link#9             UH          0        0    ng0
72.0.72.144        link#9             UHS         0      141    lo0
127.0.0.1          link#5             UH          0    49868    lo0
172.16.0.0/12      172.16.1.1         UG2         0        4    vr2
172.16.0.1         link#3             UHS         0       58    lo0
172.16.1.1         00:00:24:cc:93:46  UH2         2       67    vr2
192.168.0.0/24     link#6             U           3 230036029 bridge
192.168.0.1        link#6             UHS         0       63    lo0
192.168.2.0/24     link#4             U           0 13069574    vr3
192.168.2.1        link#4             UHS         0     2833    lo0
192.168.4.0/24     172.16.1.1         UG2         0        0    vr2
192.168.4.1        172.16.1.1         UGH2        0        0    vr2
192.168.100.0/24   link#10            U           0       22   tap0
192.168.100.3      link#10            UHS         0        0    lo0

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::/96                             ::1                           UGRS        lo0 =>
default                           2001:1928:0:ffff::1a          UGS        gif0
::1                               fe80::21c:10ff:fe22:2ac%vr2   UGH2        vr2
::ffff:0.0.0.0/96                 ::1                           UGRS        lo0
2001:1928:0:ffff::1a              2001:1928:0:ffff::1b          UH         gif0
2001:1928:1:9::                   link#6                        UHS         lo0 =>
2001:1928:1:9::/64                link#6                        U       bridge0
fd64:2c08:9fa7::/48               link#3                        U           vr2
fd64:2c08:9fa7::1                 link#6                        UHS         lo0
fd64:2c08:9fa7:1::/64             fe80::21c:10ff:fe22:2ac%vr2   UG2         vr2
fd64:2c08:9fa7:1::1               link#3                        UHS         lo0
fd64:2c08:9fa7:1::2               fe80::21c:10ff:fe22:2ac%vr2   UGH2        vr2
fd64:2c08:9fa7:2::/64             fe80::21c:10ff:fe22:2ac%vr2   UG2         vr2
fd64:2c08:9fa7:2::1               fe80::21c:10ff:fe22:2ac%vr2   UGH2        vr2
fe80::/10                         ::1                           UGRS        lo0
fe80::%vr0/64                     link#1                        U           vr0
fe80::200:24ff:fecc:9344%vr0      link#1                        UHS         lo0
fe80::%vr1/64                     link#2                        U           vr1
fe80::200:24ff:fecc:9345%vr1      link#2                        UHS         lo0
fe80::%vr2/64                     fe80::21c:10ff:fe22:2ac%vr2   UG2         vr2
fe80::200:24ff:fecc:9346%vr2      link#3                        UHS         lo0
fe80::%vr3/64                     link#4                        U           vr3
fe80::200:24ff:fecc:9347%vr3      link#4                        UHS         lo0
fe80::%lo0/64                     link#5                        U           lo0
fe80::1%lo0                       link#5                        UHS         lo0
fe80::%bridge0/64                 link#6                        U       bridge0
fe80::200:24ff:fecc:9347%bridge0  link#6                        UHS         lo0
fe80::%gif0/64                    link#7                        U          gif0
fe80::200:24ff:fecc:9344%gif0     link#7                        UHS         lo0
fe80::%ng0/64                     link#9                        U           ng0
fe80::200:24ff:fecc:9344%ng0      link#9                        UHS         lo0
fe80::%tap0/64                    link#10                       U          tap0
fe80::2bd:f4ff:fe75:0%tap0        link#10                       UHS         lo0
ff01:1::/32                       fe80::200:24ff:fecc:9344%vr0  U           vr0
ff01:2::/32                       fe80::200:24ff:fecc:9345%vr1  U           vr1
ff01:3::/32                       fe80::200:24ff:fecc:9346%vr2  U           vr2
ff01:4::/32                       fe80::200:24ff:fecc:9347%vr3  U           vr3
ff01:5::/32                       ::1                           U           lo0
ff01:6::/32                       2001:1928:1:9::               U       bridge0
ff01:7::/32                       fe80::200:24ff:fecc:9344%gif0 U          gif0
ff01:9::/32                       fe80::200:24ff:fecc:9344%ng0  U           ng0
ff01:a::/32                       fe80::2bd:f4ff:fe75:0%tap0    U          tap0
ff02::/16                         ::1                           UGRS        lo0
ff02::%vr0/32                     fe80::200:24ff:fecc:9344%vr0  U           vr0
ff02::%vr1/32                     fe80::200:24ff:fecc:9345%vr1  U           vr1
ff02::%vr2/32                     fe80::200:24ff:fecc:9346%vr2  U           vr2
ff02::%vr3/32                     fe80::200:24ff:fecc:9347%vr3  U           vr3
ff02::%lo0/32                     ::1                           U           lo0
ff02::%bridge0/32                 2001:1928:1:9::               U       bridge0
ff02::%gif0/32                    fe80::200:24ff:fecc:9344%gif0 U          gif0
ff02::%ng0/32                     fe80::200:24ff:fecc:9344%ng0  U           ng0
ff02::%tap0/32                    fe80::2bd:f4ff:fe75:0%tap0    U          tap0

All this is with the RTF_PROTO2 patch reverted.

========================================================================
With the RTF_PROTO2 patch intact
========================================================================

With the RTF_PROTO2 patch (ie. that babel doesn't install routes with
the PROTO2 flag), i start announcing the routes myself, so the -d1
output is:

My id 00:00:24:ff:fe:cc:93:46 seqno 57904
Neighbour fe80::21c:10ff:fe22:2ac dev vr2 reach ffff rxcost 96 txcost 256 chan -2.
fd64:2c08:9fa7:1::1/128 metric 0 (exported)
172.16.0.1/32 metric 0 (exported)
192.168.2.1/32 metric 0 (exported)
192.168.0.1/32 metric 0 (exported)
2001:1928:1:9::/128 metric 0 (exported)
fd64:2c08:9fa7::1/128 metric 0 (exported)
2001:1928:0:ffff::1b/128 metric 0 (exported)
192.168.100.3/32 metric 0 (exported)
72.0.72.144/32 metric 0 (exported)
0.0.0.0/0 metric 128 (exported)
66.96.31.6/32 metric 128 (exported)
192.168.0.0/24 metric 128 (exported)
192.168.2.0/24 metric 128 (exported)
192.168.100.0/24 metric 128 (exported)
::/4 metric 128 (exported)
2001:1928:0:ffff::1a/128 metric 128 (exported)
2001:1928:1:9::/64 metric 128 (exported)
fd64:2c08:9fa7::/48 metric 128 (exported)
172.16.0.0/12 metric 128 (exported)
172.16.1.1/32 metric 128 (exported)
192.168.4.0/24 metric 128 (exported)
192.168.4.1/32 metric 128 (exported)
fd64:2c08:9fa7:1::/64 metric 128 (exported)
fd64:2c08:9fa7:1::2/128 metric 128 (exported)
fd64:2c08:9fa7:2::/64 metric 128 (exported)
fd64:2c08:9fa7:2::1/128 metric 128 (exported)
172.16.0.0/12 metric 384 refmetric 128 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 10 via vr2 neigh fe80::21c:10ff:fe22:2ac nexthop 172.16.1.1 (feasible)
172.16.1.1/32 metric 256 refmetric 0 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 10 via vr2 neigh fe80::21c:10ff:fe22:2ac nexthop 172.16.1.1 (feasible)
192.168.4.0/24 metric 384 refmetric 128 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 10 via vr2 neigh fe80::21c:10ff:fe22:2ac nexthop 172.16.1.1 (feasible)
192.168.4.1/32 metric 256 refmetric 0 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 10 via vr2 neigh fe80::21c:10ff:fe22:2ac nexthop 172.16.1.1 (feasible)
fd64:2c08:9fa7:1::/64 metric 384 refmetric 128 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 10 via vr2 neigh fe80::21c:10ff:fe22:2ac (feasible)
fd64:2c08:9fa7:1::2/128 metric 256 refmetric 0 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 10 via vr2 neigh fe80::21c:10ff:fe22:2ac (feasible)
fd64:2c08:9fa7:2::/64 metric 384 refmetric 128 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 10 via vr2 neigh fe80::21c:10ff:fe22:2ac (feasible)
fd64:2c08:9fa7:2::1/128 metric 256 refmetric 0 id 02:1c:10:ff:fe:22:02:ac seqno 62820 age 10 via vr2 neigh fe80::21c:10ff:fe22:2ac (feasible)

Notice how the mesh's rules are "feasible" now, but how routes from the
mesh (e.g. 172.16.1.1/32) are announced by roadkiller even though they
are not on the machine.

And netstat tells me:

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            66.96.31.6         UGS         0    16871    ng0
66.96.31.6         link#9             UH          0        0    ng0
72.0.72.144        link#9             UHS         0        0    lo0
127.0.0.1          link#5             UH          0    49879    lo0
172.16.0.1         link#3             UHS         0       58    lo0
192.168.0.0/24     link#6             U           3 230048419 bridge
192.168.0.1        link#6             UHS         0       63    lo0
192.168.2.0/24     link#4             U           0 13069581    vr3
192.168.2.1        link#4             UHS         0     2833    lo0
192.168.100.0/24   link#10            U           0       22   tap0
192.168.100.3      link#10            UHS         0        0    lo0

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::/96                             ::1                           UGRS        lo0 =>
default                           2001:1928:0:ffff::1a          UGS        gif0
::1                               fe80::21c:10ff:fe22:2ac%vr2   UGH2        vr2
::ffff:0.0.0.0/96                 ::1                           UGRS        lo0
2001:1928:0:ffff::1a              2001:1928:0:ffff::1b          UH         gif0
2001:1928:1:9::                   link#6                        UHS         lo0 =>
2001:1928:1:9::/64                link#6                        U       bridge0
fd64:2c08:9fa7::/48               link#3                        U           vr2
fd64:2c08:9fa7::1                 link#6                        UHS         lo0
fd64:2c08:9fa7:1::1               link#3                        UHS         lo0
fe80::/10                         ::1                           UGRS        lo0
fe80::%vr0/64                     link#1                        U           vr0
fe80::200:24ff:fecc:9344%vr0      link#1                        UHS         lo0
fe80::%vr1/64                     link#2                        U           vr1
fe80::200:24ff:fecc:9345%vr1      link#2                        UHS         lo0
fe80::%vr2/64                     fe80::21c:10ff:fe22:2ac%vr2   UG2         vr2
fe80::200:24ff:fecc:9346%vr2      link#3                        UHS         lo0
fe80::%vr3/64                     link#4                        U           vr3
fe80::200:24ff:fecc:9347%vr3      link#4                        UHS         lo0
fe80::%lo0/64                     link#5                        U           lo0
fe80::1%lo0                       link#5                        UHS         lo0
fe80::%bridge0/64                 link#6                        U       bridge0
fe80::200:24ff:fecc:9347%bridge0  link#6                        UHS         lo0
fe80::%gif0/64                    link#7                        U          gif0
fe80::200:24ff:fecc:9344%gif0     link#7                        UHS         lo0
fe80::%ng0/64                     link#9                        U           ng0
fe80::200:24ff:fecc:9344%ng0      link#9                        UHS         lo0
fe80::%tap0/64                    link#10                       U          tap0
fe80::2bd:f4ff:fe75:0%tap0        link#10                       UHS         lo0
ff01:1::/32                       fe80::200:24ff:fecc:9344%vr0  U           vr0
ff01:2::/32                       fe80::200:24ff:fecc:9345%vr1  U           vr1
ff01:3::/32                       fe80::200:24ff:fecc:9346%vr2  U           vr2
ff01:4::/32                       fe80::200:24ff:fecc:9347%vr3  U           vr3
ff01:5::/32                       ::1                           U           lo0
ff01:6::/32                       2001:1928:1:9::               U       bridge0
ff01:7::/32                       fe80::200:24ff:fecc:9344%gif0 U          gif0
ff01:9::/32                       fe80::200:24ff:fecc:9344%ng0  U           ng0
ff01:a::/32                       fe80::2bd:f4ff:fe75:0%tap0    U          tap0
ff02::/16                         ::1                           UGRS        lo0
ff02::%vr0/32                     fe80::200:24ff:fecc:9344%vr0  U           vr0
ff02::%vr1/32                     fe80::200:24ff:fecc:9345%vr1  U           vr1
ff02::%vr2/32                     fe80::200:24ff:fecc:9346%vr2  U           vr2
ff02::%vr3/32                     fe80::200:24ff:fecc:9347%vr3  U           vr3
ff02::%lo0/32                     ::1                           U           lo0
ff02::%bridge0/32                 2001:1928:1:9::               U       bridge0
ff02::%gif0/32                    fe80::200:24ff:fecc:9344%gif0 U          gif0
ff02::%ng0/32                     fe80::200:24ff:fecc:9344%ng0  U           ng0
ff02::%tap0/32                    fe80::2bd:f4ff:fe75:0%tap0    U          tap0

Notice how the routes from the mesh aren't actually in the routing table
anymore, but at least the default route stays in place.

-- 
You Are What You Is
                        - Frank Zappa
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/babel-users/attachments/20120802/a1e04fd4/attachment-0001.pgp>


More information about the Babel-users mailing list