<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-johani-dnsop-delegation-mgmt-via-ddns-03" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="DDNS Updates of Delegation Information">Automating DNS Delegation Management via DDNS</title>

    <author initials="J." surname="Stenstam" fullname="Johan Stenstam">
      <organization>The Swedish Internet Foundation</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>johan.stenstam@internetstiftelsen.se</email>
      </address>
    </author>

    <date />

    <area>Internet</area>
    <workgroup>DNSOP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>Delegation information (i.e. the NS RRset, possible glue, possible DS
records) should always be kept in sync between child zone and parent
zone. However, in practice that is not always the case.</t>

<t>When the delegation information is not in sync the child zone is
usually working fine, but without the amount of redundancy that the
zone owner likely expects to have. Hence, should any further problems
ensue it could have catastropic consequences.</t>

<t>The DNS name space has lived with this problem for decades and it
never goes away. Or, rather, it will never go away until a fully
automated mechanism for how to keep the information in sync
automatically is deployed.</t>

<t>This document proposes such a mechanism.</t>

<t>TO BE REMOVED: This document is being collaborated on in Github at:
<eref target="https://github.com/johanix/draft-johani-dnsop-delegation-mgmt-via-ddns">https://github.com/johanix/draft-johani-dnsop-delegation-mgmt-via-ddns</eref>.
The most recent working version of the document, open issues, etc, should all be
available there.  The author (gratefully) accept pull requests.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>For DNSSEC signed child zones with TLD registries as parents there is 
an emerging trend towards running so-called "CDS scanners" and "CSYNC 
scanners" by the parent.</t>

