<?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-thomassen-dnsop-generalized-dns-notify-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title abbrev="Generalized Notifications">Generalized DNS Notifications</title>
    <seriesInfo name="Internet-Draft" value="draft-thomassen-dnsop-generalized-dns-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>
    <date/>
    <area>Internet</area>
    <workgroup>DNSOP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>Changes in CDS/CDNSKEY, CSYNC, and other records related to delegation
maintenance are usually detected through scheduled scans run by the
consuming party (e.g. top-level domain registry), incurring an
uncomfortable trade-off between scanning cost and update latency.</t>
      <t>A similar problem exists when scheduling zone transfers, and has been
solved using the well-known DNS NOTIFY mechanism (<xref target="RFC1996"/>).
This mechanism enables a primary nameserver to proactively inform
secondaries about zone changes, allowing the secondary to initiate an
ad-hoc transfer independently of when the next SOA check would be due.</t>
      <t>This document extends the use of DNS NOTIFY 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 via NOTIFY(CDS) and NOTIFY(DNSKEY) messages, and
quicker changes to a delegation's NS record set via NOTIFY(CSYNC)
messages.</t>
      <t>Furthermore, this document proposes a new DNS record type, tentatively
referred to as "NOTIFY record", which is used to publish details about
where generalized notifications should be sent.</t>
      <t>TO BE REMOVED: This document is being collaborated on in Github at:
<eref target="https://github.com/peterthomassen/draft-thomassen-dnsop-generalized-dns-notify">https://github.com/peterthomassen/draft-thomassen-dnsop-generalized-dns-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>This document introduces a generalization of the DNS NOTIFY mechanism
described in <xref target="RFC1996"/>.</t>
      <t>Traditional DNS notifications, 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 there are several new cases where similar inefficiencies cause
significant problems. However, 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.</t>
      <t>There are no DNS protocol changes introduced by this document.</t>
      <t>There are, however, proposals for how to interpret a wider range of
DNS messages that are already allowed (but not used) by the protocol.</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, CSYNC or DNSKEY
respectively).</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="costs-and-dangers-of-slow-convergence">
      <name>Costs and Dangers of Slow Convergence</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>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 the
scalability issues of modern CDS and CSYNC scanners that are beginning
to be 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>Another use case is for so-called "multi-signer" setups where there
are multiple, semi-independent, "signers" that each sign the same
zone, but with individual sets of keys. One requirement for
multi-signer setups to work is the ability to insert additional
DNSKEY records in each signer's version of the zone. (This is not the
only multi-signer requirement, but it is the one that matters
here.) The problem here is that modern signers will commonly roll
DNSSEC Zone Signing Keys automatically and without informing anyone,
assuming a single-signer setup where ZSK rollovers are a local matter
(as opposed to KSK rollovers that involve the parent).
As a result, when the ZSKs of one signer are rolled, the other signers
will be unaware of this event. However, to enable validation of
signatures using a new ZSK, it needs to be announced by all
nameservers that are authoritative for the child. To achieve this, it
is therefore necessary to bring the signers' DNSKEY RRsets back in
sync. Such re-synchronization can either happen based on a schedule,
or on demand, given a suitable trigger.</t>
    </section>
    <section anchor="efficiency-issues-with-dns-scanning-vs-notification">
      <name>Efficiency Issues with DNS Scanning vs. Notification</name>
      <t>The original problem that <xref target="RFC1996"/> addressed was the problem of
optimization between frequent checking for new versions of a zone by a
secondary and infrequent checking.
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.
NOTIFY replaces scheduled scanning with a more efficient mechanism.</t>
      <t>In modern DNS infrastructure there are several new scanning-based
inefficiencies that did not exist at the time of the writing of
<xref target="RFC1996"/>.</t>
      <section anchor="cds-and-cdnskey-scanners">
        <name>CDS and CDNSKEY Scanners</name>
        <t>An increasing number of TLD registries are implementing periodic
scanning for CDS and CDNSKEY records in child zones. Because of the
large number of delegations this is rather costly, especially as it is
only a very small number of the signed delegations that will have
updated the CDS or CDNSKEY record between two scanning runs.</t>
        <t>Frequent scanning is costly. Infrequent scanning causes slower
convergence (i.e. delay until the DS in the parent is updated).</t>
        <t>Not every zone runs a CDS or CSYNC scanner (today). However, for those
that do, the problem is actually worse than in the traditional primary
to secondary case. The reason is that in the original case the primary
is able to indicate how frequently changes are to be expected (via the
SOA Refresh parameter). No equivalent mechanism exist for the new
scanning services.</t>
      </section>
      <section anchor="csync-scanners">
        <name>CSYNC Scanners</name>
        <t>This is basically the same problem as for the CDS / CDNSKEY scanners:
