Re: slaac-renum: New rev of draft-gont-6man-slaac-renum (Fwd: New Version Notification for draft-gont-6man-slaac-renum-08.txt)

Fernando Gont <fgont@si6networks.com> Thu, 21 May 2020 01:26 UTC

Return-Path: <fgont@si6networks.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B7803A07F0 for <ipv6@ietfa.amsl.com>; Wed, 20 May 2020 18:26:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t34pWjnEtXQk for <ipv6@ietfa.amsl.com>; Wed, 20 May 2020 18:26:08 -0700 (PDT)
Received: from fgont.go6lab.si (fgont.go6lab.si [91.239.96.14]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9881A3A0983 for <ipv6@ietf.org>; Wed, 20 May 2020 18:26:07 -0700 (PDT)
Received: from [IPv6:2800:810:464:11f:4458:f4f4:e3b4:132] (unknown [IPv6:2800:810:464:11f:4458:f4f4:e3b4:132]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by fgont.go6lab.si (Postfix) with ESMTPSA id D332D28380F; Thu, 21 May 2020 01:26:03 +0000 (UTC)
Subject: Re: slaac-renum: New rev of draft-gont-6man-slaac-renum (Fwd: New Version Notification for draft-gont-6man-slaac-renum-08.txt)
To: Philip Homburg <pch-ipv6-ietf-6@u-1.phicoh.com>, ipv6@ietf.org
References: <158986953939.9945.6882780269741835824@ietfa.amsl.com> <8354111a-7d3f-ecfa-bcf1-baaae27209ee@si6networks.com> <m1jb46e-0000K4C@stereo.hq.phicoh.net> <04027980-51a1-a831-df0c-750c4194333e@si6networks.com> <m1jbRDw-0000IQC@stereo.hq.phicoh.net>
From: Fernando Gont <fgont@si6networks.com>
Message-ID: <a2710dfc-ec66-9e9f-8a2b-0fa0ad7e2b32@si6networks.com>
Date: Wed, 20 May 2020 22:25:52 -0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <m1jbRDw-0000IQC@stereo.hq.phicoh.net>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/_Oczuu7GEycOJqfDoVl-twit9Lg>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 May 2020 01:26:12 -0000

On 20/5/20 13:05, Philip Homburg wrote:
> In your letter dated Tue, 19 May 2020 13:06:28 -0300 you wrote:
>>> In Section 4.5, I think it is bad to hardcode knowledge about ULAs
>>> in detecting stale prefixes. In my opinion that shows that the
>>> algorithm is fragile. And note that this applies to all hosts.
>>
>> Not sure what you mean. Could you please elaborate?
>> Unfolding th processing of ULA vs. non-ULA is simply
>> fine-tuning/optimization: So if, say, you had a globally-reachable
>> address, and now the router ceases to advertise the globally-reachable
>> addresses, but starts advertising the ULA, you keep both.
>>
>> One might was well not do this optimization, but it's certainly better
>> this way.
>>
>> WHy do you think about the algorithm being fragile?
> 
> I don't think it an optimization. Without separate processing it will fail.

That's a bold statement.

No, the algorithm will now fail.

If the algorithm were to not consider ULAs separately, then:
1) If the local network uses, say, ULA and non-ULA, *and*
2) The router advertises prefixes in separate packets, *and*
3) There's a lot of packet loss

Then, the algorithm would unprefer e.g. the ULA or non-ULA addresses, 
and might (depending on which values we use for the config variables) 
disable those later addresses. One can always set this second time-out 
to, say, the Router Lifetime  -- that would still clean-up stale 
addresses in reasonable time, while never removing them "erroneously".


I should point out that, from your pov, virtually every protocol you may 
engineer should be flagged as "will fail" or "fragile". SLAAC fails if 
all RAs are lost during a "Router Lifetime" period, for instance.



> We want something that quickly after the router reboots causes the
> old prefix to be dropped. Yet, the algorithm should not drop any prefixes
> due to modest packet loss. Currently, 2 out of 3 RAs can be lost without
> ill effects.

LTA_INVALID is your friend. As noted, one might even set it to "Router 
Lifetime".



> If an organisation has a third class of address, for example if a non-ULA
> prefix is used for internal addresses next to a separate prefix for
> external addresses. Or two different ULA prefixes with different semantics.
> Then this algorithm may drop some of the prefixes if prefixes are sent in
> separate RAs, as is currently allowed.

As much as you may drop a Router if RAs are lost.


[...]
> 
> So, the ULAs need to be treated specially to make it to work at all. This
> locks us into a situation where ULA, non-ULA is all that can exist.
> Introducing a third type of addresses would cause this algorithm to fail.

I believe this seems to me like an over statement.

As with my description above, for this to happen:
1) The same router should be advertising multiple non-ula prefixes, *and*
2) the router must be advertising different prefixes in different RAs, *and*
3) Multiple RAs need to be lost, for a considerable period of time, *and*
4) A new type of address (?) would need to be specified

Then, only then, one of such prefixes would be removed.

Me, I consider this very unlikely.

That said, I don't mind setting LTA_INVALID to the "Router Lifetime", 
and/or recommending that a host sends an unicasted RA at LTA_DEPRECATE, 
and another one at, say, time LTA_DEPRECATE + (LTA_INVALID - 
LTA_DEPRECATE) / 2.

I would expect any of these two, and particularly the setting of 
LTA_INVALID to address your concerns.



>> 2) Irrelevant from #2, from a theoretical there's no way in which a host
>> can positively know whether information is split into multiple RAs or
>> not. You may try to "sample" the router. But if you don't get split
>> information that might simply be the result of packet loss.
>> Additionally, the fact that at time T information is sent in a single
>> RA, doesn't mean that that will be the case at time T+t.
> 
> If have described my algorithm before. That finds splits RAs even in the
> presence of some packet loss (2 out of 3 packets getting lost).
> 
> Dealing with the case where a router suddenly switches from a single
> RA to multiple RAs is tricky. My algorithm can handle that if the router
> sends all RAs in a short period and there is no packet loss.
> 
> I assume that going from 1 to multiple RAs is a very rare event. If it
> isn't then my algorithm would need more work.

What's the basis on which the events that I deem as "unlikely" are to be 
handled because "theoretically, the std allows them", but then you 
ignore other possible scenarios by deeming them as "rare" (when they 
are, too, theoretically allowed by the spec)?

Thanks,
-- 
Fernando Gont
SI6 Networks
e-mail: fgont@si6networks.com
PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492