Re: [Masque] Unified CONNECT-IP document

David Schinazi <dschinazi.ietf@gmail.com> Thu, 21 October 2021 20:55 UTC

Return-Path: <dschinazi.ietf@gmail.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 EE71E3A0BD9 for <masque@ietfa.amsl.com>; Thu, 21 Oct 2021 13:55:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 ohRKagN_g8w7 for <masque@ietfa.amsl.com>; Thu, 21 Oct 2021 13:55:48 -0700 (PDT)
Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) (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 D8FE03A0BCA for <masque@ietf.org>; Thu, 21 Oct 2021 13:55:47 -0700 (PDT)
Received: by mail-pl1-x62c.google.com with SMTP id y1so1253874plk.10 for <masque@ietf.org>; Thu, 21 Oct 2021 13:55:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=iodLhg3GlfEMPBgEi8MvIy2/Rs9WbIFZEgNqPVAu68w=; b=YCOIhBQsMl0X12xczcpsqHrJMZkmZSDdt/AVA/zf6+xy6oOQWOp7/7KyAnFTu8tZZU sDgO/g4y9eXdTros9lV1al7PNI3aTb4q52cy5VynJAVPAx49LIus+6dviGPwSl1vnFa8 zYNasgijCK3vmATIcIy+jUZQucqMHG2/QMhv2kIpVIYlbUjgFseFIzzsyeS5U+cw/fJo vLMxgoQ7KcpUcIF5HIqFLM+zMcXatf0BYCOpdmLRw4n/9AH6vkYEQRUNl83csN4AzrbE cOi64kVny1dkvZlyMv+nyl+t4nefc3Y+ezfl1xnFi4T90CRtyWu4Ia3Ewuos6d6Lgocu guEw==
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=iodLhg3GlfEMPBgEi8MvIy2/Rs9WbIFZEgNqPVAu68w=; b=uOkj2SphgaNi/mPDTX9/akZBwyfmoJv6HTglOHWBPjK9o9NG9ANkyVXcWx0a/iuDHF TAUZli9Se74AGukwadZNqLD7L295NSa5RZST3V49/g5u7KU7Pp7af2Yw1tFnxrc29hif fYniHQqh0cZOaq1eEE1zL1/to169jpyhbF8crM508/CcrftN+5nYXbTTBc+DmtGRbZ+v yEjDoewL53ttSpPSi4Fj6zcOsxO1l/cNfWdAkvcr2pjcIvj9yEcSV4TnJxUBHAFAe95/ z66qyiiJNm81YoU4WEzM/F7V5d5JKb8oGPAFezodHhInsfIg+7PyB2ZFsjTRlnM75H2I fYeQ==
X-Gm-Message-State: AOAM5338Q+JSRGiVaHdTBfC+Og3aQqc3l1iifx5/yuOEdHzN2hyp1Vn6 fQ3wJuuC4JlYDbjJnfLUxPvCjdpMtt4ZLIiehvSmAAxxrDY=
X-Google-Smtp-Source: ABdhPJyZ8LPxzIMQpeepQlru/qGSc71JQdolJr75aHRwE4n1wunY5J9qO3u+Zxb7aezYLFhtTn+Jsbz2MYQHUFnGO3A=
X-Received: by 2002:a17:902:7804:b0:13e:d4c6:e701 with SMTP id p4-20020a170902780400b0013ed4c6e701mr7385654pll.66.1634849746196; Thu, 21 Oct 2021 13:55:46 -0700 (PDT)
MIME-Version: 1.0
References: <163483333684.11698.8923115285341694672@ietfa.amsl.com> <A073E49D-DA79-4C19-AA90-AD4C9484EA08@apple.com> <CAPDSy+6Ny2F5kRiA=cExjWtKVE1KYLKd6K3=gYCpW9_N_uWp2w@mail.gmail.com> <CAHbrMsDkfs-EsQxOa=-1e=YwcPm5CuAbryEBtUz-DKRgL+VHoA@mail.gmail.com>
In-Reply-To: <CAHbrMsDkfs-EsQxOa=-1e=YwcPm5CuAbryEBtUz-DKRgL+VHoA@mail.gmail.com>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Thu, 21 Oct 2021 13:55:34 -0700
Message-ID: <CAPDSy+7TPGWGD6UzwSH+ZiawuJeaKOtnsNNdQtfzmK-wJczEwA@mail.gmail.com>
To: Ben Schwartz <bemasc@google.com>
Cc: Tommy Pauly <tpauly@apple.com>, MASQUE <masque@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000621d8005cee31e7b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/masque/tN-ACmPprZ7g1FSBQCcEHYTApoU>
Subject: Re: [Masque] Unified CONNECT-IP document
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: Thu, 21 Oct 2021 20:55:53 -0000

On Thu, Oct 21, 2021 at 1:44 PM Ben Schwartz <bemasc@google.com> wrote:

> I like it!
>

Thanks Ben! Responses inline.
David

Some minor notes:
>
> After fighting with URI Templates for the past week or two, I'm less fond
> of them than previously.  For example, they are specified to be unicode (in
> unspecified representation), so any system for processing them needs to
> consider unicode issues, even though this is almost always irrelevant.  In
> DoH, I think they've mostly been more trouble than they're worth: despite
> their enormous flexibility, all deployments that I'm aware of have just
> tacked "{?dns}" onto the end of the URL.
>
> I would consider specifying fixed query parameters and leaving it at
> that.  That would also allow a single URL to be used for CONNECT,
> CONNECT-UDP, and CONNECT-IP, which seems valuable.
>
> If URI templates are a must, I think we need some tweaks to harmonize
> CONNECT-IP and CONNECT-UDP (e.g. "target" vs. "target_host").  A single
> template could work for both!  You'll also probably want to copy RFC 8484's
> prohibition on templating the origin.
>

Our idea here was to align with CONNECT-UDP, but your points apply equally
there. I think our options for both CONNECT-IP and CONNECT-UDP are:
1) represent proxy via URI templates (what both drafts have today)
2) represent proxy via URL, and use explicit query parameters to convey
host/port/etc information
3) represent proxy via URL, and use HTTP headers to convey host/port/etc
information