large number of delegations vs infrequent updates to the CSYNC record
in the child zones.</t>
        <t>Frequent scanning is costly. Infrequent scanning causes slower convergence
(i.e. delay until the delegation information in the parent is updated).</t>
      </section>
      <section anchor="multi-signer-setups">
        <name>Multi-Signer Setups</name>
        <t><xref target="I-D.wisser-dnssec-automation"/> describes processes for managing signed
zones using multiple semi-independent "signers" (i.e. services that
take an unsigned zone, sign it using unique DNSKEYs and publish the
zone on the public Internet). The setup most commonly discussed for
multi-signer uses a "multi-signer controller" which is a separate
service responsible for keeping the signing and delegation information
in sync across multiple signers.</t>
        <t>To keep information in sync, the signers need to be scanned for
current information about the DNSKEY RRset in each signer. The problem
is that modern "signers" will typically do DNSKEY rollovers
(especially ZSK rollovers) automatically without informing anyone
else, because a single-signer setup is often assumed (in which case the
ZSK rollover is a matter completely internal to the signer).</t>
        <t>In the multi-signer case, this is not a correct assumption. It is
therefore necessary to run polls frequently to minimize
the time window between one signer changing its version of the DNSKEY
RRset and the controller noticing and re-synchronizing all signers.</t>
        <t>Frequent scanning: costly. Infrequent scanning: slower convergence
(i.e. longer potential inconsistency across signers).</t>
      </section>
    </section>
    <section anchor="cdscdnskey-and-csync-notifications">
      <name>CDS/CDNSKEY and CSYNC Notifications</name>
      <t>The <xref target="RFC1996"/> NOTIFY message sends a SOA record in the Query
Section. We refer to this as a NOTIFY(SOA).
By generalizing the concept of DNS NOTIFY it is possible to address
not only the original inefficiency (primary name server to secondary
nameserver convergence) but also the problems with CDS/CDNSKEY, CSYNC
and Multi-Signer scanning for zone updates.</t>
      <t>The CDS/CDNSKEY inefficiency may be addressed by the child sending a
NOTIFY(CDS) to an address where the parent listens for such notifications.</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 scans.
For such parents, the receiving service should notify the appropriate
registrar, over any communication channel deemed suitable between
registry and registrar (such as EPP, or possibly by forwarding the
actual NOTIFY(CDS) or NOTIFY(CSYNC) directly).
Such internal processing is inconsequential from the perspective of
the child: the NOTIFY packet is simply sent to the notification address.</t>
      <t>To address the CDS/CDNSKEY dichotomy, NOTIFY(CDS) is defined to indicate
any child-side changes pertaining to a upcoming update of DS records.
Upon receipt of NOTIFY(CDS), the parent SHOULD initiate the same scan
that would otherwise be triggered based on a timer.</t>
      <t>The CSYNC inefficiency may similarly be addressed by the child sending a
NOTIFY(CSYNC) to an address where the parent is listening to CSYNC
notifications.</t>
      <t>In both cases the notification will speed up the CDS and CSYNC
scanning by providing the parent with a hint that a particular child
zone has published new CDS, CDNSKEY and/or CSYNC records.</t>
      <t>The DNS protocol already allows these new notification types, so no
protocol change is required. The only thing needed is specification of
where to send the new types of Notifies and how to interpret them in
the receiving end.</t>
      <section anchor="where-to-send-cds-and-csync-notifications">
        <name>Where to send CDS and CSYNC Notifications</name>
        <t>In the case of NOTIFY(CDS) and NOTIFY(CSYNC) the ultimate recipient of
the notification is the parent, to improve the speed and efficiency of
the parent's CDS/CSYNC scanning. Because the name of the parent zone
is known, and because the parent obviously controls the contents of
its own zone the simplest solution is for the parent to publish the
address where it prefers to have notifications sent.</t>
        <t>However, there may exist cases where this scheme (sending the
notification to the parent) is not sufficient and a more general
design is needed. At the same time, it is strongly desireable that the
child is able to figure out where to send the NOTIFY via a single
query.</t>
        <t>By adding the following to the zone <tt>parent.</tt>:</t>
        <artwork><![CDATA[
parent.   IN NOTIFY CDS   scheme port scanner.parent.
parent.   IN NOTIFY CSYNC scheme port scanner.parent.
]]></artwork>
        <t>where the only scheme defined here 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>Example:</t>
        <artwork><![CDATA[
parent.   IN NOTIFY CDS   1 5359 cds-scanner.parent.
parent.   IN NOTIFY CSYNC 1 5360 csync-scanner.parent.
]]></artwork>
        <t>Other schemes are possible, but are out of scope for this document.</t>
        <t>The suggested mnemonic for the new record type is "NOTIIFY" and it is
