Re: [v6ops] Happy Eyeballs, v3!

Tommy Pauly <tpauly@apple.com> Tue, 31 October 2023 02:59 UTC

Return-Path: <tpauly@apple.com>
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 06C51C14CF17 for <v6ops@ietfa.amsl.com>; Mon, 30 Oct 2023 19:59:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.162
X-Spam-Level:
X-Spam-Status: No, score=-3.162 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, NUMERIC_HTTP_ADDR=1.242, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 4AfxOETFPC9g for <v6ops@ietfa.amsl.com>; Mon, 30 Oct 2023 19:59:12 -0700 (PDT)
Received: from ma-mailsvcp-mx-lapp02.apple.com (ma-mailsvcp-mx-lapp02.apple.com [17.32.222.23]) (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 D2E3EC1519A0 for <v6ops@ietf.org>; Mon, 30 Oct 2023 19:59:11 -0700 (PDT)
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by ma-mailsvcp-mx-lapp02.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0S3D00FVQHMHSE00@ma-mailsvcp-mx-lapp02.apple.com> for v6ops@ietf.org; Mon, 30 Oct 2023 19:59:11 -0700 (PDT)
X-Proofpoint-ORIG-GUID: qvhHsmBkfvP2MiXSQmBSZmY5_SSVxyO9
X-Proofpoint-GUID: qvhHsmBkfvP2MiXSQmBSZmY5_SSVxyO9
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.619, 18.0.987 definitions=2023-10-30_13:2023-10-26, 2023-10-30 signatures=0
X-Proofpoint-Spam-Details: rule=interactive_user_notspam policy=interactive_user score=0 malwarescore=0 mlxscore=0 phishscore=0 mlxlogscore=999 adultscore=0 bulkscore=0 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2310240000 definitions=main-2310310021
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=DCgE8fNz19c007//4lEAAxWTo3jErLiNg/9TVoF/22k=; b=Au7qr44snV9IhtlAvF3GC/kGavNjKn/FiR8Yyo/qO05AnEIyiKYO6ftlQ1cc9XQBBmgY Pm3YUdI0/wfXxtfVloZIH6F9l6Ajde3VFECBX33pqSGZbRdjtF5AjqlwDPYNVhZgQF/i MDjIQFVAA9x5k9imbUd9ZJEXG/IO2HTgq57m/o3dc3zuoGjw0tkwunUmiSB9n++/+kbz l4n0XAyt/n9PueMWDk/3tr72QuQfKUyeeMdy/YeE9VpHjdcf2QNtVlC7M9Tg10NSvxir OiipT72WSqHvpLE103eE2tCqJLZW8hFS+Or3otExRop1yXKy/uyR+xmsEAOzooH9uUlU vA==
Received: from rn-mailsvcp-policy-lapp01.rno.apple.com (rn-mailsvcp-policy-lapp01.rno.apple.com [17.179.253.18]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0S3D00HP5HMKIAF0@rn-mailsvcp-mta-lapp02.rno.apple.com>; Mon, 30 Oct 2023 19:59:09 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-policy-lapp01.rno.apple.com by rn-mailsvcp-policy-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.22.20230228 64bit (built Feb 28 2023)) id <0S3D00R00HDNMF00@rn-mailsvcp-policy-lapp01.rno.apple.com>; Mon, 30 Oct 2023 19:59:08 -0700 (PDT)
X-Va-A:
X-Va-T-CD: bd368d974a2c98966f971f84a125b13d
X-Va-E-CD: a37067a2722d4b3f733566e8d27daa60
X-Va-R-CD: cde41e69699bea3f83bdbf62a8410a05
X-Va-ID: ae641a66-4d7b-4229-a8b6-87a56d2eefa7
X-Va-CD: 0
X-V-A:
X-V-T-CD: bd368d974a2c98966f971f84a125b13d
X-V-E-CD: a37067a2722d4b3f733566e8d27daa60
X-V-R-CD: cde41e69699bea3f83bdbf62a8410a05
X-V-ID: 4baef80b-97c5-4621-bfe0-5e04c5f09a8b
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.619, 18.0.987 definitions=2023-10-30_13:2023-10-26, 2023-10-30 signatures=0
Received: from smtpclient.apple ([17.11.48.5]) by rn-mailsvcp-policy-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.22.20230228 64bit (built Feb 28 2023)) with ESMTPSA id <0S3D0035XHMGTK10@rn-mailsvcp-policy-lapp01.rno.apple.com>; Mon, 30 Oct 2023 19:59:08 -0700 (PDT)
From: Tommy Pauly <tpauly@apple.com>
Message-id: <78D35F6C-6C51-4A54-A648-9B371A3A61AD@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_AF3B5707-7C7B-4266-84CE-F0A2165C67EB"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3774.100.2.1.4\))
Date: Mon, 30 Oct 2023 19:58:52 -0700
In-reply-to: <CAD9w2qaWoOqeaXvX8bkQwyaPOWRJaPUJ3Lsv26FH2eTfxwRoHg@mail.gmail.com>
Cc: Tommy Pauly <tpauly=40apple.com@dmarc.ietf.org>, "v6ops@ietf.org" <v6ops@ietf.org>
To: Momoka Yamamoto <momoka.my6@gmail.com>
References: <169807883999.63185.10548875925842571926@ietfa.amsl.com> <EB36C6F8-A71C-42E1-BD80-5CFF0EB59CC6@apple.com> <CAD9w2qbFjDbFBCF19adBna6ApYMrm801NXgTXdmUmAX2g6FZ_A@mail.gmail.com> <CCF41D2A-E8C1-4DD8-9B11-31F81951DED4@apple.com> <CAD9w2qaWoOqeaXvX8bkQwyaPOWRJaPUJ3Lsv26FH2eTfxwRoHg@mail.gmail.com>
X-Mailer: Apple Mail (2.3774.100.2.1.4)
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/8EJBS0bXym9cOU3ULto79k0Tb9Y>
Subject: Re: [v6ops] Happy Eyeballs, v3!
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.39
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: Tue, 31 Oct 2023 02:59:13 -0000


