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.

> # ip r a 2001:db8:1:16::/64 via 2001:db8:1:1::16 metric 1

This command uses the Netlink API.

> 2001:db8:1:16::/64 via 2001:db8:1:1::16 dev ve0 metric 1 pref medium

This route has rtm_type == RTN_UNICAST (1).

> Note the 'none' in route added by 'route' command. Perhaps such route has
> some strange attribute and that is why it is ignored by BIRD.

This may have been recently broken in Linux kernel. As the route command
is deprecated since at least 2011 in many distributions together with the
linux kernel developers themselves, I suggest simply using the ip tool.

For more information, look at
https://wiki.linuxfoundation.org/networking/net-tools
https://wiki.linuxfoundation.org/networking/iproute2
https://www.archlinux.org/news/deprecation-of-net-tools/
https://lists.debian.org/debian-devel/2009/03/msg00780.html

Maria

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to