<?xml version="1.0"?>
<?rfc compact="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc toc="yes" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc ipr="trust200902" docName="draft-andrews-dnsop-update-parent-zones-01">
  <front>
    <title abbrev="Updating Parent Zones">Updating Parent Zones</title>
    <author initials="M." surname="Andrews" fullname="M. Andrews">
      <organization abbrev="ISC">Internet Systems Consortium</organization>
      <address>
        <postal>
          <street>950 Charter Street</street>
          <city>Redwood City</city>
          <region>CA</region>
          <code>94063</code>
          <country>US</country>
        </postal>
        <email>marka@isc.org</email>
      </address>
    </author>
    <date month="October" year="2013"/>
    <abstract>
      <t>
	DNS UPDATE was developed to allow DNS zones to be updated.
      </t>
      <t>
	There is a perception that UPDATE can not be used in conjuction
	with the Registry, Registar, Registrant (RRR) model to update a zone.
      </t>
      <t>
	This document explains how UPDATE can be used in the RRR model.
      </t>
    </abstract>
  </front>
  <middle>
    <section toc="yes" anchor="intro" title="Introduction">
      <t>
	UPDATE <xref target="RFC2136"/>is designed to update any zone in the DNS.  This includes
	updating delegating NS records, glue address records and DS record.
      </t>
      <t>
	While UPDATE is primarily designed to UPDATE a zone directly
	there in no reason why UPDATE requests cannot be translated to
	the EPP requests to perform the changes.
      </t>
      <t>
	This would provide a uniform model to update parent zone
	regardless of where they are in the DNS heirachy.
      </t>
    </section>
    <section toc="yes" anchor="translation" title="Translation">
      <t>
	The Registrar would host a server that authenticates UPDATE
	requests received directly or relayed by the Registry using
	TSIG <xref target="RFC2845"/>, then translate the actions in
	the UPDATE request into EPP transaction requests.  The results
	of those EPP transactions would be relayed to the UPDATE client.
      </t>
      <t>
	Requests that are not TSIG signed are rejected.
      </t>
      <t>
	The translating server would handle a restricted subset of
	UPDATE requests, possibly ignoring the prerequiste section.
	UPDATE requests would be limited to those supported by EPP.
      </t>
      <t>
	e.g.  Add NS record.  Delete all NS records.  Add A record.
	Delete AAAA record.  Add DS record.  Delete DS record.
      </t>
      <t>
	The translating server may also override/ignore the TTL in the
	UPDATE request.
      </t>
    </section>
    <section toc="yes" anchor="authentication" title="Authentication">
      <t>
	Authentication would be done using TSIG.  TSIG was designed to
	be used in a environment where requests are relayed.
      </t>
      <t>
	Authentication can be done down to the &lt;NAME,TYPE&gt; tuple.  There
	exist nameservers that already implement access contols down to
	this level of granuality based on the presented TSIG.
      </t>
      <t>
	This would allow nameservers to update their own address records
	as they get renumbered without being able to update anything else.
      </t>
      <t>
	This would allow DNSSEC key management software to update DS records 
	without being able to update anything else.
      </t>
      <t>
	As Registrars do all the authentication and generate the signed
	responses there is no need for the Registry to have access to the
	private material using in TSIG.  Registrars already handle
	shared keys in these numbers with their web interfaces.
      </t>
    </section>
    <section toc="yes" anchor="direct" title="Direct to Registrar">
      <t>
	The hardest part of Direct to Registrar is finding where to send
	the UPDATE request.  This would most probably just be advised to
	the Registrant.
      </t>
    </section>
    <section toc="yes" anchor="indirect" title="Indirect to Registrar">
      <t>
	In the indirect model the Registry would host a UPDATE relay server
	which would examine the first record of the UPDATE section and relay
	the request to the Registrar of record for the owner name of that
	record.  The response would be relayed back.
      </t>
      <t>
	The relay can use either TCP or UDP when forwarding UPDATE requests
	as TSIG supports changes to the DNS id field when a request/response
	is relayed.
      </t>
      <t>
	This is consistent with how tools like nsupdate work out where to
	send a UPDATE request.  They look at the ownername of the first
	record and use it to discover the containing zone.
      </t>
    </section>
    <section toc="yes" anchor="discovery" title="UPDATE Server Discovery">
      <t>
	UPDATE server discovery is a issue when the RRR model is in use as
	the UPDATE may need to be directed through EPP and/or a sent to a
	Registrar.  There are a number of way this could be done.
      </t>
      <t>
	Adding a underscore infix labels to the zone which contain SRV
	records at pointing to Registar/Registry servers for each child.
      </t>
      <t>
	e.g. &lt;child&gt;._update._tcp.&lt;parent&gt; SRV 0 0 0 server.example.tld
      </t>
      <t>
	The servers pointed could be be a relay server, as described above,
	or a UDPATE to EPP translating server.  A relay server would allow
	for slower zone growth.
      </t>
      <t>
	Using underscore infix labels requires no changes to
	nameservers operated by Registries but does require the
	zone content to be updated.
      </t>
      <t>
	Extend UDPATE to return the update server.  Currently the
	Zone section of the UPDATE refers to the zone to be update
	and is identified by the &lt;QNAME,SOA,QCLASS&gt; tuple.
	Replacing SOA with one or more of DS, NS, A and AAAA would
	allow a nameserver to distingish between a traditional
	UPDATE request and a request to find the UPDATE servers.
	The tuple would contain the resource to be updated and the
	reply would contain SRV records pointing to the UPDATE
	servers.  As there would possibly more than one parent the
	owner records would refer to the parent zone being updated.
      </t>
      <t>
	One could use a new OPCODE for UPDATE server discovery.
      </t>
    </section>
    <section toc="yes" anchor="security" title="Security Considerations">
      <t>
	The UPDATE requests are all TSIG signed.  This is a proven method
	for securing UPDATE requests in the DNS.
      </t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
      <reference anchor="RFC2136">
	<front>
	  <title>Dynamic Updates in the Domain Name System (DNS UPDATE)</title>
          <author initials="P." surname="Vixie" fullname="P. Vixie"/>
          <author initials="S." surname="Thomson" fullname="S. Thomson"/>
          <author initials="Y." surname="Rekhter" fullname="Y. Rekhter"/>
          <author initials="J." surname="Bound" fullname="J. Bound"/>
          <date month="April" year="1997" />
        </front>
        <seriesInfo name="RFC" value="2136" />
      </reference>
      <reference anchor="RFC2845">
	<front>
	  <title>Secret Key Transaction Authentication for DNS (TSIG)</title>
          <author initials="P." surname="Vixie" fullname="P. Vixie"/>
          <author initials="O." surname="Gudmundsson" fullname="O. Gudmundsson"/>
          <author initials="D." surname="Eastlake" fullname="D. Eastlake 3rd"/>
          <author initials="B." surname="Wellington" fullname="B. Wellington"/>
          <date month="May" year="2000" />
        </front>
        <seriesInfo name="RFC" value="2845" />
      </reference>
    </references>
  </back>
</rfc>
