<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dnsop-generalized-notify-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="Generalized Notifications">Generalized DNS Notifications</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-generalized-notify-01"/>
    <author initials="J." surname="Stenstam" fullname="Johan Stenstam">
      <organization>The Swedish Internet Foundation</organization>
      <address>
        <email>johan.stenstam@internetstiftelsen.se</email>
      </address>
    </author>
    <author initials="P." surname="Thomassen" fullname="Peter Thomassen">
      <organization>deSEC, Secure Systems Engineering</organization>
      <address>
        <email>peter@desec.io</email>
      </address>
    </author>
    <author initials="J." surname="Levine" fullname="John Levine">
      <organization>Standcore LLC</organization>
      <address>
        <email>standards@standcore.com</email>
      </address>
    </author>
    <date/>
    <area>Internet</area>
    <workgroup>DNSOP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document extends the use of DNS NOTIFY (<xref target="RFC1996"/> beyond conventional
zone transfer hints, bringing the benefits of ad-hoc notifications to DNS
delegation maintenance in general.  Use cases include DNSSEC key rollovers
hints, and quicker changes to a delegation's NS record set.</t>
      <t>To enable this functionality, a method for discovering the receiver endpoint
for such notification message is introduced, via the new NOTIFY record type.</t>
      <t>TO BE REMOVED: This document is being collaborated on in Github at:
<eref target="https://github.com/peterthomassen/draft-ietf-dnsop-generalized-notify">https://github.com/peterthomassen/draft-ietf-dnsop-generalized-notify</eref>.
The most recent working version of the document, open issues, etc. should all be
available there.  The authors (gratefully) accept pull requests.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Traditional DNS notifications <xref target="RFC1996"/>, which are here referred to as
"NOTIFY(SOA)", are sent from a primary server to a secondary server to
minimize the latter's convergence time to a new version of the
zone. This mechanism successfully addresses a significant inefficiency
in the original protocol.</t>
      <t>Today similar inefficiencies occur in new use cases, in particular delegation
maintenance (DS and NS record updates). Just as in the NOTIFY(SOA) case, a new
set of notification types will have a major positive benefit by
allowing the DNS infrastructure to completely sidestep these
inefficiencies. For additional context, see <xref target="context"/>.</t>
      <t>No DNS protocol changes are introduced by this document. The mechanism
instead makes use of a wider range of DNS messages allowed by the protocol.
Future extension for further use cases (such as multi-signer key exchange)
is possible.</t>
      <t>Readers are expected to be familiar with DNSSEC, including <xref target="RFC4033"/>,
<xref target="RFC4034"/>, <xref target="RFC4035"/>, <xref target="RFC6781"/>, <xref target="RFC7344"/>, <xref target="RFC7477"/>,
<xref target="RFC7583"/>, and <xref target="RFC8901"/>.</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 anchor="terminology">
        <name>Terminology</name>
        <t>In the text below there are two different uses of the term
"NOTIFY". One refers to the NOTIFY message, sent from a DNSSEC signer
or name server to a notification target (for subsequent
processing). We refer to this message as NOTIFY(RRtype) where the
RRtype indicates the type of NOTIFY message (CDS or CSYNC).</t>
        <t>The second is a proposed new DNS record type, with the suggested
mnemonic "NOTIFY". This record is used to publish the location of the
notification target. We refer to this as the "NOTIFY record".</t>
      </section>
    </section>
    <section anchor="publication-of-notification-targets">
      <name>Publication of Notification Targets</name>
      <t>To use generalized notifications, it is necessary for the sender to know
where to direct each NOTIFY message. This section describes the
procedure for discovering that notification target.</t>
      <t>Note that generalized NOTIFY messages are but one mechanism for
improving the efficiency of automated delegation maintenance. Other
alternatives alternatives, such as contacting the parent via an API or
DNS Update (<xref target="RFC2136"/>), may (or may not) be more suitable in
individual cases. Like generalized notifications, they similarly require
a means for discovering where to send the API or DNS Update requets.</t>
      <t>The scope for the publication mechanism is therefore wider than only to
support generalized notifications, and a unified approach that works
independently of the notification method is specified in this section.</t>
      <section anchor="design-requirements">
        <name>Design Requirements</name>
        <t>When the parent is interested in notifications for delegation
maintenance (such as for DS or NS updates), a service will need to be
made available for accepting these notifications. Depending on the
context, this service may be run by the parent zone operator themselves,
or by a designated entity who is in charge of handling the domain's
delegation data (such as a domain registrar).</t>
        <t>The simplest solution enabling straightforward discovery is for the
parent to publish the address where it prefers to have notifications
sent. Potential notification senders, knowing the name of the parent
zone, can then simply look up that information.</t>
        <t>It is strongly desirable that the notification sender is able to figure
out where to send the NOTIFY via a single lookup, even when ignorant of
the details of the parent-side business relationships (e.g., whether
there is a registrar or not). The mechanism should thus enable the parent to
(optionally) announce the notification endpoint in a delegation-specific
way. (If the delegation is several labels deep, an extra query may be
needed for identifying the parent.)</t>
        <t>These requirements suggest making the endpoint discoverable at a
child-specific name. The record there is expected to live at a wildcard
name, unless the parent intends to publish a child-specific endpoint.</t>
      </section>
      <section anchor="signaling-method">
        <name>Signaling Method</name>
        <t>Parents participating in the discovery scheme for the purpose of
delegation maintenance notifications MUST publish endpoint information
using the record type defined in <xref target="dsyncrdtype"/>, as described in this
section.</t>
        <t>The suggested mnemonic for the new record type is "DSYNC" and it is
further described below.</t>
        <t>If the parent itself performs CDS/CDNSKEY and CSYNC processing, or if
the parent forwards the notifications internally to the designated party
(such as as registrar), the following scheme is used:</t>
        <artwork><![CDATA[
*._signal.se.   IN DSYNC  CDS   scheme port endpoint.registry.se.
*._signal.se.   IN DSYNC  CSYNC scheme port endpoint.registry.se.
]]></artwork>
        <t>It is also possible to publish child-specific records, where the
wildcard label is replaced by the child's FQDN with the parent zone's
labels stripped.</t>
        <t>As an example, consider a registrar offering domains like <tt>example.se</tt>,
delegated from <tt>se</tt> zone. If the registrar provides the notification
endpoint, the parent may publish this information using the following
scheme:</t>
        <artwork><![CDATA[
example._signal.se.   IN DSYNC  CDS   scheme port endpoint.registrar.com.
]]></artwork>
        <t>(Note that this is a generic method, allowing the parent to securely
publish other sorts of information about a child that currently is not
easily represented in DNS, such as the registrar's identity.)</t>
        <t>The parent MAY synthesize records under the <tt>_signal</tt> domain. The
<tt>_signal</tt> domain may be delegated to another nameserver dedicated for
this purpose.</t>
        <t>To accommodate indirect delegation management models (such as ICANN's
RRR model), the parent's designated notification target may relay
notifications to the registrar, e.g. via an EPP call, or by forwarding
the NOTIFY(CDS) message directly. The same is true also for
NOTIFY(CSYNC).</t>
      </section>
    </section>
    <section anchor="dsyncrdtype">
      <name>The DSYNC Record</name>
      <section anchor="wire-format">
        <name>Wire Format</name>
        <t>The DSYNC RDATA wire format is encoded as follows:</t>
        <artwork><![CDATA[
                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RRtype                        | Scheme        | Port
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                | Target ...  /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/
]]></artwork>
        <dl>
          <dt>RRtype</dt>
          <dd>
            <t>The type of generalized NOTIFY that this DSYNC RR defines the
desired target address for. For now, only CDS and CSYNC are
supported values.</t>
          </dd>
          <dt>Scheme</dt>
          <dd>
            <t>The scheme for locating the desired notification address.  The range
is 0-255. This is an 8 bit unsigned integer. The value 0 is an error,
and values 128-255 are reserved for private use. The value 1 is
described in this document, and all other values are currently
unspecified.</t>
          </dd>
          <dt>Port</dt>
          <dd>
            <t>The port on the target host of the notification service. The
range is 0-65535. This is a 16 bit unsigned integer in network
byte order.</t>
          </dd>
          <dt>Target</dt>
          <dd>
            <t>The domain name of the target host providing the service of
listening for generalized notifications of the specified type.
This name MUST resolve to one or more address records.</t>
          </dd>
        </dl>
      </section>
      <section anchor="semantics">
        <name>Semantics</name>
        <t>For now, the only scheme defined is scheme=1 with the interpretation
that when a new CDS (or CDNSKEY or CSYNC) is published, a NOTIFY(CDS)
or NOTIFY(CSYNC) should be sent to the address and port listed in the
corresponding NOTIFY RRset.</t>
        <t>Other schemes are possible, but are out of scope for this document.</t>
        <t>Example:</t>
        <artwork><![CDATA[
parent.   IN DSYNC CDS   1 5359 cds-scanner.parent.
parent.   IN DSYNC CSYNC 1 5360 csync-scanner.parent.
]]></artwork>
        <t>From the perspective of this protocol, the NOTIFY(CDS) packet is
simply sent to the parent's published notification address. However,
should this turn out not to be sufficient, it is possible to define a
new "scheme" that specifies alternative logic for dealing with such
requirements.  Description of internal processing in the recipient end
or for locating the recipient are out of scope of this document.</t>
      </section>
      <section anchor="rationale">
        <name>Rationale</name>
        <t>(RFC Editor: This subsection is to be removed before publication)</t>
        <t>It may look like it's possible to store the same information in an SRV
record. However, this would require indicating the RRtype via a label in
the owner name, leading to name space pollution. It would also require
changing the semantics of one of the integer fields of the SRV record.</t>
        <t>Such overloading has not been a good idea in the past. Furthermore, as
the generalized notifications are a new proposal with no prior
deployments, there is an opportunity to avoid repeating mistakes.</t>
        <t>The DSYNC record type also provides a cleaner solution for bundling all
the new types of notification signaling in an RRset, like:</t>
        <artwork><![CDATA[
parent.         IN DSYNC  CDS     1  59   scanner.parent.
parent.         IN DSYNC  CSYNC   1  59   scanner.parent.
]]></artwork>
        <t>For DSYNC records indicating CDS/CDNSKEY/CSYNC notification targets, no
special processing needs to be applied by the authoritative nameserver
upon insertion of a DSYNC record. The nameserver can thus be "unaware".</t>
        <t>Future use cases (such as for multi-signer key exchange) may require the
nameserver to trigger special operations, for example when a DSYNC
record is inserted during onboarding of a new signer. It seems cleaner
and easier that such processing be associated with the insertion of a
record of a new type, not an existing type like SRV.</t>
      </section>
    </section>
    <section anchor="delegation-maintenance-cdscdnskey-and-csync-notifications">
      <name>Delegation Maintenance: CDS/CDNSKEY and CSYNC Notifications</name>
      <t>Delegation maintenance notifications address the inefficiencies related
to scanning child zones for CDS/CDNSKEY records <xref target="RFC7344"/>. (For an
overview of the issues, see <xref target="context"/>.)</t>
      <t>Delegation maintenance NOTIFY messages MUST be formatted as described in
<xref target="RFC1996"/>, with the <tt>qtype</tt> field replaced as appropriate.</t>
      <t>To address the CDS/CDNSKEY dichotomy, the NOTIFY(CDS) message (with
<tt>qtype=CDS</tt>) is defined to indicate any child-side changes pertaining
to an upcoming update of DS records. Upon receipt of NOTIFY(CDS), the
recipient (the parent registry or a registrar) SHOULD initiate the same DNS
lookups and verifications that would otherwise be triggered based on a
timer.</t>
      <t>The CSYNC <xref target="RFC7477"/> inefficiency may be similarly treated, with the
child sending a NOTIFY(CSYNC) message (with <tt>qtype=CSYNC</tt>) to an address
where the parent (or a registrar) is listening to CSYNC notifications.</t>
      <t>In both cases the notification will speed up processing times by
providing the recipient with a hint that a particular child zone has
published new CDS, CDNSKEY and/or CSYNC records.</t>
      <section anchor="endpoint-discovery">
        <name>Endpoint Discovery</name>
        <t>To locate the target for outgoing delegation maintenance notifications,
the notification sender MUST perform the following procedure:</t>
        <ol spacing="normal" type="1"><li>
            <t>Construct the lookup name, by injecting the <tt>_signal</tt> label after the
first label of the delegation owner name.</t>
          </li>
          <li>
            <t>Perform a lookup of type DSYNC for the lookup name, and validate the
response if DNSSEC is enabled. If a DSYNC RRset results, return it.</t>
          </li>
          <li>
            <t>When the query resulted in a negative response:  </t>
            <ul spacing="normal">
              <li>
                <t>If the negative response indicates that the parent is more than one
label away from the <tt>_signal</tt> label, construct a new lookup name by
inserting the <tt>_signal</tt> label into the delegation owner name just
before the parent zone labels inferred from the negative response,
and go to step 2.      </t>
                <t>
For example, <tt>city.ise.mie.jp</tt> is delegated from <tt>jp</tt> (and not
from <tt>ise.mie.jp</tt> or <tt>mie.jp</tt>!). The initial DSYNC query relating
to it is thus directed at <tt>city._signal.ise.mie.jp</tt>. This is
expected to result in a negative response from <tt>jp</tt>, and another
query for <tt>city.ise.mie._signal.jp</tt> is then required;</t>
              </li>
              <li>
                <t>Otherwise, if the lookup name has any labels in front of the
<tt>_signal</tt> label, remove them to construct a new lookup name (such
as <tt>_signal.jp</tt>), and go to step 2.
(This is to enable zone structures without wildcards.)</t>
              </li>
              <li>
                <t>Otherwise, return null (no notification target available).</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
      <section anchor="sending-notifications">
        <name>Sending Notifications</name>
        <t>When changing a CDS/CDNSKEY/CSYNC RRset in the child zone, the DNS
operator SHOULD send a suitable NOTIFY message to the endpoint located
as described in the previous section.</t>
        <t>A NOTIFY message can only carry information about changes concerning one
child zone. When there are changes to several child zones, the sender
MUST send a separate notification for each one.</t>
        <t>Because of the security model where a notification by itself never
causes a change (it can only speed up the time until the next
check for the same thing), the sender's identity is not crucial.
This opens up the possibility of having an arbitrary party (e.g., a
side-car service) send the notifications to the parent, thereby enabling
this functionality even before the emergence of native support in
nameserver software.</t>
        <t>While the receiving side will often be a scanning service provided by
the registry itself, it is expected that in the ICANN RRR model, some
registries will prefer registrars to conduct CDS/CDNSKEY processing. In
such cases, the registrar notification endpoint should be published in
the parent zone, enabling the child to direct their notifications to the
appropriate target. From the perspective of the child, it is
inconsequential who's in charge of processing the notification: the
NOTIFY message is simply sent to the published address.</t>
        <section anchor="timing">
          <name>Timing</name>
          <t>When a primary name server publishes a new RRset in the child, there
will be a time delay until all publicly visible copies of the zone
will have been updated. If the primary sends a NOTIFY at the exact
time of publication of the new zone, there is a potential for the
parent to attempt CDS/CDNSKEY/CSYNC processing before the updated zone
is visible. In this case the parent may draw the wrong conclusion (“the
CDS RRset has not been updated”).</t>
          <t>Having a delay between the publication of the new data and the check
for the new data would alleviate this issue. However, as the parent
has no way of knowing how quickly the child zone propagates, the
appropriate amount of delay is uncertain.</t>
          <t>It is therefore RECOMMENDED that the child delays sending NOTIFY
messages to the recipient until a consistent public view of the pertinent
records is ensured.</t>
        </section>
        <section anchor="rationale-for-using-the-dns-message-format">
          <name>Rationale for Using the DNS Message Format</name>
          <t>(RFC Editor: This subsection is to be removed before publication)</t>
          <t>In the most common cases of using generalized notifications the
recipient is expected to not be a nameserver, but rather some other
type of service, like a CDS/CSYNC scanner.</t>
          <t>However, this will likely not always be true. In particular it seems
likely that in cases where the parent is not a large
delegation-centric zone like a TLD, but rather a smaller zone with a
small number of delegations there will not be separate services for
everything and the recipient of the NOTIFY(CDS) or NOTIFY(CSYNC) will
be an authoritative nameserver for the parent zone.</t>
          <t>For this reason it seems most reasonable to stay within the the well
documented and already supported message format specified in RFC 1996
and delivered over normal DNS transport, although not necessarily to
port 53.</t>
        </section>
      </section>
      <section anchor="processing-of-notify-messages">
        <name>Processing of NOTIFY Messages</name>
        <t>NOTIFY(CDS) messages carrying notification payloads (records) for
several child zones MUST be discarded, as sending them is an error.</t>
        <t>Upon receipt of a (potentially forwarded) valid NOTIFY(CDS) message for
a particular child zone at the published address for CDS notifications,
the receiving side (parent registry or registrar) has two options:</t>
        <ol spacing="normal" type="1"><li>
            <t>Schedule an immediate check of the CDS and CDNSKEY RRsets as
published by that particular child zone.  </t>
            <t>
If the check finds that the CDS/CDNSKEY RRset has indeed changed,
the parent MAY reset the scanning timer for children for which
NOTIFY(CDS) is received, or reduce the periodic scanning frequency
accordingly (e.g. to every two weeks).
This will decrease the scanning effort for the parent.
If a CDS/CDNSKEY change is then detected (without having received
a notification), the parent SHOULD clear that state and revert to
the default scanning schedule.  </t>
            <t>
Parents introducing CDS/CDNSKEY scanning support at the same time
as NOTIFY(CDS) support are not in danger of breaking children's
scanning assumption, and MAY therefore use a low-frequency
scanning schedule in default mode.</t>
          </li>
          <li>
            <t>Ignore the notification, in which case the system works exactly
as before. (One reason to do this may be a rate limit, see
<xref target="security"/>.)</t>
          </li>
        </ol>
        <t>If the parent implements the first option, the convergence time (time
between publication of a new CDS/CDNSKEY record in the child and
propagation of the resulting DS) will decrease significantly, thereby
providing improved service to the child zone.</t>
        <t>If the parent, in addition to scheduling an immediate check for the
child zone of the notification, also choses to modify the scanning
schedule (to be less frequent), the cost of providing the scanning
service will be reduced.</t>
        <t>Upon receipt of a NOTIFY(CSYNC) to the published address for CSYNC
notifications, the same options and considerations apply as for the
NOTIFY(CDS).</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The original NOTIFY specification sidesteps most security issues by not
relying on the information in the NOTIFY message in any way, and instead
only using it to "enter the state it would if the zone's refresh timer
had expired" (<xref section="4.7" sectionFormat="of" target="RFC1996"/>).</t>
      <t>This security model is reused for generalized NOTIFY messages. It
therefore seems impossible to affect the behaviour of the recipient of
the NOTIFY other than by hastening the timing for when different checks
are initiated.</t>
      <t>The receipt of a notification message will, in general, cause the
receiving party to perform one or more outbound queries for the records
of interest (for example, NOTIFY(CDS) will cause CDS/CDNSKEY
queries). When done via port 53, the size of these queries is comparable
to that of the NOTIFY messages themselves, rendering any amplification
attempts futile. The number of queries triggered per notification is
also limited by the requirement that a NOTIFY message can refer to one
child only.</t>
      <t>However, when the outgoing query occurs via encrypted transport, some
amplification is possible, both with respect to bandwidth and
computational burden. In this case, the usual principle of bounding the
work, even under unreasonable events, applies.</t>
      <t>Receivers therefore MUST implement rate limiting for notification
processing. It is RECOMMENDED to configure rate limiting independently
for both the notification's source IP address and the name of the zone
that is conveyed in the NOTIFY message. Rate limiting also mitigates
processing load from garbage notifications.</t>
      <t>Alternative solutions (such as signing notifications and validating
their signatures) appear significantly more expensive without tangible
benefit.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>Per <xref target="RFC8552"/>, IANA is requested to create a new registry on the
"Domain Name System (DNS) Parameters" IANA web page as follows:</t>
      <t>Name: DSYNC: Location of Synchronization Endpoints</t>
      <t>Assignment Policy: Expert Review</t>
      <t>Reference: (this document)</t>
      <table>
        <thead>
          <tr>
            <th align="left">DSYNC type</th>
            <th align="left">Scheme</th>
            <th align="left">Purpose</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">CDS</td>
            <td align="left">1</td>
            <td align="left">Delegation management</td>
            <td align="left">(this document)</td>
          </tr>
          <tr>
            <td align="left">CSYNC</td>
            <td align="left">1</td>
            <td align="left">Delegation management</td>
            <td align="left">(this document)</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left">128-255</td>
            <td align="left">Reserved (private use)</td>
            <td align="left">(this document)</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Joe Abley, Mark Andrews, Christian Elmerot, Ólafur Guðmundsson, Paul
Wouters, Brian Dickson</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="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="RFC4033">
        <front>
          <title>DNS Security Introduction and Requirements</title>
          <author fullname="R. Arends" initials="R." surname="Arends"/>
          <author fullname="R. Austein" initials="R." surname="Austein"/>
          <author fullname="M. Larson" initials="M." surname="Larson"/>
          <author fullname="D. Massey" initials="D." surname="Massey"/>
          <author fullname="S. Rose" initials="S." surname="Rose"/>
          <date month="March" year="2005"/>
          <abstract>
            <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4033"/>
        <seriesInfo name="DOI" value="10.17487/RFC4033"/>
      </reference>
      <reference anchor="RFC4034">
        <front>
          <title>Resource Records for the DNS Security Extensions</title>
          <author fullname="R. Arends" initials="R." surname="Arends"/>
          <author fullname="R. Austein" initials="R." surname="Austein"/>
          <author fullname="M. Larson" initials="M." surname="Larson"/>
          <author fullname="D. Massey" initials="D." surname="Massey"/>
          <author fullname="S. Rose" initials="S." surname="Rose"/>
          <date month="March" year="2005"/>
          <abstract>
            <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
            <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4034"/>
        <seriesInfo name="DOI" value="10.17487/RFC4034"/>
      </reference>
      <reference anchor="RFC4035">
        <front>
          <title>Protocol Modifications for the DNS Security Extensions</title>
          <author fullname="R. Arends" initials="R." surname="Arends"/>
          <author fullname="R. Austein" initials="R." surname="Austein"/>
          <author fullname="M. Larson" initials="M." surname="Larson"/>
          <author fullname="D. Massey" initials="D." surname="Massey"/>
          <author fullname="S. Rose" initials="S." surname="Rose"/>
          <date month="March" year="2005"/>
          <abstract>
            <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications.</t>
            <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4035"/>
        <seriesInfo name="DOI" value="10.17487/RFC4035"/>
      </reference>
      <reference anchor="RFC6781">
        <front>
          <title>DNSSEC Operational Practices, Version 2</title>
          <author fullname="O. Kolkman" initials="O." surname="Kolkman"/>
          <author fullname="W. Mekking" initials="W." surname="Mekking"/>
          <author fullname="R. Gieben" initials="R." surname="Gieben"/>
          <date month="December" year="2012"/>
          <abstract>
            <t>This document describes a set of practices for operating the DNS with security extensions (DNSSEC). The target audience is zone administrators deploying DNSSEC.</t>
            <t>The document discusses operational aspects of using keys and signatures in the DNS. It discusses issues of key generation, key storage, signature generation, key rollover, and related policies.</t>
            <t>This document obsoletes RFC 4641, as it covers more operational ground and gives more up-to-date requirements with respect to key sizes and the DNSSEC operations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6781"/>
        <seriesInfo name="DOI" value="10.17487/RFC6781"/>
      </reference>
      <reference anchor="RFC7344">
        <front>
          <title>Automating DNSSEC Delegation Trust Maintenance</title>
          <author fullname="W. Kumari" initials="W." surname="Kumari"/>
          <author fullname="O. Gudmundsson" initials="O." surname="Gudmundsson"/>
          <author fullname="G. Barwood" initials="G." surname="Barwood"/>
          <date month="September" year="2014"/>
          <abstract>
            <t>This document describes a method to allow DNS Operators to more easily update DNSSEC Key Signing Keys using the DNS as a communication channel. The technique described is aimed at delegations in which it is currently hard to move information from the Child to Parent.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7344"/>
        <seriesInfo name="DOI" value="10.17487/RFC7344"/>
      </reference>
      <reference anchor="RFC7477">
        <front>
          <title>Child-to-Parent Synchronization in DNS</title>
          <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
          <date month="March" year="2015"/>
          <abstract>
            <t>This document specifies how a child zone in the DNS can publish a record to indicate to a parental agent that the parental agent may copy and process certain records from the child zone. The existence of the record and any change in its value can be monitored by a parental agent and acted on depending on local policy.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7477"/>
        <seriesInfo name="DOI" value="10.17487/RFC7477"/>
      </reference>
      <reference anchor="RFC7583">
        <front>
          <title>DNSSEC Key Rollover Timing Considerations</title>
          <author fullname="S. Morris" initials="S." surname="Morris"/>
          <author fullname="J. Ihren" initials="J." surname="Ihren"/>
          <author fullname="J. Dickinson" initials="J." surname="Dickinson"/>
          <author fullname="W. Mekking" initials="W." surname="Mekking"/>
          <date month="October" year="2015"/>
          <abstract>
            <t>This document describes the issues surrounding the timing of events in the rolling of a key in a DNSSEC-secured zone. It presents timelines for the key rollover and explicitly identifies the relationships between the various parameters affecting the process.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7583"/>
        <seriesInfo name="DOI" value="10.17487/RFC7583"/>
      </reference>
      <reference anchor="RFC8901">
        <front>
          <title>Multi-Signer DNSSEC Models</title>
          <author fullname="S. Huque" initials="S." surname="Huque"/>
          <author fullname="P. Aras" initials="P." surname="Aras"/>
          <author fullname="J. Dickinson" initials="J." surname="Dickinson"/>
          <author fullname="J. Vcelak" initials="J." surname="Vcelak"/>
          <author fullname="D. Blacka" initials="D." surname="Blacka"/>
          <date month="September" year="2020"/>
          <abstract>
            <t>Many enterprises today employ the service of multiple DNS providers to distribute their authoritative DNS service. Deploying DNSSEC in such an environment may present some challenges, depending on the configuration and feature set in use. In particular, when each DNS provider independently signs zone data with their own keys, additional key-management mechanisms are necessary. This document presents deployment models that accommodate this scenario and describes these key-management requirements. These models do not require any changes to the behavior of validating resolvers, nor do they impose the new key-management requirements on authoritative servers not involved in multi-signer configurations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8901"/>
        <seriesInfo name="DOI" value="10.17487/RFC8901"/>
      </reference>
      <reference anchor="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">
        <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="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="RFC8552">
        <front>
          <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
          <author fullname="D. Crocker" initials="D." surname="Crocker"/>
          <date month="March" year="2019"/>
          <abstract>
            <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="222"/>
        <seriesInfo name="RFC" value="8552"/>
        <seriesInfo name="DOI" value="10.17487/RFC8552"/>
      </reference>
      <reference anchor="I-D.wisser-dnssec-automation">
        <front>
          <title>DNSSEC automation</title>
          <author fullname="Ulrich Wisser" initials="U." surname="Wisser">
            <organization>The Swedish Internet Foundation</organization>
          </author>
          <author fullname="Shumon Huque" initials="S." surname="Huque">
            <organization>Salesforce</organization>
          </author>
          <date day="6" month="March" year="2022"/>
          <abstract>
            <t>   This document describes an algorithm and a protocol to automate
   DNSSEC Multi-Signer [RFC8901] "Multi-Signer DNSSEC Models" setup,
   operations and decomissioning.  Using Model 2 of the Multi-Signer
   specification, where each operator has their own distinct KSK and ZSK
   sets (or CSK sets), [RFC8078] "Managing DS Records from the Parent
   via CDS/CDNSKEY" and [RFC7477] "Child-to-Parent Synchronization in
   DNS" to accomplish this.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-wisser-dnssec-automation-03"/>
      </reference>
    </references>
    <section anchor="context">
      <name>Efficiency and Convergence Issues in DNS Scanning</name>
      <section anchor="original-notify-for-zone-transfer-nudging">
        <name>Original NOTIFY for Zone Transfer Nudging</name>
        <t><xref target="RFC1996"/> introduced the concept of a DNS Notify message which was used
to improve the convergence time for secondary servers when a DNS zone
had been updated in the primary. The basic idea was to augment the
traditional "pull" mechanism (a periodic SOA query) with a "push"
mechanism (a Notify) for a common case that was otherwise very
inefficient (due to either slow convergence or wasteful overly
frequent scanning of the primary for changes).</t>
        <t>While it is possible to indicate how frequently checks should occur
(via the SOA Refresh parameter), these checks did not allow catching
zone changes that fall between checkpoints. <xref target="RFC1996"/> addressed the
optimization of the time-and-cost trade-off between a seceondary checking
frequently for new versions of a zone, and infrequent checking, by
replacing scheduled scanning with the more efficient NOTIFY mechanism.</t>
      </section>
      <section anchor="similar-issues-for-ds-maintenance-and-beyond">
        <name>Similar Issues for DS Maintenance and Beyond</name>
        <t>Today, we have similar issues with slow updates of DNS data in spite of
the data having been published. The two most obvious cases are CDS and
CSYNC scanners deployed in a growing number of TLD registries. Because of
the large number of child delegations, scanning for CDS and CSYNC records
is rather slow (as in infrequent).</t>
        <t>It is only a very small number of the delegations that will have updated
CDS or CDNSKEY record in between two scanning runs. However, frequent
scanning for CDS and CDNSKEY records is costly, and infrequent scanning
causes slower convergence (i.e., delay until the DS RRset is updated).</t>
        <t>Unlike in the original case, where the primary is able to suggest the
scanning interval via the SOA Refresh parameter, an equivalent mechanism
does not exist for DS-related scanning.</t>
        <t>All of this above also applies to parents that offer automated NS and glue
record maintenance via CSYNC scanning <xref target="RFC7477"/>. Again, given that CSYNC
records change only rarely, frequent scanning of a large number of
delegations seems disproportionately costly, while infrequent scanning
causes slower convergence (delay until the delegation is updated).</t>
        <t>While use of the NOTIFY mechanism for coordinating the key exchange in
multi-signer setups <xref target="I-D.wisser-dnssec-automation"/> is conceivable,
the detailed specification is left for future work.</t>
      </section>
    </section>
    <section anchor="change-history-to-be-removed-before-publication">
      <name>Change History (to be removed before publication)</name>
      <ul spacing="normal">
        <li>
          <t>draft-ietf-dnsop-generalized-notify-01</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Reserve scheme values 128-255</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Rename NOTIFY rrtype to DSYNC (to distinguish from NOTIFY message)</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Describe endpoint discovery</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Discussion on garbage notifications</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>More discussion on amplification risks</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Clean-up, editorial changes</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>draft-ietf-dnsop-generalized-notify-00</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Revision after adoption.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>draft-thomassen-dnsop-generalized-dns-notify-02</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Add rationale for staying in band</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Add John as an author</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>draft-thomassen-dnsop-generalized-dns-notify-01</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Mention Ry-to-Rr forwarding to accommodate RRR model</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Add port number flexiblity</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Add scheme parameter</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Drop SRV-based alternative in favour of new NOTIFY RR</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Editorial improvements</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>draft-thomassen-dnsop-generalized-dns-notify-00</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Initial public draft.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61863IbR5bm/3yKHPqHQS8AiZJl2dyYjaZJqs0eXTikPA7v
xMSogEqAZQFV6Moq0mjZEfMO+3f3HfYd5k3mSfZ855y8FAB63DutjmgTQFVe
zuU718zJZGK6qlu5U/tHV7u2WFV/caW9eHtr3zZdtajmRVc1tTfFbNa6++FT
wyfKZl4XaxqobItFN6lct5iUtW82k2V6Z1Ljne3k6Ykpi44e/nRx9v7yV0OD
uGXTbk+t70pjqk17aru2992zp0+/efrMFK0rTu1V3bm2dp15aNqPy7bpN6dY
6rtr+wN9UdVL+0d8aT66LT1RphcmF1iTMb4r6vJfi1VT09Rb582mOrX/3DXz
sfVN27Vu4emv7Rp//IsxRd/dNe2psRNj6V9V+1P7p6m97VxNI635S9nzn5q7
oh7+0LTLoq7+wtQ5te/vnL19cGXl7+Kq7Kumr0t+gN9w66JandqfMNbU61h/
qPRpT4Tr3Mo7+s0NlnQ9peGbdeHpt2xN145e3PmFFkUMcreX52N76+Z9S6va
0lRrby/rZVU71xIZ89VsMMofSufdfFo1u6R47e7ppSEh6vxbnvAWZJ83NNnr
1+f54MyPoi39H3x4ZDpv1sbUTbsmwty7UxKGepF9mkwmtpj5ri3mxND3d5W3
JHn92tWddT8T0UpvOyJ2751tFiLJ795fvfrRjj59+rubV+cn33zz1a+/2pnb
NnVp5019T68SC4qV+QvJBYldUfsFUe6OKE/iMANFIFsYdUaivKg6j6GLcnLX
zG2da4HtGkxpSrdyS/7K0k6Jg3VRzx2RzaoyTK39nlY4L7zz9PV81ZcObxJn
LImvbZvVqrl3rTe6DCKP/XNfzT/SyuYkIEvHkxU2TfW5t7Tb1hEZS+tdNyX6
NJamnq1oW6DUoq/nsteq29KYdu1IwktLBLYkmnPMGLZK4zgieUsDlJuGFmHw
lO/nd4Mt0xDeF0vaG/bRtU3Zz105tvdVwcPU7iEwQFfWbTcOS3tnv720N5dv
3v3T5QUUJOck/T1zWMmc6FDMmpbwobQ0G1Hwj1V3189s0Z2af77ruo0/ffJk
yd9Bdp6wwHZB6p/8DjT6l9HfZJjjqYGWrxvfMfFoGw8KS2AkaEVSA5qEbY5t
s3G0J+97Ryx23Xxq/V3Tr0pbrFZEAVPck54o/xwph2UgEVzydrQEXRb9arU9
tsV87jad3dAnmv7PNGLnp6Iv66osV86YzwA9zCHGHPO+LcpK5IEVZSjKubqM
7cNdRZwnHLZYCM1AKtISTyCD3hwJi0e3786Oj8b8mAcBFm2zJjHbtNW6aLf0
XQuJYrklQGmg/Nm3Zl3V1ZpIylRaFR2xgISadbQlgpMGddXayfsQrCFdWX+n
IklrByWp/BoSOycRZSqRzpYtfSDdoQVUy5q3C3kjtaY/K5pjS4DD8zdtRXpP
pNm0DZmIZsX6VBa0YFrkqmjztyoaspkToEJCsbQ+aPcY32yKtqvmPV5K+mpy
aBhd3LKOJw3uNzCR/nhq/0SGkKhsdWEZrXmKsVDDkMqDEgPthLJ5+1CRUNwV
9w4qX/xEerxpfAVEDYhmZ1tDMtc8BPWHPBDytgVBLckLLAWRnTRjsyLNWIEI
ZBQ6t8HTZJCGtJiSbWtB7SBexMOO4Jmsq3MkWfrx11+Jpm8ZMiOVI7pBiBKi
0AIFw4LyTFkVIp9pAbSaoqT9faSXFf4L2npJstViyGAPFLG85Q2HoV3G51c9
b5jtCQsYoG/Rt1DCxFk7YjQkxqz7VVdNIFD0O+Db/Sy7ODa0YqK1r0iHaa83
tEKSWd6b+3nj5p2o0MzZRUFCVZGAPBAIqSkYq2kAU0Qdv3z6/Dmpo4mfvoRy
xk8v0qevXn59kj69fP5l9uTLL1++TKO8fPE1xmTxk2++/ubpCfPms8/sDWFJ
1TqQ3MPlKxQ7iGDYKRwtb4+++OLN97fvv/iClF//hpiGzzeX//j91c3lRfh8
+93Z69eDDyZ7+va7d9+/vhh+Go52/u7Nm8u3F2lA+tUc+PrN2Y/8J3ZGH99d
v7969/YMM4su5SanEAmfQZQJdzatA2+IuSTm87aa0Qd659vza3vypZLp2cnJ
N+RKKM1OXhKFCSddLRM29Wpr5CPJDWHPZuMYNBjc58Wm6ooVLLsH6D/UDKxC
8/euJShsVs1ya8yVaD30hVZHEiu2QBb80JDhXhAWYws9hFJtDG1hHWD5aGrf
1YrZ7DUkFAnKMB7gtToiItCGZB/O3QC9hyBTEDp3diQOwszD+pC/QPoE5CXh
JQz7QeeX6RmhxW+g7Sug3dwArY5BwpZNgJFviGQlpnLi2fFXtMvhBuzonBCU
FnB+++Pb8+OpSKgYGbgTMEINaSKxEfB8kXAW441F6zC875dLAFtp1rVbN3U1
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
a9zy1+6ZeXalXcXaysEjTM3/AxdVyyo7XwAA

-->

</rfc>
