Re: QUIC Address Discovery

Ian Swett <ianswett@google.com> Wed, 25 October 2023 01:39 UTC

Return-Path: <ianswett@google.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 951DAC1516EA for <quic@ietfa.amsl.com>; Tue, 24 Oct 2023 18:39:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.606
X-Spam-Level:
X-Spam-Status: No, score=-17.606 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=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, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 5D8RyNJ4nUUs for <quic@ietfa.amsl.com>; Tue, 24 Oct 2023 18:39:46 -0700 (PDT)
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) (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 2264EC14F75F for <quic@ietf.org>; Tue, 24 Oct 2023 18:39:32 -0700 (PDT)
Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-32dc9ff4a8fso3439744f8f.1 for <quic@ietf.org>; Tue, 24 Oct 2023 18:39:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1698197970; x=1698802770; 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=qz4VFfTC4xB2YvjiGyfhbWSLeuvbZ0MNW/O4zf5cn78=; b=4Xbh7x6qR9nkYaY0c/v2m+d0owo37ok+NsVekz8rWqxIPqJZK/SdMRUVNeqDNVzOsN VqVM7KAZ8oCdJi2y3cJ8QQk75c4/OeLoGpvj0vDfw+JCepHUyetgj08JoJqQhSF5Ztb0 8mjU2LFpmUrhYGA0d5vWwbzDavPGjUTBMs6ltD/BMKok5tafWTEVJ/VOnFKNz5JVPfQ+ GMzxLfPLyQiznPXuqohBHHb11CytEjQXz54UuhxWaAvnsjj8vJZ0COv+B14E7VDtdEEN htgXkF7cFamTGYOOdAe+l7+RN6Md5HGvnQ7nt15il9QMytfZ2RqEesdrG9DLn8TQlHGL 1Csw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698197970; x=1698802770; 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=qz4VFfTC4xB2YvjiGyfhbWSLeuvbZ0MNW/O4zf5cn78=; b=KZK1OaxoOaRjAzDYakMxs2XwekyqOmZ9Uc8exjVDJDiQQ7IUtWH/6WdOW0ZErN6RIT gDVIIHsYrGQv7uIVf97ZweMLz62qeGCHFxdR3OJj+Gne8p9qVOPqDmDKb7SzTHEAwVEI HOXLESVNv0vPEK2/KUIDyNLeT+WlzaL9apxFRClNDcK+Ce79kGpcBTgNrXxxfEq5GnkS gMFI9CZ3be1ZQRLfETz8LKTbb/2Sj+0XJVaE3y0Djw+0uTx4dX0RxSNOt/qa6nhgMiMq HT0dFEZVAP8MfYU+oBqweYqHnWsoNsXHgW3IIQNYu46VtIs+McfXVpDFbNWS5uK9xUPU rW2g==
X-Gm-Message-State: AOJu0YyBiBgVa3jpeOUls0lwAfqv/bdlTrunVOO9xBT+Lh7xq3b6Q2Nm RHpfSMZ2zX4ehBWNedSg7yqYIfiQcHOB8hUtZsOMlA==
X-Google-Smtp-Source: AGHT+IGO6SmCq7rQ6+JySWFE60rNLwneaxenxi9zODPcVn75EzuTTvbzQYPAI3wCWueXbB53ulCTo9AgLILM7AeCz3k=
X-Received: by 2002:adf:ec47:0:b0:32d:9718:b32a with SMTP id w7-20020adfec47000000b0032d9718b32amr8341095wrn.0.1698197970215; Tue, 24 Oct 2023 18:39:30 -0700 (PDT)
MIME-Version: 1.0
References: <CAOYVs2os+0EVc-ptpFU8tbHO-4-JcPwpQ6kbbQh9n4UHC5j8rg@mail.gmail.com> <CANatvzxMFWyn6GXXB+OZAOBGNqpvAS6N565PaTvgPmqrPtN2Qg@mail.gmail.com> <CANatvzz3D-iH_-VbwVW=uJGHn_ingd7z3kB2z==eu-_JGYbtLQ@mail.gmail.com> <CAPDSy+5LeizGhCdo+4PSe297O8_+T_i=FF4pN1v=W-d2JeNfBg@mail.gmail.com> <4B3E92AC-099E-41A6-A267-C8FA099C4DF0@apple.com>
In-Reply-To: <4B3E92AC-099E-41A6-A267-C8FA099C4DF0@apple.com>
From: Ian Swett <ianswett@google.com>
Date: Tue, 24 Oct 2023 21:39:16 -0400
Message-ID: <CAKcm_gOOtJh8jB=krGa6KgggXch6DRnxC6FijRJKg8vtFt+-bg@mail.gmail.com>
Subject: Re: QUIC Address Discovery
To: Tommy Pauly <tpauly=40apple.com@dmarc.ietf.org>
Cc: David Schinazi <dschinazi.ietf@gmail.com>, Marten Seemann <martenseemann@gmail.com>, QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c6dde90608808627"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Csw3Js5UD6-KjSLOcSPWltIVOqg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Oct 2023 01:39:47 -0000

This feels like a problem worth addressing. :)

