[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: dual stack & IPv6 on by default



>> The worst case scenario would be 1 node coming up on IPv4 
>network with 
>> IPv6.  But then it would have to use transition mechanism to speak 
>> IPv6. Selecting the best method based on the policy of the network 
>> administrator I will assume here.
>> 
>> Is this a fairly good synopsis of your general concern within this 
>> draft?
>
>I'm not sure if I parsed what you wrote above correctly, so I 
>can't say for sure.

For edification.  I have a node on a work LAN that knows nothing of
IPv6.  I download software and configure my node to be capable of IPv6.
I manually configure my interface to support IPv6.  I now ftp to an IPv6
address.  This is not going to work.  But I was stupid to think it
would?  Is this the kind of basic mistake your also worried about?

>  Just to make sure we're on the same page; 
>The general concern being addressed by this draft is that 
>enabling IPv6 on a dual-stack node in an IPv4 network that may 
>or may not have IPv6 routing support might result in 
>side-effects that the user of that node didn't anticipate or 
>welcome.  Some of those are protocol related (ND, ICMPv6, TCP, 
>etc...), and others are administrative.

But there also could be no problem is my point.  I think the draft
should state when there is no problem at all.

Showing both sides in the draft is important.

/jim
>
>> >> 
>> >> A TCP connection in SYN-SENT or SYN-RECEIVED states should abort
>> >> immediately when ND determines that the destination is 
>> >unreachable, so
>> >> TCP does not incur any additional delay here.
>> >
>> >Is that stated somewhere (it should be)?  Should it be
>> >explicitly stated in the nodes requirements?  In practice, I 
>> >don't think many TCP implementations do this correctly (or as 
>> >you've described), and they should be fixed.
>> 
>> I believe from my knowledge most TCP implementations do this 
>> correctly. The above rule is very well known by TCP implementers it 
>> has nothing to do with ND or IPv6.  With all the specs and all the 
>> work why must we continue to put in specs what is already a defined 
>> process that is well defined.
>
>It could very well be that the behavior is well defined to a 
>number of people, and implemented as such in many TCP 
>implementations.  How it became well defined is a mystery to 
>me, because RFC 1122 actually suggests (in section 4.2.3.9) to 
>do the opposite of what makes sense in this situation.  It 
>says that if TCP receives an ICMP destination unreachable code 
>0 (no route to destination) or 1 (host unreachable), that it 
>MUST NOT abort the connection.  That's in direct conflict with 
>what we're all agreeing is the right thing to do here (to 
>abort the connection if it's in SYN-SENT or SYN-RECEIVED state).
>
>> >  Even if TCP is
>> >fixed to abort connections, there is still a 3 second delay in 
>> >IP while NUD is being performed, which may or may not be 
>> 
>> That depends on how NUD cache was built.  Your making an 
>> implementation judgement not a standards judgement.  Also how one 
>> builds the NUD in the ND spec is a "conceptual" model not a required 
>> model just that the state changes are in fact supported.  
>For all any 
>> of us know most have figured this out to avoid a 3 second delay and 
>> its down to 300 nanoseconds.
>
>I agree that it's a conceptual model.
>
>> 
>> If you want an optimization you should suggest one so we can discuss.
>
>My suggested optimization is that you don't assume a 
>destination is on-link just because you don't have a default route.
>
>> 
>> >acceptable depending on how many IPv6 destinations the
>> >application will try before trying IPv4.  
>> 
>> And some applications will never try IPv4 because they are not using 
>> IPv4 anymore for this application.  We cannot assume in the logic 
>> premises for this discussion that ALL applications can just use IPv4 
>> that is an invalid assumption I believe.  And an incorrect way to 
>> solve IPv6 node "perceived" problems.
>
>True, IPv6-only applications won't have these problems.  
>
>> 
>> >I can't see this as
>> >being acceptable when a destination resolves to a few dozen 
>> >IPv6 addresses, for example.
>> 
>> Your speaking of the route above?  Or because of multiple 
>DNS entries?
>
>I'm trying to say that if you're assuming that all 
>destinations are on-link because you don't have a default 
>route, as a name resolves to more IPv6 addresses, the delays 
>associated with failed NUD on each address are compounded.
>
>> 
>> >  An immediate ICMP destination
>> >unreachable/network unreachable from IP would be generated if 
>> >it didn't assume destinations were on-link.
>> 
>> So you can't send to nodes not on the same link using host routes? 
>> This is very possible?
>
>Absolutely, and that's exacly my point.  If you have a host 
>route (or any other route that covers the destination), use 
>it.  If you don't have a route, then the destination is unreachable.
>
>If you don't have a route to the destination, why try to reach 
>it on-link just in case the destination might happen to be 
>on-link?  Is there a situation where this would be useful?
>
>-Seb
>
>