<?xml version="1.0" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc ipr="trust200902" category="std" docName="draft-hunt-note-rr-01">
<?rfc toc="yes"?>         <!-- generate a table of contents -->
<?rfc symrefs="yes"?>     <!-- use anchors instead of numbers for references -->
<?rfc sortrefs="yes" ?>   <!-- alphabetize the references -->
<?rfc compact="yes" ?>    <!-- conserve vertical whitespace -->
<?rfc subcompact="no" ?>  <!-- but keep a blank line between list items -->
<front>
  <title abbrev="note-rr">A DNS Resource Record for Confidential Comments (NOTE RR)</title>

  <author initials="E." surname="Hunt" fullname="Evan Hunt">
    <organization>ISC</organization> 
    <address>
      <postal>
        <street>950 Charter St</street>
        <street></street>
        <city>Redwood City</city> <region>CA</region>
        <code>94063</code>
        <country>USA</country>
      </postal>
      <email>each@isc.org</email>
    </address>
  </author>
  <author initials="D." surname="Mahoney" fullname="Dan Mahoney">
    <organization>ISC</organization> 
    <address>
      <postal>
        <street>950 Charter St</street>
        <street></street>
        <city>Redwood City</city> <region>CA</region>
        <code>94063</code>
        <country>USA</country>
      </postal>
      <email>dmahoney@isc.org</email>
    </address>
  </author>

  <date month="May" year="2014"/>

  <area>General</area>
  <keyword>DNS</keyword>
  <keyword>RR</keyword>
  <keyword>comments</keyword>
  <keyword>note</keyword>
  <abstract>
    <t>
      While the DNS zone master file format has always allowed comments,
      there is no existing mechanism to preserve comments once the
      zone has been loaded into memory or converted to a binary
      representation. This note proposes a new "NOTE" RR type, which
      is stored alongside zone data and may be included in zone
      transfers, but is not returned in response to DNS queries.
    </t>
  </abstract>
</front>

<middle>
<!-- This document was prepared using Pandoc2rfc -->
<!-- https://github.com/miekg/pandoc2rfc -->

  
<section title="Introduction" anchor="introduction">
  
  <t>
    DNS zone master files, as specified in
    <xref target="RFC1035"/>, can include comment text: any text
    on a line following an unquoted semicolon is ignored. Once the zone
    has been loaded, however, these comments can be lost. Servers which
    dump backup copies of dynamically updated or automatically signed
    zones may obliterate comments that were in the original zone files;
    slave servers do not receive comment text when transferring zones
    from master servers.
  </t>
  <t>
    Comments can be stored in the zone as TXT RRs, which are backed up
    and preserved across across zone transfers, but TXT records are
    available to any DNS query. Because zone file comments commonly
    include information about internal networks and/or personnel that
    could be of use to potential attackers, it is better for
    distribution of comment data to be restricted.
  </t>
  <t>
    This document proposes a mechanism to store confidential comments
    within zone data. The presence/absence and the content of comments
    are concealed from normal DNS queries (except from specific trusted
    DNS clients), as well as from slave servers that do not explicitly
    signal their ability to cooperate with these restrictions.
  </t>
  <t>
    A "NOTE" RR can be used to store a comment at a DNS node.
    It may be transferred to slaves or written to permanent storage, but
    it is not returned in response to normal DNS queries.
  </t>
  <t>
    A "NOTE-OK" EDNS <xref target="RFC6891"/> option
    signals that the sender understands NOTE records and will restrict
    their dissemination. If this option is not included in a zone
    transfer request, NOTE data will be omitted from the zone transfer.
  </t>
  <t>
    Traditional zone file comments, indicated by semicolons, are still
    ignored.
  </t>
  <section title="Reserved Words" anchor="reserved-words">
    
    <t>
      The key words "MUST", "MUST NOT",
      "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT",
      "RECOMMENDED", "MAY", and "OPTIONAL"
      in this document are to be interpreted as described in
      <xref target="RFC2119"/>.
    </t>
  </section>
</section>
<section title="The NOTE RR Type" anchor="the-note-rr-type">
  
  <t>
    The NOTE RR is defined for all classes, with mnemonic NOTE and type
    code [TBD]. The RDATA and presentation formats are identical to
    those of the TXT RR defined in <xref target="RFC1035"/>, e.g:
  </t>
  <figure><artwork>
    $ORIGIN example.com.
    joesbox   7200  IN  A       198.51.100.42
              7200  IN  AAAA    2001:DB8:3F:B019::17
              0     IN  NOTE    "Desktop system for Joe Smith, x7889"
