bird 1.6 seems to ignore ipv6 kernel routes on 4.19
Toke Høiland-Jørgensen
toke at toke.dk
Wed Aug 21 23:30:53 CEST 2019
Maria Jan Matejka <jan.matejka at nic.cz> writes:
> Hello!
>
>>> I recently updated some virtual machine hosting nodes to Debian Buster from
>>> Stretch, and I'm having an interesting problem with IPv6 kernel routes. My
>>> example uses 1.6.6 but 1.6.7 shows the same behaviour, so I'm just wondering
>>> what I am missing. v4 is all working as expected.
>>
>> Hi
>>
>> It seems that it is related to adding routes using 'route' command instead of
>> 'ip route' command.
>>
>> # ip r a 2001:db8:1:14::/64 via 2001:db8:1:1::14
>> # route -6 add 2001:db8:1:15::/64 gw 2001:db8:1:1::15
>
> This command uses the old ioctl(SIOCADDRT) API which in turn generates
>
>> none 2001:db8:1:15::/64 via 2001:db8:1:1::15 dev ve0 metric 1 pref medium
>
> with rtm_type == RTN_UNKNOWN (0), which is obviously wrong.
Looks like the kernel ioctl handler will copy the type if userspace sets
it:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/ipv6/route.c#n4271
but 'route' doesn't set it:
https://sourceforge.net/p/net-tools/code/ci/master/tree/lib/inet6_sr.c
-Toke
More information about the Bird-users
mailing list