Given peer addresses can change during the connection in QUIC, I would lean
away from a TLS extension.  Also, it's unclear to me if there's any value
for TCP.  If not, that makes a QUIC specific solution even more compelling.

I'll let you figure out who the authors should be, but thanks for
initiating the work.

Ian

On Tue, Oct 24, 2023 at 8:16 PM Tommy Pauly <tpauly=
40apple.com@dmarc.ietf.org> wrote:

> Indeed, very much deja-vu to see this coming up!
>
> I do think this is still a good idea to be handled, at some layer. The
> older draft did use random values for the request ID, not a sequence number.
>
>  At the same time as that older draft, we had published a proposal to
> handle this in TLS extensions:
> https://datatracker.ietf.org/doc/html/draft-kinnear-tls-client-net-address-00
>
> Thanks,
> Tommy
>
> On Oct 24, 2023, at 4:19 PM, David Schinazi <dschinazi.ietf@gmail.com>
> wrote:
>
> This sounds very similar to this draft:
> https://datatracker.ietf.org/doc/html/draft-pauly-quic-address-extension
> Might be worth chatting with the authors to see if they're still
> interested in this topic.
>
> David
>
> On Fri, Oct 20, 2023 at 11:29 AM Kazuho Oku <kazuhooku@gmail.com> wrote:
>
>>
>>
>> 2023年10月20日(金) 14:27 Kazuho Oku <kazuhooku@gmail.com>:
>>
>>> Thank you for the draft.
>>>
>>> I do not have enough knowledge to comment on the use-case, but I have
>>> one concern regarding the design.
>>>
>>> It seems to me that the credit (i.e., permitted sequence number space)
>>> for sending REQUEST_ADDRESS frames is not bounded.
>>>
>>> Doesn't that mean that an attacker can issue an arbitrary number of
>>> REQUEST_ADDRESS requests without sending acks, thereby causing state
>>> exhaustion at the receiver?
>>>
>>> That leads me to wonder if it is the best way to implement this sort of
>>> request-response protocol directly on top of QUIC frames. What is the
>>> rationale for defining this protocol not on top of QUIC streams, as part of
>>> the application protocol?
>>>
>>> FWIW, if use of QUIC streams is undesirable, one alternative would be to
>>> use TLS post handshake messages (i.e., the CRYPTO stream at the application
>>> packet number space). The benefit of such a design would be that the
>>> address discovery mechanism would then work on any protocol built on top of
>>> TLS (e.g., TLS-over-TCP, DTLS, QUIC).
>>>
>>
>> PS. Or, if we are seeing an emerging pattern of using one QUIC connection
>> for conveying multiple application protocols (looks at WebTransport), is
>> there a need to agree on (if not standardize) how QUIC streams are shared
>> among the application protocols?
>>
>>
>>>
>>> 2023年10月20日(金) 3:39 Marten Seemann <martenseemann@gmail.com>:
>>>
>>>> I just published an I-D that defines a mechanism for QUIC endpoints to
>>>> discover their (public) IP address and helps them determine their position
>>>> in the network (e.g. if they're behind a NAT):
>>>> https://datatracker.ietf.org/doc/draft-seemann-quic-address-discovery/
>>>> This is especially helpful for QUIC nodes running in a p2p setting.
>>>>
>>>> A similar result could be achieved by using STUN on the same UDP
>>>> socket, but there are several advantages of doing it inside of QUIC. See
>>>> the draft for details.
>>>>
>>>>
>>>
>>> --
>>> Kazuho Oku
>>>
>>
>>
>> --
>> Kazuho Oku
>>
>
>