[Babel-users] Investigating kernel's cache

Matthieu Boutier boutier at pps.univ-paris-diderot.fr
Wed Jul 16 22:00:23 UTC 2014


Hi,

we are investigating some strange behaviour with "native" source specific routes (i.e. not with multiple routing tables): it seems cached routes may make things go wrong.  Here are the details.

I have two default routes:

    default from 2001:41d0:1:f100::/56 via fe80::4e72:b9ff:fe43:7608 dev tun-ariane  proto 42  metric 1024
    default via fe80::8618:8803:5474:9b01 dev eth1  proto zebra  metric 3

and I try to use mtr with two different addresses:

(1) mtr 2a00:1450:4007:804::1006 --address 2001:660:3301:9208:e246:9aff:fe4e:912e
(2) mtr 2a00:1450:4007:804::1006 --address 2001:41d0:1:f19f:e246:9aff:fe4e:912e

When 1 is run first, the following route is added to the cache, and then, when 2 is launched, the wrong path is taken since the cache match.

    2a00:1450:4007:804::1006 via fe80::8618:8803:5474:9b01 dev eth1  metric 0

When 2 is run first, the following two entries are in the cache, and things goes right (at least while the cache keeps the specific route).

    2a00:1450:4007:804::1006 from 2001:41d0:1:f100::/56 via fe80::4e72:b9ff:fe43:7608 dev tun-ariane  metric 0
    2a00:1450:4007:804::1006 via fe80::8618:8803:5474:9b01 dev eth1  metric 0


This has been done on an openwrt 3.10.36 and on a Debian 3.13.7.  This behaviour was not observed with the same route entries added by hand with a /128 destination, i.e.

    2a00:1450:4007:804::1006 from 2001:41d0:1:f100::/56 via fe80::4e72:b9ff:fe43:7608 dev tun-ariane
    2a00:1450:4007:804::1006 via fe80::8618:8803:5474:9b01 dev eth1

The packets are well routed when multiple routing tables are used.

Does anyone has some feedback about this ?

Matthieu




More information about the Babel-users mailing list