<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.0.31 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC6838 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml">
<!ENTITY RFC1035 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
<!ENTITY RFC3548 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3548.xml">
<!ENTITY RFC3650 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3650.xml">
]>

<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>

<rfc ipr="trust200902" docName="draft-durand-doa-over-dns-02" category="exp">

  <front>
    <title>DOA over DNS</title>

    <author initials="A." surname="Durand" fullname="Alain Durand">
      <organization abbrev="ICANN">Internet Corporation for Assigned Names and Numbers</organization>
      <address>
        <postal>
          <street>801 17th St NW Suite 400</street>
          <city>Washington</city>
          <code>DC 20006</code>
          <country>USA</country>
        </postal>
        <email>Alain.Durand@icann.org</email>
      </address>
    </author>
    <author initials="R." surname="Bellis" fullname="Ray Bellis">
      <organization abbrev="ISC">Internet Systems Consortium, Inc.</organization>
      <address>
        <postal>
          <street>950 Charter Street</street>
          <city>Redwood City</city>
          <code>CA 94063</code>
          <country>USA</country>
        </postal>
        <phone>+1 650 423 1200</phone>
        <email>ray@isc.org</email>
      </address>
    </author>

    <date year="2017" month="July" day="25"/>

    <area>Internet</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>Abstract</t>

<t>This document defines a DOA RR type to implement the Digital Object
Architecture over DNS.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>This document defines an RR type to implement an architecture similar to
the Digital Object Architecture <xref target="ITU-X.1255"/> within the DNS. Each DOA
RR contains an object type that might be opaque and private to the
producer and the consumer of the data and either the data (if small
enough to fit in the RR) or a pointer on how to retrieve the actual
data.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>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
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>

</section>
<section anchor="the-doa-resource-record" title="The DOA Resource Record">

<section anchor="description" title="Description">

<t>The Type value for the DOA RR is TBD.  The DOA RR is class independent.
No special processing is required within DNS servers or libraries.</t>

<t>The RDATA of the resource record comprises of five fields:
DOA-ENTERPRISE, DOA-TYPE, DOA-MEDIA-TYPE, DOA-LOCATION and DOA-DATA.</t>

<section anchor="enterprise-and-type-fields" title="Enterprise and Type fields">

<t>The DOA-ENTERPRISE and DOA-TYPE fields are combined to indicate the
semantic type of the DOA record being represented by the RR.  That
semantic is private to the producer of data hosted on an authoritative
DNS server and the application software using a DNS stub resolver to
retrieve it.</t>

<t>The DOA-ENTERPRISE field uses values as specified in the IANA SMI
Network Management Private Enterprise Codes Registry
<xref target="IANA-ENTERPRISE"/>.  An exception to that is that the reserved value of
zero (0) is used to indicate that the the DOA-ENTERPRISE is not set.</t>

<t>Some commonly used values of DOA-TYPE are registered in the IANA DOA
Type Registry <xref target="doatype"/>, others are privately defined.  As those
private types might be used in cross-organization systems, use of the
DOA-ENTERPRISE field is RECOMMENDED to disambiguate types.</t>

</section>
<section anchor="location-field" title="Location field">

<t>The DOA-LOCATION signals how the DOA-DATA field should be interpreted
using the values specified in the DOA Location Type Registry
<xref target="doalocation"/>.</t>

<t>The value 0 is reserved.</t>

<t>For the value 1 (“Local”), the DOA-DATA contains the actual DOA object.</t>

<t>For the value 2 (“URI”) the DOA-DATA contains a UTF-8 encoded string
representing the URI from which the DOA object can be obtained.</t>

<t>For the value 3 (“HDL”) the DOA-DATA contains a UTF-8 encoded string
representing the handle from the Handle System <xref target="RFC3650"/>  from which
the DOA object can be obtained.</t>

<t>Other values might be defined in the future, for example for NFS, LDAP,
etc…</t>

<t>DNS software implementing the DOA RR type MUST NOT drop or otherwise
refuse to handle the DOA RRs containing an unknown or unsupported
DOA-location and MUST treat the DOA-DATA portion of the RR as an
abstract opaque field.</t>

</section>
<section anchor="media-type" title="Media Type">

<t>The DOA-MEDIA-TYPE field contains the Internet media type <xref target="RFC6838"/>
for the DOA object represented by this record.</t>

<t>If a non-Local object is retrieved over a protocol that supports
inclusion of a media type value (e.g. an HTTP Content-Type header) then
the client MUST use that value (if supplied) in preference to any value
specified inside this resource record. In such case, the DOA-MEDIA-TYPE
MAY be set to NULL, length 0.</t>

</section>
<section anchor="doadata" title="Data">

<t>The DOA-DATA field contains either the object’s data, or some form of
reference specifying from where the data can be obtained, per the
DOA-LOCATION field above.</t>

</section>
</section>
<section anchor="doa-rdata-wire-format" title="DOA RDATA Wire Format">

