On Sun, 11 Aug 2019 20:49:18 -0700 (PDT) David Miller <da...@davemloft.net> wrote:
> From: David Ahern <dsah...@gmail.com> > Date: Thu, 1 Aug 2019 22:16:00 -0600 > > > On 8/1/19 10:13 PM, Hangbin Liu wrote: > >> On Thu, Aug 01, 2019 at 01:51:25PM -0600, David Ahern wrote: > >>> On 8/1/19 2:29 AM, Hangbin Liu wrote: > >>>> Jianlin reported a bug that for IPv4, ip route get from src_addr would > >>>> fail > >>>> if src_addr is not an address on local system. > >>>> > >>>> \# ip route get 1.1.1.1 from 2.2.2.2 > >>>> RTNETLINK answers: Invalid argument > >>> > >>> so this is a forwarding lookup in which case iif should be set. Based on > >> > >> with out setting iif in userspace, the kernel set iif to lo by default. > > > > right, it presumes locally generated traffic. > >> > >>> the above 'route get' inet_rtm_getroute is doing a lookup as if it is > >>> locally generated traffic. > >> > >> yeah... but what about the IPv6 part. That cause a different behavior in > >> userspace. > > > > just one of many, many annoying differences between v4 and v6. We could > > try to catalog it. > > I think we just have to accept this difference because this change would > change behavior for all route lookups, not just those done by ip route get. How so, actually? I don't see how that would happen. On the forwarding path, 'iif' is set (not to loopback interface), so that's not affected. Is there any other route lookup possibility I'm missing? -- Stefano