<t>These scanners detect publication of CDS records (the child signalling
a desire for an update to the DS RRset in the parent) and/or a CSYNC
record (the child signalling a desire for an update to the NS RRset
or, possibly, in-bailiwick glue in the parent.</t>

<t>The scanners have a number of drawbacks, including being inefficient
and slow. They are only applicable to DNSSEC-signed child zones and
they add significant complexity to the parent operations. But given
that, they do work.</t>

<t>I-D.ietf-dnsop-generalized-notify-01 proposes a method to alleviate
the inefficiency and slowness of scanners. But the DNSSEC requirement
and the complexity remain.</t>

<t>This document proposes an alternative mechanism to automate the
updating of delegation information in the parent zone for a child
zone based on DNS Dynamic Updates secured with SIG(0) signatures.</t>

<t>This alternative mechanism shares the property of being efficient
and provide rapid convergence (similar to generalized notifications in
conjuction with scanners). Furthermore, it has the advantages of not
requiring any scanners in the parent at all and also not being
dependent on the child (and parent) being DNSSEC-signed.</t>

<t>Knowledge of DNS NOTIFY <xref target="RFC1996"/> and DNS Dynamic Updates
<xref target="RFC2136"/> and <xref target="RFC3007"/> is assumed. DNS SIG(0) transaction
signatures are documented in <xref target="RFC2931"/>. In addition this
Internet-Draft borrows heavily from the thoughts and problem statement
from the Internet-Draft on Generalized DNS Notifications (work in progress).</t>

<section anchor="requirements-notation"><name>Requirements Notation</name>

<t>The key words "<strong>MUST</strong>", "<strong>MUST NOT</strong>", "<strong>REQUIRED</strong>", "<strong>SHALL</strong>",
"<strong>SHALL NOT</strong>", "<strong>SHOULD</strong>", "<strong>SHOULD NOT</strong>", "<strong>RECOMMENDED</strong>",
"<strong>NOT RECOMMENDED</strong>", "<strong>MAY</strong>", and "<strong>OPTIONAL</strong>" in this document
are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>

</section>
</section>
<section anchor="is-there-a-use-case"><name>Is there a Use Case?</name>

<t>Because of the drawbacks of CDS and CSYNC scanners they are unlikely
to be able to fully automate the maintenance of delegation information
in all parent zones. The primary reasons are the hard requirement on
DNSSEC in the child zones and the complexity cost of operating the
scanner infrastructure. In practice, scanners are likely mostly
realistic for parent zones that are operated by well-resourced
registries.</t>

<t>All the parts of the DNS name space where the parent is smaller and
more resource constrained would be able to automate the delegation
management via this mechanism without the requirement of operating
scanners. Also all parts of the name space where there are child zones
that are not DNSSEC-signed would be able to use this.</t>

<t>Obviously, also well-resourced parent zones with DNSSEC-signed child
zones would be able to use this DNS UPDATE-based mechanism, but in those
cases scanners plus generalized notifications would also work.</t>

</section>
<section anchor="dns-notify-versus-dns-update"><name>DNS NOTIFY versus DNS UPDATE</name>

<t>DNS NOTIFY and DNS UPDATE messages share several properties
and are used to address similar issues.</t>

<section anchor="similarities-between-notify-and-update"><name>Similarities between NOTIFY and UPDATE</name>

<t>Both NOTIFY and UPDATE are "push" rather than "pull" messages and
therefore very efficient.</t>

<t>Both NOTIFY and UPDATE are messages, in DNS packet format. They are
used by one party (the sender) to inform another party (the recipient)
that some piece of DNS information has changed and that as a
consequence of this change the recipient of the message may want to
also make a change to its DNS data.</t>

<t>A NOTIFY (as per <xref target="RFC1996"/>) is only a hint and the recipient may
ignore it. But if the recipient does listen to the NOTIFY it should
make its own lookups to verify what has changed and whether that
should trigger any changes in the DNS data provided by the recipient.</t>

</section>
<section anchor="differencies-between-notify-and-update"><name>Differencies between NOTIFY and UPDATE</name>

<t>The difference between the UPDATE and the NOTIFY is that the UPDATE
contains the exact change that should (in the opinion of the sender)
be applied to the recipients DNS data. Furthermore, for secure Dynamic
Updates, the message also contains proof why the update should be
trusted (in the form of a digital signature by a key that the
recipient trusts).</t>

<t>In this document the term "Dynamic Update" or "DNS UPDATE" implies
secure dynamic update. Furthermore this document implies that the
signature algorithms are always based on asymmetric crypto keys, using
the same algorithms as are being used for DNSSEC. I.e. by using the
right algorithm the resulting signatures will be as strong as
DNSSEC-signatures.</t>

<t>DNS UPDATEs can be used to update any information in a zone (subject
to the policy of the recipient). But in the special case where the
data that is updated is the delegation information for a child zone
and it is sent across a zone cut (i.e. the child sends it to the
parent), it acts as a glorified generalized NOTIFY.</t>

<t>The DNS UPDATE in this case is essentially a message that says:</t>

<figure><artwork><![CDATA[
"the delegation information for this child zone has changed; here
is the exact change; here is the proof that the change is
authentic, please verify this signature"
]]></artwork></figure>

</section>
</section>
<section anchor="terminology"><name>Terminology</name>

<dl>
  <dt>SIG(0)</dt>
  <dd>
    <t>An assymmetric signing algorithm that allows the recipient to only
need to know the public key to verify a signature created by the
senders private key.</t>
  </dd>
</dl>

</section>
<section anchor="updating-delegation-information-via-dns-updates"><name>Updating Delegation Information via DNS UPDATEs.</name>

<t>This is not a new idea. There is lots of prior art and prior
documents, including the expired I-D.andrews-dnsop-update-parent-zones-04.</t>

<t>The functionality to update delegation information in the parent zone
via DNS UPDATE has been available for years in a least one DNS
implementation (BIND9). However, while DNS UPDATE is used extensively
inside organisations it has not seen much use across organisational
boundaries. And zone cuts, almost by definition, usually cuts across
such boundaries.</t>

<t>When sending a DNS UPDATE it is necessary to know where to send
it. Inside an organisation this information is usually readily
available. But outside the organisation it is not. And even if the
sender would know where to send the update, it is not at all clear
that the destination is reachable to the sender (the parent primary is
likely to be protected by firewalls and other measures).</t>

<t>This constitutes a problem for using DNS UPDATES across zone cuts.</t>

<t>Another concern is that traditionally DNS UPDATEs are sent to a
primary nameserver, and if the update signture verifies the update is
automatically applied to the DNS zone. This is often not an acceptable
mechanism. The recipient may, for good reason, require additional
policy checks and likely an audit trail. Finally, the change should in
many cases not be applied to the running zone but rather to some sort
of provisioning system or a database.</t>

<t>This creates another problem for using DNS UPDATEs for managing
delegation information.</t>

<t>Both problems are addressed by the proposed mechanism for locating the
recipient of a generalized NOTIFY.</t>

</section>
<section anchor="locating-the-target-for-a-generalized-notify-andor-dns-update"><name>Locating the Target for a generalized NOTIFY and/or DNS UPDATE.</name>

<t>Section 3 of I-D.ietf-dnsop-generalized-notify-01 proposes a new RR
type, tentatively with the mnemonic DSYNC, that has the following
format:</t>

<figure><artwork><![CDATA[
{qname}   IN  DSYNC  {RRtype} {scheme} {port} {target}
]]></artwork></figure>

<t>where {target} is the domain name of the recipient of the NOTIFY
message. {RRtype} is typically "CDS" or "CSYNC" in the case where
delegation information should be updated (there are also other uses of
generalized notifications).</t>

<t>Finally, {scheme} is an 8 bit unsigned integer to indicate the type of
notification mechanism to use. Scheme=1 is defined "NOTIFY", as in
"send a generalized NOTIFY to {target} on port {port}".</t>

<t>This document proposes the definition of a new {scheme} for the same
record that is used for generalized NOTIFY. Scheme=2 is here defined
as "UPDATE", as in "send a DNS UPDATE to {target} on port {port}".
When parsing or presenting DNS zone data the 8 bit unsigned integer
"2" should be replaced by the string "UPDATE", as in the examples
below.</t>

<t>Apart from defining a new scheme to specify the mechanism "UPDATE"
(rather than the mechanism "NOTIFY") this document does not say
anything about what Qname to look up or what RR type. The UPDATE
mechanism should use exactly the same method of locating the target of
the UPDATE as is used for generalized NOTIFY.</t>

<t>This lookup addresses the first issue with using DNS UPDATE across
organizational boundaries.</t>

<t>Example 1: a parent zone announces support for DNS UPDATE as a
mechanism for delegation synchronization for all child zones:</t>

<figure><artwork><![CDATA[
_dsync.parent.  IN DSYNC ANY 2 5302 ddns-receiver.parent.
]]></artwork></figure>

<t>Example 2: a parent zone announces support different DNS UPDATE
targets on a per-child basis</t>

<figure><artwork><![CDATA[
childA._dsync.parent.  IN DSYNC ANY 2 5302 ddns-receiver.registrar1.
childB._dsync.parent.  IN DSYNC ANY 2 5302 ddns-receiver.registrar3.
childC._dsync.parent.  IN DSYNC ANY 2 5302 ddns-receiver.registrar2.
]]></artwork></figure>

<t>The DSYNC RRset is looked up, typically by the child primary name
server or by a separate agent for the child, at the time that the
delegation information for the child zone changes in some way that
would prompt an update in the parent zone. When the {scheme} is
"UPDATE" (i.e. the number 2 in the wire protocol) the interpretation
is:</t>

<t><spanx style="verb">Send a DNS UPDATE to the IP address for the name {target} on port
5302, where {target} is the domain name in the right-hand side of the
DSYNC record that matches the qname in the DNS query.</spanx></t>

</section>
<section anchor="limitation-of-scope-for-the-proposed-mechanism"><name>Limitation of Scope for the Proposed Mechanism</name>

<t>DNS UPDATE is in wide use all over the world, for all sorts of
purposes. It is not in wide use across organizational boundaries. This
document only address the specific case of a child zone that makes a
change in its DNS information that will require an update of the
corresponding information in the parent zone. This includes:</t>

<t><list style="symbols">
  <t>changes to the NS RRset</t>
  <t>changes to glue (if any)</t>
  <t>changes to the DS RRset (if any)</t>
</list></t>

<t>Only for those specific cases is the descibed mechanism proposed.</t>

</section>
<section anchor="the-dns-update-receiver"><name>The DNS UPDATE Receiver</name>

<t>While the simplest design is to send the DNS UPDATEs to the primary
name server of the parent it will in most cases be more interesting to
send them to a separate UPDATE Receiver. To separate the primary name
server from the UPDATE Receiver use a {target} with addresses separate
from the addresses of the primary name server.</t>

<section anchor="processing-the-update-in-the-dns-update-receiver"><name>Processing the UPDATE in the DNS UPDATE Receiver</name>

<t>The receiver of the DNS UPDATE messages should implement a suitably 
strict policy for what updates are accepted (typically only allowing 
updates to the NS RRset, glue and DS RRset).</t>

<t>Furthermore, it is strongly recommended that the policy is further
tightened by only allowing updates to the delegation information of a
child zone with the exact same name as the name of the SIG(0) key the
signed the UPDATE request. I.e. an UPDATE request for the delegation
information for the zone <spanx style="verb">child.parent.</spanx> should only be processed if
it is signed by a SIG(0) key with the name <spanx style="verb">child.parent.</spanx> and the
signature verifies correctly.</t>

<t>Once the DNS UPDATE message has been verified to be correctly signed
by a known and trusted key with the correct name and also adhere to
the update policy it should be subjected to the same set of
correctness tests as CDS/CSYNC scanner would have performed. If these
requirements are also fulfilled the change may be applied to the
parent zone in whatever manner the parent zone is maintained (as a
text file, data in a database, via and API, etc).</t>

</section>
</section>
<section anchor="interpretation-of-the-response-to-the-dns-update"><name>Interpretation of the response to the DNS UPDATE.</name>

<t>All DNS transactions are designed as a pair of messages and this is
true also for DNS UPDATE. The interpretation of the different
responses to DNS UPDATE are fully documented in <xref target="RFC2136"/>, section
2.2.</t>

<section anchor="rcode-noerror"><name>RCODE NOERROR</name>

<t>A response with rcode=0 ("NOERROR") should be interpreted as a
confirmation that the DNS UPDATE has been received and
accepted. I.e. the change to the parent DNS data should be expected to
be published in the parent zone at some future time.</t>

</section>
<section anchor="rcode-refused"><name>RCODE REFUSED</name>

<t>A response with rcode=5 ("REFUSED") should be interpreted as a
permanent signal that DNS UPDATEs are not supported by the
receiver. This would indicate a parent misconfiguration, as the UPDATE
should not be sent unless the parent has announced support for DNS
UPDATE via publication of an appropriate target location record.</t>

</section>
<section anchor="rcode-badkey"><name>RCODE BADKEY</name>

<t>A response with rcode=17 ("BADKEY") should be interpreted as a
definitive statement that the DNS UPDATE Receiver does not have access
to the public SIG(0) key needed for signature verification. In this
case the child should fall back to bootstrap of the SIG(0) public key
into the DNS UPDATE Receiver, see below.</t>

</section>
<section anchor="no-response-to-a-dns-update"><name>No response to a DNS UPDATE</name>

<t>The case of no response is more complex, as it is not possible to know
whether the DNS UPDATE actually reached the reciever (or was lost in
transit) or the response was not sent (or lost in transit).</t>

<t>For this reason it is suggested that a lack of response is left as
implementation dependent. That way the implementation has sufficient
freedom do chose a sensible approach. Eg. if the sender of the DNS
UPDATE message (like the primary name server of the child zone) only
serves a single child, then resending the DNS UPDATE once or twice may
be ok (to ensure that the lack of response is not due to packets being
lost in transit). On the other hand, if the sender serves a large
number of child zones below the same parent zone, then it may already
know that the receiver for the DNS UPDATEs is not responding for any
of the child zones, and then resending the update immediately is
likely pointless.</t>

</section>
</section>
<section anchor="management-of-sig0-public-keys"><name>Management of SIG(0) Public Keys</name>

<t>Only the child should have access to the SIG(0) private key. The
corresponding SIG(0) public key should preferably be published in DNS,
but it doesn't have have to be. The SIG(0) public key only needs to be
available to the parent DNS UPDATE Receiver. Keeping all the public
SIG(0) keys for different child zones in some sort of database is
perfectly fine.</t>

<section anchor="bootstrapping-the-sig0-public-key-into-the-dns-update-receiver"><name>Bootstrapping the SIG(0) Public Key Into the DNS UPDATE Receiver</name>

<t>Bootstrap is simpler if the child zone is signed. Therefore the signed
and unsigned cases are described separately.</t>

<section anchor="child-zone-is-dnssec-signed"><name>Child zone is DNSSEC-signed</name>

<t>If the child zone is DNSSEC-signed, then the preferred mechanism is to
publish the public SIG(0) key as a KEY record at the child apex. This
can then be looked up and validated by the DNS UPDATE Receiver.</t>

<figure><artwork><![CDATA[
child.parent. IN KEY ...
child.parent. IN RRSIG KEY ...
]]></artwork></figure>

<t>However, the receiver should have access to the key at the time of
receiving the update, it should not have to do DNS lookups and DNSSEC
validation in response to a DNS UPDATE message (that might open up for
various types of attacks). Therefore the proposal is to trigger the
parent reciver to lookup and validate the key by issuing a DNS UPDATE
that only contains an addition (no delete) of the KEY record from the
child zone:</t>

<figure><artwork><![CDATA[
ADD child.parent. {ttl} IN KEY ...
]]></artwork></figure>

<t>When receiving such a message the reciever SHOULD put that key into a
queue for later look up of the corresponding KEY record and validation
of the DNSSEC-signature. In case of validation failure (or absence of
a DNSSEC signature) the SIG(0) SHOULD NOT be added to the set of keys
that the receiver knows and trust. If the validation succeeds the key
should be added to the set of trusted public SIG(0) keys stored 
locally at the receiver.</t>

</section>
<section anchor="child-zone-is-unsigned"><name>Child zone is unsigned</name>

<t>In the absence of a DNSSEC-based validation path some alternative
mechanism will have ot be found. The primary audience for this DNS
UPDATE based synchronization mechanism is "non-registries". In those
cases there is by definition some mechanism in place to communicate
information from the child to the parent, be it email, a web form,
pieces of paper or something else. The same mechanism can be extended
to also be used to communicate the initial SIG(0) public key from the
child to the parent.</t>

<t>It should also be noted that the bootstrap problem is essentially
identical to the "automatic DNSSEC Bootstrap via CDS" service that
multiple TLD registries provide today. Hence, to bootstrap the public
SIG(0) key for child zone it is possible for the parent to scan the
child zone for the KEY RRset. To make spoofed responses more difficult
it is possible to also add a requirement to use a more stable
transport, like TCP (or in the future DOT, DOH or DOQ once those
become more generally available for DNS queries to authoritative
servers). If the received KEY RRset is consistent from multiple
vantage points and multiple times then it is considered authentic and
stored by the parent's UPDATE Receiver as a trusted SIG(0) key for the
child.</t>

<t>Should a "registry" parent want to support this mechanism (as a
service to its unsigned children) then the most likely model is that
the target of the DNS UPDATE is operated by the registrar (or possibly
that the DNS UPDATE is forwarded to the registrar). The registrar
performs its normal verifications of a change and then transforms the
update into an EPP <xref target="RFC5730"/> transaction to communicate it to the
registry.</t>

</section>
</section>
<section anchor="rolling-the-sig0-key"><name>Rolling the SIG(0) Key</name>

<t>Once the parent (or registrar) DNS UPDATE Receiver has the key, the
child can update it via a DNS UPDATE just like updating the NS RRset,
the DS RRset or the glue in the parent zone (assuming a suitable DNS
UPDATE policy in the parent). I.e. only the initial bootstrapping of
the key is an issue.</t>

<t>Note, however, that the alternative of re-bootstrapping (by whatever
bootstrapping mechanism was used) in case of a key compromise may be a
better alternative to the parent supporting key rollover for child
SIG(0) keys. The decision of whether to allow SIG(0) key rollover via
DNS UPDATE is left as parent-side policy.</t>

</section>
</section>
<section anchor="scalability-considerations"><name>Scalability Considerations</name>

<t>The primary existing mechanism for automatic synchronization of DNS
delegation information is based on parent-side "scanning" of the child
zones for CDS and/or CSYNC RRsets, performing DNSSEC validation on the
result and then, in the CSYNC case, based on the result, issue and
validate a potentially large number of additional DNS queries, all of
which must be DNSSEC validated. This makes a CDS/CSYNC scanner for a
parent with a significant number of delegations a complex and resource
consuming service. Among the issues are rate-limiting by large DNS
operators and inherent difficulties in issuing millions of recursive
DNS queries where all received data must be validated.</t>

<t>By comparision, the DNS UPDATE based mechanism for automatic
synchronization shifts most of the effort to the child side. It is the
child that is responsible for detecting the need to update the
delegation information in the parent zone (which makes sense as it is
the child that has made a change and therefore, in many cases, already
"knows"). It is the child rather than the parent that computes what
records should be added or removed. All of this is good for
scalability.</t>

<t>Furthermore, the information collection and validation effort for the
UPDATE Receiver is restricted to validation of a single DNS message,
using a SIG(0) key that the UPDATE Receiver already has.</t>

<t>Hence, as the data collection and validation is much simplified the
task of the UPDATE Receiver is mostly focused on the policy issues of
whether to approve the UPDATE or not (i.e. the same process that a CDS
and/or CSYNC scanner follows).</t>

</section>
<section anchor="security-considerations"><name>Security Considerations.</name>

<t>Any fully automatic mechanism to update the contents of a DNS zone
opens up a potential vulnerability should the mechanism not be
implemented correctly.</t>

<t>In this case the definition of "correct" is a question for the
receiver of the DNS UPDATE. The receiver should validate the
authenticity of the DNS UPDATE and then do the same checks and
verifications as a CDS or CSYNC scanner does. The difference from the
scanner is only in the validation: single SIG(0) signature by a key
that the UPDATE Receiver trusts vs DNSSEC signatures that chain back
to a DNSSEC trust anchor that the validator trusts.</t>

<t>Another issue of concern is whether a parent-side service that
provides support for changes to child delegation information via DNS
UPDATE is open for potential denial-of-service attacks. The answer is
likely no, as it is possible to have a very strict rate-limiting
policy based on the observation that no child zone should have a
legitimate need to change its delegation information frequently.</t>

<t>Furthermore, as the location of the UPDATE Receiver can be separated
from any parent name server even in the worst case the only service
that can be subject to an attack is the UPDATE Receiver itself, which
is a service that previously did not exist.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations.</name>

<t>IANA is requested to assign a new "scheme" value to the registry for
"DSYNC Location of Synchronization Endpoints" as follows:</t>

<dl>
  <dt>Reference</dt>
  <dd>
    <t>(this document)</t>
  </dd>
</dl>

<texttable>
      <ttcol align='left'>RRtype</ttcol>
      <ttcol align='left'>Scheme</ttcol>
      <ttcol align='left'>Purpose</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>ANY</c>
      <c>2</c>
      <c>Delegation management</c>
      <c>(this document)</c>
</texttable>

<t><vspace blankLines='999' /></t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements.</name>

<t><list style="symbols">
  <t>Peter Thomassen and I together came up with the location mechanism
for the generalized notifications, which this draft relies upon.</t>
  <t>Mark Andrews provided the initial inspiration for writing some code
to experiment with the combination of the location mechanism from
the generalised notifications with DNS UPDATEs across zone cuts.</t>
</list></t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC1996' target='https://www.rfc-editor.org/info/rfc1996'>
  <front>
    <title>A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY)</title>
    <author fullname='P. Vixie' initials='P.' surname='Vixie'/>
    <date month='August' year='1996'/>
    <abstract>
      <t>This memo describes the NOTIFY opcode for DNS, by which a master server advises a set of slave servers that the master's data has been changed and that a query should be initiated to discover the new data. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='1996'/>
  <seriesInfo name='DOI' value='10.17487/RFC1996'/>
