Subject: Re: default route and private networks
To: Steven M. Bellovin <smb@cs.columbia.edu>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: tech-net
Date: 04/25/2005 20:10:23
NB: to anyone still paying attention,, I'm catching up in reverse order.

.paIn message <20050426022149.1EAD83BFE48@berkshire.machshav.com>,
"Steven M. Bellovin" writes:
>In message <0913989A-6ADE-4FF2-BE9E-73A5FDD43616@shagadelic.org>,
Jason Thorpe writes:
>>On Apr 25, 2005, at 12:36 PM, Bill Studenmund wrote:

>>> And what if we want multiple "first-class" addresses?
>>
>>And to address this point... nothing in an ifaddr explicitly marks  
>>the address as an "alias".  It is an alias only by virtue of not  
>>being the first on the list.  If you delete the first address on the  
>>list, then I am pretty sure that the next one is suddenly no longer  
>>just an "alias".

if dim memory serves, BSD really did have a notion of "alias"
addresses.  I'd have to UTSL, but my (dim, possibly broken) memory
says 4.4-lite or thereabouts, and even NetBSD until circa 1.3(?)

I dont beleive that notion of `alias' affected source-address
selection in the way we all seem to agree would be a Good Thing, if
not hardwired in the kernel. Vut it is a (weak) precendent for the
notion of ``second-class'' local addresses.

>>I.e. it is only by convention that these things are called  
>>"aliases".  It's all due to undocumented magic that the semantics are  
>>the way they are.

If you mean my use of alias, I really meant SIOCSIFALIAS or whatever
it was calld. Unless, as above, I am suffering a Senior Moment here.

>>To me, an address that is truly an "alias" would never be used as a  
>>source address unless it is on the passive side of a TCP handshake.

Me, I'd support using an "alises" as the lcoal adress for
otherwise-unbound sockets, if and only if the alias is a same-subnet
match for the desired remote address.  Tho' I suspect that'd violate
the behaviour in Stuar et al.'s IPv4 zeroconf I-D.  But it does meet
Manuel's problem, and Tom's: which seems to be at least half the
motivation I've seen here.

Comments??


>>But there are legitimate reasons for having multiple "non-alias" IPv4  
>>addresses on an interface.  If we want to support both, then  
>>something needs to mark those alias addresses as such (I would call  
>>them "passive" addresses, myself).  The "passive" semantics I  
>>envision would map equally well to both IPv4 and IPv6, or any other  
>>address family, for that matter.
>>
>
>I haven't had the cycles to participate in this debate, and I'm not 
>sure that this suggestion is fully baked.  That said, I'll toss it out 
>anyway.
>
>The current semantics, as I understand them, is that the source address 
>assigned is taken from the routing table entry used for the (initial, 
>for TCP) outgoing packet.  In particular, the first address on the 
>interface selected is used.  Suppose we try to extend that, by 
>associating explicit source addresses with routing entries.  When a
>destination address matches some particular route table entry, the 
>source address associated with that address would be used as the source 
>address for the packet.  (Like Jonathan, I'm very concerned about 
>attaching semantics in the kernel to particular classes of addresses.

FWIW, I think Bill is too; but its easy to miss with him smacking me
for my dogmatic intrasigence over Thou-Shalt-Not-Violate-HR-RFCs.


>For that matter, I was one of the very loud voices against IPv6 
>site-local addresses. 

Good for you. Seriously. No snarkiness from me.


>Link-local is an acceptable special case for 
>IPv6; it might be for IPv4 as well, but I suspect it's not necessary to 
>create any special rules for it.)

My reading of the latest I-D is that zeroconf/link-local addresses do
in fact require special processing. I haven't looked closely enough
(or with a non-spinning head) to tell if David's proposal meets the
I-D. My spinning-head take is that we'd probably not meet it.

David, I'd appreciate a point-by-point discussion of your proposal
vs. sec 2.6.1-2.6.2 of the draft, and the sections it references.