Re: Network merge [Re: RFC6724-bis?]

Ted Lemon <mellon@fugue.com> Wed, 28 September 2022 13:17 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 2DFF9C14F740 for <ipv6@ietfa.amsl.com>; Wed, 28 Sep 2022 06:17:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.895
X-Spam-Level:
X-Spam-Status: No, score=-6.895 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, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01, 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=fugue-com.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 pv434K1YQ6BP for <ipv6@ietfa.amsl.com>; Wed, 28 Sep 2022 06:16:57 -0700 (PDT)
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) (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 03927C14F73B for <6man@ietf.org>; Wed, 28 Sep 2022 06:16:56 -0700 (PDT)
Received: by mail-ej1-x62c.google.com with SMTP id sd10so27117868ejc.2 for <6man@ietf.org>; Wed, 28 Sep 2022 06:16:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date; bh=DyDwuYOvubF/IkYg+EtvT6oR93oIiCyOteD22MA4YyE=; b=guGPsNcDTWYggFAt7sJkvwJjPBv6GdlmK2Te9LX7nVCXutwSpOiq+Zkj/4Kx/k+spS p0/IZU3UeLmd1bIi2CPvcXvzcXAP58fqcEC0UVoNyYwlA9DInH9OsvJ2iHWYhbaGofMH UuSqMuNvTSpXqJ/I8HNc1GpIldWnfmFu7N5s+0wfkzDFdir6fOOJ3Wmz3eWy18Wz0jtT Hm78oRu6R0n+5liwKbpOLbT6r/YvSWvTkEtwbkivwfvFz8DM2E5oVDMDHwAd9g+HOrgh GwRQgqxl/67z6D9RHhKP+TUWxBqh5t+L577J+X5osqK8sVyAj/gahkiLEuhT430Qo3tU nhlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date; bh=DyDwuYOvubF/IkYg+EtvT6oR93oIiCyOteD22MA4YyE=; b=tEPdcD/Uuki1sOaB9z1MR7xj/aZCp83HVH74WzL0LalF5UQChrQkZeUIUysX8umRYk NlRhh44l8/9VtqrdxY5mvIkEiJ/kUY7VKI6ros5zL7vXYWHu/IbN6nnDV5svIr2gUU/A 3tANbqJAp58lVuhP5JnKgbzJ9+QaPXl18Ad0KOG4+5zugn4xDqj4njb8QVPmR6pwgXIM 4DNY+ZcEBB/A5Gcvy0q/UGC1McP6jqrTYNsrp1KoduZNxviLJBmOc/bqBmvxsNsN/4od FD59iYw8bh3YeV95wWjZjSxlONOshU/eF6AOmiNUIYeF1Lh/btHgfqd9KlRtBXLqR+FT U0iw==
X-Gm-Message-State: ACrzQf1VXC7WJE6JqE9yWhQ/8rreknph0iIUhjw9jfQW72tbmYTnqWSx nxBlAIetPpBVBp+6ygApyqojZnqSdkZ3hdApq8ujGqFJbsI=
X-Google-Smtp-Source: AMsMyM5iyyog8vfWafsBiu8CAXMEwcXSTJfXnxEKfc7ZepmlO7ARXQ20dv3gOpvlNr+SL9QbR/PpSpXlwSahkeWKMX4=
X-Received: by 2002:a17:907:7b94:b0:731:1b11:c241 with SMTP id ne20-20020a1709077b9400b007311b11c241mr27962850ejc.676.1664371013600; Wed, 28 Sep 2022 06:16:53 -0700 (PDT)
MIME-Version: 1.0
References: <66892DC8-6DA4-4DC8-85B0-E1E1647CD9F7@gmail.com> <CAPt1N1=xR_2Xw+1KL6vbzZ69N+vonhcTNvO=DBceeApfoS2bMQ@mail.gmail.com> <e76267b6101146cf8a1bd6fa567c6b77@huawei.com> <CAN-Dau2QO5sxevJwUbOj+_wyiCdOjnPEZM14Jhevvkq4YZqU7Q@mail.gmail.com> <bc85e623-ef89-d2e2-4e33-b8ce0a4ec343@gmail.com> <CAN-Dau0Wbki6xwcEdy8ZK-pO9jeT6+8TKZgbmXWUgnkR+dRhBg@mail.gmail.com> <CAPt1N1=OmC+HNVGWbgj9JtGbpcuzKOgjZ1KXJm5mXgpji-G4Mw@mail.gmail.com> <6edcc5d8-edf1-51de-103c-a4ac6060fef6@gmail.com> <29689d645d22409b962f6c361d71e098@huawei.com> <CAN-Dau3rwi4X4NqLbHMmPQQ=i7y23Kz70JK09ggsXSxkJfT5xA@mail.gmail.com> <bf7c7d74cc7744ef8ded7d043ceb3e5e@huawei.com> <CAN-Dau0=LD9MTYKJQoSw=b9S25nmrNuqRSyLdsztFZscG8ZbUg@mail.gmail.com> <CAPt1N1kjOWh8R70pNO0eH9EJUH-v6HyxGMqxpy0N2hydHN33LQ@mail.gmail.com> <CAM5+tA9mqjrtq3pTggv1pA4fOYXUODkZHy74vs8cffVOrBefbQ@mail.gmail.com> <0b6886d3-5ea9-0a1d-8b16-4e17daeb6924@gmail.com> <CAM5+tA9dAjh0MTRG3922xTe3_aChHFa9AYCFCGmt395KwuvBYA@mail.gmail.com> <395554.1664189125@dooku> <56a897a426084f9381abaf770f1ea35e@huawei.com> <CAO42Z2xgMnVXeH9t0p_u7bg2fY-Gg+AagkFMMRJstX4E-f8FPQ@mail.gmail.com> <CAPt1N1m-1600rghA7mXNm1fvqOp23EOpYcS0E6xnJut+-t-9nQ@mail.gmail.com> <CAO42Z2wHZ2k+UwRdh8VH4xHav9HwT+6C-_up+6RXrce3vuVrmg@mail.gmail.com> <CAPt1N1nG97VHVFF1ofwf8dF+vcHcyqy=zZpkXz4zLZAc7Q+xBw@mail.gmail.com> <CAO42Z2wgNN=JdbM6ZGp82tGcFdwx=xOeX2R+M9JqCThHBqU2rw@mail.gmail.com>
In-Reply-To: <CAO42Z2wgNN=JdbM6ZGp82tGcFdwx=xOeX2R+M9JqCThHBqU2rw@mail.gmail.com>
From: Ted Lemon <mellon@fugue.com>
Date: Wed, 28 Sep 2022 09:16:16 -0400
Message-ID: <CAPt1N1kOfash5E9r4QykZJaD91SVBdum8WPqXP_p5c2xbO+z7A@mail.gmail.com>
Subject: Re: Network merge [Re: RFC6724-bis?]
To: Mark Smith <markzzzsmith@gmail.com>, 6MAN <6man@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000000a650b05e9bc9375"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/zrLOTSTKSIFigfsS8P-XQ9o3VW4>
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: Wed, 28 Sep 2022 13:17:01 -0000

On Tue, Sep 27, 2022 at 6:34 PM Mark Smith <markzzzsmith@gmail.com> wrote:

> On Wed, 28 Sept 2022 at 07:21, Ted Lemon <mellon@fugue.com> wrote:
> >
> > The point of this is not to mitigate a non-problem—that of ULA prefixes
> in the DNS. That's not a problem. The point of this is to make things that
> don't currently work but are valid configurations work.
> >
>
> So RFC 6724 uses RFC 5220 sections 2.1.4, 2.2.2, and 2.2.3 to justify
> the position of FC00::/7 in the destination address order (10.6.
> Configuring ULA Preference). Those issues would usually occur when
> non-local and therefore non-reachable ULA AAAAs are in global DNS and
> is then returned in the set of DAs in the getaddrinfo() call.
>

Right, this makes sense.


> How common is this valid configuration you're referring to?
>

We'd like it to be common in cases where it's needed. Specifically, right
now if two enterprises merge, they generally will have disjoint RFC1918
address spaces per org, and the merge is typically done with a NAT between
the two networks, which is an utterly crappy solution. ULA provides a way
for orgs to do internal numbering so that if a merge like this happens, the
need for a NAT66 between the two orgs is vanishingly unlikely.

So in this case you would have two orgs, both with their own independent
ULA prefixes, and you'd like to prefer those prefixes when communicating
between orgs. That's the use case. I'd say it's pretty uncommon at present,
but it's a valid use case that we'd prefer to see over what we are seeing
now, so we need to address it (I think).

Default DA/SA selection is static, and therefore should be a best
> guess based on the likely most common case scenario. It is static in
> the sense that it doesn't adapt to the state of the network, where one
> moment an IPv4 DA might be better than all of IPv6 DAs, another moment
> a GUA DA would be better than ULA DA, and then another moment a ULA DA
> would be better than all other IPv4 and IPv6 DAs.
>
> That's why there is this advice in RFC 6724, that adapts to different
> default selected DAs being better or worse at any particular time:
>
> Well-behaved applications SHOULD NOT simply use the first address
>    returned from an API such as getaddrinfo() and then give up if it
>    fails.  For many applications, it is appropriate to iterate through
>    the list of addresses returned from getaddrinfo() until a working
>    address is found.  For other applications, it might be appropriate to
>    try multiple addresses in parallel (e.g., with some small delay in
>    between) and use the first one to succeed.
>
> I think the fundamental problem is people think the first DA returned
> by getaddrinfo() must always be the address that successfully
> connects.
>

I don't think that's the case. Unless you are racing connections, which
isn't ideal, there is a cost to guessing wrong, even if it's not total
failure. So e.g. in an IoT situation with battery-operated devices, you'd
really like to guess the right SA/DA pair the first time, not try fifteen
different combinations.

They probably think that because they want to avoid the huge and very
> unuser-friendly connection timeouts that are the default for transport
> layer protocols today.
>
> I doubt IPv6 multi-addressing is going to go away, so static default
> DA/SA selection will always have the possibility of the statically
> selected first DA in the set not being the ideal one at the time.
>

Yup. This isn't about achieving perfection. It's about doing better.


> So I think the real solution is to fix what the real problem with
> being provided with a set of DAs to connect to is - in the transport
> layer protocol initial connection timeouts.
>
> Looking at the new TCP RFC, RFC 9293, it seems the default RTO for the
> 3 way handshake is 100 seconds (I've seen much larger in other places
> e.g. Stevens' TCP/IP Illustrated says up to 9 minutes!). I think it
> should be much lower than that, in the order of no more than something
> like 1 or 2 seconds, and the common case of walking through and
> attempting to connect and then successfully connecting to a DA in the
> set returned by getaddrinfo() should be about 10 seconds (Response
> Times: The 3 Important Limits -
> https://www.nngroup.com/articles/response-times-3-important-limits/ )


Maybe if we can get rid of bufferbloat. I often find the more rapid
connection timeouts that are typical in web servers to be problematic
though e.g. in an airplane: even though the network is congested and has
bad bufferbloat, if you allow the connection to survive for longer times,
you can make progress. If you just give up after ten seconds or whatever,
then you may never succeed in fetching the resource. So I'm really not in
favor of this approach—even if it works fine in the networks we are
privileged to use most of the time, it's going to suck for users who aren't
as fortunate as we are.