Internet DRAFT - draft-mekking-mixfr

draft-mekking-mixfr







Network Working Group                                         W. Mekking
Internet-Draft                                                Oracle Dyn
Intended status: Standards Track                          O. Gudmundsson
Expires: September 29, 2018                                   CloudFlare
                                                          March 28, 2018


                Minimal Incremental Zone Transfer in DNS
                         draft-mekking-mixfr-02

Abstract

   This document proposes extensions to the DNS protocol to provide an
   incremental zone transfer (IXFR) mechanism with dynamic update
   (UPDATE) capabilities, to keep IXFRs that deal with DNSSEC small.

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 http://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 29, 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
   (http://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.




Mekking & Gudmundsson  Expires September 29, 2018               [Page 1]

Internet-Draft                    MIXFR                       March 2018


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Definitions . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Syntax  . . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Implicit RRSIG deletion . . . . . . . . . . . . . . . . .   3
     3.2.  Add an RR . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.3.  Delete an RR  . . . . . . . . . . . . . . . . . . . . . .   3
     3.4.  Delete an RRset . . . . . . . . . . . . . . . . . . . . .   3
     3.5.  Delete All RRsets on a Name . . . . . . . . . . . . . . .   4
     3.6.  Replace an RRset  . . . . . . . . . . . . . . . . . . . .   4
   4.  Protocol Description  . . . . . . . . . . . . . . . . . . . .   4
     4.1.  Client side . . . . . . . . . . . . . . . . . . . . . . .   4
     4.2.  Server side . . . . . . . . . . . . . . . . . . . . . . .   5
     4.3.  Future zone transfer improvements . . . . . . . . . . . .   5
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   6
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     8.1.  Informative References  . . . . . . . . . . . . . . . . .   6
     8.2.  Normative References  . . . . . . . . . . . . . . . . . .   7
   Appendix A.  Changelog  . . . . . . . . . . . . . . . . . . . . .   8
     A.1.  Version 02  . . . . . . . . . . . . . . . . . . . . . . .   8
     A.2.  Version 01  . . . . . . . . . . . . . . . . . . . . . . .   8
     A.3.  Version 00  . . . . . . . . . . . . . . . . . . . . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8

1.  Introduction

   Incremental zone transfer (IXFR, [RFC1995]) was introduced to
   efficiently transfer changed portions of a zone.  However, when a
   zone is signed with DNSSEC [RFC4033], [RFC4034], [RFC4035], the
   transfer can still become very large.  For example, when many
   resource record sets (RRsets) need to be re-signed, or when the NSEC3
   [RFC5155] salt is changed, an IXFR may become larger than a full zone
   transfer (AXFR, [RFC5936]).  This is because the IXFR includes
   complete copies of both the deleted and replacement RRSIG records.

   To keep the deltas small in zone transfers, we need to have a richer
   change syntax, for example like in Dynamic Update (DNS UPDATE,
   [RFC2136].  This document introduces a new query type MIXFR (minimal
   incremental zone transfer) that is able to express this richer
   syntax.  The goal of this proposal is to allow small changes to be
   communicated over UDP, and remove as much redundant information from
   the zone transfer as possible.

   An earlier proposal to keep the zone transfers small is IXFR-ONLY
   [IXFR-ONLY], by giving the client an oppurtunity to signal the server



Mekking & Gudmundsson  Expires September 29, 2018               [Page 2]

Internet-Draft                    MIXFR                       March 2018


   that it prefers an error above a fall back to an AXFR in case the
   server is not able to send an IXFR.  However IXFR-ONLY did not reduce
   the size of an IXFR.

2.  Definitions

   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 [RFC2119].

3.  Syntax

   The syntax for MIXFR is a superset of IXFR.  The richer syntax of
   MIXFR allows to add or delete multiple records with one resource
   record (RR).  MIXFR is DNSSEC aware thus if there is a change to
   RRset it knows to delete the covering RRISG(s), this saves the
   transmission of old RRsigs.

3.1.  Implicit RRSIG deletion

   When an RRset is modified, the MIXFR client MUST also remove all
   existing RRSIG records on that RRset.  This is valid for all RRtypes
   except RRSIG itself.

3.2.  Add an RR

   This works the same as with IXFR, with implicit RRSIG delete logic
   added.

3.3.  Delete an RR

   This works the same as with IXFR, with implicit RRSIG delete logic
   added.

3.4.  Delete an RRset

   Similar to DNS UPDATE.  To delete an RRset, the MIXFR deletion list
   includes an RR whose NAME and TYPE are those of the RRset to be
   deleted.  CLASS must be specified as ANY.  RDLENGTH must be zero (0)
   and RDATA must therefore be empty.  This also deletes the covering
   RRSIGs.

   Note that a record with its CLASS set to ANY does _not_ mean to
   delete (or change) the record in all available classes: zone
   transfers are encapsulated in SOA records that determine the zone
   name and class (see Figure ()[#fig:a-MIXFR-response]).  Only changes
   in the zone matching that name and class will be made.




Mekking & Gudmundsson  Expires September 29, 2018               [Page 3]

Internet-Draft                    MIXFR                       March 2018


3.5.  Delete All RRsets on a Name

   Similar to DNS UPDATE.  To delete all RRSets at a name, the MIXFR
   deletion list includes an RR at that NAME, whose TYPE must be
   specified as ANY and CLASS must be specified as ANY.  RDLENGTH must
   be zero (0) and RDATA must therefore be empty.

3.6.  Replace an RRset

   The MIXFR addition list includes an RR whose NAME and TYPE are those
   of the RRset to be replaced.  CLASS must be specified as ANY.
   RDLENGTH must be non-zero and the RDATA is that of the first
   replacement record.

   If an RRset is to be replaced with multiple records, the second and
   subsequent records MUST use the syntax for adding an RR.

   The same syntax is used to delete an RRset and to replace an RRset
   with an RR whose RDLENGTH is zero.  This is not ambiguous because the
   former appears in the deletion list (before the new SOA RR) and the
   latter appears in the addition list (after the new SOA RR).

4.  Protocol Description

4.1.  Client side

   The client can send a MIXFR request.  Just like with IXFR, it places
   a SOA RR in the authority section to signal the version of the zone
   it holds now.  If the client does not want the server to fall back to
   AXFR, it MAY add another SOA RR in the additional section.  This
   achieves MIXFR-only behavior, similar to IXFR-ONLY [IXFR-ONLY].  For
   example:

      ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 1337
      ;; flags: qr ; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
      ;; QUESTION SECTION:
      ;; example.    IN    MIXFR

      ;; AUTHORITY SECTION:
      example.       IN    SOA    serial=1

      ;; ADDITIONAL SECTION:
      example.       IN    SOA    serial=1

            Figure 1: A MIXFR request for the "example." zone.

   [MM] Adding a whole record is quite some overhead in bits while we
   only signal one bit of information: to fall back or not to fall back.



Mekking & Gudmundsson  Expires September 29, 2018               [Page 4]

Internet-Draft                    MIXFR                       March 2018


   [OG] Can we use a bit from header or OPT record?  Or can we just use
   "Class | 0x8000" to signal that?

4.2.  Server side

   A server receiving a minimal incremental zone transfer (MIXFR)
   request will reply with a MIXFR.  A MIXFR looks exactly like an IXFR,
   except there may be zero or more of the new introduced syntax RRs
   that can add or delete more records.  For the zone "example.", the
   following zone transfer can be sent that will replace all signatures
   in the zone with new signatures for the names "example.",
   "a.example.", "b.example." and "c.example.":

      ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 1337
      ;; flags: qr ; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 0
      ;; QUESTION SECTION:
      ;; example.    IN    MIXFR

      ;; ANSWER SECTION:
      example.       IN    SOA    serial=3
      example.       IN    SOA    serial=1
      example.       ANY   RRSIG
      example.       IN    SOA    serial=3
      example.       IN    RRSIG  rdata
      a.example.     IN    RRSIG  rdata
      b.example.     IN    RRSIG  rdata
      c.example.     IN    RRSIG  rdata
      example.       IN    SOA    serial=3

            Figure 2: A MIXFR response for the "example." zone.

   The server MAY reply with an IXFR or AXFR instead.  If the server
   does not implement MIXFR it MUST return a response with NOTIMPL
   rcode.  The client MUST fallback to request IXFR or AXFR.

4.3.  Future zone transfer improvements

   In many cases DNS servers have many zones in common, and there are
   many changes in the zones each hour, in this case having a long lived
   TCP connection or an out-of-band protocol where the primary server
   can push changes to the secondary.

   The size of the zone transfer can be reduced even more if the syntax
   on the wire is changed, i.e. the RR wire format is abandoned.  A
   different grammar may add operators, remove duplicate RRset owner
   names, and use standard compression algorithms.





Mekking & Gudmundsson  Expires September 29, 2018               [Page 5]

Internet-Draft                    MIXFR                       March 2018


   These kind of improvements will require more drastic changes, and may
   be covered in a separate, future document.

5.  IANA Considerations

   IANA is requested to assign the OPCODE value [TBD] (decimal) for
   MIXFR, in sub-registry "DNS OpCodes" of registry "Domain Name System
   (DNS) Parameters".

6.  Security Considerations

   This document does not introduce additional security considerations.
   Or does it?

   Should we explain what the security implications are, because
   descriptions from old RFC's are not good enough?

   Any MIXFR transactions should use secure channels such as IPSEC or
   SSH tunnel, and use TSIG for authentication.

7.  Acknowledgements

   Johan Ihren, Tony Finch, Bob Harold.

8.  References

8.1.  Informative References

   [IXFR-ONLY]
              Sury, O. and S. Kerr, "IXFR-ONLY to Prevent IXFR Fallback
              to AXFR", February 2010, <https://tools.ietf.org/html/
              draft-kerr-ixfr-only-01>.

   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "DNS Security Introduction and Requirements",
              RFC 4033, DOI 10.17487/RFC4033, March 2005,
              <https://www.rfc-editor.org/info/rfc4033>.

   [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Resource Records for the DNS Security Extensions",
              RFC 4034, DOI 10.17487/RFC4034, March 2005,
              <https://www.rfc-editor.org/info/rfc4034>.

   [RFC4035]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Protocol Modifications for the DNS Security
              Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005,
              <https://www.rfc-editor.org/info/rfc4035>.




Mekking & Gudmundsson  Expires September 29, 2018               [Page 6]

Internet-Draft                    MIXFR                       March 2018


   [RFC5155]  Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
              Security (DNSSEC) Hashed Authenticated Denial of
              Existence", RFC 5155, DOI 10.17487/RFC5155, March 2008,
              <https://www.rfc-editor.org/info/rfc5155>.

   [RFC5936]  Lewis, E. and A. Hoenes, Ed., "DNS Zone Transfer Protocol
              (AXFR)", RFC 5936, DOI 10.17487/RFC5936, June 2010,
              <https://www.rfc-editor.org/info/rfc5936>.

8.2.  Normative References

   [RFC1995]  Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995,
              DOI 10.17487/RFC1995, August 1996, <https://www.rfc-
              editor.org/info/rfc1995>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997, <https://www.rfc-
              editor.org/info/rfc2119>.

   [RFC2136]  Vixie, P., Ed., Thomson, S., Rekhter, Y., and J. Bound,
              "Dynamic Updates in the Domain Name System (DNS UPDATE)",
              RFC 2136, DOI 10.17487/RFC2136, April 1997,
              <https://www.rfc-editor.org/info/rfc2136>.



























Mekking & Gudmundsson  Expires September 29, 2018               [Page 7]

Internet-Draft                    MIXFR                       March 2018


Appendix A.  Changelog

A.1.  Version 02

   o  Removed 'Delete All RRsets of a Type' because it had the same
      syntax as 'Delete an RRset' [Olafur].

   o  Clarify ANY CLASS [#5, Bob Harold].

   o  Sleep for 3 years.

   o  Remove IXFR Gone Wild section.

A.2.  Version 01

   o  Split document in trivial and 'more wild' ideas.

A.3.  Version 00

   o  Initial version

Authors' Addresses

   W. (Matthijs) Mekking
   Oracle Dyn
   Hertogswetering 163-167
   Utrecht  3543 AS Utrecht
   NL

   EMail: matthijs.mekking@oracle.com
   URI:   https://www.dyn.com


   Olafur Gudmundsson
   CloudFlare
   San Francisco, CA  94107
   USA

   EMail: olafur@cloudflare.com












Mekking & Gudmundsson  Expires September 29, 2018               [Page 8]