</reference>

<reference anchor='RFC2136' target='https://www.rfc-editor.org/info/rfc2136'>
  <front>
    <title>Dynamic Updates in the Domain Name System (DNS UPDATE)</title>
    <author fullname='P. Vixie' initials='P.' role='editor' surname='Vixie'/>
    <author fullname='S. Thomson' initials='S.' surname='Thomson'/>
    <author fullname='Y. Rekhter' initials='Y.' surname='Rekhter'/>
    <author fullname='J. Bound' initials='J.' surname='Bound'/>
    <date month='April' year='1997'/>
    <abstract>
      <t>Using this specification of the UPDATE opcode, it is possible to add or delete RRs or RRsets from a specified zone. Prerequisites are specified separately from update operations, and can specify a dependency upon either the previous existence or nonexistence of an RRset, or the existence of a single RR. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2136'/>
  <seriesInfo name='DOI' value='10.17487/RFC2136'/>
</reference>

<reference anchor='RFC3007' target='https://www.rfc-editor.org/info/rfc3007'>
  <front>
    <title>Secure Domain Name System (DNS) Dynamic Update</title>
    <author fullname='B. Wellington' initials='B.' surname='Wellington'/>
    <date month='November' year='2000'/>
    <abstract>
      <t>This document proposes a method for performing secure Domain Name System (DNS) dynamic updates. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='3007'/>
  <seriesInfo name='DOI' value='10.17487/RFC3007'/>
