IPv6 routes inserted into the kernel with 'route' end up with invalid type
Toke Høiland-Jørgensen
toke at redhat.com
Fri Aug 23 14:59:04 CEST 2019
David Ahern <dsahern at gmail.com> writes:
> On 8/23/19 8:43 AM, Toke Høiland-Jørgensen wrote:
>> Hi David
>>
>> Tom noticed[0] that on newer kernels, the Bird routing daemon rejects IPv6
>> routes received from the kernel if those routes were inserted with the
>> old 'route' utility (i.e., when they're inserted through the ioctl
>> interface).
>>
>> We tracked it down to the routes having an rtm_type of RTN_UNKNOWN, and
>> a bit of git archaeology points suggestively at this commit:
>>
>> e8478e80e5a ("net/ipv6: Save route type in rt6_info")
>>
>> The same setup works with older kernels, so this seems like it's a
>> regression, the age of 'route' notwithstanding. Any good ideas for the
>> proper way to fix this?
>>
>
> Should be fixed by:
>
> commit c7036d97acd2527cef145b5ef9ad1a37ed21bbe6
> Author: David Ahern <dsahern at gmail.com>
> Date: Wed Jun 19 10:50:24 2019 -0700
>
> ipv6: Default fib6_type to RTN_UNICAST when not set
>
> A user reported that routes are getting installed with type 0
> (RTN_UNSPEC)
> where before the routes were RTN_UNICAST. One example is from accel-ppp
> which apparently still uses the ioctl interface and does not set
> rtmsg_type. Another is the netlink interface where ipv6 does not require
> rtm_type to be set (v4 does). Prior to the commit in the Fixes tag the
> ipv6 stack converted type 0 to RTN_UNICAST, so restore that behavior.
>
> Fixes: e8478e80e5a7 ("net/ipv6: Save route type in rt6_info")
> Signed-off-by: David Ahern <dsahern at gmail.com>
> Signed-off-by: David S. Miller <davem at davemloft.net>
Ah, great! Guess that hasn't made its way to the stable and distribution
kernels yet. Thanks for the pointer! :)
-Toke
More information about the Bird-users
mailing list