MILE Working Group S. Banghart
Internet-Draft D. Waltermire
Intended status: Informational NIST
Expires: September 6, 2018 March 5, 2018

ROLIE Discovery Mechanism
draft-banghart-mile-rolie-discovery-00

Abstract

This document specifies a mechanism that allows consistent discovery of ROLIE repositories. This discovery is extremely important for automated tools that cannot use out-of-band Service Document discovery. Any human operators are also able to use this mechanism to avoid relying on inconsistent human to human communication. This document updates the ROLIE core specification.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on September 6, 2018.

Copyright Notice

Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

Discovery of a top-level resource is an important part of any RESTful service. In order to begin navigating the web of information available in ROLIE [RFC8322], a client must first locate the Service Document. Without a well-defined discovery mechanism, clients must use out-of-band methods to locate the Service Document, such as crawling a web page or directly contacting website administrators.

The following goals are laid out for this mechanism:

Only requires domain name as input to locate an exact URL for Service Document retrieval.
Fully automatable, but usable by human operators.
Supports multi-tenancy, that is, multiple ROLIE services hosted on the same domain.

In order to meet these goals , this document updates ROLIE to require the implementation of DNS-Based Service Discovery (DNS-SD) [RFC6763].

DNS-SD provides a standardized mechanism built on top of existing DNS processes that would allow for ROLIE clients to automatically discover ROLIE services provided on a domain. DNS-SD is relatively simple to understand and implement, and as it only uses existing fields in DNS Zone Files, does not require any additional implementation work by the DNS server.

The rest of the document assumes that the reader has a basic understanding of both DNS-SD, and traditional DNS configuration, including zone files.

2. Terminology

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

3. XML-related Conventions

Needed? Todo.

4. Requirements for Use of DNS Service Discovery

A ROLIE service MUST be registered to the relevant DNS Server using the conventions and requirements laid out in DNS-SD ([RFC6763].

A ROLIE service MUST use the service name "rolie" as registered to the Service Names and Port Numbers registry.

TODO: Define a standarized composite service name (i.e. _rolie_https._tcp)

5. IANA Considerations

This document registers a new entry in the Service Name and Port Number Registry at <https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml>. The registration request is as follows:

           +--------------------+-----------------------------+
           | Service Name       | rolie                       |
           | Transport Protocol | tcp                         |
           | Assignee           | Stephen Banghart            |
           |                    | <stephen.banghart@nist.gov> |
           | Contact            | Stephen Banghart            |
           |                    | <stephen.banghart@nist.gov> |
           | Description        | Resource-Oriented           |
           |                    | Lightweight Information     |
           |                    | Exchange (ROLIE)            |
           | Reference          | This document, RFC8322      |
           | Port Number        | (Intentionally Blank)       |
           +--------------------+-----------------------------+
      

6. Security Considerations

Todo.

7. Privacy Considerations

Todo.

8. Acknowledgements

9. Normative References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017.
[RFC8322] Field, J., Banghart, S. and D. Waltermire, "Resource-Oriented Lightweight Information Exchange (ROLIE)", RFC 8322, DOI 10.17487/RFC8322, February 2018.

Appendix A. Examples

A.1. Zone File

In this section we will provide a nominal zone file that provides DNS-SD for ROLIE and explain the various important pieces.

$ORIGIN example.com.

@   IN SOA example.com. unused-email (
    2017030300 ; serial
    3600       ; refresh
    1800       ; retry
    604800     ; expire
    600 )      ; ttl
    
@ IN NS example.com.

_dns-update._udp IN SRV 0 0 53 example.com.

b._dns-sd._udp  IN PTR @   ;  "b" = browse domain
lb._dns-sd._udp IN PTR @   ; "lb" = legacy browse domain 
                            (include domain in empty-string browses)
r._dns-sd._udp  IN PTR @   ;  "r" = registration domain

_rolie_https._tcp PTR MyRolieService._rolie_https._tcp
MyRolieService._rolie_https._tcp SRV 0 0 227 rolie.example.com.
                                 TXT path=/rolie

TODO: Explain each section. Correct example zone file to match current implementation.

Authors' Addresses

Stephen A. Banghart National Institute of Standards and Technology 100 Bureau Drive Gaithersburg, Maryland USA Phone: (301)975-4288 EMail: stephen.banghart@nist.gov
David Waltermire National Institute of Standards and Technology 100 Bureau Drive Gaithersburg, Maryland 20877 USA EMail: david.waltermire@nist.gov