INTERNET DRAFT M. Ohta draft-ietf-dnsind-ixfr-00.txt Tokyo Institute of Technology November 1994 Expires in six months Incremental Transfer in DNS Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months. Internet-Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet- Drafts as reference material or to cite them other than as a ``working draft'' or ``work in progress.'' To learn the current status of any Internet-Draft, please check the 1id-abstracts.txt listing contained in the Internet-Drafts Shadow Directories on ds.internic.net, nic.nordu.net, ftp.nisc.sri.com, or munnari.oz.au. Abstract This memo proposes extensions to the DNS protocols to provide an incremental zone transfer (IXFR) procedure. 1. Introduction For the quick propagation of changes to the DNS database, it is necessary to shorten the latency by actively notifying the change, which is accomplished by NOTIFY extension of DNS [NOTIFY]. At the same time, to propagate a small amount of changes in a large zone, existing zone transfer mechanism to transfer all the data of the zone is quite inefficient and time consuming. Incremental transfer (IXFR) is a zone transfer mechanism to transfer only the changed portion of the zone, In this memo, a secondary name server who request IXFR is called IXFR client and a primary or secondary name server who responses the request is called IXFR server. 2. Brief Description of the Protocol. M. Ohta Expires on May 25, 1995 [Page 1] INTERNET DRAFT Incremental Transfer in DNS November 1994 An IXFR client keeps record of older version of a zone. If the IXFR client think it needs updated information of the zone (typically through SOA refresh or NOTIFY mechanism), it sends an IXFR message along with the SOA serial number information of the older zone. If the client receives "Not implemented" response, it should try AXFR. An IXFR server should keep record of the newest version of the zone and the differences to several older versions. If IXFR request with memorized older version number is received, the IXFR server MAY send only the difference to that version. Otherwise, the entire zone is transferred just as normal zone transfer. All communication is done through TCP channel. Query type value of IXFR is . 3. Query Format The IXFR query packet format is same as that of the normal DNS query with query type of IXFR, except that the authority section is non- empty and contains a single SOA record containing the version number of the older zone information. 4. Response Format If the incremental zone transfer is not available, the same message as AXFR (except that the query type is IXFR) is returned. If the incremental zone transfer is available, several pairs of messages with RCODE = IRESPONSE will be returned. Each message is, as usual with TCP transport, prefixed by two byte length fields. To indicate the end of transfer, two bytes of 0 is attached after the last message. Messages are always paired. Within the pair, the answer section of the former message contains information on removed RRs form the previous version and the latter message on added RRs. Modification of RR is performed first by removing the orginal and then adding the modified one. In the authority section, each message contains SOA of the version of the modified result Thus, the pairs give the history of changes made from the version IXFR client had up to the newest version. RRs in the incremental transfer messages may be partial. That is, if a single RR of multiple RRs of a node changes, only the information on changed RR needs to be transferred. M. Ohta Expires on May 25, 1995 [Page 2] INTERNET DRAFT Incremental Transfer in DNS November 1994 By an IXFR client, the messages should be processed sequentially and replaced with the older version atomically only after all the messages are successfully processed. 5. Purging Strategy The IXFR server can not hold information on older versions forever. Information on older versions should be purged, if total length of IXFR messages is longer than that of an AXFR message. Considering that the purpose of IXFR is to reduce AXFR overhead, this is strategy is quite reasonable. It also assures that the amount of storage is at most twice as large as that of the current zone information. Information older than SOA expire period may also be purged. 6. Example With the following three generations of data with the up-to-date serial number of 3, JAIN.AD.JP. IN SOA NS.JAIN.AD.JP. mohta.jain.ad.jp. ( 1 600 600 3600000 604800) IN NS NS.JAIN.AD.JP. NS.JAIN.AD.JP. IN A 133.69.136.1 NEZU.JAIN.AD.JP. IN A 133.69.136.1 NEZU.JAIN.AD.JP. is removed and JAIN-BB.JAIN.AD.JP. is added. jain.ad.jp. IN SOA ns.jain.ad.jp. mohta.jain.ad.jp. ( 2 600 600 3600000 604800) IN NS NS.JAIN.AD.JP. NS.JAIN.AD.JP. IN A 133.69.136.1 JAIN-BB.JAIN.AD.JP. IN A 133.69.136.5 IN A 192.41.197.2 One of the IP addresses of JAIN-BB.JAIN.AD.JP. is changed. JAIN.AD.JP. IN SOA ns.jain.ad.jp. mohta.jain.ad.jp. ( 3 600 600 3600000 604800) IN NS NS.JAIN.AD.JP. NS.JAIN.AD.JP. IN A 133.69.136.1 JAIN-BB.JAIN.AD.JP. IN A 133.69.136.3 IN A 192.41.197.2 The following IXFR query +---------------------------------------------------+ M. Ohta Expires on May 25, 1995 [Page 3] INTERNET DRAFT Incremental Transfer in DNS November 1994 Header | OPCODE=SQUERY | +---------------------------------------------------+ Question | QNAME=JAIN.AD.JP., QCLASS=IN, QTYPE=IXFR | +---------------------------------------------------+ Answer | | +---------------------------------------------------+ Authority | JAIN.AD.JP. IN SOA serial=1 | +---------------------------------------------------+ Additional | | +---------------------------------------------------+ will be replied with the following message: +---------------------------------------------------+ Header | OPCODE=SQUERY, RESPONSE | +---------------------------------------------------+ Question | QNAME=JAIN.AD.JP., QCLASS=IN, QTYPE=IXFR | +---------------------------------------------------+ Answer | JAIN.AD.JP. IN SOA serial=3 | | JAIN.AD.JP. IN NS NS.JAIN.AD.JP. | | NEZU.JAIN.AD.JP. IN A 133.69.136.1 | | JAIN-BB.JAIN.AD.JP. IN A 133.69.136.3 | | JAIN-BB.JAIN.AD.JP. IN A 192.41.197.2 | +---------------------------------------------------+ Authority | | +---------------------------------------------------+ Additional | | +---------------------------------------------------+ or with the following four messages: +---------------------------------------------------+ Header | OPCODE=SQUERY, RESPONSE, RCODE=IRESPONSE | +---------------------------------------------------+ Question | QNAME=JAIN.AD.JP., QCLASS=IN, QTYPE=IXFR | +---------------------------------------------------+ Answer | NEZU.JAIN.AD.JP. IN A 133.69.136.1 | +---------------------------------------------------+ Authority | JAIN.AD.JP. IN SOA serial=2 | +---------------------------------------------------+ Additional | | +---------------------------------------------------+ +---------------------------------------------------+ Header | OPCODE=SQUERY, RESPONSE, RCODE=IRESPONSE | +---------------------------------------------------+ Question | QNAME=JAIN.AD.JP., QCLASS=IN, QTYPE=IXFR | +---------------------------------------------------+ M. Ohta Expires on May 25, 1995 [Page 4] INTERNET DRAFT Incremental Transfer in DNS November 1994 Answer | JAIN-BB.JAIN.AD.JP. IN A 133.69.136.5 | | JAIN-BB.JAIN.AD.JP. IN A 192.41.197.2 | +---------------------------------------------------+ Authority | JAIN.AD.JP. IN SOA serial=2 | +---------------------------------------------------+ Additional | | +---------------------------------------------------+ +---------------------------------------------------+ Header | OPCODE=SQUERY, RESPONSE, RCODE=IRESPONSE | +---------------------------------------------------+ Question | QNAME=JAIN.AD.JP., QCLASS=IN, QTYPE=IXFR | +---------------------------------------------------+ Answer | JAIN-BB.JAIN.AD.JP. IN A 133.69.136.5 | +---------------------------------------------------+ Authority | JAIN.AD.JP. IN SOA serial=3 | +---------------------------------------------------+ Additional | | +---------------------------------------------------+ +---------------------------------------------------+ Header | OPCODE=SQUERY, RESPONSE, RCODE=IRESPONSE | +---------------------------------------------------+ Question | QNAME=JAIN.AD.JP., QCLASS=IN, QTYPE=IXFR | +---------------------------------------------------+ Answer | JAIN-BB.JAIN.AD.JP. IN A 133.69.136.3 | +---------------------------------------------------+ Authority | JAIN.AD.JP. IN SOA serial=3 | +---------------------------------------------------+ Additional | | +---------------------------------------------------+ 7. Possible Discussions Should partial RR modification allowed? Should AXFR is mandated periodically to protect the zone data from accumulated errors (theoretically there can be no error). What if default TTL changes? Should almost all RRs be retransmitted or special treatment is desired? Shouldn't transport mechanism over TCP modified to allow 4 bytes of message length field? 8. Acknowledgements The original idea of IXFR is conceived by Anant Kumar, Steve Hotz and M. Ohta Expires on May 25, 1995 [Page 5] INTERNET DRAFT Incremental Transfer in DNS November 1994 Jon Postel. The simplified mechanism described in this memo is the product of the several hours of discussion between Anant Kumar and the Author. 9. Security Considerations Though DNS is related to several security problems, no attempt is made to fix them in this memo. This memo is believed to introduce no additional security problems to the existing DNS protocol. 10. Author's Address Masataka Ohta Tokyo Institute of Technology 2-12-1, O-okayama, Meguro-ku, Tokyo 152, JAPAN Phone: +81-3-5734-3299 Fax: +81-3-5734-3415 EMail: mohta@necom830.cc.titech.ac.jp M. Ohta Expires on May 25, 1995 [Page 6]