</artwork></figure>
</section>
<section title="The NOTE-OK Option" anchor="the-note-ok-option">
  
  <t>
    A slave transferring a zone from a master server must explicitly
    signal its understanding of the NOTE RR. The mechanism for this is
    an EDNS option, with OPTION-CODE [TBD]. OPTION-LENGTH MUST be zero
    and OPTION-DATA MUST be empty.
  </t>
  <t>
    Including a NOTE-OK option in a query of type AXFR or type IXFR
    signals that the zone transfer client has implemented the NOTE RR
    and is able to restrict access to NOTE data as specified in Section
    4. If the option is not included, the server MUST omit NOTE records
    from the zone transfer.
  </t>
  <t>
    Including a NOTE-OK option in a query of type NOTE or type ANY
    signals that the client is not a recursive or forwarding resolver
    and will not cache or further distribute the response. If and only
    if the client is explicitly authorized to receive NOTE data, the
    server MAY respond. If the option is not included, the server MUST
    respond as if NOTE data did not exist.
  </t>
</section>
<section title="Authoritative Server Behavior" anchor="authoritative-server-behavior">
  
  <t>
    Because zone file comments often contain information which may be
    security-sensitive or otherwise not for public consumption,
    authoritative servers implementing the NOTE RR type MUST implement
    the restrictions described below:
  </t>
  <t><list style="symbols">
    <t>
      
        NOTE RRs MUST NOT be returned in response to any DNS query,
        including zone transfer requests, unless the query contains a
        NOTE-OK option.
      
    </t>
    <t>
      
        The NOTE RRset TTL MUST be zero. Any configured TTL greater than
        zero is overridden.
      
    </t>
    <t>
      
        NOTE RRs MUST be omitted from responses to queries of type ANY.
        (This MAY be relaxed if the client is explicitly trusted with
        NOTE data and the query contains a NOTE-OK option.)
      
    </t>
    <t>
      
        When an explicit query for type NOTE is received, the server
        MUST return NXDOMAIN or NOERROR/NODATA, depending on the
        presence or absence of other data at the node. (This MAY be
        relaxed if the client is explicitly trusted with NOTE data and
        the query contains a NOTE-OK option.)
      
    </t>
  </list></t>
  <t>
    Where and as noted, these requirements MAY be relaxed, if and only
    if a separately-configurable access control mechanism is available
    so that NOTE records are visible only to a restricted set of
    explicitly trusted clients (i.e., queries originating from a
    particular IP address range or signed by a specific TSIG key, and
    including a NOTE-OK option), and hidden from all other clients. The
    default setting of such a mechanism, and the behavior of any server
    not implementing such a mechanism, MUST be to hide NOTE data from
    all clients.
  </t>
</section>
<section title="Recursive Server Behavior" anchor="recursive-server-behavior">
  
  <t>
    Recursive resolvers MUST NOT send NOTE-OK when iterating to satisfy
    recursive client queries.
  </t>
  <t>
    In addition, resolvers SHOULD implement the following restrictions:
  </t>
  <t><list style="symbols">
    <t>
      
        NOTE RRs MUST NOT be cached; a TTL greater than zero MUST be
        ignored.
      
    </t>
    <t>
      
        Recursive queries for type NOTE MUST be answered as if the data
        did not exist.
      
    </t>
    <t>
      
        Resolvers SHOULD NOT iterate for type NOTE except to determine
        whether the correct response code is NXDOMAIN or NOERROR.
      
    </t>
  </list></t>
</section>
<section title="DNSSEC Signing Behavior" anchor="dnssec-signing-behavior">
  
  <t>
    In order to preserve the fiction that NOTE RRs do not exist for
    untrusted clients, some changes are needed with respect to DNSSEC
    signing and query logic <xref target="RFC4035"/>:
  </t>
  <t><list style="symbols">
    <t>
      
        NOTE RRsets MAY be left unsigned.
      
    </t>
    <t>
      
        If NOTE RRsets are signed, then the covering RRSIG RRsets MUST
        be hidden from untrusted clients just as the NOTE RRsets are. If
        a NOTE RRset at an otherwise empty node is signed, the server
        MUST respond with NXDOMAIN to a query of type NOTE or type ANY,
        in spite of the presence of an RRSIG RRset at that node. RRSIG
        RRsets covering type NOTE MUST be omitted from zone transfers
        and query responses whenver NOTE RRsets would be. RRSIG RRsets
        covering type NOTE MUST have TTL zero.
      
    </t>
    <t>
      
        Nodes containing NOTE RRs but no other data SHOULD be omitted
        from NSEC <xref target="RFC4034"/> RR chains and MAY be
        omitted from NSEC3 <xref target="RFC5155"/> RR chains.
      
    </t>
    <t>
      
        The NOTE RR type MUST NOT be included in the Type Bit Map field
        of an NSEC or NSEC3 RR.
      
    </t>
  </list></t>
