Re: Globally Unique Link Local Addresses (Re: about violation of standards)

Mark Smith <markzzzsmith@gmail.com> Wed, 24 April 2019 10:30 UTC

Return-Path: <markzzzsmith@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 C4987120259 for <ipv6@ietfa.amsl.com>; Wed, 24 Apr 2019 03:30:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.497
X-Spam-Level:
X-Spam-Status: No, score=-1.497 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, FROM_LOCAL_NOVOWEL=0.5, HK_RANDOM_ENVFROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 keIdinYYRwTX for <ipv6@ietfa.amsl.com>; Wed, 24 Apr 2019 03:30:10 -0700 (PDT)
Received: from mail-ot1-x344.google.com (mail-ot1-x344.google.com [IPv6:2607:f8b0:4864:20::344]) (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 DC4CE12023C for <ipv6@ietf.org>; Wed, 24 Apr 2019 03:30:09 -0700 (PDT)
Received: by mail-ot1-x344.google.com with SMTP id t8so15649520otp.7 for <ipv6@ietf.org>; Wed, 24 Apr 2019 03:30:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tc3EBLuQXajHn6sJFYuA7m9Ly58fHISg26/Roehs40c=; b=IX6yqjfym+z8P0O95pVrUyi3R+tQIg3I/10yMNoeG/z9j8DBaTry05hJymu6PKT4FA HmMe4efKH3pFyIekp6djZttRLoZwj+xT/d8ihWwQUpA+37oiuXfKwhxb0+m63bJX2gFK S2pBu8YFdWaqQdGJvS3pHROAyTNGt5vlMMl9izxAOIxehq+4uBV8SSOQdaozTLNe3i8I 9R4zRrxK0cI3H0yVbuK8qzYO6OlZ0c7kcMFGNjvnLxVSh6cADjR2awgZzfaLDFQgjlzG bQ94B/ck909nQNrWjR5Fup148LbvGQlM5Lizm79Wqe4MypjSY90boNygH52OpMHqfbbG uWtg==
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:from:date :message-id:subject:to:cc; bh=tc3EBLuQXajHn6sJFYuA7m9Ly58fHISg26/Roehs40c=; b=A4i72VEZWWNGp4/4qakw7BQJAJPPaBYt65vDmKxuTcWag2R1qXT/rUVzE2/+LT1en4 zkfIYFGEgmI87ZTTNdeikgBZq4257CDbIIsokwtzRU66JaDJo/r8YY3xcQeu6Yv2uzeD DakpytYwUDt8qMczoNQ5Ks0M2E6B2Fcc6n71Kwr2LOd2Q7b6bpIe2k4Es8oWZ3rtEA5Y qmXhxZfio/v46Sjyg7TWKlnoIvB9fXL+oSLyt9f7R2QsHU7JLC0BBzQocdaopcnPvRVG RFW/8Ex/oXQ4idrpbCZOHK3GYQWppQhNrTSg4bNzjARU51PhsFMtNY+HfGeCEISM0z48 fNtQ==
X-Gm-Message-State: APjAAAUNiwCc3vP4y7C378KdIkydS36/XwNJnAShcV5wmKXQXZy25aX7 vfzFPzTc2i6w8NLEPG3Cuvb2eIXLBJXGeVW+sfM=
X-Google-Smtp-Source: APXvYqykyfgfoI7XZl3Y7XkY9tTajf6QEBRrGfhtk/UZugUfnG2JH72BIrAQblPPYu4btkKxqWiymZS2kIWowKMGr2k=
X-Received: by 2002:a9d:7095:: with SMTP id l21mr19593808otj.35.1556101809175; Wed, 24 Apr 2019 03:30:09 -0700 (PDT)
MIME-Version: 1.0
References: <bb7f7606-2adf-e669-8bcd-e41f17800782@gmail.com> <CAJE_bqd9frqX5-yeVPj8MYXpZ4737HqK1gmfD9cQV3A-Ea5HrQ@mail.gmail.com> <6bd5db47-408a-727e-5c13-f34a3465f986@si6networks.com> <CAJE_bqfTLqRbLp4fLu2ASZuZ+4G5c2G+RXkO92kXfLgPTqBnng@mail.gmail.com> <EEF00EA7-2AAF-403F-99AD-1D53ED18E8B3@cisco.com> <47631828-121F-402D-8165-969684C1101B@employees.org> <CAO42Z2wbq=8f6FfR7DoOOFrY7B5puxS26Dk+SsM71Pk7y03ipQ@mail.gmail.com> <afa6e0e2-0a31-53f0-0f41-5e24c81405da@gmail.com> <CAO42Z2zoQtAqzT+v2XYequuWysrLo+WOG8Ou=asRMakQHuS-Pg@mail.gmail.com> <CAJE_bqcJZxWd1ZH8u0rqK5PfwNK9qqmw9O-7=u6Tpu_UTF7-Aw@mail.gmail.com> <CAO42Z2wimfJexfUfs+mfo6Cs8simv9XyTqCaU49VDaSqBG-BxQ@mail.gmail.com> <887AC8E6-2955-4AB0-9F9E-A20BC93E098C@isc.org>
In-Reply-To: <887AC8E6-2955-4AB0-9F9E-A20BC93E098C@isc.org>
From: Mark Smith <markzzzsmith@gmail.com>
Date: Wed, 24 Apr 2019 20:29:57 +1000
Message-ID: <CAO42Z2ywLQawBsW9pT-=SX98QyVWsU3pdCHWzgmWwGVTSwNdcw@mail.gmail.com>
Subject: Re: Globally Unique Link Local Addresses (Re: about violation of standards)
To: Mark Andrews <marka@isc.org>
Cc: 神明達哉 <jinmei@wide.ad.jp>, Fernando Gont <fgont@si6networks.com>, "Pascal Thubert (pthubert)" <pthubert@cisco.com>, 6man WG <ipv6@ietf.org>, Alexandre Petrescu <alexandre.petrescu@gmail.com>
Content-Type: multipart/alternative; boundary="0000000000009201790587442f82"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/kJEUrvEZobBTWayGIIhSdV8OjV4>
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 10:30:12 -0000

On Wed., 24 Apr. 2019, 16:04 Mark Andrews, <marka@isc.org> wrote:

> getaddrinfo() does in most implementations as it returns a pointer to a
> struct sockaddr_in6 which have a sin6_scope_id field.  inet_pton() deals
> with the part to the left of the % symbol.
>


I was more thinking about scenarios where only an address is expected to be
supplied, so there would not be a need for a DNS lookup.

So it wouldn't and didn't occur to me to use getaddrinfo() just for the
purpose of converting an LL address % string into a sockaddr_in6 structure.

LL addresses not being useful to applications if stored in unicast DNS,
because of the absent necessary zone info in a AAAA response, also means
getaddrinfo() doesn't sound like the right thing to use.



> From various getaddrinfo man pages.
>
> MacOS:
>
>      This implementation of getaddrinfo() allows numeric IPv6 address
> notation
>      with scope identifier, as documented in section 11 of RFC 4007.  By
>      appending the percent character and scope identifier to addresses, one
>      can fill the sin6_scope_id field for addresses.  This would make
> manage-
>      ment of scoped addresses easier and allows cut-and-paste input of
> scoped
>      addresses.
>
>      At this moment the code supports only link-local addresses with the
> for-
>      mat.  The scope identifier is hardcoded to the name of the hardware
>      interface associated with the link (such as ne0).  An example is
>      ``fe80::1%ne0'', which means ``fe80::1 on the link associated with the
>      ne0 interface''.
>
>      The current implementation assumes a one-to-one relationship between
> the
>      interface and link, which is not necessarily true from the
> specification.
>
> Linux:
>      Notes
>
>      getaddrinfo() supports the address%scope-id notation for specifying
> the IPv6
>      scope-ID.
>
>
> Mark
>
> > On 24 Apr 2019, at 3:12 pm, Mark Smith <markzzzsmith@gmail.com> wrote:
> >
> >
> >
> > On Wed., 24 Apr. 2019, 14:01 神明達哉, <jinmei@wide.ad.jp> wrote:
> > At Wed, 24 Apr 2019 13:28:48 +1000,
> > Mark Smith <markzzzsmith@gmail.com> wrote:
> >
> > > However, the drawback of using LL addresses is that each application
> > > has to be written to specifically handle them viasin6_scope_id.
> >
> > This is not entirely accurate.  Section 11 of RFC 4007 exists exactly
> > for this purpose.  And, in fact, applications like ssh can perfectly
> > work for a link-local destination even on a multi-link host even if
> > the application (ssh client) doesn't do anything special for
> > link-local address:
> >
> > % ssh fe80::1%lo0 'echo ok'
> > ok
> >
> >
> > So what Sockets API function converts "fe80::1%lo0" into a populated
> sockaddr_in6 structure including sin6_scope_id?
> >
> > inet_pton() only deals with and returns addresses, so it seems you have
> to write additional special case code that handles the % zone suffix.
> >
> >
> > It's true that *some* applications may still need to handle link-local
> > addresses as a special case, though.
> >
> > > I understand that one of the motivations for Link-Local addressing was
> > > the "dentist's office" scenario i.e. non-technical, plug and play, "it
> > > just works" networking. Having to have specially adapted applications
> > > to suit that that scenario is pretty contradictory to that goal.
> >
> > I wouldn't expect a dentist to type in a textual link-local address
> > (or for that matter, perhaps any textual IPv6 address) anyway.
> >
> > So my thoughts have been that things like MDNS would also return the
> zone information for a LL address to the resolver, although I haven't
> looked into whether it does or not.
> >
> > I still see that it would be simpler if interface or zone information
> was effectively embedded in the LL address, as it is in GUA and ULA
> addresses, using the, transparent to the application, node's route table to
> resolve and determine the ingress/egress network link interface.
> >
> >
> >   In
> > this context it's more about a higher level problem than
> > scope-awareness of the application.  It would have to use some kind of
> > zero-config service discovery library with sophisticated user
> > interface.  That "library" may have to be aware of the concept of
> > scoped addresses more explicitly, but the application would be more
> > likely to be agnostic about it.
> >
> > --
> > JINMEI, Tatuya
> > --------------------------------------------------------------------
> > IETF IPv6 working group mailing list
> > ipv6@ietf.org
> > Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> > --------------------------------------------------------------------
>
> --
> Mark Andrews, ISC
> 1 Seymour St., Dundas Valley, NSW 2117, Australia
> PHONE: +61 2 9871 4742              INTERNET: marka@isc.org
>
>