Re: [IPv6] Second Working Group Last Call for <draft-ietf-6man-rfc6724-update>

Ted Lemon <mellon@fugue.com> Mon, 15 April 2024 17:33 UTC

Return-Path: <mellon@fugue.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 4C594C14CF1B for <ipv6@ietfa.amsl.com>; Mon, 15 Apr 2024 10:33:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.898
X-Spam-Level:
X-Spam-Status: No, score=-6.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fugue-com.20230601.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 VGAY7Q8o29iC for <ipv6@ietfa.amsl.com>; Mon, 15 Apr 2024 10:33:27 -0700 (PDT)
Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com [IPv6:2607:f8b0:4864:20::82b]) (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 7A66AC14F74E for <ipv6@ietf.org>; Mon, 15 Apr 2024 10:33:27 -0700 (PDT)
Received: by mail-qt1-x82b.google.com with SMTP id d75a77b69052e-434b7ab085fso39770991cf.1 for <ipv6@ietf.org>; Mon, 15 Apr 2024 10:33:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20230601.gappssmtp.com; s=20230601; t=1713202406; x=1713807206; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FteZnkUObsrpO3k0mx9RUaw6Lhd43GyCGHceVR2CpM4=; b=Mbo/0Wk7ngJiC387YOYrpRfXy2iCYRR4v8CGEeeksBCffnSmo+nh8aD9OwJzyoEn8e 6S5Jy8VHOx3ufEBfNehD/UX+WE4BoYURpLx8GQ91QtA+pdxc1JIY6dRfIKcd0bgBLngx XHO1Udn2IgD+sBKJAPkpifjaWD5PWSIhr78h21OP2+eRv2vom7pqfl7xOeLkMmXvaAHl njR85AeMYpcs0VTsReWo0voIop9Bgj5J/dZuoSAFQZ9p3hO3lqnCQOuk3e1iTgtQiWmR deACdrELr4BdJfSgtcLoUbDJ8nBR2/UCaqi5f4qFpKVVPkWCdBJXwy7xbnu7jUtFq//m nIKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713202406; x=1713807206; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=FteZnkUObsrpO3k0mx9RUaw6Lhd43GyCGHceVR2CpM4=; b=TVWXnlb0dICOmQfbgOebU87/F7AOX42l5sIpHYiN92+j/h6SDQk+z2+JTE+LcZUzMq 7PzJaViphnYKV48AaJ2ac1EL6SeZcXWaedH1jkRtaiabW5a+LlZMVbc+J6qQKwKKXto5 bGSzpyLT/2bHVVeZ5CnVztQpq1U9WhJbajR2EHZ8PpDmfWwsau7ofvL78ccHe/KnfoVP /STO2cCJVhGwr9wlXwc3z4j+lftRPjijd2f+P2nGC0v1j0R1hu8k/lsk8sQ1cLJYysgC omgCsSPw8fT/NdWKlFZdGk/5kB32W87oCcb/vedEnn6a0F78tn5wXi1+XRpIbCc6XioR tC/w==
X-Forwarded-Encrypted: i=1; AJvYcCWCJrP9pN30vUt2Fzht5amtfmTntfs9n/3LVfTKFElW+E66xu/jFeijQnTeKgT00RU93IDLCk9hm789q/Sh
X-Gm-Message-State: AOJu0Yz/7hYMEAdldGKQkYDSanPfas38+bhwJHZtvqzmNy3Ea4Q2fP5w 6NfXX6nG4LUGfs3vaRiQTo5SLDfPkdvcPaMuMQdMpfklvGg1VPXUpkGQkL3Zsrw/N4pQPS9F/Nm tLoDr/Tl3CFmLHlAkGQ6nV01sOH+gAKQI0hH5NA==
X-Google-Smtp-Source: AGHT+IE8y4Y6yLXdom5TweLF6x81SZxbrSc9FnKLi3KokqNDTn/2HlJstANAPPeH1Aa5rM/X10EsYQguu+ydKfFgG88=
X-Received: by 2002:a0c:fe46:0:b0:69b:7dbe:113b with SMTP id u6-20020a0cfe46000000b0069b7dbe113bmr588032qvs.24.1713202406056; Mon, 15 Apr 2024 10:33:26 -0700 (PDT)
MIME-Version: 1.0
References: <6A5E5F35-B35F-4358-8EE1-3BD82329141E@jisc.ac.uk> <6FBC1B5A-BF28-4B05-B2B2-A60DA4707755@gmail.com> <CAPt1N1m-Ye8vfOVnsPesFshLMV5QuVoxWqM=HVZiJ37zaBg6AA@mail.gmail.com> <CAKD1Yr1NTvFj0zB0=+nnUKck7TBtwHFz2XoFkD1smx4yCuZohQ@mail.gmail.com> <1EFB11CD-544F-4AD7-B414-6A626075975D@employees.org> <CAPt1N1kJFgu6FhFaVhhkPnEY2dofcLF2ZuKDBHJFF5UU6R+x2g@mail.gmail.com> <F301BC19-2D6D-42F5-9C94-0516A765B97C@jisc.ac.uk> <CAPt1N1k4FGbTVVk1QTw0-or0PxkhSPqGda8fHrJKb2t4shNGkw@mail.gmail.com> <CFFA3926-583D-4DA0-B981-3D58048DE894@jisc.ac.uk> <CAJU8_nXpC4ZmcbpuVoTxykf2KEO1zpdThA=VQKM8iXRjTAgHiQ@mail.gmail.com> <CAPt1N1mGn2E2-d9PkvTWePSPUkVik7UO-75ryTa2EkjfR_4ZmQ@mail.gmail.com> <CAJU8_nXXSsJa6ycMZuSmTeNoma1HrBdQ5bD1feb7DDDK5b_dVA@mail.gmail.com>
In-Reply-To: <CAJU8_nXXSsJa6ycMZuSmTeNoma1HrBdQ5bD1feb7DDDK5b_dVA@mail.gmail.com>
From: Ted Lemon <mellon@fugue.com>
Date: Mon, 15 Apr 2024 13:32:49 -0400
Message-ID: <CAPt1N1mESFzHsK3XyE8DD_mhZjWvMuh=pf9RMmT6BgyO6LryWQ@mail.gmail.com>
To: Kyle Rose <krose@krose.org>
Cc: Tim Chown <Tim.Chown=40jisc.ac.uk@dmarc.ietf.org>, Bob Hinden <bob.hinden@gmail.com>, Lorenzo Colitti <lorenzo=40google.com@dmarc.ietf.org>, 6man WG <ipv6@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000d780ab06162604dd"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/iC6YupwOO9kXopmSGSVcS7cEIIg>
Subject: Re: [IPv6] Second Working Group Last Call for <draft-ietf-6man-rfc6724-update>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.39
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: Mon, 15 Apr 2024 17:33:28 -0000

First of all, remember that the point of this is to improve the behavior of
the stack. What we have works now, but has some issues we want to resolve.
We do not need to achieve perfection here—we just need to make things
better than they were.

Regarding your VPN setup, I would expect one of two things to be true:
either the VPN is giving the device connecting through it a prefix on the
known ULA, or it doesn't expect the device to try to use the ULA, and hence
it should not be treated as known. If there are cases where it's expected
that some other ULA on the known-ULA list would work as a source address in
communicating with the ULA from which no source address configuration is
provided, then the VPN configuration could include that ULA prefix as
"known." This seems straightforward and not experimental. Of course it
would require some work in the stack.

As for the table size question, your VPN setup seems unusual and extreme.
Is this a real use case, or something you pulled out of your hat? I think
it's perfectly reasonable to have three /48s in your known-ULA table, but I
agree that hosts shouldn't have to support arbitrarily large ULAs. The
question I have is, when does this happen in practice? Given how ULAs are
allocated, we can't expect an enterprise that needs more than a /48 to be
able to aggregate, but how often is it the case that we need ULA<->ULA to
work well for multiple /48s? What is the downside to it not working well?

If your point is that there are still unknowns here, I think you're right;
my point in saying that this problem is well-understood is that for most
use cases, it really is. There are of course some cases where we will need
different behavior that is as-yet undescribed. I will point out though that
the worst-case scenario is that a particular enterprise just declares all
of fc00::/6 to be "known-local" and then gets the behavior we all
previously agreed was "good enough." This can already be accomplished (in
our proposed model) by publishing an RIO for fc00::/6 in addition to the
default route.

On Mon, Apr 15, 2024 at 12:19 PM Kyle Rose <krose@krose.org> wrote:

> I have a mesh VPN connecting three sites. RAs in each site advertise their
> own site ULA prefix, along with a default v6 route that works for both GUA
> and ULA. A site's router itself has v6 routes over the VPN to each of the
> other sites, but the other devices on each network are oblivious to those
> prefixes being local or not, or indeed what "local" even means. Their
> ULA/ULA traffic does wind up transiting the VPN when addressed to prefixes
> from other sites, which is precisely what I want.
>
> What mechanism exactly would cause these prefixes to be regarded as
> known-local?
>
> Moreover, this seems to imply that attached devices need state space and
> management to scale with the number of sites, akin to source routing,
> rather than having the same property most devices on the Internet have,
> which is to have a single default route and to let the network get the
> packet to the right destination.
>
> (Finally, I'll note that my site has a catch-all firewall role to
> ICMP-reject packets sent to unroutable ULA prefixes, which partly solves
> the problem of ULA in global DNS, at least for applications that can
> mitigate by falling back to a different address pair. I might also try to
> figure out a way to have my recursive filter ULA AAAA records from external
> sources, since I can think of no legitimate reason my devices would want to
> see them, anyway.)
>
> Kyle
>
> On Mon, Apr 15, 2024, 11:58 AM Ted Lemon <mellon@fugue.com> wrote:
>
>> I think we've already clearly defined what it means for a prefix to be
>> "known-local." Possibly the document needs to be updated to make it more
>> clear. But this isn't a situation where we're speculating. We know how to
>> determine that a prefix is local. Of course we could add more mechanisms
>> for doing so, but realistically RA and DHCP are the ways it's going to
>> happen, so we don't have a difficult bit of text to write. If we think that
>> RA and DHCP aren't adequate to the task, that's a case to be made, but I
>> think they are, and I haven't see any non-hand-wavey argument to the
>> contrary.
>>
>> On Mon, Apr 15, 2024 at 11:24 AM Kyle Rose <krose@krose.org> wrote:
>>
>>> This:
>>>
>>> Well, if we agree to the MUST (with the usual caveat of any IETF ‘MUST’
>>>> for an implementor :) then we need to review the rest of the text, which
>>>> would include the default policy table, and the section David contributed.
>>>> I think you’re right, that proposed default table as is would have to
>>>> change.
>>>>
>>>
>>> is part of the reason I'm uneasy with a blanket MUST for known-local.
>>>
>>> I would be 100% fine with normative language that essentially says "IF
>>> (via some future proposed mechanism) you learn known-local prefixes and
>>> insert them into your policy table, THEN you may prefer v4/v4 to
>>> not-known-local ULA/ULA; but if you do not, then you must prefer ULA/ULA to
>>> v4/v4." My reasoning is that currently there is no specified mechanism for
>>> learning and managing known-local ULA prefixes; and it will be a long time
>>> before the long tail of stacks respond to yet-to-be-specified network
>>> signals for managing those prefixes; yet, in the absence of such an
>>> ecosystem I want ULA/ULA to take precedence over v4/v4, because under 6724
>>> they are currently mostly useless, and I want ULA to be useful now¹, not in
>>> some distant future.
>>>
>>> Kyle
>>>
>>> ¹ As it happens to be on glibc deployments, which don't comply with
>>> either 3484 or 6724.
>>>
>>>
>>>