</section>
<section title="UPDATE Behavior" anchor="update-behavior">
  
  <t>
    NOTE RRs MAY be submitted via UPDATE
    <xref target="RFC2136"/>. Servers SHOULD ignore prerequisites
    that specify type NOTE, in order to conceal from untrusted clients
    the presence or absence of NOTE RRs.
  </t>
</section>
<section title="Security Considerations" anchor="security-considerations">
  
  <t>
    It is an explicit design goal that NOTE data should not be
    accessible via normal DNS queries, because zone file comments
    commonly include information that could be of use to potential
    attackers.
  </t>
  <t>
    Operators using NOTE RRs in their zones SHOULD disallow zone
    transfers except to trusted slave servers. Authoritative servers MAY
    refuse to load or serve NOTE data if zone transfers are not
    restricted.
  </t>
</section>
<section title="IANA Considerations" anchor="iana-considerations">
  
  <t>
    IANA is requested to take the actions in this section.
  </t>
  <section title="NOTE RR Type Code" anchor="note-rr-type-code">
    
    <t>
      This document requests the allocation of a DNS RR type number for
      the NOTE RR type.
    </t>
  </section>
  <section title="NOTE-OK Option Code" anchor="note-ok-option-code">
    
    <t>
      This document requests the allocation of an EDNS(0) option code
      for the NOTE-OK option.
    </t>
  </section>
</section>
<section title="Acknowledgments" anchor="acknowledgments">
  
  <t>
    Thanks to Paul Vixie, Stephen Morris, Chuck Aurora, Jeremy Reed and
    Nicholas Weaver, Doug Barton and Olafur Gudmundsson for suggestions
    and feedback.
  </t>
</section>

</middle>

<back>
  <references title="Normative References">
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='RFC1035'>

<front>
<title abbrev='Domain Implementation and Specification'>Domain names - implementation and specification</title>
<author initials='P.' surname='Mockapetris' fullname='P. Mockapetris'>
<organization>USC/ISI</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone></address></author>
<date year='1987' day='1' month='November' /></front>

<seriesInfo name='STD' value='13' />
<seriesInfo name='RFC' value='1035' />
<format type='TXT' octets='125626' target='http://www.rfc-editor.org/rfc/rfc1035.txt' />
</reference>
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='RFC2136'>

<front>
<title abbrev='DNS Update'>Dynamic Updates in the Domain Name System (DNS UPDATE)</title>
<author initials='P.' surname='Vixie' fullname='Paul Vixie'>
<organization>Internet Software Consortium</organization>
<address>
<postal>
<street>Star Route Box 159A</street>
<street>Woodside</street>
<street>CA 94062</street></postal>
<phone>+1 415 747 0204</phone>
<email>paul@vix.com</email></address></author>
<author initials='S.' surname='Thomson' fullname='Susan Thomson'>
<organization>Bellcore</organization>
<address>
<postal>
<street>445 South Street</street>
<street>Morristown</street>
<street>NJ 07960</street></postal>
<phone>+1 201 829 4514</phone>
<email>set@thumper.bellcore.com</email></address></author>
<author initials='Y.' surname='Rekhter' fullname='Yakov Rekhter'>
<organization>Cisco Systems</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<street>San Jose</street>
<street>CA 95134-1706</street></postal>
<phone>+1 914 528 0090</phone>
<email>yakov@cisco.com</email></address></author>
<author initials='J.' surname='Bound' fullname='Jim Bound'>
<organization>Digital Equipment Corp.</organization>
<address>
<postal>
<street>110 Spitbrook Rd ZK3-3/U14</street>
<street>Nashua</street>
<street>NH 03062-2698</street></postal>
<phone>+1 603 881 0400</phone>
<email>bound@zk3.dec.com</email></address></author>
<date year='1997' month='April' />
<area>Applications</area>
<keyword>domain name</keyword>
<keyword>domain name system</keyword>
<abstract>
<t>
   The Domain Name System was originally designed to support queries of
   a statically configured database.  While the data was expected to
   change, the frequency of those changes was expected to be fairly low,
   and all updates were made as external edits to a zone&apos;s Master File.
</t>
<t>
   Using this specification of the UPDATE opcode, it is possible to add
   or delete RRs or RRsets from a specified zone.  Prerequisites are
   specified separately from update operations, and can specify a
   dependency upon either the previous existence or nonexistence of an
   RRset, or the existence of a single RR.
</t>
<t>
   UPDATE is atomic, i.e., all prerequisites must be satisfied or else
   no update operations will take place.  There are no data dependent
   error conditions defined after the prerequisites have been met.
