Re: about violation of standards

Erik Kline <ek@loon.com> Wed, 24 April 2019 20:54 UTC

Return-Path: <ek@google.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 67CC1120412 for <ipv6@ietfa.amsl.com>; Wed, 24 Apr 2019 13:54:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.498
X-Spam-Level:
X-Spam-Status: No, score=-9.498 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=loon.com
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 2nfIMlAELc9d for <ipv6@ietfa.amsl.com>; Wed, 24 Apr 2019 13:54:02 -0700 (PDT)
Received: from mail-it1-x141.google.com (mail-it1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C86431203F6 for <ipv6@ietf.org>; Wed, 24 Apr 2019 13:54:01 -0700 (PDT)
Received: by mail-it1-x141.google.com with SMTP id a190so8825220ite.4 for <ipv6@ietf.org>; Wed, 24 Apr 2019 13:54:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=loon.com; s=google; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=olziaL+2ihsshTBd26sQi61ckxtpu2SupopmJsx9anc=; b=CAJrirUEYUHOwm0y7qT2HWV0IpNs0gS6VfF1cgkhoUZGl/xBBcqaBunOyj9iOhPRz9 DCmKeH/HXp1Ob8g1B11DAdQ2rMaMf9xy+6Mhi4x1/wnEu2St8Dqrl6NWkBdQKtw3UKeq /80rUAQGSjxzV1qKcLIzXCbH+8ngOzssU8yhE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=olziaL+2ihsshTBd26sQi61ckxtpu2SupopmJsx9anc=; b=B/+SjBMPUwYQZL9MyWezUChtilfyusegeLig8m/rQ3epMJZmzXWqDray96XplL4L/B ohH6ov6YnewrRN6KtY31uu2s/JHLaVnBhZgmLbyS+7cRNHBdnMUl9LcjqbAmFdcKCd0M F+mjULwpTd41u0aI6Dv9AMIXEq5jhN90MEzKvSwIFyxwmSgdabhAPrL0A6ApFIpahsMR GWIMpbmZoRKU5g7riXEYn6quKAGV3ZkLXeFZlrWefONqj8t2ScM5asX5CCdUDfxSHSn0 SEC+Q7w55CyUTz5W+aSeJQDkcpyWXom4uw29CLSxdQFd7JnZa/EYpoqikcmOAy2sK0qh ZmFw==
X-Gm-Message-State: APjAAAW2esZtnQ6j8ed1wpXQZTvSH5GY9jccHwzQ6MvGNk7gHmwdBsiP Ti4r3fUlgJj9J5PSGd5Wzi8b6FrfG8eFSurGKehqoA==
X-Google-Smtp-Source: APXvYqwAtF5AOsY9RzjGKhuZs2Q/fv/lISsIrEr4J38JiFI1kH7Ymby1bg+f0BSdcMEeM+XtVG7oNnmA4Uv0fP3lYPU=
X-Received: by 2002:a24:10c6:: with SMTP id 189mr873430ity.40.1556139240617; Wed, 24 Apr 2019 13:54:00 -0700 (PDT)
MIME-Version: 1.0
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>
In-Reply-To: <CAKQ4NaUGvPxSOAD-+FTxcq3ghUkWbOwR82G-GAG9kDCT+gBzTQ@mail.gmail.com>
Reply-To: ek@loon.com
From: Erik Kline <ek@loon.com>
Date: Wed, 24 Apr 2019 13:53:48 -0700
Message-ID: <CAAedzxo+5J=f1sf+gEJXm+aN7AJJUgasxsBd36JYm6GuuFfi=w@mail.gmail.com>
Subject: Re: about violation of standards
To: Yucel Guven <yucel.guven@gmail.com>
Cc: Alexandre Petrescu <alexandre.petrescu@gmail.com>, IPv6 <ipv6@ietf.org>, 神明達哉 <jinmei@wide.ad.jp>
Content-Type: multipart/alternative; boundary="000000000000a8e3f205874ce6e8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/J6oK7C39D22QAZfwZJLKALaMfUU>
X-Mailman-Approved-At: Wed, 08 May 2019 05:28:00 -0700
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, 24 Apr 2019 20:54:05 -0000

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:

    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.


On Wed, 24 Apr 2019 at 12:05, Yucel Guven <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> 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>> wrote:
>> >
>> >     On Thu, Apr 18, 2019 at 11:59 AM Alexandre Petrescu
>> >     <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>
>> >     Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
>> >     --------------------------------------------------------------------
>> >
>>
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> ipv6@ietf.org
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------
>