</reference>

<reference anchor='RFC2931' target='https://www.rfc-editor.org/info/rfc2931'>
  <front>
    <title>DNS Request and Transaction Signatures ( SIG(0)s )</title>
    <author fullname='D. Eastlake 3rd' initials='D.' surname='Eastlake 3rd'/>
    <date month='September' year='2000'/>
    <abstract>
      <t>This document describes the minor but non-interoperable changes in Request and Transaction signature resource records ( SIG(0)s ) that implementation experience has deemed necessary. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2931'/>
  <seriesInfo name='DOI' value='10.17487/RFC2931'/>
</reference>

<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname='S. Bradner' initials='S.' surname='Bradner'/>
    <date month='March' year='1997'/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='2119'/>
  <seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>

<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
    <date month='May' year='2017'/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='8174'/>
  <seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>

<reference anchor='RFC5730' target='https://www.rfc-editor.org/info/rfc5730'>
  <front>
    <title>Extensible Provisioning Protocol (EPP)</title>
    <author fullname='S. Hollenbeck' initials='S.' surname='Hollenbeck'/>
    <date month='August' year='2009'/>
    <abstract>
      <t>This document describes an application-layer client-server protocol for the provisioning and management of objects stored in a shared central repository. Specified in XML, the protocol defines generic object management operations and an extensible framework that maps protocol operations to objects. This document includes a protocol specification, an object mapping template, and an XML media type registration. This document obsoletes RFC 4930. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='69'/>
  <seriesInfo name='RFC' value='5730'/>
  <seriesInfo name='DOI' value='10.17487/RFC5730'/>