Having recently implemented URI templates, I agree that there be dragons in
(1). Between (2) and (3), I think that (3) is easier to implement and
reason about personally.

> If the target is a hostname, the server is expected to perform DNS
> resolution to determine which route(s) to advertise to the client.
>
> This is fascinating, but perhaps underspecified.  I think the proxy SHOULD
> return route advertisements for _all_ addresses for the target name (in all
> families).  Then the client can implement racing and failover as
> appropriate.  (Also, some clients have policies that depend on whether two
> hostnames resolve to _overlapping_ RRSets, which requires them to learn all
> the addresses.)
>

I'm not sure I follow, can you elaborate?

> The Start IP Address MUST be strictly lesser than the End IP Address.
>
> I think this is an error.  It should be <=.
>

Indeed, nice catch. I fixed it in the editor's copy.

On Thu, Oct 21, 2021 at 1:52 PM David Schinazi <dschinazi.ietf@gmail.com>
> wrote:
>
>> Thank you for all your work editing this document, Tommy.
>> I'm personally very happy that we landed on a joint proposal that all of
>> the known CONNECT-IP enthusiasts are happy with.
>> I'd love to hear the WG's thoughts on this draft.
>>
>> David
>>
>> On Thu, Oct 21, 2021 at 9:31 AM Tommy Pauly <tpauly=
>> 40apple.com@dmarc.ietf.org> wrote:
>>
>>> Hello MASQUE WG,
>>>
>>> I’ve been working with the authors of the various CONNECT-IP protocol
>>> proposals (draft-cms-masque-connect-ip, draft-kuehlewind-masque-connect-ip)
>>> to write a shared document. We’ve just published the -00 version!
>>>
>>> https://www.ietf.org/archive/id/draft-age-masque-connect-ip-00.html
>>>
>>> We believe this represents the core functionality that various use cases
>>> need for IP proxying. It allows proxying of full IP packets, and focuses on
>>> defining options about assigning, routing, and filtering out the common
>>> fields in the IP protocol headers (source and destination addresses, IP
>>> version, IP protocol). Work on compressing, handling ICMP, etc, is left to
>>> future documents.
>>>
>>> Please take a look at the document. It would be great to discuss this at
>>> IETF 112, and see if the WG thinks this can be adopted as our starting
>>> point.
>>>
>>> Best,
>>> Tommy
>>>
>>> Begin forwarded message:
>>>
>>> *From: *internet-drafts@ietf.org
>>> *Subject: **New Version Notification for
>>> draft-age-masque-connect-ip-00.txt*
>>> *Date: *October 21, 2021 at 9:22:16 AM PDT
>>> *To: *Alex Chernyakhovsky <achernya@google.com>, David Schinazi <
>>> dschinazi.ietf@gmail.com>, Magnus Westerlund <
>>> magnus.westerlund@ericsson.com>, Mirja Kuehlewind <
>>> mirja.kuehlewind@ericsson.com>, Tommy Pauly <tpauly@apple.com>
>>>
>>>
>>> A new version of I-D, draft-age-masque-connect-ip-00.txt
>>> has been successfully submitted by Tommy Pauly and posted to the
>>> IETF repository.
>>>
>>> Name: draft-age-masque-connect-ip
>>> Revision: 00
>>> Title: IP Proxying Support for HTTP
>>> Document date: 2021-10-21
>>> Group: Individual Submission
>>> Pages: 20
>>> URL:
>>> https://www.ietf.org/archive/id/draft-age-masque-connect-ip-00.txt
>>> Status:
>>> https://datatracker.ietf.org/doc/draft-age-masque-connect-ip/
>>> Html:
>>> https://www.ietf.org/archive/id/draft-age-masque-connect-ip-00.html
>>> Htmlized:
>>> https://datatracker.ietf.org/doc/html/draft-age-masque-connect-ip
>>>
>>>
>>> Abstract:
>>>   This document describes a method of proxying IP packets over HTTP.
>>>   This protocol is similar to CONNECT-UDP, but allows transmitting
>>>   arbitrary IP packets, without being limited to just TCP like CONNECT
>>>   or UDP like CONNECT-UDP.
>>>
>>>
>>>
>>>
>>> The IETF Secretariat
>>>
>>>
>>>
>>> --
>>> Masque mailing list
>>> Masque@ietf.org
>>> https://www.ietf.org/mailman/listinfo/masque
>>>
>> --
>> Masque mailing list
>> Masque@ietf.org
>> https://www.ietf.org/mailman/listinfo/masque
>>
>