</t></abstract></front>

<seriesInfo name='RFC' value='2136' />
<format type='TXT' octets='56354' target='http://www.rfc-editor.org/rfc/rfc2136.txt' />
<format type='HTML' octets='70333' target='http://xml.resource.org/public/rfc/html/rfc2136.html' />
<format type='XML' octets='54954' target='http://xml.resource.org/public/rfc/xml/rfc2136.xml' />
</reference>
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='RFC4034'>

<front>
<title>Resource Records for the DNS Security Extensions</title>
<author initials='R.' surname='Arends' fullname='R. Arends'>
<organization /></author>
<author initials='R.' surname='Austein' fullname='R. Austein'>
<organization /></author>
<author initials='M.' surname='Larson' fullname='M. Larson'>
<organization /></author>
<author initials='D.' surname='Massey' fullname='D. Massey'>
<organization /></author>
<author initials='S.' surname='Rose' fullname='S. Rose'>
<organization /></author>
<date year='2005' month='March' />
<abstract>
<t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.&lt;/t>&lt;t> This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4034' />
<format type='TXT' octets='63879' target='http://www.rfc-editor.org/rfc/rfc4034.txt' />
</reference>
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='RFC5155'>

<front>
<title>DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</title>
<author initials='B.' surname='Laurie' fullname='B. Laurie'>
<organization /></author>
<author initials='G.' surname='Sisson' fullname='G. Sisson'>
<organization /></author>
<author initials='R.' surname='Arends' fullname='R. Arends'>
<organization /></author>
<author initials='D.' surname='Blacka' fullname='D. Blacka'>
<organization /></author>
<date year='2008' month='March' />
<abstract>
<t>The Domain Name System Security (DNSSEC) Extensions introduced the NSEC resource record (RR) for authenticated denial of existence.  This document introduces an alternative resource record, NSEC3, which similarly provides authenticated denial of existence.  However, it also provides measures against zone enumeration and permits gradual expansion of delegation-centric zones. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5155' />
<format type='TXT' octets='112338' target='http://www.rfc-editor.org/rfc/rfc5155.txt' />
</reference>
<?xml version='1.0' encoding='UTF-8'?>
<reference anchor="RFC6891">
<front>
  <title>Extension Mechanisms for DNS (EDNS(0))</title>
  <author initials="J." surname="Damas" fullname="J. Damas" />
  <author initials="M." surname="Graff" fullname="M. Graff" />
  <author initials="P." surname="Vixie" fullname="P. Vixie" />
  <date month="April" year="2013" />
</front>
<seriesInfo name="STD" value="75" />
<seriesInfo name="RFC" value="6891" />
</reference>
  </references>
  <references title="Informative References">
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='RFC2119'>

<front>
<title abbrev='RFC Key Words'>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='Scott Bradner'>
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street></postal>
<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<date year='1997' month='March' />
<area>General</area>
<keyword>keyword</keyword>
<abstract>
<t>
   In many standards track documents several words are used to signify
   the requirements in the specification.  These words are often
   capitalized.  This document defines these words as they should be
   interpreted in IETF documents.  Authors who follow these guidelines
   should incorporate this phrase near the beginning of their document:

<list>
<t>
      The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in
      RFC 2119.
</t></list></t>
<t>
   Note that the force of these words is modified by the requirement
   level of the document in which they are used.
</t></abstract></front>

<seriesInfo name='BCP' value='14' />
<seriesInfo name='RFC' value='2119' />
<format type='TXT' octets='4723' target='http://www.rfc-editor.org/rfc/rfc2119.txt' />
<format type='HTML' octets='17491' target='http://xml.resource.org/public/rfc/html/rfc2119.html' />
<format type='XML' octets='5777' target='http://xml.resource.org/public/rfc/xml/rfc2119.xml' />
</reference>
<?xml version='1.0' encoding='UTF-8'?>

<reference anchor='RFC4035'>

<front>
<title>Protocol Modifications for the DNS Security Extensions</title>
<author initials='R.' surname='Arends' fullname='R. Arends'>
<organization /></author>
<author initials='R.' surname='Austein' fullname='R. Austein'>
<organization /></author>
<author initials='M.' surname='Larson' fullname='M. Larson'>
<organization /></author>
<author initials='D.' surname='Massey' fullname='D. Massey'>
<organization /></author>
<author initials='S.' surname='Rose' fullname='S. Rose'>
<organization /></author>
<date year='2005' month='March' />
<abstract>
<t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications.&lt;/t>&lt;t> This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4035' />
<format type='TXT' octets='130589' target='http://www.rfc-editor.org/rfc/rfc4035.txt' />
</reference>
  </references>
</back>
</rfc>
