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). Regards, Israel
signature.asc
Description: OpenPGP digital signature