</reference>




    </references>



<section anchor="change-history-to-be-removed-before-publication"><name>Change History (to be removed before publication)</name>

<t><list style="symbols">
  <t>draft-johani-dnsop-delegation-mgmt-via-ddns-03</t>
</list></t>

<ul empty="true"><li>
  <t>Update the draft based on the excellent dnsdir review of 
draft-ietf-dnsop-generalized-notify-01 by Patrick Mevsek.</t>
</li></ul>

<ul empty="true"><li>
  <t>Expand the section on alternatives for initial bootstrap
to suggest a mechanism similar to what is used for automatic
bootstrap of DNSSEC signed delegations via multiple queries
for child the CDS RRset.</t>
</li></ul>

<ul empty="true"><li>
  <t>Added a section on scalability considerations.</t>
</li></ul>

<ul empty="true"><li>
  <t>Expanded the Security Considerations section with a paragraph on
the potential for DDOS attacks aimed at the UPDATE Receiver.</t>
</li></ul>

<t><list style="symbols">
  <t>draft-johani-dnsop-delegation-mgmt-via-ddns-02</t>
</list></t>

<ul empty="true"><li>
  <t>Update the references to the (updated) I-D for generalized
notifications.</t>
</li></ul>

<ul empty="true"><li>
  <t>Remove duplicated descriptions between the two drafts. It is