> On Oct 30, 2023, at 4:58 PM, Momoka Yamamoto <momoka.my6@gmail.com> wrote:
> 
> > Please see my response to Bob, earlier. Happy Eyeballs is referring to the overall racing technique, and there isn’t a specific preference for SVCB, etc — just a handling of it.
> 
> Isn't Section 5.  "Sorting Addresses" giving a preference? 
> It gives addresses obtained from SVCB records priority and then QUIC over TCP.

While Happy Eyeballs as an algorithm inherently requires sorting based on preferences, the specific preferences are more about practical decisions, and can be changed by an implementation.

The choice in the draft about using SVCB priorities is based on the fact that a service that publishes SVCB records that have priorities indicates it wants clients to have a preference in that priority order; and then we are assuming that if there are any un-prioritized A/AAAA answers not associated with an SVCB record, that they’d be lower priority. However, this can be discussed and changed.

> 
> The preference of IPv6 over IPv4 is determined in RFC6724 (RFC3484 when og HE was published) so RFC6555 was only giving a racing technique guide.
> However, now (after HE2) this document gives advice on how to sort the order to access the addresses other than that of RFC6724.
> Is that not giving a preference on protocols?

I view it instead as acknowledging that there are many options that must be ranked when creating the set of connections to try, and we are trying to give the best advice based on a set of assumed preferences, but acknowledge that those preferences could be different and thus sorting could be different too.

> 
> 
> I've created issues in GitHub nn my comments on section 8.1.
> I would like some input on the issue I raised, "Should synthesis be done to all address spaces?" from others as well.
> https://github.com/tfpauly/draft-happy-eyeballs-v3/issues/18

Thanks for opening these! We’ll keep the conversation going there.

