Re: [regext] Interest in collaborating on an EPP over HTTP draft?

Patrick Mevzek <pm@dotandco.com> Thu, 24 May 2018 05:31 UTC

Return-Path: <pm@dotandco.com>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E77751204DA for <regext@ietfa.amsl.com>; Wed, 23 May 2018 22:31:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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=dotandco.com header.b=l9xP7oe3; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=nX5c6rYg
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 CqwusboVYmlx for <regext@ietfa.amsl.com>; Wed, 23 May 2018 22:31:27 -0700 (PDT)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AEF151200E5 for <regext@ietf.org>; Wed, 23 May 2018 22:31:27 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id DF49821924 for <regext@ietf.org>; Thu, 24 May 2018 01:31:26 -0400 (EDT)
Received: from web3 ([10.202.2.213]) by compute3.internal (MEProxy); Thu, 24 May 2018 01:31:26 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dotandco.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=YWCwbNcTPXpB/vbfgnZckXIW0kmYw qxYIr/YwcWCTdg=; b=l9xP7oe3PXksxb4zkOiFg3EIfWMc4cyLMImq+ddC20t3D F6SY+chMJjdHve1/yE3OqO7REWpXpfLykYda4Zg0ksa0mvJV2Mr7/WVTYiU0kSaf 2c2ewmB9+TVG53/GsdGA3rD9lWAeF7yb8Wpdzxg2cggwC1Uq093J7uJSu+9TkBBm lc/QCMYjZp7ggojSVm2z6YKOlBemk4EdO2MKH89mJwAYlxwVvH4IZ+jcU6IRl4ts UOY3YXwSCYrPBuImeZIo5XSgyrf74NeaJbBgp6IjqVia/VZZgv05l7SK2hdLZKDe 6wYjO6Nbo6ta5jhW0Pvi8jusJwcU9AOP/vx7kLknw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=YWCwbN cTPXpB/vbfgnZckXIW0kmYwqxYIr/YwcWCTdg=; b=nX5c6rYgc9aubaQP+xtRZN KEAOqdjaoluEpPEO19JZAfAArpBeRdJajxLsrLO2SmY7nLGif1vBcpfvgW6yBaBk a92jx16hXAsEub9q/uCbq5M1Q1q9xlRElKS1SCSjHmYg0n1LI8eO5zIPnjYqP7wN 2q0cR0WQ0iVg/sTtOVsB38gVMwLMeakERiQicl6oGEsS366QHmmHGGw3x8AI7p9/ SGZr0DlqGCdABQV778HVLwTXCICBWtClxkpMEfrWoYrCoVYR26JtX261LfwdzBex drS8vxCcCQ78FF967tEBCJft5AxtFEs7dassip8yJZBLqiQiJJxfbUow0E6WGgpg ==
X-ME-Proxy: <xmx:Lk4GW-LirOMdx1H5gLJAuZ-iaqpdembrjHbOYEU3zN9Jxhn5anR3nw>
X-ME-Proxy: <xmx:Lk4GWwZZi3V7J7z2C24pupxbwH8E4chhQxAOmFiH6ND_7N-H5qCOhA>
X-ME-Proxy: <xmx:Lk4GW0LnACFpX8UN02rSfc073oP4xMl9wzhTGkXcyb9843Z6HmZcWA>
X-ME-Proxy: <xmx:Lk4GW5rinpQmgPgPl72nw084g4y52BIeyRgddOkIkiHbVRUycxaPfA>
X-ME-Proxy: <xmx:Lk4GW9BuT9tUHoqoan8a7mT-SqxzzaeNyv84mRF48GpV41-Tu5NqZw>
X-ME-Proxy: <xmx:Lk4GW_v47pl7P_SWt_Cul-0_l3cjsRBx1jTNxYEpvubgxCSbAwizow>
X-ME-Sender: <xms:Lk4GWz7dBa9UTFpvq22uHwCC_X6ai2SZ7jeKVPmSr66whsZzJJ1qEMG02Pk>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 887BC9E196; Thu, 24 May 2018 01:31:26 -0400 (EDT)
Message-Id: <1527139886.2861563.1382981776.64B1FF9C@webmail.messagingengine.com>
From: Patrick Mevzek <pm@dotandco.com>
To: regext@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="utf-8"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-a224ff37
In-Reply-To: <CAOZSDgC+t0mW7DJe-=T9SXWzwa9-YkgvQBeu49S5sraB+xtN_A@mail.gmail.com>
Date: Thu, 24 May 2018 07:31:26 +0200
References: <CAOZSDgAXF9jwgsXFKOg5o+dydLY-=8M1ofzSy2OkyXN59_q4Nw@mail.gmail.com> <1527038978.3713361.1381415064.1456C04C@webmail.messagingengine.com> <CAOZSDgC+t0mW7DJe-=T9SXWzwa9-YkgvQBeu49S5sraB+xtN_A@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/RscqI5TmxHmWgigI0N-cNKcnfoI>
Subject: Re: [regext] Interest in collaborating on an EPP over HTTP draft?
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 May 2018 05:31:30 -0000