further described below.</t>
      </section>
      <section anchor="how-to-interpret-cds-and-csync-notifications">
        <name>How to Interpret CDS and CSYNC Notifications</name>
        <t>Upon receipt of a NOTIFY(CDS) for a particular child zone at the
published address for CDS notifications, the parent 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>Ignore the notification, in which case the system works exactly
as before.</li>
        </ol>
        <t>If the parent implements the first option, the convergence time (time
between publication of a new CDS 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 parent has exactly the same options to choose among
as for the NOTIFY(CDS).</t>
      </section>
    </section>
    <section anchor="dnskey-notifications">
      <name>DNSKEY Notifications</name>
      <t>In the multi-signer case the problem is slightly different, because it
is not the parent that should be notified, but rather a third party.</t>
      <section anchor="where-to-send-dnskey-notifications">
        <name>Where to send DNSKEY Notifications</name>
        <t>The question is how the multi-signer controller should inform the
signer about where to send the notification. In the NOTIFY(CDS) and
NOTIFY(CSYNC) cases the child (the service that signs the child zone)
knows the name of the parent zone and can look up the notification
address there. In the NOTIFY(DNSKEY) case, there is no trivial target.</t>
        <t>However, it is possible to look up the notification address in the
child zone itself. This translates into a requirement for multi-signer
setups, namely that at least one external party (typically a
multi-signer controller) has the ability to insert or modify RRsets in
the child zone. Therefore the controller should be able to insert a
record that documents the wanted notification address for
NOTIFY(DNSKEY) messages.</t>
        <t>Also in the NOTIFY(DNSKEY) case there is the possibility that this
scheme will not be sufficient for all cases. And therefore the
proposed design (in analogy with the NOTIFY(CDS) and NOTIFY(CSYNC)
cases) is:</t>
        <artwork><![CDATA[
child.parent. IN NOTIFY DNSKEY scheme port scanner.signerA.
child.parent. IN NOTIFY DNSKEY scheme port scanner.signerB.
]]></artwork>
        <t>with the only defined scheme at this time being scheme=1 with the
interpretation that whenever there are changes to the DNSKEY RRset in
a signer it should send a corresponding NOTIFY(DNSKEY) to all
notification addresses listed in the "child.parent. NOTIFY" RRset.</t>
        <t>Example:</t>
        <artwork><![CDATA[
child.parent. IN NOTIFY DNSKEY 1 5361 scanner.signerA.
child.parent. IN NOTIFY DNSKEY 1 5361 scanner.signerB.
child.parent. IN NOTIFY DNSKEY 1 5361 ctrl.multi-signer.example.
]]></artwork>
        <t>Other schemes are possible, but are out of scope for this document.</t>
      </section>
      <section anchor="how-to-interpret-dnskey-notifications">
        <name>How to Interpret DNSKEY Notifications</name>
        <t>The receipt of a NOTIFY(DNSKEY) is a hint that the DNSKEY RRset at the
sending signer has been updated. If the child zone is not part of a
multi-signer setup this should be a no-op that does not cause any
action. In a multi-signer setup, though, this hint provides the
recipient of the notification with the same options as in the
NOTIFY(CDS) and NOTIFY(CSYNC) cases: schedule an immediate check,
or ignore.</t>
      </section>
    </section>
    <section anchor="who-should-send-the-notifications">
      <name>Who Should Send the Notifications?</name>
      <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.</t>
      <t>This opens up the possibility of having the controller in a
multi-signer setup send the CDS and CSYNC notifications to the parent,
thereby enabling this new functionality even before the emergence of
support for generalized DNS notifications in the name servers used for
signing.</t>
      <t>However, as multi-signer is strongly dependent on DNSKEY notifications
(which, in case of an automatic ZSK rollover, can only be generated by
the signing software), this does not alleviate the need for
modifications also to signing software to support NOTIFY(DNSKEY).</t>
    </section>
    <section anchor="timing-considerations">
      <name>Timing Considerations</name>
      <t>When a primary name server publishes a new CDS RRset there will be a
time delay until all copies of the zone world-wide will have been
updated. Usually this delay is short (on the order of seconds), but it
is larger than zero. If the primary sends a NOTIFY(CDS) at the exact
time of publication of the new zone there is a potential for the
parent to schedule the CDS check that the notification triggers faster
than the zone propagates to all secondaries. 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.
It is therefore RECOMMENDED that the child delays sending NOTIFY
packets to the parent until a consistent public view of the pertinent
records is ensured.</t>
      <t>NOTIFY(CSYNC) has the same timing consideration as NOTIFY(CDS) while
NOTIFY(DNSKEY) does not.</t>
    </section>
    <section anchor="the-format-of-the-notify-record">
      <name>The Format of the NOTIFY Record</name>
      <t>Here is the format of the NOTIFY RR, whose DNS type code is not yet
defined.</t>
      <artwork><![CDATA[
    Name TTL Class NOTIFY RRtype Scheme Port Target
]]></artwork>
      <t>Name
        The zone this RR refers to. In the case of NOTIFY(CDS) and
        NOTIFY(CSYNC) this is the name of the parent zone. In the case
        of NOTIFY(DNSKEY) this is the name of the zone in which a
        change in the DNSKEY RRset is taking place.</t>
      <t>TTL
        Standard DNS meaning [RFC 1035].</t>
      <t>Class
        Standard DNS meaning [RFC 1035]. NOTIFY records occur in the IN
        Class.</t>
      <t>RRtype
        The type of generalised NOTIFY that this NOTIFY RR defines
        the desired target address for. Currently only the types CDS,
        CSYNC and DNSKEY are suggested to be supported, but there is
        no protocol issue should a use case for additional types of
        notifications arise in the future.</t>
      <t>Scheme
        The scheme for locating the desired notification address.
        The range is 0-255. This is a 16 bit unsigned integer in
        network byte order. The value 0 is an error. The value 1 is
        described in this document and all other values are currently
        unspecified.</t>
      <t>Port
        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>
      <t>Target
        The domain name of the target host providing the service of
        listening for generalised notifications of the specified type.
        This name MUST resolve to one or more address records.</t>
    </section>
    <section anchor="open-questions">
      <name>Open Questions</name>
      <section anchor="rationale-for-a-new-record-type-notify">
        <name>Rationale for a new record type, "NOTIFY"</name>
        <t>It is technically possible to store the same information in an SRV
record as in the proposed NOTIFY record. This would, however, require
name space pollution (indicating the RRtype via a label in the owner
name) and also changing the semantics of one of the integer fields of
the SRV record.</t>
        <t>Overloading semantics on a single record type has not been a good idea
in the past. Furthermore, as the generalised notifications are a new
proposal with no prior deployment on the public Internet there is an
opportunity to avoid repeating previous mistakes.</t>
        <t>In the case of the "vertical" NOTIFY(CDS) and NOTIFY(CSYNC), no
special processing needs to be applied by the authoritative nameserver
upon insertion of the record indicating the notification target.
The nameserver can be "unaware"; a conventional SRV record would
therefore suffice from a processing point of view.
In the case of the more "horizontal" NOTIFY(DNSKEY), however, the
nameserver will have to act on the insertion of a <tt>zone. NOTIFY
DNSKEY ...</tt> record.</t>
        <t>A new record type would therefore make it possible to more easily
associate the special processing with the record's insertion. The
NOTIFY record type would provide a cleaner solution to all the new
types of notification signaling. Eg.:</t>
        <artwork><![CDATA[
parent.         IN NOTIFY  CDS     1  59   scanner.parent.
parent.         IN NOTIFY  CSYNC   1  59   scanner.parent.
child.parent.   IN NOTIFY  DNSKEY  1  5900 ctrl.multi-signer.example.
]]></artwork>
      </section>
      <section anchor="open-question-for-dnskey-notifications">
        <name>Open Question For DNSKEY Notifications</name>
        <t>In a multi-signer setup there are multiple signers. How will the
multi-signer controller know which signer sent the notification? As
the number of signers for a particular zone is low (typically 2 or
possibly 3), there is no major problem caused by not knowing which
signer sent the notification and instead always check all the signers
for updates to the DNSKEY RRset.</t>
      </section>
    </section>
    <section anchor="out-of-scope">
      <name>Out of Scope</name>
      <t>To accommodate ICANN's RRR model, the parent's designated notification
target may forward NOTIFY(CDS) messages to the registrar, e.g. via EPP
or by forwarding the NOTIFY(CDS) message directly. The same is true
also for NOTIFY(CSYNC).</t>
      <t>From the perspective of this protocol, the NOTIFY(CDS) packet is simply
sent to the parent's listener 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>
      <t>In the multi-signer case, where the same zone is signed by multiple
semi-independent "signers" it is obviously necessary to devise means
of keeping the non-DNSSEC contents of the zone in sync. That is out of
scope of the multi-signer work and also out of scope of this document.</t>
      <t>A corner case of this scoping regards making changes to the NS
RRset. Individual signers (as in DNS service providers) may want to be
able to make such changes independently of the other contents of the
zone.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The original NOTIFY specification (<xref target="RFC1996"/>) sidesteps most security
issues by not relying on the information in the NOTIFY message in any
way but instead only use it to set the timer until the next scheduled
check (for the SOA record) to zero. Therefore it is impossible to
affect the behaviour of the recipient of the NOTIFY other than by
changing the timing for when different checks are initiated.</t>
      <t>This mechanism and security model is reused for all the generalized
NOTIFY messages.</t>
      <t>Another consideration is whether generalized DNS
Notifications can be used as an amplification attack. The answer seems
to be "NO", because the size of the generalized NOTIFY messages is
mostly equal to the size of the response and it is also mostly equal
to the size of the resulting outbound query (for the child zone's CDS,
CSYNC or DNSKEY RRset).</t>
      <t>Hence the amplification attack potential of generalized Notifications
is the same as for the original NOTIFY(SOA), which has never been
found to be useful for amplification attacks.</t>
      <t>In any case, NOTIFY consumers MAY configure rate limits to address
concerns about the impact of unsolicited NOTIFY messages.</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: Generalized DNS Notifications</t>
      <t>Assignment Policy: Expert Review</t>
      <t>Reference: [this document]</t>
      <table>
        <thead>
          <tr>
            <th align="left">NOTIFY type</th>
            <th align="left">Scheme</th>
            <th align="left">Location</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">CDS</td>
            <td align="left">1</td>
            <td align="left">parent.</td>
            <td align="left">[this document]</td>
          </tr>
          <tr>
            <td align="left">CSYNC</td>
            <td align="left">1</td>
            <td align="left">parent.</td>
            <td align="left">[this document]</td>
          </tr>
          <tr>
            <td align="left">DNSKEY</td>
            <td align="left">1</td>
            <td align="left">zone.</td>
            <td align="left">[this document]</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Joe Abley, Mark Andrews, Christian Elmerot, Olafur Gu[eth]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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="R. Austein" initials="R." surname="Austein">
            <organization/>
          </author>
          <author fullname="M. Larson" initials="M." surname="Larson">
            <organization/>
          </author>
          <author fullname="D. Massey" initials="D." surname="Massey">
            <organization/>
          </author>
          <author fullname="S. Rose" initials="S." surname="Rose">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="R. Austein" initials="R." surname="Austein">
            <organization/>
          </author>
          <author fullname="M. Larson" initials="M." surname="Larson">
            <organization/>
          </author>
          <author fullname="D. Massey" initials="D." surname="Massey">
            <organization/>
          </author>
          <author fullname="S. Rose" initials="S." surname="Rose">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="R. Austein" initials="R." surname="Austein">
            <organization/>
          </author>
          <author fullname="M. Larson" initials="M." surname="Larson">
            <organization/>
          </author>
          <author fullname="D. Massey" initials="D." surname="Massey">
            <organization/>
          </author>
          <author fullname="S. Rose" initials="S." surname="Rose">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="W. Mekking" initials="W." surname="Mekking">
            <organization/>
          </author>
          <author fullname="R. Gieben" initials="R." surname="Gieben">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="O. Gudmundsson" initials="O." surname="Gudmundsson">
            <organization/>
          </author>
          <author fullname="G. Barwood" initials="G." surname="Barwood">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="J. Ihren" initials="J." surname="Ihren">
            <organization/>
          </author>
          <author fullname="J. Dickinson" initials="J." surname="Dickinson">
            <organization/>
          </author>
          <author fullname="W. Mekking" initials="W." surname="Mekking">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="P. Aras" initials="P." surname="Aras">
            <organization/>
          </author>
          <author fullname="J. Dickinson" initials="J." surname="Dickinson">
            <organization/>
          </author>
          <author fullname="J. Vcelak" initials="J." surname="Vcelak">
            <organization/>
          </author>
          <author fullname="D. Blacka" initials="D." surname="Blacka">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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="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>
      <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">
            <organization/>
          </author>
          <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>
    </references>
    <section anchor="change-history-to-be-removed-before-publication">
      <name>Change History (to be removed before publication)</name>
      <ul spacing="normal">
        <li>draft-thomassen-dnsop-generalized-dns-notify-01</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>draft-thomassen-dnsop-generalized-dns-notify-00</li>
      </ul>
      <ul empty="true">
        <li>
          <t>Initial public draft.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
oVg48kv3/BAHuyIvV/vsE40wU/8HJsaDJdpiAAA=

-->

</rfc>
