BIRD 1.6.2 removes IPv6 kernel routes

Israel G. Lugo israel.lugo at
Wed Dec 21 15:53:33 CET 2016

On 11/13/2016 07:59 PM, Ondrej Zajicek wrote:
>> It looks like bird6 1.6.2 is eating IPv6 routes set by the kernel.
>> I have not encountered this issue with the IPv4 bird daemon.
> Hi
> The problem is likely caused by first exporting OSPF route to kernel and
> then removing it, but Linux removes both route from BIRD and its own (it
> ignores protocol attribute, while in IPv4 it obeys the attribute).
> The solution is to specify kernel metric using kernel protocol option
> 'metric' to some value (different than 0 (unspecified) or 256 (kernel
> route)). If you set it to lower value than 256, then your routes got
> precendence to kernel routes.
This just bit me hard. I knew about this back from when I upgraded a few
routers to 1.6.2, but unfortunately forgot since then. Today I was
upgrading the backup core, with ensuing fun when it lost all directly
connected routes.

I understand that the kernel itself seems to be inconsistent between
IPv4 and IPv6, causing this problem. However, whatever you were doing
back in 1.5.0 was working. I assume the change in behavior is due to the
new features in 1.6 (e.g. ECMP on IPv6), and it's not practical to go
back to the old way.

That said, would it be possible to have a default kernel metric that
already prevents this from happening? So that people aren't bit
unexpectedly. Even if it's just metric 1 or something. I set mine to 20,
following your suggestion, and it works as expected.

Failing that, perhaps it would be a good idea to mention this behavior
in the documentation, for the benefit of those who did not read this
thread (or, like me, did read it but forgot).



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the Bird-users mailing list