<figure><artwork><![CDATA[
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 0: |                                                               |
    |                        DOA-ENTERPRISE                         |
    |                                                               |
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 4: |                                                               |
    |                           DOA-TYPE                            |
    |                                                               |
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 8: |         DOA-LOCATION          |         DOA-MEDIA-TYPE        /
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
10: /                                                               /
    /                  DOA-MEDIA-TYPE (continued)                   /
    /                                                               /
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
    /                                                               /
    /                           DOA-DATA                            /
    /                                                               /
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
]]></artwork></figure>

<t>DOA-ENTERPRISE: a 32-bit unsigned integer in network order.</t>

<t>DOA-TYPE: a 32-bit unsigned integer in network order.</t>

<t>DOA-LOCATION: an 8-bit unsigned integer.</t>

<t>DOA-MEDIA-TYPE: A &lt;character-string&gt; (see <xref target="RFC1035"/>).  The
first octet of the &lt;character-string&gt; contains the number of
characters to follow.</t>

<t>DOA-DATA: A variable length blob of binary data.  The length of the
DOA-DATA is not contained within the wire format of the RR and has to be
computed from the RDLENGTH of the entire RR once other fields have been
taken into account.</t>

</section>
<section anchor="doa-rdata-presentation-format" title="DOA RDATA Presentation Format">

<t>The DOA-ENTERPRISE field is presented as an unsigned 32-bit decimal integer with
range 0 - 4,294,967,295.</t>

<t>The DOA-TYPE field is presented as an unsigned 32-bit decimal integer with
range 0 - 4,294,967,295.</t>

<t>The DOA-LOCATION field is presented as an unsigned 8-bit decimal integer with
range 0 - 255.</t>

<t>The DOA-MEDIA-TYPE field is presented as a single &lt;character-string&gt;.</t>

<t>The DOA-DATA is presented as Base64 encoded data <xref target="RFC3548"/>.  White
space is permitted within the Base64 data.</t>

</section>
</section>
<section anchor="security" title="Security Considerations">

<t>The use of DNSSEC is encouraged to protect the integrity of the data
contained in the DOA RR type.</t>

</section>
<section anchor="privacy" title="Privacy Considerations">

<t>Personally identifiable information (PII) data appearing in the DOA-DATA
field SHOULD be encrypted.</t>

</section>
<section anchor="operational-consideration" title="Operational consideration">

<t>Some DOA records might contain large data that is only of interest to a
single party, as such, caching those records does not provide much
benefits and could be considered a denial of service attack on the
caching resolver infrastructure. It is thus RECOMMENDED that the TTL
associated with large DOA RRs be set as small as possible to avoid
caching.</t>

</section>
<section anchor="iana" title="IANA Considerations">

<section anchor="doatype" title="DOA Type Registry">

<t>IANA are requested to create the DOA Type Registry with initial contents as follows:</t>

<texttable>
      <ttcol align='right'>Value</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>0</c>
      <c>Reserved - cannot be assigned</c>
      <c>RFC-TBD1</c>
      <c>1</c>
      <c>contact email</c>
      <c>RFC-TBD1</c>
      <c>2</c>
      <c>contact website</c>
      <c>RFC-TBD1</c>
      <c>3</c>
      <c>contact telephone</c>
      <c>RFC-TBD1</c>
      <c>4 - 99</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>100</c>
      <c>public key</c>
      <c>RFC-TBD1</c>
      <c>101 - 99,999</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>100000 -</c>
      <c>Reserved for Private Use</c>
      <c>RFC-TBD1</c>
</texttable>

<t>Assignments in the 1-99,999 range in this registry require Expert Review.</t>

</section>
<section anchor="doalocation" title="DOA Location Type Registry">

<t>IANA are requested to create the DOA Location Type Registry with initial
contents as follows:</t>

<texttable>
      <ttcol align='right'>Value</ttcol>
      <ttcol align='left'>Location</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>0</c>
      <c>Reserved - cannot be assigned</c>
      <c>RFC-TBD1</c>
      <c>1</c>
      <c>Local</c>
      <c>RFC-TBD1</c>
      <c>2</c>
      <c>URI</c>
      <c>RFC-TBD1</c>
      <c>3</c>
      <c>HDL</c>
      <c>RFC-TBD1</c>
      <c>4 - 199</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>200 - 254</c>
      <c>Reserved for Private Use</c>
      <c>RFC-TBD1</c>
      <c>255</c>
      <c>Reserved - cannot be assigned</c>
      <c>RFC-TBD1</c>
</texttable>

<t>Assignments in the 4-199 range in this registry require Expert Review.</t>

</section>
</section>
<section anchor="acknowledgments" title="Acknowledgments">

</section>


  </middle>

  <back>

    <references title='Normative References'>

<reference anchor="IANA-ENTERPRISE" target="https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers">
  <front>
    <title>SMI Network Management Private Enterprise Codes Registry</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
&RFC2119;
&RFC8174;
&RFC6838;
&RFC1035;
&RFC3548;


    </references>

    <references title='Informative References'>

<reference anchor="ITU-X.1255" target="http://www.itu.int/rec/T-REC-X.1255-201309-I">
  <front>
    <title>Framework for discovery of identity management information</title>
    <author >
      <organization>ITU</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
&RFC3650;


    </references>



  </back>
</rfc>