sufficient that the generalized notification draft describes the
mechanics.</t>
</li></ul>

<t><list style="symbols">
  <t>draft-johani-dnsop-delegation-mgmt-via-ddns-01</t>
</list></t>

<ul empty="true"><li>
  <t>Change the RRtype from the original "NOTIFY" to the proposed "DSYNC"</t>
</li></ul>

<ul empty="true"><li>
  <t>Expand the description of how to interpret different RCODE responses
to the UPDATE. Expand the description of bootstrapping
alternatives. Change the mnemonic of the RR type used from "NOTIFY"
to "DSYNC" in the examples.</t>
</li></ul>

<t><list style="symbols">
  <t>draft-johani-dnsop-delegation-mgmt-via-ddns-00</t>
</list></t>

<ul empty="true"><li>
  <t>Initial public draft.</t>
</li></ul>

</section>


  </back>

<!-- ##markdown-source:
H4sIAPpPjGYAA61cbXPjRnL+Pr9iQn+I5CLp3fVdLlYqTrQr+aycvdqT1rly
pVI5EBiSOJEAjQHF5fn2v6ef7p4XgNI6rsvW1VkkgcFMT/fT3U/3YDabmb7u
N+7CTi73fbst+rpZ2au39/bKbdyKPraN/b5oipXbuqa3j3Vhr+jniSkWi849
XvAn+8OuKnrnbbvM77tplm235b9N1ZZNsaXnVF2x7Gd/addFU8+qxre7WRVv
mW1X235GD5lV9NPsxZcG417Yn68u319/NCV9WLXd8cL6vjKm3nUXtu/2vn/1
4sVXL16ZonPFBT22d13jenNou4dV1+53F1jR7Tv7J/oC6/s9vjQP7khXVOmG
2RXmZozvi6b6n2LTNvToo/NmV1/Y/+rbcmp92/WdW3r667jFH/9tTLHv1213
YezMWPpXN/7C/sfc3veuoZG2/KWs/T+w6uEPbbciQfyVV39h36+dvT+4qvbr
OCv7TbtvKpEi7ijpYw8Z4EIn37ltUW8uLEt17nX8f691BN/Xy95tvKPfnDGN
bMqjuyARhi3iT7PZzBYL33dFSWLIdrJOO2nP6rmb255mSht/d+ddP7W71vt6
sXF2tdm77OPVvelcSUL259av2/2mssXmUBy9XTj74HY9jUySbEr63B+ca2y5
rumiv5LoLW2C3dGWNr3B57n9tj24R9dNcdMOc6xLRxMpaBRvm7YPY2NuZeHd
3Jg/rWlMfK6eXozeGGbBd6YZ1N7s/b7YbI72oKqzrBta4GLf20NN207/xT3F
FpsC9e9chd1qyqPMjH7l2dv20LjObuoHR6O5DztX9jTT1q6LRyzNNSWNG2TU
HO1y39G9HS20JUluvaFN3dOUeigAXYP7aJV9QdvV7uqSvm68+2mPgTytHKoE
04TmWb8rSFTrwtMEHl3Fc6ep0ep1eEsiIRmVRUVWDMHXvWkgbLtq8Q3JdW5v
SfRdgVlNMY9DvdnYcBFfYkkI9cYWNHmSGQwDiELP27oS9u7lOev2gJU/OLdj
6Q02RHYi3FuXLH2aaOV2m/boKl4aPrflniGJVkD6RpP0+3JNz47PwpW39vW1
vbv+/vY/r69gXvmNNbQQe1q2m02xaDueqszh9ySg/cIW/YX5r3Xf7/zFF1+s
+Lt52W6/EPj68MWvALP/Pvv/Ged8zlu7bX1PylZiIUE3aSc8ZEhqyCqvC53a
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
XwAA

-->

</rfc>