On Wed, May 23, 2018, at 13:46, Anthony Eden wrote:
> I do see mentions of SMTP and BEEP in RFC 5730 in the transport discussion,
> but none of them ever became standards, right?

You are correct, after all discussions, only EPP over TLS was defined as transport.

I was able to find the following documents describing various transports for EPP:
* EPP over BXXP: https://tools.ietf.org/html/draft-ietf-provreg-epp-beep-02
* EPP over REST: https://tools.ietf.org/html/draft-wullink-restful-epp-00
(so again over HTTP too)
* EPP over SOAP: https://tools.ietf.org/html/draft-liu-epp-soap-00
(some kind of HTTP also, even if SOAP could be layered on top of various transports)
* EPP over SMTP: https://tools.ietf.org/html/draft-brunner-epp-smtp-00

They all have sections on sessions, stateless vs stateful, etc.
 
As for discussions, this page:
http://www.cafax.se/ietf-provreg/maillist/2001-08/threads.html
as links to more than one email about messages and transports.

> I mention briefly in the introduction of the draft, however my goals with
> this draft would be to make it registry implementation easier for small
> registries who currently only provide a very small number of concurrent TCP
> connections. Stateless protocols should be easier for a small registry to
> work with as requests can be distributed across multiple servers without
> the need for session tracking.

My experience does not match this, so I may lack some examples/points,
and I would like to learn more.

I guess it all depends what you define as big or small registries.

Here are some facts I know about:

* for the one I know using EPP over HTTPS they are not exactly registries I would call small: both .IT and .PL are well over 2 millions of domain names. I am sure they would have been smaller when they started EPP over HTTPS and while I lack hard facts on this, I am sure they already had hundreds of thousands of domains then
* I know at least one ccTLD registry even bigger than .IT or .PL, where everything (all TLS connections) are handled by one server
* I think big/small is here not really related to the number of domain names but more the number of registrars, and the number of connections allowed to each of them (connections or sessions, depending how much state you have).
I believe that a small registry could be something with dozens of registrars maybe in the small hundreds number, that is all, and for the number of connections I guess there would be no need of more than 1 or 2 per registrar.
What I want to say here is that alltogether I think it makes a low number of connections to handle.
* all registries impose timeouts on their connections, typically in the 15 minutes average, and some of them apply also hard timeouts, hence releasing a connection after a given time whatever happens.

What is true however is that nowadays with many services using the "cloud",
no other port than 443 may be exposed to the outside world, or maybe no "lower" ports. In the second case, even if 700 is the standard EPP port, any other one could be used.

Also, Nomulus, the Google open source EPP based registry implementation
had the same kind of problems for a long time, quoting their documentation:
GAE Proxy: App Engine Standard only serves HTTP/S traffic. A proxy to forward traffic on EPP and WHOIS ports to App Engine via HTTPS is provided.
(first releases did not have this proxy)

So maybe the problem is more related on where/how the application servers run?

> Additionally I think HTTP would be easier for new registrars to start with
> because of existing client-side tooling and libraries.

I am not sure to understand this point. You have two parts, the transport and the protocol. The protocol is EPP, based on XML. All languages have full support of XML. You may want to have an EPP library for some abstraction over XML but in any case it would be the same library used for generating/parsing the EPP frames, whatever transport you are using, so HTTPS or TLS that does not change that point I believe.
And all languages also have full support for TLS (HTTPS needs it obviously), real problems are more around certificates management and algorithms configuration, which will be exactly the same at the TLS or HTTPS level.

> As for the drawbacks, to take advantage of HTTP 1.1's stateless nature, the
> specific requirement of EPP being stateful will need to be relaxed. Also,
> there is additional data (headers) that must be transported with HTTP
> requests vs. EPP over TCP which increases the amount of bandwidth used per
> request.

I believe anyway that even without adding anything, HTTP as a layer adds data/metadata and hence the messages are bigger.

For example, the length of the message will need as many bytes as
"Content-Length: " + size where in TCP there would be just the size.

However I would not think too much about bandwidth use, as XML is already not a very light serialization mechanism.
 
> I have nothing against an HTTP/2 implementation, I just don't see it as
> having the same benefits as HTTP/1.1 given that HTTP/2 uses a single TCP
> connection and multiplexing, effectively negating the stateless benefits of
> HTTP/1.1.

Ok, I can see that. But I think it would still be strange to define a new standard today saying that you need to use HTTP/1 with it and not the newer HTTP/2.

And at least in the gTLD world, things could probably not implemented before existing as an RFC. And some gTLDs are very small. This is not technical related but may need to be taken into account if you wish for large adoption.

-- 
  Patrick Mevzek