Re: [v6ops] I-D Action: draft-buraglio-v6ops-ula-01.txt

Ed Horley <ed@hexabuild.io> Mon, 16 May 2022 19:02 UTC

Return-Path: <ed@hexabuild.io>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 988CDC26D460 for <v6ops@ietfa.amsl.com>; Mon, 16 May 2022 12:02:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.642
X-Spam-Level:
X-Spam-Status: No, score=-0.642 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, NUMERIC_HTTP_ADDR=1.242, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hexabuild-io.20210112.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZES3EkcF3DIg for <v6ops@ietfa.amsl.com>; Mon, 16 May 2022 12:02:21 -0700 (PDT)
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB271C26D45A for <v6ops@ietf.org>; Mon, 16 May 2022 12:01:52 -0700 (PDT)
Received: by mail-lf1-x134.google.com with SMTP id i10so27415742lfg.13 for <v6ops@ietf.org>; Mon, 16 May 2022 12:01:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hexabuild-io.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rybk3WOn/a+dedqGvXkA1+OwmI2jzbD2fS7w1jczDxA=; b=fi/nquOQ6hRtVqodhHB/aLf95VUpkTtbc973s9EFguBiHWkysQYrgH8KFfPnZEdVCe nd2mgZtJrH1tnBbPeZeGvmbqiX87vILFpxLM1iQm38D2FyhcOkYY9nPxhIxS7whm+z1S WzpT/pKBZ4dcDNK2moUywa0TPHwXWTG1piuHxJd+zc06sy+WtleExwjtSE3LIv7RL2Pu V+I9xftRa8r6OqGfVUbYAksNIrrGvNvGx0uqO6x0zxyE7GfDnZwzMrBvAi45t8/gI3D7 1qjuuRF8yuqH0t8uYQj393Hix2iNbV65EfDTTFsni53BfNuil7AS+guCCEG+zEucEmuP fAfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rybk3WOn/a+dedqGvXkA1+OwmI2jzbD2fS7w1jczDxA=; b=3Wo77XGuyRaPESMoFhdJ2o1os+HleudgHhrjDjDHpD/TU4/X+LT2U9ajI6figOZzUP Qw+EDyzTqt3sn12MdfS/bHrAvAe8klDVKX4eal92/68efKLs9MvQ+blh5QzlJnU/ycbD k5KSk+/sys1RjVntFJd6MqyBsB4Q/2I16pHQddVXKjYogYiWj/V+uQRe7TKhyYRRH4Dx Qpm3Flmdl4NpxQhRJRRT8A5e9eIvpDOemei82OXnUDZtHJ+RnR9164ZiZVzL686a5XW4 gqmMtuo2pBFFupvMqbsaAyaB9uE2HvjkYxGkZAFlF5o4VPIkG8NZJi0BCGNxS6naciif 7a3w==
X-Gm-Message-State: AOAM530Dp18l43nEZO6WcoFbJRLAtfYGA7NCHBDSSmmDdP3osWGdz+7h SsPDW7ny/vxk/piebuttYyDLxfpckolECnJLSooQ6g==
X-Google-Smtp-Source: ABdhPJyT1ogkzelGy87cUbN5ZKUVm8ymF2J8oppoBwJ8dZtBCOpHUdUgng/No+/7m8IRmn5ZEfWSrT9v9sWAgtVmTRs=
X-Received: by 2002:a19:671e:0:b0:471:fe47:4588 with SMTP id b30-20020a19671e000000b00471fe474588mr14199471lfc.476.1652727710691; Mon, 16 May 2022 12:01:50 -0700 (PDT)
MIME-Version: 1.0
References: <165064500009.9969.16134230557484818454@ietfa.amsl.com> <87aa5bcf-05cf-d170-1efb-d9caa6b48e6c@gmail.com> <CAM5+tA8P1iSwYArY_Qch=AiA4kw7m=ajHjKjeB5KmHgbeU8MHg@mail.gmail.com>
In-Reply-To: <CAM5+tA8P1iSwYArY_Qch=AiA4kw7m=ajHjKjeB5KmHgbeU8MHg@mail.gmail.com>
From: Ed Horley <ed@hexabuild.io>
Date: Mon, 16 May 2022 12:01:39 -0700
Message-ID: <CAE=N4xecVTZL5dGwn4pQNtkubE_Y4a6dFdD4Wx5MCYX7yWUA8A@mail.gmail.com>
To: Nicholas Buraglio <buraglio@es.net>
Cc: Brian E Carpenter <brian.e.carpenter@gmail.com>, IPv6 Operations <v6ops@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000001b4dc105df25a870"
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/9Jz2kvZfe8Ml_W8p5ura0GKB-7g>
Subject: Re: [v6ops] I-D Action: draft-buraglio-v6ops-ula-01.txt
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 May 2022 19:02:25 -0000

I was curious what the process is for moving this to v6ops WG draft? I know
several folks have requested this, sorry for my ignorance on the matter. I
feel it wouldn't it make sense to get that done given that Brian and others
are working on issues for RFC 6724 and there seems to be more discussion
around the ULA topic in general. Thoughts?
- Ed

On Tue, May 10, 2022 at 9:01 AM Nick Buraglio <buraglio@es.net> wrote:

> I added some additional verbiage based on your suggestions and addressed
> the NIT.
>
> nb
>
> On Sun, May 8, 2022 at 6:23 PM Brian E Carpenter <
> brian.e.carpenter@gmail.com> wrote:
>
>> Hi,
>>
>> Thanks for this draft. I have a few comments (and a tiny nit at the end).
>>
>> >  The core issue is the stated interpretation from gai.conf that has the
>> following default:
>> >
>> > #scopev4  <mask> <value>
>> > #    Add another rule to the RFC 6724 scope table for IPv4 addresses.
>>
>
>> I'm not sure why this matters. RFC6724 is quite correct to indicate that
>> most IPv4 unicast addresses formally have global scope, but auto-config
>> and loopback addresses have link-local scope. IPv6 is pretty much the
>> same, and in particular ULAs have *global scope* even though they are
>> not globally reachable. RFC1918 addresses are identical to ULAs in
>> that respect.
>>
>> Citing RFC4291 and
>> https://www.rfc-editor.org/rfc/rfc8190.html#section-2.1
>> would clarify the difference between global scope (architectural) and
>> globally reachable (practical). What we care about here is whether an
>> address is globally reachable ("no" for both RFC1918 and ULA, although
>> they are both architecturally global). Unfortunately this distinction is
>> lacking in the description of gai.conf and, I suspect, in the code of
>> Linux getaddrinfo().
>
>
>> What I think is lacking in the draft is an explanation of how
>> getaddrinfo() works and why it matters. Here's a walkthrough that
>> I hope will help clarify what I mean:
>>
>> Consider an end-user network with the following properties:
>>
>> It is dual stacked.
>> It uses 10.1.0.0/16
>> <https://streaklinks.com/BCrgR95yMi36cGo4vgrfW-nn/http%3A%2F%2F10.1.0.0%2F16>
>> (NATted to the Internet).
>> It uses (or wants to use)  fdee:face:fade::/48 for internal IPv6.
>> It uses 2001:db8:fade::/48 for external IPv6
>>
>> We'll neglect for now whether it has a subnet structure. It shouldn't
>> matter.
>>
>> Consider a host user.mynet.example.com, a local server
>> printer.mynet.example.com,
>> and a remote server www.theirnet.example.com. Assume they have these
>> various
>> addresses:
>>
>> user.mynet.example.com has:
>>
>> 10.1.0.1
>> fdee:face:fade::1
>> 2001:db8:fade::1
>>
>> printer.mynet.example.com has:
>>
>> 10.1.0.10  (A record in local DNS)
>> fdee:face:fade::a  (AAAA record in local DNS)
>>
>> www.theirnet.example.com has:
>>
>> 192.0.2.15  (A record in global DNS)
>> 2001:db8:cafe::f  (AAAA record in global DNS)
>>
>> What do we *want* to happen?
>>
>> If user opens a connection to printer, we want it to choose
>> SA = fdee:face:fade::1
>> DA = fdee:face:fade::a
>>
>> If user opens a connection to www, we want it to choose
>> SA = 2001:db8:fade::1
>> DA = 2001:db8:cafe::f
>>
>> Now, if user does a DNS lookup, via getaddrinfo(), the results
>> will look like this (in the Python universe):
>>
>> For printer:
>>
>> (<AddressFamily.AF_INET: 2>, 0, 0, '', ('10.1.0.10', 0))
>> (<AddressFamily.AF_INET6: 23>, 0, 0, '', ('fdee:face:fade::a', 0, 0, 0))
>>
>> For www:
>>
>> (<AddressFamily.AF_INET6: 23>, 0, 0, '', ('2001:db8:cafe::f', 0, 0, 0))
>> (<AddressFamily.AF_INET: 2>, 0, 0, '', ('192.0.2.15', 0))
>>
>> At this point, consider what RFC6724 says:
>>
>>     As a consequence, we intend that implementations of APIs such as
>>     getaddrinfo() will use the destination address selection algorithm
>>     specified here to sort the list of IPv6 and IPv4 addresses that they
>>     return.  Separately, the IPv6 network layer will use the source
>>     address selection algorithm when an application or upper layer has
>>     not specified a source address.
>>
>> Thus, to get the desired behaviour, what matters is destination
>> address selection: if we select DA = fdee:face:fade::a, then the
>> ULA source address will follow.
>>
>> Of course this is a small matter of programming, and most programmers
>> just pick the first address. That's why we need the Section 10.6
>> mechanism of RFC6724, to insert an appropriate precedence like
>>
>>     fdee:face:fade::/48 45 14
>>
>> which will prioritize local use of ULAs but will change nothing
>> for off-site access.
>>
>> At that point in my thinking, I started coding the program that
>> I posted yesterday.
>>
>> Nit:
>>
>> s/gai.cnf/gai.conf/
>>
>> Regards
>>     Brian
>>
>> _______________________________________________
>> v6ops mailing list
>> v6ops@ietf.org
>> https://www.ietf.org/mailman/listinfo/v6ops
>>
> ᐧ
> _______________________________________________
> v6ops mailing list
> v6ops@ietf.org
> https://www.ietf.org/mailman/listinfo/v6ops
>


-- 
Ed Horley
ed@hexabuild.io | (925) 876-6604
Advancing Cloud, IoT, and Security with IPv6
https://hexabuild.io
And check out the IPv6 Buzz Podcast at
https://packetpushers.net/series/ipv6-buzz/