Re: A proposal for draft-ietf-6man-rfc4291bis-07

Philip Homburg <pch-ipv6-ietf-3@u-1.phicoh.com> Mon, 06 March 2017 18:49 UTC

Return-Path: <pch-bF054DD66@u-1.phicoh.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 48F00129967 for <ipv6@ietfa.amsl.com>; Mon, 6 Mar 2017 10:49:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 HaaQltQhc_ud for <ipv6@ietfa.amsl.com>; Mon, 6 Mar 2017 10:49:36 -0800 (PST)
Received: from stereo.hq.phicoh.net (stereo6-tun.hq.phicoh.net [IPv6:2001:888:1044:10:2a0:c9ff:fe9f:17a9]) by ietfa.amsl.com (Postfix) with ESMTP id A51681294CC for <ipv6@ietf.org>; Mon, 6 Mar 2017 10:49:35 -0800 (PST)
Received: from stereo.hq.phicoh.net ([::ffff:127.0.0.1]) by stereo.hq.phicoh.net with esmtp (Smail #127) id m1ckxhO-0000DiC; Mon, 6 Mar 2017 19:49:34 +0100
Message-Id: <m1ckxhO-0000DiC@stereo.hq.phicoh.net>
To: ipv6@ietf.org
Subject: Re: A proposal for draft-ietf-6man-rfc4291bis-07
From: Philip Homburg <pch-ipv6-ietf-3@u-1.phicoh.com>
Sender: pch-bF054DD66@u-1.phicoh.com
References: <CAN-Dau17q_BrUuzfvB1mLDt6p5UxYikphWaHpa8VQ2L-3kx-DA@mail.gmail.com> <a484b60f9d9b4fcea24dc320c550da2c@XCH15-06-11.nw.nos.boeing.com> <ee764408573b4db4b22e58c4ea5f289c@XCH15-06-11.nw.nos.boeing.com> <2c0ab33b-abbe-caf1-6147-0c583d7f5d61@gmail.com> <CAN-Dau0bSPiubeDOFeJAg6H0wP0ZNDS514eedmJtkOqHTXWOOw@mail.gmail.com> <D6D5B476-7F21-4F49-A81D-C2A11C30ADEC@google.com> <453e5b4160514907bc1bb822770e0cac@XCH15-06-11.nw.nos.boeing.com> <ABE47051-FBFC-460F-89B0-FFD451410F7B@google.com> <m1cjviu-0000EYC@stereo.hq.phicoh.net> <5BC57F0E-50FD-4452-853F-A08291C91EB1@google.com> <m1ck5mu-0000GaC@stereo.hq.phicoh.net> <5B4AFF50-8CA9-4134-8CE2-A383DB5F8BF5@google.com>
Date: Mon, 06 Mar 2017 19:49:34 +0100
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/OuufIdhrQkxh1Aya8MDj31esCdk>
Cc: james woodyatt <jhw@google.com>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.17
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: Mon, 06 Mar 2017 18:49:37 -0000

>    I found it confusing at first too, but the RFC 2119 keyword
>    language in RFC 4862 is pretty unambiguous, and it makes sense
>    too if you think about PIO updates that only change the lifetimes
>    and the value of the A flag. The requirement to drop all PIO
>    with invalid prefix length for the link type, regardless of the
>    A flag, ensures with a simple-to-implement rule that you never
>    take a misconfigured prefix as on-link if you cannot ever
>    auto-configure an address in the prefix when the update to A=1
>    arrives.
> 
>    This may not be the behavior youd prefer that RFC 4862 require,
>    but the requirement is clearly there and certification tests
>    are within their ambit to check for it. Moreover, this proposed
>    successor to RFC 4291 doesnt even have an informative reference
>    to RFC 4862 in it, much less an explicitly declared update. And
>    I dont believe it should.

If your stack only does this when the A bit is set, then I don't care
that much. I'm perfectly happy if SLAAC remains at 64 bits and anything
else requires DHCP or manual config.

Technically, if you only drop the PIO if the A bit is set, then it is 
still future proof, because any future change to the prefix length can
just require two options, one with the A bit set and one with the L 
bit set.

Certainly if the A bit is clear, to reach the MUST in step d), you must
have ignored step a). In addition, step d) spells out that prefixes that
don't match the IID have a meaning in onlink processing, making it
completely clear that 'in order to detect and avoid a configuration error
specifying an invalid prefix length in the context of address
autoconfiguration' means just that.

If RFC 4861 meant to ignore the PIO option for the purpose of onlink
then RFC 4861 would have said so directly.

In any case, I think the 'MUST drop' interpretation of RFC 4862 is
completely wrong. There is no way that a MUST in RFC 4862 can change the
behavior of RFC 4861 without RFC 4862 explicitly updating RFC 4861. If
that is intended, we should at least add an errata to RFC 4862.

I'm not sure why you would think RFC 4291 should say something about the
PIO option and the L bit processing?

So it is not so much what I prefer. It is already spelled out. Note that your
argument 'ensures with a simple-to-implement rule that you never take a
misconfigured prefix as on-link' is not reflected in RFC 4862. RFC 4862
talks about misconfiguration with respect to autoconfiguration and
is explict that this length check does not hold for onlink processing.
Again 'in order to detect and avoid a configuration error specifying
an invalid prefix length in the context of address autoconfiguration'

Finally, the 'MUST drop' interpetation is not consistent with the
behavior of FreeBSD, MacOS, and Linux. So I now start to wonder where
the 'MUST drop' interpretation comes from and if anyone ever bothered
to check out the behavior of existing stacks.