[lkml]   [2001]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: notion of a local address [was: Re: ioctl SIOCGIFNETMASK: ip aliasbug 2.4.9 and 2.2.19]
On Fri, Sep 07, 2001 at 11:09:57AM +0000, Julian Anastasov wrote:
> On Fri, 7 Sep 2001, Andrey Savochkin wrote:
> > > It seems if connect() is called without bind() and the target
> > > is local address the selected source is the same (the preferred address
> > > is not used). The postfix guys simply can try this proposal (I don't
> >
> > I've just checked, you're right.
> > In the mainstream 2.4 kernels for local routes setting the source to be equal
> > to the target overrides the preferred source from the route.
> I saw it in the 2.2 sources, so it is the same there.
> > I personally consider it as a bug.
> Agreed. OTOH, nobody plays with the preferred source in the
> local table. Now the question is whether this is a bug or a feature :)
> In any case, if the admins don't play with the prefsrc in table local
> the above assumption about connecting to local address still works
> for IP/32 (but not for targets in the 127/8 range different from

In my opinion, the priorities in address selection should be the following:
1. always use prefsrc if it is specified
2. then for local routes, use destination
3. as a last resort, call that function guessing the address...

> Hm, may be then a bind() call to the same IP will be required
> before connecting? If bind fails, then the address is not local. If
> not, connect() should succeed and getsockname should return the same
> IP (the preferred source will not be considered in this case from
> the kernel).

I would say that using of bound sockets is a bit risky.
I'm not sure whether such a connect may succeed with 2.2 kernels and
transparent proxy support, for example.

An unbound UDP connect, as autofs does, is a good solution if the mistakes are
The behavior of autofs in case of a mistake, as Peter explained, looks
reasonable and acceptable for me.

Using GETROUTE as Andi suggested is the other good alternative.
But it won't work without NETLINK socket support compiled in.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:02    [W:0.052 / U:1.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site