Re: [ipwave] [Int-dir] Intdir early review of draft-ietf-ipwave-ipv6-over-80211ocb-34 - 'conforming IPv6' - fe80::/10 vs fe80::/64

Alexandre Petrescu <alexandre.petrescu@gmail.com> Thu, 11 April 2019 11:27 UTC

Return-Path: <alexandre.petrescu@gmail.com>
X-Original-To: its@ietfa.amsl.com
Delivered-To: its@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 63A1D12011D; Thu, 11 Apr 2019 04:27:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.632
X-Spam-Level:
X-Spam-Status: No, score=-2.632 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=0.9, RCVD_IN_DNSWL_MED=-2.3, SPF_SOFTFAIL=0.665, 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 zjwDNgNfKU6m; Thu, 11 Apr 2019 04:27:08 -0700 (PDT)
Received: from cirse-smtp-out.extra.cea.fr (cirse-smtp-out.extra.cea.fr [132.167.192.148]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 986BE120099; Thu, 11 Apr 2019 04:27:07 -0700 (PDT)
Received: from pisaure.intra.cea.fr (pisaure.intra.cea.fr [132.166.88.21]) by cirse-sys.extra.cea.fr (8.14.7/8.14.7/CEAnet-Internet-out-4.0) with ESMTP id x3BBQxSd043284; Thu, 11 Apr 2019 13:26:59 +0200
Received: from pisaure.intra.cea.fr (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id B5E1F204A78; Thu, 11 Apr 2019 13:26:59 +0200 (CEST)
Received: from muguet2-smtp-out.intra.cea.fr (muguet2-smtp-out.intra.cea.fr [132.166.192.13]) by pisaure.intra.cea.fr (Postfix) with ESMTP id 99FB12020E8; Thu, 11 Apr 2019 13:26:59 +0200 (CEST)
Received: from [10.8.35.150] (is154594.intra.cea.fr [10.8.35.150]) by muguet2-sys.intra.cea.fr (8.14.7/8.14.7/CEAnet-Internet-out-4.0) with ESMTP id x3BBQxIk015708; Thu, 11 Apr 2019 13:26:59 +0200
To: 神明達哉 <jinmei@wide.ad.jp>
Cc: "Pascal Thubert (pthubert)" <pthubert@cisco.com>, Ole Troan <otroan@employees.org>, "draft-ietf-ipwave-ipv6-over-80211ocb.all@ietf.org" <draft-ietf-ipwave-ipv6-over-80211ocb.all@ietf.org>, Brian E Carpenter <brian.e.carpenter@gmail.com>, "ietf@ietf.org" <ietf@ietf.org>, "its@ietf.org" <its@ietf.org>, "int-dir@ietf.org" <int-dir@ietf.org>
References: <155169869045.5118.3508360720339540639@ietfa.amsl.com> <94941ef0-d0df-e8fe-091b-2e616f595eba@gmail.com> <c052e7a9-9acd-ecdd-9273-3142644dc5cd@gmail.com> <386b9f4c-f9b5-900c-817a-95df68226ed9@gmail.com> <cc9564f5-b049-fa99-31a4-98a9c9c1261a@gmail.com> <856F277E-8F26-48BC-9C57-70DC61AA4E06@employees.org> <c91328aa-72e4-c0be-ec86-5bfd57f79009@gmail.com> <1BF2A47E-3672-462B-A4EC-77C59D9F0CEA@employees.org> <2ba71d54-8f2f-1681-3b2a-1eda04a0abf9@gmail.com> <B618E1B8-1E01-4966-97B2-AAF5FC6FE38A@employees.org> <bf83d3c2-a161-310f-98f4-158a097314a6@gmail.com> <D1A09E57-11E2-4FBC-8263-D8349FBFB454@employees.org> <MN2PR11MB3565A36F02B010B12E709ABED82E0@MN2PR11MB3565.namprd11.prod.outlook.com> <39c49adc-65b2-bfa8-4f97-b1216d7a71a4@gmail.com> <CAJE_bqf0+JjX81TeoqmirgKw4KnHoJdkCmgBx0nfu+-OeWPP3A@mail.gmail.com>
From: Alexandre Petrescu <alexandre.petrescu@gmail.com>
Message-ID: <c878f52b-2ce9-7a83-5867-38d7565cd0f2@gmail.com>
Date: Thu, 11 Apr 2019 13:26:59 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <CAJE_bqf0+JjX81TeoqmirgKw4KnHoJdkCmgBx0nfu+-OeWPP3A@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: fr
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/its/KH8VngXEPSlbcXxyTdMRWyYnCmU>
Subject: Re: [ipwave] [Int-dir] Intdir early review of draft-ietf-ipwave-ipv6-over-80211ocb-34 - 'conforming IPv6' - fe80::/10 vs fe80::/64
X-BeenThere: its@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IPWAVE - IP Wireless Access in Vehicular Environments WG at IETF <its.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/its>, <mailto:its-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/its/>
List-Post: <mailto:its@ietf.org>
List-Help: <mailto:its-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/its>, <mailto:its-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Apr 2019 11:27:10 -0000


Le 10/04/2019 à 20:19, 神明達哉 a écrit :
> At Wed, 10 Apr 2019 16:19:40 +0200, Alexandre Petrescu
> <alexandre.petrescu@gmail.com <mailto:alexandre.petrescu@gmail.com>>
> wrote:
> 
>> Pascal, fe80::/10 is not wrong, because: - using fe80::/10 on OCB
>> works ok. - using fe80::/10 on Cisco, linux and openbsd works ok.
> 
> Specifically what do you mean by "fe80::/10 works"?

On command line interface (CLI) of linux it is ok to add an address 
fe80:1::1/32 to an interface, and then ping a neighbor having an address 
fe80:1::2/32 on its own interface.

It works on linux, Cisco, as I tried myself.

Others reported openbsd to work ok with Interface ID of length different
than 64.  Because of that report, I believe openbsd will also work ok
with fe80:1::1/32.

That means that any other plen for LLs, down to 10, will work.  I.e. add
an address fe80::1/10 on the interface and then ping a neighbor.

Specifically, why do you question the "fe80::/10 works" statement?  Do
you think it does not work?

(in other report, if I remember correctly, you suggested than in a
certain flavor of BSD it is impossible to assign fe80:1::1 on an interface).

> As I noted in a separate message, unless you use a non-0 value in the
> intermediate 54 bits, that's effectively the same as fe80::/64.  So I
> guess "fe80::/10 works" implicitly means you can use a non-0 value in
> the intermediate 54 bits.

I agree with your understanding.

I meant to say that fe80:1::/32 works as I tried it, and, by extension, 
that fe80::/10 would work as well.

> And then I don't see how it (always) works
> for OpenBSD.  Its input code drops such packets:
> 
>    /* Drop packets if interface ID portion is already filled. */
>     if (((IN6_IS_SCOPE_EMBED(&ip6->ip6_src) && ip6->ip6_src.s6_addr16[1]) ||
>         (IN6_IS_SCOPE_EMBED(&ip6->ip6_dst) && ip6->ip6_dst.s6_addr16[1])) &&
>         (ifp->if_flags & IFF_LOOPBACK) == 0) {
>         ip6stat_inc(ip6s_badscope);
>         goto bad;
>     }
> (from https://github.com/openbsd/src/blob/master/sys/netinet6/ip6_input.c)

Is the macro IN6_IS_SCOPE_EMBED bound by a number like 64 or 10?  I cant 
see the macro definition.

My claim about openbsd working with fe80:1::1/32 is a logic extension I 
make from other programmer's claim that the /64 boundary has been 
removed from openbsd.  In that email the person talks about RA with plen 
112, and GUA formed; the email mirrored from 6man, and openbsd commit 
references, are:
https://marc.info/?l=ipng&m=152141046701347&w=2
https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sbin/slaacd/engine.c#rev1.22

> 
> Besides, even if we we didn't know of an implementation that drops 
> these packets today, it doesn't guarantee future interoperability as 
> long as RFC4291 Section 2.5.6 so clearly specifies these bits are
> all 0; it wouldn't be surprising if a new implementation "abuses"
> this fact in a way that is not interoperable with implementations
> that use a non-0 value in these bits.  We can't simply blame that
> new implementation as "broken" since it just follows the format
> specified in the RFC, albeit perhaps too strictly.

I can agree to the point of view about implementations abiding to RFC4291.

But I would like to ask the implementation whether it prefers to be 
in-line with RFC4291 (rfc4291) or with the IANA allocation (fe80::/10).

There are obviously advantages and inconvenients to both.  Why should we 
decide to be just one?

> So, if this ipv6-over-80211ocb spec needs to rely on the use of a 
> non-0 value in the intermediate 54 bits, it's not enough to say it 
> "works" for some existing implementations today (which is actually 
> already false as I explained above for the OpenBSD case).  It should 
> explicitly make an exception to this part of RFC4291, rather than 
> obscurely alluding to it with "fe80::/10", and declare that it 
> formerly updates RFC4291, so that any future implementation can be 
> surely interoperable with it.

I agree.

Not all implementations can do fe80::/1.  A situation is follows:
- linux can do fe80:1::1/32, ping ok.
- OpenBSD is debatable whether or not it accepts fe80::/10 or only
   fe80::/64.
- Cisco IOS displays fe80::/10 in its CLI.
- Windows 10 displays fe80::64bitIID%12 or some other number (it does
   not seem to be the prefix len, but the IID is 64bitlength).
- Android: someone can easily check ifcondig add fe80:1::1/32 eth0.  I
   guess, suppose it will work, since it's linux kernel.

The question can also be whether or not some OS stack should be 
corrected?  I.e. should linux be corrected to not violate, or should 
FreeBSD be corrected to agree to IANA.

It can also be whether or not there can be qualifiers such as 
'violation', or 'conformance to IPv6' are appropriate.

> I actually don't know if "this ipv6-over-80211ocb spec needs to rely 
> on the use of a non-0 value in the intermediate 54 bits", btw.  If 
> that's not the case, it's much safer and less controversial to just 
> not mention it (either in the form of "LL prefix length" or more 
> explicitly).  I guess that's also what others are suggesting (and I 
> agree with them in that sense).

There is indeed the option of being silent about the prefix length of 
IPv6 LLs in the IPv6-over-OCB document.

There is the option of mentioning "fe80::/10", but with "Updates 4291 
section X" in the header of the 1st page.

There is the option of proving by implementation that fe80:1::1/32 on 
OCB is not harmful to others.

Each of these options has advantages and drawbacks.

Alex


> 
> -- JINMEI, Tatuya