Best,
Tommy
> 
> Best,
> Momoka Y
> 
> 5.
> 
> 
> On Thu, Oct 26, 2023 at 9:27 PM Tommy Pauly <tpauly@apple.com <mailto:tpauly@apple.com>> wrote:
>> Hi Momoka,
>> 
>> Thanks for reviewing! Some comments inline.
>> 
>>> On Oct 26, 2023, at 1:16 AM, Momoka Yamamoto <momoka.my6@gmail.com <mailto:momoka.my6@gmail.com>> wrote:
>>> 
>>> Hi Tommy,
>>> 
>>> This draft seems to add great insight into how the Happy Eyeballs 2 algorithm changes with SVCB RRs and QUIC. 
>>> I'm very excited for this work.
>>> 
>>> Here are some comments I have.
>>> 
>>> ## The word "Happy Eyeballs" Having multiple meanings.
>>> After RFC8305 the word "Happy Eyeballs" gained a new meaning from the original. With this draft, there are the below meanings.
>>> - Fall back to IPv4 if IPv6 doesn't work preperly. (original RFC6555)
>>> - Prefer AAAA over A records when doing DNS queries and sorting them. (v2 RFC8305)
>>>     - Prefer SVCB RRs over the two (v3)
>>> - Prefer QUIC over TCP. (v3)
>>> 
>>> The confusing part about the word "Happy Eyeballs" is that the word "Happy" has two meanings.
>>> - The clinet will be happy if fallback is done after a timeout if an attempt is not working.
>>> - Prefer a better protocol over others.
>>> 
>>> I guess this is hard to fix now but not knowing which "Happy" when hearing,
>>> "This client doesn't do Happy Eyeballs" out of context is sometimes misleading.
>>> 
>> 
>> Please see my response to Bob, earlier. Happy Eyeballs is referring to the overall racing technique, and there isn’t a specific preference for SVCB, etc — just a handling of it.
>> 
>> I think we could talk about what version implementations support, where support for SVCB comes along with v3.
>> 
>>> 
>>> 
>>> ## Clairification; QUIC v.s. TCP
>>> With v3 QUIC is given preference over TCP but only when support for QUIC is detected.
>>> When support is not detected by SVCB RRs or Alt-Svc, only TCP should be attempted.
>>> 
>>> is my understanding correct?
>> 
>> I don’t think this algorithm is being prescriptive in that aspect. Connections can use QUIC based on what the application requests, apart from SVCB or Alt-Svc.
>> 
>>> 
>>> ## 8.1.  IPv4 Address Literals
>>> >  Such translation also applies to any IPv4 address hints received in SVCB RRs.
>>> The mention of SVCB RRs makes this section a lot more meaningful as IP address literals may not have been so common but with SVCB RRS they will be common even in a client/server scenario.
>> 
>> The other case that is common is when you’re using encrypted DNS (DoT/DoH/etc) and asking for both address families. That’s common to then get v4 answers that need to be translated.
>> 
>>> 
>>> 
>>> ### RFC8781
>>> > the device queries the network for the NAT64 prefix using
>>> > "Discovery of the IPv6 Prefix Used for IPv6 Address Synthesis"
>>> > [RFC7050] and then
>>> Regarding the use of RFC7050 for obtaining the NAT64 prefix, RA Option 38 (as specified in RFC8781) could also serve this purpose. However, given that this section is geared towards platforms not supporting 464XLAT, I assume doing rfc7050 is simpler than getting an RA message for an application so the omission of RFC8781 seems justified.
>> 
>> I think it would be fine to mention to RFC8781. Perhaps you could file an issue on GitHub for that?
>> 
>>> 
>>> 
>>> ### Should synthesis be done to all address spaces?
>>> > If client applications or users wish to connect to IPv4 address
>>> > literals, the Happy Eyeballs engine will need to perform NAT64
>>> > address synthesis for them. 
>>> I wonder if this has been discussed for RFC7050 but should this algorithm be applied to RFC1918 address space and 127.0.0.0/8 <http://127.0.0.0/8>? Maybe we should discuss if these address spaces should NOT be translated.
>>> 
>>> For the loopback address range (127.0.0.0/8 <http://127.0.0.0/8>), it should not be translated as the client in question should have a route to the loopback network resulting in the synthesis not being needed.
>>> 
>>> For addresses within the RFC1918 space, the translated address could be misrouted to an unintended host, diverging from the user's original intention. Nonetheless, it is worth noting that nothing stops the inclusion of RFC1918 addresses in DNS records. As a result, translated IPv6 addresses originating from RFC1918 space can still be acquired via DNS64. Given this, it may be counterintuitive to impose restrictions on such addresses in the Happy Eyeballs algorithm.
>> 
>> Another good point — we can add a mention of that. Want to file an issue?
>> 
>> Thanks,
>> Tommy
>>> 
>>> 
>>> Best,
>>> 
>>> Momoka 
>>> 
>>> 
>>> On Tue, Oct 24, 2023 at 1:40 AM Tommy Pauly <tpauly=40apple.com@dmarc.ietf.org <mailto:40apple.com@dmarc.ietf.org>> wrote:
>>>> Hello v6ops,
>>>> 
>>>> We’ve just published a new draft for “Happy Eyeballs Version 3”, which is intended as a -bis document to RFC 8305 (which was developed in this WG). There are a few major points that needed updating:
>>>> 
>>>> - Describing how to incorporate SVCB / HTTPS RRs
>>>> 	- Priority
>>>> 	- v4/v6 hints
>>>> 	- Affect on various timers, etc
>>>> 	- ECH, ALPN, etc
>>>> - Describing how happy eyeballs applies to QUIC (and also TLS over TCP)
>>>> 
>>>> The bulk of the document is the same as RFC 8305, but updates the logic and algorithm for these changes.
>>>> 
>>>> Please take a look! We’d love to discuss at IETF 118 as time permits.
>>>> 
>>>> Best,
>>>> Tommy
>>>> 
>>>>> Begin forwarded message:
>>>>> 
>>>>> From: internet-drafts@ietf.org <mailto:internet-drafts@ietf.org>
>>>>> Subject: New Version Notification for draft-pauly-v6ops-happy-eyeballs-v3-00.txt
>>>>> Date: October 23, 2023 at 9:34:00 AM PDT
>>>>> To: David Schinazi <dschinazi.ietf@gmail.com <mailto:dschinazi.ietf@gmail.com>>, Kenichi Ishibashi <bashi@google.com <mailto:bashi@google.com>>, Nidhi Jaju <nidhijaju@google.com <mailto:nidhijaju@google.com>>, Tommy Pauly <tpauly@apple.com <mailto:tpauly@apple.com>>
>>>>> 
>>>>> A new version of Internet-Draft draft-pauly-v6ops-happy-eyeballs-v3-00.txt has
>>>>> been successfully submitted by Tommy Pauly and posted to the
>>>>> IETF repository.
>>>>> 
>>>>> Name:     draft-pauly-v6ops-happy-eyeballs-v3
>>>>> Revision: 00
>>>>> Title:    Happy Eyeballs Version 3: Better Connectivity Using Concurrency
>>>>> Date:     2023-10-23
>>>>> Group:    Individual Submission
>>>>> Pages:    18
>>>>> URL:      https://www.ietf.org/archive/id/draft-pauly-v6ops-happy-eyeballs-v3-00.txt
>>>>> Status:   https://datatracker.ietf.org/doc/draft-pauly-v6ops-happy-eyeballs-v3/
>>>>> HTML:     https://www.ietf.org/archive/id/draft-pauly-v6ops-happy-eyeballs-v3-00.html
>>>>> HTMLized: https://datatracker.ietf.org/doc/html/draft-pauly-v6ops-happy-eyeballs-v3
>>>>> 
>>>>> 
>>>>> Abstract:
>>>>> 
>>>>>   Many communication protocols operating over the modern Internet use
>>>>>   hostnames.  These often resolve to multiple IP addresses, each of
>>>>>   which may have different performance and connectivity
>>>>>   characteristics.  Since specific addresses or address families (IPv4
>>>>>   or IPv6) may be blocked, broken, or sub-optimal on a network, clients
>>>>>   that attempt multiple connections in parallel have a chance of
>>>>>   establishing a connection more quickly.  This document specifies
>>>>>   requirements for algorithms that reduce this user-visible delay and
>>>>>   provides an example algorithm, referred to as "Happy Eyeballs".  This
>>>>>   document updates the algorithm description in RFC 8305.
>>>>> 
>>>>> 
>>>>> 
>>>>> The IETF Secretariat
>>>>> 
>>>>> 
>>>> 
>>>> _______________________________________________
>>>> v6ops mailing list
>>>> v6ops@ietf.org <mailto:v6ops@ietf.org>
>>>> https://www.ietf.org/mailman/listinfo/v6ops
>>> _______________________________________________
>>> v6ops mailing list
>>> v6ops@ietf.org <mailto:v6ops@ietf.org>
>>> https://www.ietf.org/mailman/listinfo/v6ops
>>