<?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.2.7 -->

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

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

<rfc ipr="trust200902" docName="draft-durand-object-exchange-00" category="exp">

  <front>
    <title>DNS Object Exchange</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="December" day="19"/>

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

    <abstract>


<t>Abstract</t>

<t>This document defines an RR type to implement an architecture for the
exchange of digitial objects using identifiers stored within the DNS.</t>



    </abstract>


  </front>

  <middle>


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

<t>This document defines an RR type (“OX”) to implement an architecture for
the exchange of digital objects using identifiers stored within the DNS.
DNS. Each OX 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-ox-resource-record" title="The OX Resource Record">

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

<t>The Type value for the OX RR is TBD.  The OX 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:
OX-ENTERPRISE, OX-TYPE, OX-MEDIA-TYPE, OX-LOCATION and OX-DATA.</t>

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

<t>The OX-ENTERPRISE and OX-TYPE fields are combined to indicate the
semantic type of the OX 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 OX-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 OX-ENTERPRISE is not set.</t>

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

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

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

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

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

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

<t>For the value 3 (“HDL”) the OX-DATA contains a UTF-8 encoded string
representing the handle from the Handle System <xref target="RFC3650"/>  from which
the OX 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 OX RR type MUST NOT drop or otherwise
refuse to handle the OX RRs containing an unknown or unsupported
OX-LOCATION and MUST treat the OX-DATA portion of the RR as an
abstract opaque field.</t>

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

<t>The OX-MEDIA-TYPE field contains the Internet media type <xref target="RFC6838"/>
for the OX 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 OX-MEDIA-TYPE
MAY be set to NULL, length 0.</t>

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

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

</section>
</section>
<section anchor="ox-rdata-wire-format" title="OX RDATA Wire Format">

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

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

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

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

<t>OX-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>OX-DATA: A variable length blob of binary data.  The length of the
OX-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="ox-rdata-presentation-format" title="OX RDATA Presentation Format">

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

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

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

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

<t>The OX-DATA is presented as Base64 encoded data <xref target="RFC4648"/> unless the
OX-DATA is empty in which case it is presented as a single dash
character (“-“, ASCII 45).  White space is permitted within 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 OX RR type.</t>

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

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

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

<t>Some OX 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 OX RRs be set as small as possible to avoid
caching.</t>

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

<section anchor="oxtype" title="OX Type Registry">

<t>IANA are requested to create the OX 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="oxlocation" title="OX Location Type Registry">

<t>IANA are requested to create the OX 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;
&RFC4648;


    </references>

    <references title='Informative References'>

&RFC3650;


    </references>



  </back>

<!-- ##markdown-source:
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
zb8ZnkLUY/8D26dFCGkiAAA=

-->

</rfc>

