Re: Dynamic IP hack (PR#294)

Eric Schenk (eschenk@CR1004479-A.crdva1.bc.wave.home.com)
18 Oct 1998 12:47:46 -0700


kuznet@ms2.inr.ac.ru writes:
> If I did bind() to a saddr nobody is allowed to rewrite this address.
> It is critical: if some appl. did bind, it does not want that connection were
> initiated with another address.
>
> I still assume, that someone, who enabled this sysctl has no
> such applications, so that it is not fatal, but must be commented
> and made optional.

Indeed, this is one of the reasons I was never particularly enamoured of
this hack back when it was introduced into the 2.0.x series.
There is also the case where the app does not do a bind(), but
does a getsockname() on a socket that has already had a non-blocking
connect() performed on it. If the local address is rewritten before
the connect finishes, then the results of getsockname() could be wrong.

It seems to be the case that neither of these things occur very much
in practice. I still don't know what the right answer is to this problem
(after think about it on and off for close to 4 years). Frankly the
real problem is that the internet was never designed to allow for
dynamic IP addresses, and anything we do to hack them in results in
one problem or another. Anyway, I don't like this solution much,
but I can't offer the right solution either.

I think the best we can manage right now is to make it take some effort
to enable this option, and label it with clear warnings that some applications
could break when the option is in use.

Cheers,

-- 
Eric Schenk                             www: http://www.loonie.net/~eschenk
                                email: eschenk@loonie.net, eschenk@home.com

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/