<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' []>
<rfc ipr="trust200902" category="info" docName="draft-pounsett-transferring-automated-dnssec-zones-00" updates="6781">
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc private=""?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<front>
<title abbrev="Change of Operator for Automated Zones">Change of Operator Procedures for Automatically Published DNSSEC Zones</title>

<author initials="M." surname="Pounsett" fullname="Matthew Pounsett">
<organization>Rightside Group, Ltd.</organization>
<address>
<postal>
<street></street>
<city></city>
<code></code>
<country></country>
<region></region>
</postal>
<phone></phone>
<email>matt@conundrum.com</email>
<uri></uri>
</address>
</author>
<date year="2016" month="July" day="21"/>

<area>OPS</area>
<workgroup></workgroup>
<keyword>dnssec</keyword>
<keyword>operator</keyword>
<keyword>procedures</keyword>


<abstract>
<t>Section 4.3.5.1 of <xref target="RFC6781"/> &quot;DNSSEC Operational Practices, version 2&quot;
describes a procedure for transitioning a DNSSEC signed zone from one
(cooperative) operator to another.  The procedure works well in many
situations, but makes the assumption that it is feasible for the two operators
to simultaneously publish slightly different versions of the zone being
transferred.  In some cases, such as with TLD registries, operational
considerations require both operators to publish identical versions of the
zone for the duration of the transition.  This document describes a modified
transition procedure which can be used in these cases.
</t>
</abstract>


</front>

<middle>

<section anchor="introduction" title="Introduction">
<t>The process described in &quot;DNSSEC Operational Practices, version 2&quot;
(<xref target="RFC6781"/>), section 4.3.5.1 for cooperating DNS operators to move a DNSSEC
signed zone cannot be followed in all cases.  When operators are moving a zone
that is automatically published and/or changes rapidly, such as with a TLD or
any other zone published from a registration database, it may not be feasible
for the operators to publish different versions of the same zone.
</t>
<t>In these cases, it would be necessary for one or both operators to have the
capability to add, remove, or alter arbitrary records inline along the zone
transfer path (such as modifying the NSSet, and stripping RRSIGs).  It cannot
be assumed that this capability exists, since few (if any) common DNS
implementations include these functions, and many custom implementations exist
whose feature sets cannot be predicted.
</t>
<t>As a result, it must be assumed that operators moving an automatically
generated or frequently updated zone must be able to publish an identical zone
while transitioning it from one operator to another.
</t>
</section>

<section anchor="changing-between-cooperating-dns-operators" title="Changing Between Cooperating DNS Operators">
<t>In this scenario, it is assumed that the operators will not exchange any
private key material, but are otherwise fully cooperative.  It is also assumed
that the zone publishing process will be transferred between operators
independently of the DNS operations.  The simplest case is to transition the
publishing process after the DNS operations move has been completed, and is
the order that is assumed in this document, although the reverse order is
possible.  During the transition, the losing operator will provide the zone
contents to the gaining operator by some automatic means (typically zone
transfer).
</t>
<t>The transition uses a pre-publish KSK and ZSK rollover, whereby the losing
operator pre-publishes the public KSK and ZSH of the gaining operator.
Partway through the transition, the losing operator stops signing the zone and
begins providing an unsecure zone to the gaining operator, who begins signing.
Once that is done, the gaining operator continues to post-publish the public
keys of the losing operator until the TTLs of the original RRSIGs expire.
</t>
<t>In the timeline below, the losing operator is operator A, and the gaining
operator is operator B.  Records representig data generated by each operator
are appended with the operator letter.  DNSKEY_Z is a ZSK, and DNSKEY_K is a
KSK.  RRSIG_K is the RRSIG generated with DNSKEY_K.
</t>

<figure align="center" title="Rollover for Cooperating Operators, Steps 1-3
"><artwork align="center" type="ascii-art">
----------------------------------------------------------------
| initial            | pre-publish        | re-delegation I    |
----------------------------------------------------------------
| Parent:            | Parent:            | Parent:            |
|  NS_A              |  NS_A              |                    |
|                    |                    |  NS_B              |
|  DS_A              |  DS_A              |  DS_A              |
|                    |                    |  DS_B              |
----------------------------------------------------------------
| Child:             | Child:             | Child:             |
| Published by A     | Published by A     | Published by A     |
| Signed by A        | Signed by A        | Signed by A        |
|  SOA_A0            |  SOA_A1            |  SOA_A1            |
|  RRSIG_Z_A(SOA)    |  RRSIG_Z_A(SOA)    |  RRSIG_Z_A(SOA)    |
|                    |                    |                    |
|  NS_A              |                    |                    |
|                    |  NS_B              |  NS_B              |
|  RRSIG_Z_A(NS)     |  RRSIG_Z_A(NS)     |  RRSIG_Z_A(NS)     |
|                    |                    |                    |
|  DNSKEY_Z_A        |  DNSKEY_Z_A        |  DNSKEY_Z_A        |
|                    |  DNSKEY_Z_B        |  DNSKEY_Z_B        |
|  DNSKEY_K_A        |  DNSKEY_K_A        |  DNSKEY_K_A        |
|                    |  DNSKEY_K_B        |  DNSKEY_K_B        |
|  RRSIG_K_A(DNSKEY) |  RRSIG_K_A(DNSKEY) |  RRSIG_K_A(DNSKEY) |
----------------------------------------------------------------
</artwork></figure>

<figure align="center" title="Rollover for Cooperating Operators, Steps 4-6"><artwork align="center" type="ascii-art">
----------------------------------------------------------------
| signing-migration  | re-delegation II   | post-migration     |
----------------------------------------------------------------
|  Parent:           | Parent:            | Parent:            |
|                    |                    |                    |
|   NS_B             |  NS_B              |  NS_B              |
|   DS_A             |                    |                    |
|   DS_B             |  DS_B              |  DS_B              |
----------------------------------------------------------------
| Child:             | Child:             | Child:             |
| Published by A     | Published by A     | Published by B     |
| Signed by B        | Signed by B        | Signed by B        |
|  SOA_A2            |  SOA_A2            |  SOA_B0            |
|  RRSIG_Z_B(SOA)    |  RRSIG_Z_B(SOA)    |  RRSIG_Z_B(SOA)    |
|                    |                    |                    |
|                    |                    |                    |
|  NS_B              |  NS_B              |  NS_B              |
|  RRSIG_Z_B(NS)     |  RRSIG_Z_B(NS)     |  RRSIG_Z_B(NS)     |
|                    |                    |                    |
|  DNSKEY_Z_A        |  DNSKEY_Z_A        |                    |
|  DNSKEY_Z_B        |  DNSKEY_Z_B        |  DNSKEY_Z_B        |
|  DNSKEY_K_A        |  DNSKEY_K_A        |                    |
|  DNSKEY_K_B        |  DNSKEY_K_B        |  DNSKEY_K_B        |
|  RRSIG_K_B(DNSKEY) |  RRSIG_K_B(DNSKEY) |  RRSIG_K_B(DNSKEY) |
----------------------------------------------------------------
</artwork></figure>
</section>

</middle>
<back>
<references title="Informative References">
<?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6781.xml"?>
</references>

</back>
</rfc>
