ietf
[Top] [All Lists]

Re: On IETF policy for protocol registries

2016-01-19 01:47:24

On Jan 18, 2016, at 11:07 PM, Phillip Hallam-Baker 
<phill(_at_)hallambaker(_dot_)com> wrote:

RFC5785 specifies a registry for prefixes in the /.well-known/ space
of a HTTP server.

So for example, I have registered mmm as the SRV prefix for the
Mathematical Mesh portal protocol. This is used to resolve
transactions that are bound to an account identifier in RFC822 style
format. e.g. alice(_at_)example(_dot_)com.

A service provider might advertise service on host1 and host2 with DNS
entries as follows:

_mmm._tcp.example.com  SRV 0 20 80 host1.example.com
_mmm._tcp.example.com  SRV 0 80 80 host2.example.com
mmm.example.com CNAME host1.example.com

It is natural for the client resolving alice(_at_)example(_dot_)com to use the
following Web Service Endpoints:

http://host1.example.com/.well-known/mmm/
http://host2.example.com/.well-known/mmm/

In effect we are providing the SRV prefix to the HTTP server using the
URI request line in the same way that we use the Host: header to tell
the server which service is being accessed (example.com in either case
as following the prcedent set for CNAME lookup. we give the original
DNS query name, not the internal DNS translations).

Now people may or may not like this particular proposal. Heck, I might
not even like it after I have used it for a while. But it is certainly
based on the Internet architecture to the extent any of it has been
written down. It is consistent with current practice and with the
requirements of the RFCs I have read. Nobody who has objected to this
approach has ever given me a technical argument as to why it is wrong.

My problem is that while the SRV registry is first come, the
.well-known registry is 'specification required'. This creates two
problems:

1) It is quite possible that following current registration practices,
someone else might apply for mmm and the registration would be
granted. And then my only recourse might be a lawsuit.

2) I may not be able to provide the specification, either because the
protocol is experimental or proprietary.

One approach would be to register "/.well-known/_srv/" using a specification, 
then have that spec allow anyone with an SRV registration to use (for example) 
"/.well-known/_srv/_tcp/_mmm" without further registration.  Note: this is just 
a strawman syntax; there's a nice bikeshed available about how many underscores 
to use.

-- 
Joe Hildebrand