Re: about violation of standards

Alexandre Petrescu <alexandre.petrescu@gmail.com> Thu, 25 April 2019 07:35 UTC

Return-Path: <alexandre.petrescu@gmail.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 D980B120046 for <ipv6@ietfa.amsl.com>; Thu, 25 Apr 2019 00:35:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.633
X-Spam-Level:
X-Spam-Status: No, score=-1.633 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, NML_ADSP_CUSTOM_MED=0.9, RCVD_IN_DNSWL_MED=-2.3, SPF_SOFTFAIL=0.665] autolearn=no 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 MnDsYyCKb-Se for <ipv6@ietfa.amsl.com>; Thu, 25 Apr 2019 00:35:29 -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 467C3120075 for <ipv6@ietf.org>; Thu, 25 Apr 2019 00:35:29 -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 x3P7ZRet029910; Thu, 25 Apr 2019 09:35:27 +0200
Received: from pisaure.intra.cea.fr (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 3B96E20347F; Thu, 25 Apr 2019 09:35:27 +0200 (CEST)
Received: from muguet1-smtp-out.intra.cea.fr (muguet1-smtp-out.intra.cea.fr [132.166.192.12]) by pisaure.intra.cea.fr (Postfix) with ESMTP id 28FEA2032D1; Thu, 25 Apr 2019 09:35:27 +0200 (CEST)
Received: from [10.8.35.150] (is154594.intra.cea.fr [10.8.35.150]) by muguet1-sys.intra.cea.fr (8.14.7/8.14.7/CEAnet-Internet-out-4.0) with ESMTP id x3P7ZRV5010917; Thu, 25 Apr 2019 09:35:27 +0200
Subject: Re: about violation of standards
To: ek@loon.com, Yucel Guven <yucel.guven@gmail.com>
Cc: IPv6 <ipv6@ietf.org>, 神明達哉 <jinmei@wide.ad.jp>
References: <bb7f7606-2adf-e669-8bcd-e41f17800782@gmail.com> <CAJE_bqd9frqX5-yeVPj8MYXpZ4737HqK1gmfD9cQV3A-Ea5HrQ@mail.gmail.com> <CAKQ4NaWLGh3f_dN6WVNnYs9fKL8=vfpnShAK8AczPo8LE8LjFA@mail.gmail.com> <43399e1f-d60a-f678-abf3-eb69defd962c@gmail.com> <CAKQ4NaUGvPxSOAD-+FTxcq3ghUkWbOwR82G-GAG9kDCT+gBzTQ@mail.gmail.com> <CAAedzxo+5J=f1sf+gEJXm+aN7AJJUgasxsBd36JYm6GuuFfi=w@mail.gmail.com>
From: Alexandre Petrescu <alexandre.petrescu@gmail.com>
Message-ID: <3e4bb744-0f7f-f14b-cd14-6ee36c4e8947@gmail.com>
Date: Thu, 25 Apr 2019 09:35:26 +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: <CAAedzxo+5J=f1sf+gEJXm+aN7AJJUgasxsBd36JYm6GuuFfi=w@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/ipv6/sWzgmb0ujP7BxHJ4-Ls9mWvxoqM>
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, 25 Apr 2019 07:35:32 -0000


Le 24/04/2019 à 22:53, Erik Kline a écrit :
> What prevents you from adding a directly connected route to fe80:Y::/64 
> dev <ifname_with_ifindexY>?
> 
> On my Linux workstation eno1 has ifindex 2, and I tried the following:
> 
>      ip -6 route add fe80:2::/64 dev eno1
>      ip -6 route
> 
> shows: [...]

There is no error there, so it seems fe80:2::/64 works on your linux 
workstation.

For comparing to other OSs (I maintain a list: some do, some dont), can 
I dare to ask you to check on Android.  I dont have an Android at hand. 
It would be sufficient to ifconfig eth0 add fe80:2::1/64 and re-type 
ifconfig to see whether the address appears on the interface.

> 
>      fe80::/64 dev eno1 proto kernel metric 100 pref medium
>      fe80:2::/64 dev eno1 metric 1024 pref medium
> 
> I then continued with:
> 
>      ip -6 addr add fe80:2::345/64 dev eno1 noprefixroute
>      ip -6 addr
> 
> shows:
> 
>      inet6 fe80:2::345/64 scope link noprefixroute
>         valid_lft forever preferred_lft forever
>      inet6 fe80::5bcb:c30c:c5e0:d3cf/64 scope link noprefixroute
>         valid_lft forever preferred_lft forever
> 
> and finally:
> 
>      ip -6 route get fe80:2::123
> 
> shows:
> 
>      fe80:2::123 from :: dev eno1 proto kernel src fe80:2::345 metric 
> 100 pref medium
> 
> so source address selection seems to be working as I would want it to in 
> this situation.
> 
> I'm not sure what other tests to run, but it seems like you can 
> certainly add fe80:ifindex::/64 routes to each separate device and 
> manually add your IP addresses as you wish...as least with recent Linux.

YEs, I agree.  In that way maybe some kind of waste may be avoided. (the 
waste of the 54 0 bits, if I can say so).

Alex

> 
> 
> On Wed, 24 Apr 2019 at 12:05, Yucel Guven <yucel.guven@gmail.com 
> <mailto:yucel.guven@gmail.com>> wrote:
> 
>       Yes, it is:  64 - 10 = 54, and 2^54= 18,014,398,509,481,984
>     prefixes, not even 2^48.
> 
>       Too much space is allocated/reserved. That's what I think.
> 
>       Wasted or not is a different seperate subject, time will show the
>     answer.
> 
>       I can not know what the writers of RFC4291 thought or design or plan.
>       I'm sure they made much more detailed calculations.
> 
>       What I clearly understand is that first 10 bits are fixed, and 54
>     bits are 0,
>       and using fe80:1::2 on an interface does not comply with it.
> 
>       We should be open to the discussion of updating 4291, that's why
>     we have draft docs.
> 
> 
>     On Wed, Apr 24, 2019 at 4:42 PM Alexandre Petrescu
>     <alexandre.petrescu@gmail.com <mailto:alexandre.petrescu@gmail.com>>
>     wrote:
> 
> 
> 
>         Le 22/04/2019 à 18:37, Yucel Guven a écrit :
>          >
>          > Hi Jinmei Tatuya,
>          >
>          >  > This logic doesn't make sense to me at all.  There was a
>         very widely used
>          >  > implementation of commercial router (I don't name it as
>         it's not my
>          >  > purpose to pick a particular vendor) that forwarded an
>         IPv6 packet
>          >  > whose source address is link-local from one link to
>         another link,
>          >  > instead of returning an ICMPv6 destination unreachable
>         error, code 2,
>          >  > as specified in RFC4443.
>          >
>          > That is very interesting point indeed.
>          > Do you mean that billions of people's data,
>         information, etc....etc...
>          > from their Link-locals
>          > can easily be routed to somewhere that no one knows? Just
>         because of
>          > "that vendor" (or vendors?)
>          > If that's the case, I really wonder about what can be done
>         with "127.0.0.1".
>          >
>          > Anyways, my concern is about huge amount of addresses of the
>         fe80::/10.
> 
>         I do not understand the concern.
> 
>         Is the concern that too much space is allocated by fe80::/10?
> 
>         Or is the concern that too much space is wasted between
>         fe80::/10 and
>         fe80::/64?
> 
>         I know that talking about numbers, and about waste, is a
>         doubly-edged
>         sword: one can claim either fe80::/10 or fe80::/64 is a waste.
> 
>         Alex
> 
>          > There are 281,474,976,710,655 =  281 Trillion 474 Billion 976
>         million
>          > 710 Thousand 655 addresses
>          > in between  fe80:0:0:0::/64  and fe80:ffff:ffff:ffff::/64.
>          > If we just take  fe80:1::/32 or /64, then it breaks RFC4291
>         due to 54 zeros.
>          >
>          > Is it right time to modify RFC4291?
>          >
>          >
>          >
>          >
>          >
>          >
>          >
>          > On Thu, Apr 18, 2019 at 11:03 PM 神明達哉 <jinmei@wide.ad.jp
>         <mailto:jinmei@wide.ad.jp>
>          > <mailto:jinmei@wide.ad.jp <mailto:jinmei@wide.ad.jp>>> wrote:
>          >
>          >     On Thu, Apr 18, 2019 at 11:59 AM Alexandre Petrescu
>          >     <alexandre.petrescu@gmail.com
>         <mailto:alexandre.petrescu@gmail.com>
>         <mailto:alexandre.petrescu@gmail.com
>         <mailto:alexandre.petrescu@gmail.com>>>
>          >     wrote:
>          >
>          >      >    In private conversation this debate happened:
>          >
>          >      >    is an implementation that uses fe80:1::2 address on
>         an interface a
>          >      >    violation of standards? (RFC 4291 does not allow
>         for '1' to be
>          >     there).
>          >
>          >      >    My point of view is that as long as that
>         mplementation is
>          >     widely used,
>          >      >    that is not a violation of standards.  Rather, the
>         situation
>          >     makes it
>          >      >    that that standard is not in agreement with
>         implementations..
>          >
>          >     This logic doesn't make sense to me at all.  There was a
>         very widely
>          >     used
>          >     implementation of commercial router (I don't name it as
>         it's not my
>          >     purpose to pick a particular vendor) that forwarded an
>         IPv6 packet
>          >     whose source address is link-local from one link to
>         another link,
>          >     instead of returning an ICMPv6 destination unreachable
>         error, code 2,
>          >     as specified in RFC4443.  According to that logic, this
>         implementation
>          >     would be considered not violating the RFC "because it's
>         widely used";
>          >     most people call it an implementation bug.
>          >
>          >     Regarding Linux, I'd note that link-local addresses are
>         automatically
>          >     generated by the system, and the generated address
>         conforms to the
>          >     format specified in Section 2.5.6 of RFC4291.  More
>         specifically, its
>          >     intermediate 54 bits are all set to 0.  Plus, as far as I
>         know, the
>          >     vast majority of people never bother to change the
>         auto-generated
>          >     link-local addresses.  In that sense the use of addresses
>         like
>          >     "fe80:1::2" are not really widely used, even if the
>         implementation
>          >     that allows its users to manually configure such
>         addresses is widely
>          >     used.
>          >
>          >     Almost any implementation has some weapon that allows its
>         user to
>          >     shoot their feet, often violating protocol standards.  An
>         extreme case
>          >     is a tool like bpf, with which you can send out almost
>         any broken
>          >     packets to the wire.  BPF is widely used tools, but as
>         far as I know
>          >     no one uses the existence of that tool to justify the
>         violation of the
>          >     standard.
>          >
>          >     Now, I'm open to the discussion of possibly updating
>         RFC4291 to allow
>          >     non-0 value in the intermediate 54-bit field, starting
>         from the fact
>          >     that it currently violates the standard.  But I don't buy
>         an argument
>          >     that a behavior against the current standard is not a
>         violation simply
>          >     because there's a system utility of a widely used OS that
>         allows that
>          >     particular behavior.
>          >
>          >     --
>          >     JINMEI, Tatuya
>          >   
>           --------------------------------------------------------------------
>          >     IETF IPv6 working group mailing list
>          > ipv6@ietf.org <mailto:ipv6@ietf.org> <mailto:ipv6@ietf.org
>         <mailto:ipv6@ietf.org>>
>          >     Administrative Requests:
>         https://www.ietf.org/mailman/listinfo/ipv6
>          >   
>           --------------------------------------------------------------------
>          >
> 
>     --------------------------------------------------------------------
>     IETF IPv6 working group mailing list
>     ipv6@ietf.org <mailto:ipv6@ietf.org>
>     Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
>     --------------------------------------------------------------------
>