< draft-kerr-ixfr-only-00.txt   draft-kerr-ixfr-only-01.txt >
DNSext Working Group O. Sury DNSext Working Group O. Sury
Internet-Draft CZ.NIC Internet-Draft CZ.NIC
Updates: 1995 (if approved) S. Kerr, Ed. Updates: 1995 (if approved) S. Kerr, Ed.
Intended status: Standards Track ISC Intended status: Standards Track ISC
Expires: January 8, 2010 July 7, 2009 Expires: August 30, 2010 February 26, 2010
IXFR-ONLY to Prevent IXFR Fallback to AXFR IXFR-ONLY to Prevent IXFR Fallback to AXFR
draft-kerr-ixfr-only-00 draft-kerr-ixfr-only-01
Abstract
This documents proposes a new QTYPE (Query pseudo RRtype) for the
Domain Name System (DNS). IXFR-ONLY is a variant of IXFR (RFC 1995)
that allows an authoritative server to incrementally update zone
content from another (primary) server without falling back from IXFR
to AXFR. This way, alternate peers can be contacted more quickly and
convergence of zone content may be achieved much faster in important,
resilient operational scenarios.
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 33 skipping to change at page 1, line 43
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 8, 2010. This Internet-Draft will expire on August 30, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of Provisions Relating to IETF Documents
publication of this document (http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
Abstract include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
Presents IXFR-ONLY, a way for a DNS slave to prevent a DNS master described in the BSD License.
from falling back from IXFR to AXFR.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3
2. Master Side . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. IXFR Server Side . . . . . . . . . . . . . . . . . . . . . . . 4
3. Slave Side . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. IXFR Client Side . . . . . . . . . . . . . . . . . . . . . . . 4
4. Applicability of IXFR-ONLY . . . . . . . . . . . . . . . . . . 4 4. Applicability of IXFR-ONLY . . . . . . . . . . . . . . . . . . 5
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
7. Normative References . . . . . . . . . . . . . . . . . . . . . 5 7. Normative References . . . . . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 5 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction 1. Introduction
For large DNS zones, RFC 1995 [RFC1995] defines Incremental Zone For large DNS zones, RFC 1995 [RFC1995] defines Incremental Zone
Transfer (IXFR), which is an efficient way to transfer changes in Transfer (IXFR), which allows only to transfer the changed portion(s)
zones from masters to slaves. of a zone.
However, when a slave has multiple masters for a single zone, it is In the document, an IXFR client and an IXFR server is defined as in
possible that not all masters has the same set of serials for that RFC 1995 [RFC1995], a secondary name server which requests IXFR is
zone. In this case, if a slave attempts an IXFR from a master which called an IXFR client and a primary or secondary name server which
does not have the serial in use by the slave, the master will fall responds to the request is called an IXFR server.
back to a full zone transfer (AXFR).
For example, master NS1 may have serials 1, 2, and 3 for a zone, and IXFR is an efficient way to transfer changes in zones from IXFR
master NS2 may have serials 1 and 3. A slave that is at serial 2 servers to IXFR clients. However, when an IXFR client has multiple
which sends an IXFR request to NS2 will get a full AXFR of the zone IXFR servers for a single zone, it is possible that not all IXFR
at serial 3. This is because NS2 does not know the zone at serial 2, servers have the zone with same serial number for that zone. In this
and therefore does not know what the differences are between serial 2 case, if an IXFR client attempts an IXFR from an IXFR server which
and serial 3. does not have zone with the serial number used by the IXFR client,
the IXFR server will fall back to a full zone transfer (AXFR) when it
has a version of the zone with serial number greater than the serial
requested by the IXFR client.
If the slave in this example had known to send the query to NS1, then For example, IXFR server NS1 may have serial numbers 1, 2, and 3 for
it could have gotten an incremental transfer. But slaves can only a zone, and IXFR server NS2 may have serial numbers 1 and 3 for the
know what the latest version of the zone is at a master (this same zone. An IXFR client that has the zone with serial number 2
information is available via an SOA query). which sends an IXFR request to IXFR server NS2 will get a full zone
transfer (AXFR) of the zone at serial number 3. This is because NS2
does not know the zone with serial number 2, and therefore does not
know what the differences are between zone with serial number 2 and
3.
The IXFR-ONLY type provides a way for the slaves to ask each master If the IXFR client in this example had known to send the query to
to return an error instead of sending the current version of the IXFR server NS1, then it could have gotten an incremental transfer
zone. By using this, a slave can check each master until it finds (IXFR). But IXFR clients can only know what the latest version of
one able to provide IXFR. the zone is at a IXFR server (this information is available via an
SOA query).
The IXFR-ONLY query type provides a way for the IXFR client to ask
each IXFR server to return an error instead of sending the current
version of the zone via full zone transfer (AXFR). By using this, a
IXFR client can check each IXFR server until it finds one able to
provide IXFR.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
2. Master Side 2. IXFR Server Side
A master receiving a DNS message requesting IXFR-ONLY will reply A IXFR server receiving a DNS message requesting IXFR-ONLY will reply
exactly as described in RFC 1995 [RFC1995] if it is able to produce as described in RFC 1995 [RFC1995] if it is able to produce an IXFR
an IXFR for the serial requested. for the serial number requested.
If the master is is not able to reply with an IXFR it MUST NOT reply If the IXFR server is is not able to reply with an IXFR it MUST NOT
with an AXFR. Instead, it MUST reply with RCODE CannotIXFR. reply with an AXFR unless AXFR result is smaller than IXFR result.
Instead, it MUST reply with RCODE CannotIXFR. (!FIXME)
3. Slave Side If the IXFR result is larger than an AXFR, then an IXFR server MAY
reply with an AXFR result instead. This is an optimization, and IXFR
servers MAY only reply with AXFR if they are certain that the reply
using AXFR is smaller than an equivalent IXFR reply.
A slave who wishes to use IXFR-ONLY will send a message to one of the 3. IXFR Client Side
masters. The format is exactly the same as for IXFR, except the
IXFR-ONLY type code is used instead of the IXFR type code.
If the master replies with IXFR, then the slave is done. An IXFR client who wishes to use IXFR-ONLY will send a message to one
of the IXFR servers. The format is exactly the same as for IXFR,
except the IXFR-ONLY QTYPE code is used instead of the IXFR QTYPE
code.
If the master replies with an RCODE of CannotIXFR, then the slave If the IXFR server replies with IXFR, then the IXFR client is done.
proceeds on to a different master. In this case the master
implements IXFR-ONLY, but does not have the serial requested.
If the master replies with any RCODE other than CannotIXFR or If the IXFR server replies with an RCODE of CannotIXFR, then the IXFR
NoError, then the slave proceeds on to a different master. In this client proceeds on to a different IXFR server. In this case the IXFR
case the server does not implement IXFR-ONLY. server implements IXFR-ONLY, but does not have information about zone
with the serial number requested.
If the slave attempts IXFR-ONLY to each master and none reply with an If the IXFR server replies with any RCODE other than CannotIXFR or
incremental transfer, then it should attempt an IXFR as described in NoError, then the IXFR client proceeds on to a different IXFR server.
RFC 1995 [RFC1995] to each of the servers which replied with an RCODE In this case the IXFR server does not implement IXFR-ONLY.
other than CannotIXFR or NoError.
The method described above allows slaves to operate normally to have If the IXFR client attempts IXFR-ONLY to each IXFR server and none of
some masters who support IXFR-ONLY, and some who do not. Slaves MAY them reply with an incremental transfer (IXFR), then it should
remember which masters support IXFR-ONLY and query those masters attempt an IXFR as described in RFC 1995 [RFC1995] to each of the
first. However since masters may change software or even run a mix IXFR servers which replied with an RCODE other than CannotIXFR or
of software, slaves MUST attempt to query each master periodically NoError.
when they attempt to get new versions of a zone.
Implementations SHOULD allow slaves to disable IXFR-ONLY for a given The method described above allows IXFR clients to operate normally in
master, if this is known in advance. These masters are treated as if situatians where some of the IXFR servers do support IXFR-ONLY, and
they replied with an RCODE other than CannotIXFR or NoError, although some who do not. IXFR clients MAY remember which IXFR servers
no query with IXFR-ONLY is actually sent. support IXFR-ONLY and query those IXFR servers first. However since
IXFR servers may change software or even run a mix of software, IXFR
clients MUST attempt to query each IXFR server periodically when they
attempt to get new versions of a zone.
Implementations MAY allow IXFR clients to disable IXFR-ONLY for a
given IXFR server, if this is known in advance. These IXFR servers
are treated as if they replied with an RCODE other than CannotIXFR or
NoError, although no query with IXFR-ONLY is actually sent.
4. Applicability of IXFR-ONLY 4. Applicability of IXFR-ONLY
Implementations MUST allow slaves to disable IXFR-ONLY completely. Implementations SHOULD allow IXFR clients to disable IXFR-ONLY
completely.
Implementations SHOULD allow slaves to disable IXFR-ONLY for a Implementations MAY allow IXFR clients to disable IXFR-ONLY for a
specific zone. This may be useful for small zones, where fallback to specific zone. This may be useful for small zones, where fallback to
AXFR is cheap, or in other cases where IXFR-ONLY is causing problems. AXFR is cheap, or in other cases where IXFR-ONLY is causing problems.
Usage of IXFR-ONLY may cause slaves to prefer particular masters, by Usage of IXFR-ONLY may cause IXFR clients to prefer particular IXFR
shifting load to ones that support IXFR-ONLY. If this a problem, servers, by shifting load to ones that support IXFR-ONLY. If this a
then administrators can disable IXFR-ONLY. problem, then administrators can disable IXFR-ONLY in implementations
that allow it.
If a slave has a single master for a zone, it SHOULD use IXFR rather If a IXFR client has a single IXFR server for a zone, it SHOULD use
than IXFR-ONLY. IXFR rather than IXFR-ONLY.
5. IANA Considerations 5. IANA Considerations
IANA allocates the new IXFR-ONLY TYPE, which means "incremental IANA allocates the new IXFR-ONLY QTYPE, which means "incremental
transfer only". IANA allocates the CannotIXFR RCODE, which means transfer only". IANA allocates the CannotIXFR RCODE, which means
"Server cannot provide IXFR for zone". "Server cannot provide IXFR for zone".
6. Security Considerations 6. Security Considerations
IXFR-ONLY may be used by someone to get information about the state IXFR-ONLY may be used by someone to get information about the state
of masters by providing a quick and efficient way to check which of IXFR servers by providing a quick and efficient way to check which
versions of a zone each master supports. Zones should be secured via versions of a zone each IXFR server supports. Zones should be
TSIG [RFC2845] prevent unauthorized information exposure. However, secured via TSIG [RFC2845] to prevent unauthorized information
even administrators of master servers may not want this information exposure. However, even administrators of IXFR servers may not want
given to slaves, in which case they will need to disable IXFR-ONLY. this information given to IXFR clients, in which case they will need
to disable IXFR-ONLY.
7. Normative References 7. Normative References
[RFC1995] Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995, [RFC1995] Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995,
August 1996. August 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D., and B. [RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D., and B.
Wellington, "Secret Key Transaction Authentication for DNS Wellington, "Secret Key Transaction Authentication for DNS
(TSIG)", RFC 2845, May 2000. (TSIG)", RFC 2845, May 2000.
Authors' Addresses Authors' Addresses
Ondrej Sury Ondrej Sury
CZ.NIC CZ.NIC
CZ.NIC, z. s. p. o. Americka 23 Americka 23
120 00 Praha 2 120 00 Praha 2
CZ CZ
Phone: +420 222 745 110
Email: ondrej.sury@nic.cz Email: ondrej.sury@nic.cz
Shane Kerr (editor) Shane Kerr (editor)
ISC ISC
Bennebrokestraat 17-I Bennebrokestraat 17-I
1015 PE Amsterdam 1015 PE Amsterdam
NL NL
Phone: +31 64 6336297 Phone: +31 64 6336297
Email: shane@isc.org Email: shane@isc.org
 End of changes. 32 change blocks. 
83 lines changed or deleted 120 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/