Re: [Masque] Comments on draft-age-masque-connect-ip-01

Ben Schwartz <bemasc@google.com> Mon, 08 November 2021 18:26 UTC

Return-Path: <bemasc@google.com>
X-Original-To: masque@ietfa.amsl.com
Delivered-To: masque@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3D8C3A0DAB for <masque@ietfa.amsl.com>; Mon, 8 Nov 2021 10:26:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Level:
X-Spam-Status: No, score=-17.599 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gtkN4i3x0fFg for <masque@ietfa.amsl.com>; Mon, 8 Nov 2021 10:26:12 -0800 (PST)
Received: from mail-ua1-x92d.google.com (mail-ua1-x92d.google.com [IPv6:2607:f8b0:4864:20::92d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E91483A0DBD for <masque@ietf.org>; Mon, 8 Nov 2021 10:26:11 -0800 (PST)
Received: by mail-ua1-x92d.google.com with SMTP id t13so18034450uad.9 for <masque@ietf.org>; Mon, 08 Nov 2021 10:26:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YDEOjJzjLJwUhvG5CC7RklJMXwWYDA32gn60QcijAmo=; b=O4py8p0dLWoJ8ZGqpKDoX1BBx9enXuFlVacRnUC7q6xoOPZvW4mx0T8MZb3z3efyd4 LEYCV74Hu19waNqU7ZksJWGVoJzvLeCOq+RtlTVHjwuuzAvjFtuMj7aAr/Pt6zVnwqA5 3zVrPG818rFYvqGsKVrW+p1ejS1oNvRLvrXYEMt2RgvUj4jIw9C6zUYMBG6+Kttt1fSg En/NnTh7SDAZY5uqp8soADFRYgImySwmiI+WDrQqD5HxJxLz4dVeNn1XnPMS3qaj/jMY KbzYMzM1NTBO6LvxbAukRUD8rPWRP/+BV9QmDqyIAKJO+nzgx/naTT77heYiG0N77ejU KDow==
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=YDEOjJzjLJwUhvG5CC7RklJMXwWYDA32gn60QcijAmo=; b=HET+ss3ueFd4pjT5qWxTyJGZ0n6KThJYYmL+uGGm4i2+yeFWhBBl1UUS/HieHsqlN9 WjZ911p2Q6AeAuBfZLsbp0cgRpe5Rg5zgzBChFkVl5qGgibQTxsBjJT5n9tublQtUXSy 79Ep03sknZrC57osZr8B/7gdugEk1iST9S1yIXqZhSXTNsdAJECVSeHut27mv3liypWh uHftgu7hIICkyFz4CYTeWPOF552tRZmeDJDWTAacfoktCEUr2S8IQZP/T0me68azQr4N +mM9bAibyTtdGv5OW2WE2Cvh6ntCqVepPgXn7lWyPoIJ+7b+EwIYIvOCLNApNSqysT94 daRA==
X-Gm-Message-State: AOAM530c7O68b99bzC42yWDWvJVlCS8aklDcDI285mB+KjaDD554WUnB 59CWHvijQQkP+RjbZWJGefb/UZwFV1bqGFDlskk8AA==
X-Google-Smtp-Source: ABdhPJygmuWfSrNyBhHZ/bDVqiByrR0wXM0ApZa/WukKS4Kc5nML+DrJRcqiFUyMk9hKAei8+a5uQPHP1D8v+o/oqK4=
X-Received: by 2002:ab0:6883:: with SMTP id t3mr1343395uar.66.1636395969475; Mon, 08 Nov 2021 10:26:09 -0800 (PST)
MIME-Version: 1.0
References: <CABcZeBMSe7JJ41EC+f1pyAFrm_+9TU2h=SY-_Xy5vX5wu8TgOQ@mail.gmail.com> <7C41DE50-EE9B-4084-8A1D-88471664E23E@apple.com>
In-Reply-To: <7C41DE50-EE9B-4084-8A1D-88471664E23E@apple.com>
From: Ben Schwartz <bemasc@google.com>
Date: Mon, 08 Nov 2021 13:25:57 -0500
Message-ID: <CAHbrMsA2Sfx8Wran_J7bS=h7MN7Z2VxVgBHn=6YzxAVeZrBSYg@mail.gmail.com>
To: Tommy Pauly <tpauly=40apple.com@dmarc.ietf.org>
Cc: Eric Rescorla <ekr@rtfm.com>, MASQUE <masque@ietf.org>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="0000000000008140ce05d04b200d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/masque/fY3ZfpZpFGLr6HYGyMtGbL1bxBk>
Subject: Re: [Masque] Comments on draft-age-masque-connect-ip-01
X-BeenThere: masque@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multiplexed Application Substrate over QUIC Encryption <masque.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/masque>, <mailto:masque-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/masque/>
List-Post: <mailto:masque@ietf.org>
List-Help: <mailto:masque-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/masque>, <mailto:masque-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Nov 2021 18:26:17 -0000

On Mon, Nov 8, 2021 at 10:52 AM Tommy Pauly <tpauly=
40apple.com@dmarc.ietf.org> wrote:

>
>
> On Nov 7, 2021, at 3:12 PM, Eric Rescorla <ekr@rtfm.com> wrote:
>
> ...

>
> Given that this is an IP layer mechanism, I would simply remove the
> DNS option; clients can always do DNS over the tunnel.
>
>
>
> I can see this either way.
>
> For cases where I don’t want a full tunnel, but just want to talk to one
> host, I would need to open an IP flow for a DNS server. I could of course
> open one, and then open a proxied flow to each target address, and request
> the same local address I got on the first.
>
> This would work, but is more back-and-forth, and also doesn’t give me a
> way to just ask the proxy to use it’s own DNS cache.
>

I think we need to be clear about what the alternatives are.  Suppose we
compare

A. CONNECT-IP supports DNS names. [current draft]
B. CONNECT-IP doesn't support hostnames but is co-located with a DoH server.

Then either way, the client benefits from a DNS cache at the proxy.


> For cases like CONNECT and CONNECT-UDP, we’ve found it very useful for
> latency to have the DNS cache run on the proxy, so that we benefit from all
> clients going through the proxy sharing the same cache, and not needing a
> round trip back to the client.
>

That benefit does not apply to CONNECT-IP, because the client must specify
an IP address, but it doesn't know what IP address to specify.  It
therefore has to wait the same full roundtrip anyway.  Compare

A.
 - [C->S] CONNECT-IP https://proxy.example/ip?target_host=target.example.com
 - [S->C] 200 OK, ROUTE_ADVERTISEMENT [192.0.2.1]
 - [C->S] IP Packet to 192.0.2.1

B.
 - [C->S] GET https://proxy.example/dns-query?dns=<target.example.com>
 - [S->C] 200 OK, <DNS Answer: 192.0.2.1>
 - [C->S] CONNECT-IP https://proxy.example/ip?target_host=192.0.2.1
 - [C->S] IP Packet to 192.0.2.1 (False Start)

CONNECT (TCP) and CONNECT-UDP are different.  TCP allows the server to act
on the resolved address without having to return it to the client.
CONNECT-UDP allows false-start with hostname targets (although CONNECT-UDP
with hostname targets is pretty crummy: it breaks failover, Happy Eyeballs,
etc.).

To that end, I’d like to at least *allow* connecting by a hostname in the
> protocol
>

I don't object to this functionality, but I don't think it is a performance
optimization.


> (even if some proxies wouldn’t choose to support that).
>

I don't think it can be optional.  If it's optional, it might as well not
be mentioned at all, since clients can't rely on it.