Re: draft-gont-6man-slaac-renum: Algorithm (Section 4.5) in the presence of Router Lifetime=0

Fernando Gont <fgont@si6networks.com> Wed, 01 April 2020 03:03 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 974773A077D for <ipv6@ietfa.amsl.com>; Tue, 31 Mar 2020 20:03:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level:
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[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 GghM18W7WJxv for <ipv6@ietfa.amsl.com>; Tue, 31 Mar 2020 20:03:15 -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 178613A077A for <6man@ietf.org>; Tue, 31 Mar 2020 20:03:14 -0700 (PDT)
Received: from [192.168.0.10] (unknown [181.45.84.85]) (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 5BB0680960; Wed, 1 Apr 2020 05:03:10 +0200 (CEST)
Subject: Re: draft-gont-6man-slaac-renum: Algorithm (Section 4.5) in the presence of Router Lifetime=0
To: Jen Linkova <furry13@gmail.com>
Cc: "6man@ietf.org" <6man@ietf.org>
References: <6625284c-a841-8de4-2281-b837346527f5@si6networks.com> <CAFU7BARZG6sQpa8ToeADQdANC6g7nM=MG-vqgEj=PXucwnUNiQ@mail.gmail.com> <b17c29c9-9980-8e77-66f9-ad5c7649fc24@si6networks.com> <CAFU7BARRx8KgMUZTAvAGrexSTiopTeRQfLsPiK2shtyhGvAQFQ@mail.gmail.com> <65725cc5-36c2-ca54-d32f-f395467cede5@si6networks.com> <CAFU7BAREhyBfJcZEsczPU23+kcxbS2EX+HgyF7d2QHn_6AMQew@mail.gmail.com>
From: Fernando Gont <fgont@si6networks.com>
Message-ID: <7384e7d3-89fa-a642-3c0f-4109f471f529@si6networks.com>
Date: Wed, 01 Apr 2020 00:01:35 -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: <CAFU7BAREhyBfJcZEsczPU23+kcxbS2EX+HgyF7d2QHn_6AMQew@mail.gmail.com>
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/TpFlt8lS7pcovo6d5C1l1IhEX_c>
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: Wed, 01 Apr 2020 03:03:20 -0000

Hi, Jen,

On 31/3/20 23:14, Jen Linkova wrote:
> On Wed, Apr 1, 2020 at 10:50 AM Fernando Gont <fgont@si6networks.com> wrote:
>> In the context of RFC8028, the information in PIOs become more
>> associated with the sending router, than with the link itself.
>>
>> e.g., our draft aside: if you have Router 1 saying PREFIX A is on-link,
>> and should be used for auto-configuration, and Router 2 saying that
>> PREFIX A is not on-link and should not be used for auto-configuration,
>> you'd be safe to consider it on-link, configure addresses for it, and
>> send packets sourced from PREFIX A to Router 1.
> 
> Keep in mind there 3, not two signals here a router can send:
> 1) PREFIX A has the property X (e.g. is onlink or suitable for SLAAC)
> 2) PREFIX A does not have the property X (e.g. the prefix is not onlink)
> 3) no data about PREFIX A whatsoever.
> 
> My understanding of the current standards is that, as RAs are
> processed independently, multiple RA containing 1+3 or 2+3 would
> result in the consistent and predicable behaviour, while if routers
> send both signals 1 and 2 - each new RA would update the information
> about the prefix.

After talking with Brian and Fred, that's likely the case. i.e., the 
behavior I mentioned might be desired, but we cannot really say that it 
is "expected" -- as you correctly noted, RFC8028 did not update RFC8028, 
so...  FWIW, I've filled an errata so that this is looked into if/when 
RFC8028 is rev'ed. But, as noted, what you described is probably the 
only safe assumption.

In that light, how about, when Router Lifetime == 0, setting the PIO 
Preferred Lifetime to 1800 (the current default router lifetime), and 
the PIO Valid Lifetime as a function (multiple) of that?


>> There's no reason for the announcements of Router 2 to discard the
>> information provided by Router 1 -- each of them simply provide their
>> own view of the network.
>>
>> That's how I read the spec -- but will ask Brian and Fred, just in case.
>> (thanks for noting this!)
> 
> I'd say I did not read the RFC8028 that way. My understanding is:
> - it is talking about scenarios when multiple PIOs are advertised by
> multiple routers.
> - it requires the host to track what router announced what prefixes
> (and btw I do not see it explicitly excluding PIOs with lifetime = 0
> from that tracking...)
> - PIO - router binding is supposed to be used to select the source
> address for the specific next-hop (or  the next-hop for the specific
> address). It does not seem change any other PIO processing.
> Even more, it explicitly say 'If no router has advertised the prefix
> in an RA, normal routing metrics will apply'.

I've re-read RFC8028 and, clearly, what's in RFC8028 is what you describe.

That said, in a scenario where e.g. one router considers a prefix 
valid/preferred/on-link, and another considers it the opposite, it would 
seem to me that rather than do flip-flop and go back and forth (valid 
<-> invalid), it would be best for hosts to use the prefix as valid with 
the router that considers it valid.  -- that seems to be more resilient.

But, as noted above, if anything this is stuff to be considered in the 
event of an RFC8028 update. Whereas, in the context of our draft, we 
should be e.g. deal with the case where Router Lifetime = 0 as an exception.

Thoughts?


>>>> 2) RFC8028 requires that PIOs be associated with routers (otherwise in a
>>>> multiprefix network scenario, your packets could be egress-filtered).
>>>> Hence what one router advertises shouldn't affect the behavior wrt other
>>>> routers.
>>>
>>> It is not about 'behaviour wrt other routers'. It's PIO processing
>>> rules as specified in
>>> https://tools.ietf.org/html/rfc4862#section-5.5.3
>>> " If the advertised prefix is equal to the prefix of an address
>>>
>>>         configured by stateless autoconfiguration in the list, the
>>>         preferred lifetime of the address is reset to the Preferred
>>>         Lifetime in the received advertisement.  "
>>>
>>> So if I have two routers advertizing the same prefix in PIO, a single
>>> RA with Preferred Lifetime =0 (from any of those two routers) would
>>> deprecate the prefix.
>>> I could not find anything in  RFC8028 (which does not even update
>>> RFC4862) which changes that logic.
>>> Am I missing anything?
>>
>> You raise a valid point, indeed. I'll check this with Fred and Brian,
>> and will also check what implementations are doing. But you may be right
>> in that we might want to include an exception for the case where Router
>> Lifetime == 0.
> 
> IMHO the simplest way to do that would be Preferred Lifetime =
> max(AdvDefaultLifetime, 3 * MaxRtrAdvInterval).

You mean "Router Lifetime" (i.e., the value manually configured) rather 
than AdvDefaultLifetime?  -- cause AdvDefaultLifetime is defined itself 
as 3 * MaxRtrAdvInterval.

Thanks!

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