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


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

<!ENTITY RFC1034 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml">
<!ENTITY RFC1035 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
<!ENTITY RFC2181 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2181.xml">
<!ENTITY RFC8109 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8109.xml">
<!ENTITY I-D.vixie-dnsext-resimprove SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.vixie-dnsext-resimprove.xml">
<!ENTITY I-D.wijngaards-dnsext-resolver-side-mitigation SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.wijngaards-dnsext-resolver-side-mitigation.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-dnsop-ns-revalidation-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="DNS Delegation Revalidation">Delegation Revalidation by DNS Resolvers</title>

    <author initials="S." surname="Huque" fullname="Shumon Huque">
      <organization>Salesforce</organization>
      <address>
        <email>shuque@gmail.com</email>
      </address>
    </author>
    <author initials="P." surname="Vixie" fullname="Paul Vixie">
      <organization>SIE Europe, U.G.</organization>
      <address>
        <email>paul@redbarn.org</email>
      </address>
    </author>
    <author initials="W." surname="Toorop" fullname="Willem Toorop">
      <organization>NLnet Labs</organization>
      <address>
        <postal>
          <street>Science Park 400</street>
          <city>Amsterdam</city>
          <code>1098 XH</code>
          <country>Netherlands</country>
        </postal>
        <email>willem@nlnetlabs.nl</email>
      </address>
    </author>

    <date year="2024" month="March" day="04"/>

    <area>Operations and Management Area</area>
    <workgroup>Domain Name System Operations</workgroup>
    <keyword>Internet-Draft</keyword> <keyword>DNS</keyword> <keyword>Resolver</keyword> <keyword>Delegation</keyword> <keyword>Revalidation</keyword> <keyword>Authoritative</keyword> <keyword>Name Server Record</keyword> <keyword>NS</keyword> <keyword>Parent</keyword> <keyword>Child</keyword> <keyword>Resource Record Set</keyword>

    <abstract>


<?line 113?>

<t>This document recommends improved DNS <xref target="RFC1034"/> <xref target="RFC1035"/> resolver behavior with respect to the processing of Name Server (NS) resource record sets (RRset) during iterative resolution.
When following a referral response from an authoritative server to a child zone, DNS resolvers should explicitly query the authoritative NS RRset at the apex of the child zone and cache this in preference to the NS RRset on the parent side of the zone cut.
The (A and AAAA) address RRsets in the additional section from referral responses and authoritative NS answers for the names of the NS RRset, should similarly be requeried and used to replace the entries with the lower trustworthiness ranking in cache.
Resolvers should also periodically revalidate the child delegation by re-quering the parent zone at the expiration of the TTL of the parent side NS RRset.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-dnsop-ns-revalidation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        DNSOP Working Group mailing list (<eref target="mailto:dnsop@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dnsop/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dnsop/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/shuque/ns-revalidation"/>.</t>
    </note>


  </front>

  <middle>


<?line 120?>

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

<t>This document recommends improved DNS resolver behavior with respect to the processing of NS record sets during iterative resolution.
The first recommendation is that resolvers, when following a referral response from an authoritative server to a child zone, should explicitly query the authoritative NS RRset at the apex of the child zone and cache this in preference to the NS RRset on the parent side of the zone cut.
The address records in the additional section from the referral respons (as glue) or authoritative NS respons that match the names of the NS RRset should similarly be required if they are cached non-authoritatively.
The authoritative answers from those queries should replace the cached non-authoritative A and AAAA RRsets.
The second recommendation is to revalidate the delegation by re-quering the parent zone at the expiration of the TTL of the parent side NS RRset.</t>

</section>
<section anchor="motivation"><name>Motivation</name>

<t>There is wide variability in the behavior of deployed DNS resolvers today with respect to how they process delegation records.
Some of them prefer the parent NS set, some prefer the child, and for others, what they preferentially cache depends on the dynamic state of queries and responses they have processed.
This document aims to bring more commonality and predictability by standardizing the behavior in a way that comports with the DNS protocol.</t>

<t>The delegation NS RRset at the bottom of the parent zone and the apex NS RRset in the child zone are unsynchronized in the DNS protocol.
<xref target="RFC1034"/> Section 4.2.2 says "The administrators of both zones should insure that the NS and glue RRs which mark both sides of the cut are consistent and remain so.".
But for a variety of reasons they could not be.
Officially, a child zone's apex NS RRset is authoritative and thus has a higher cache credibility than the parent's delegation NS RRset, which is non-authoritative glue <xref target="RFC2181"/>, Section 5.4.1. "Ranking data", and Section 6.1. "Zone authority").
Hence the NS RRset "below the zone cut" should immediately replace the parent's delegating NS RRset in cache when an iterative caching DNS resolver crosses a zone boundary.
However, this can only happen if (1) the resolver receives the authoritative NS RRset in the Authority section of a response from the child zone, which is not mandatory, or (2) if the resolver explicitly issues an NS RRset query to the child zone as part of its iterative resolution algorithm.
In the absence of this, it is possible for an iterative caching resolver to never learn the authoritative NS RRset for a zone, unless a downstream client of the resolver explicitly issues such an NS query, which is not something that normal enduser applications do, and thus cannot be relied upon to occur with any regularity.</t>

<t>Increasingly, there is a trend towards minimizing unnecessary data in DNS responses.
Several popular DNS implementations default to such a configuration (see "minimal-responses" in BIND and NSD).
So, they may never include the authoritative NS RRset in the Authority section of their responses.</t>

<t>A common reason that zone owners want to ensure that resolvers place the authoritative NS RRset preferentially in their cache is that the TTLs may differ between the parent and child side of the zone cut.
Some DNS Top Level Domains (TLDs) only support long fixed TTLs in their delegation NS sets.
This inhibits a child zone owner's ability to make more rapid changes to their nameserver configuration using a shorter TTL, if resolvers have no systematic mechanism to observe and cache the child NS RRset.</t>

<t>A child zone's delegation still needs to be periodically revalidated at the parent to make sure that the parent zone has not legitimately re-delegated the zone to a different set of nameservers, or even removed the delegation.
Otherwise, resolvers that refresh the TTL of a child NS RRset on subsequent queries or due to pre-fetching, may cling to those nameservers long after they have been re-delegated elsewhere.
This leads to the second recommendation in this document, "Delegation Revalidation" - Resolvers should record the TTL of the parent's delegating NS RRset, and use it to trigger a revalidation action.
Attacks exploiting lack of this revalidation have been described in <xref target="GHOST1"/>, <xref target="GHOST2"/>.</t>

</section>
<section anchor="upgrade-ns"><name>Upgrading NS RRset Credibility</name>

<t><list style="symbols">
  <t>When a referral response is received during iteration, a validation query should be sent in parallel with the resolution of the triggering query, to the delegated nameservers for the newly discovered zone cut.
Note that validating resolvers today, when following a secure referral, already need to dispatch a query to the delegated nameservers for the DNSKEY RRset, so this validation query could be sent in parallel with that DNSKEY query.</t>
  <t>A validation query consists of a query for the child's apex NS RRset, sent to the newly discovered delegation's nameservers.
Normal iterative logic applies to the processing of responses to validation queries, including storing the results in cache, trying the next server on SERVFAIL or timeout, and so on.
Positive responses to this validation query will be cached with an authoritative data ranking.
Successive queries directed to the same zone will be directed to the nameservers listed in the child's apex, due to the ranking of this answer.
If the validation query fails, the parent NS RRset will remain the one with the highest ranking and will be used for successive queries.</t>
  <t>Additional validation queries for the "glue" resource records of referral responses (if not already authoritatively present in cache) may be sent with the validation query for the NS RRset as well.
Positive responses will be cached authoritatively and replace the non authoritative "glue" entries.
Successive queries directed to the same zone will ne directed to the authoritative values for the names of the NS RRset in the referral response.</t>
  <t>The names from the NS RRset from a validating NS query may differ from the names in NS RRset in the referral response.
Outstanding validation queries for "glue" that do not match names in the authoritative NS RRset be discarded, or they may be left running to completion.
Their result will no longer be used in queries for the zone.
Outstanding validation queries for "glue" that do match names in the authoritative NS RRset must be left running to completion.
They do not need to be requeried after reception of the authoritative NS RRset (see <xref target="upgrade-addresses"></xref>)</t>
  <t>Resolvers may choose to delay the response to the triggering query until both the triggering query and the validation query have been answered.
In practice, we expect many implementations may answer the triggering query in advance of the validation query for performance reasons.
An additional reason is that there are unfortunately a number of nameservers in the field that (incorrectly) fail to properly answer explicit queries for zone apex NS records, and thus the revalidation logic may need to be applied lazily and opportunistically to deal with them.
In cases where the delegated nameservers respond incorrectly to an NS query, the resolver should abandon this algorithm for the zone in question and fall back to using only the information from the parent's referral response.</t>
  <t>If the resolver chooses to delay the response, and there are no nameserver names in common between the child's apex NS RRset and the parent's delegation NS RRset, then the responses received from forwarding the triggering query to the parent's delegated nameservers should be discarded after validation, and this query should be forwarded again to the child's apex nameservers.</t>
</list></t>

</section>
<section anchor="upgrade-addresses"><name>Upgrading A and AAAA RRset Credibility</name>
<t>Authoritative responses for a zone's NS RRset at the apex can contain additional addresses.
A NS RRset validation response is such an example of such responses.
A priming response is another example of an authoritative zone's NS RRset response <xref target="RFC8109"/>.</t>

<t>Additional addresses in authoritative NS RRset responses SHOULD be validated if they are not already authoritatively in cache.
Only when such additional addresses are DNSSEC verifyable, (because the complete RRset is included, including a verifyable signature for the RRset), such additional addresses can be cached authoritively immediatly without additional validation queries.
DNSSEC validation is enough validation in those cases.
Otherwise, the addresses cannot be assumed to be complete or even authoritatively present in the same zone, and additional validation queries SHOULD be made for these addresses.</t>

<t>Note that there may be outstanding address validation queries for the names of the authoritative NS RRset (from referral address validation queries).
In those cases no new validation queries need to be made.</t>

<t>Resolvers may choose to delay the response to a triggering query until it can be verified that the answer came from a name server listening on an authoritatively acquired address for an authoritatively acquired name.
This would offer the most trustworthy responses with the least risk for forgery or eavesdropping.</t>

</section>
<section anchor="revalidation"><name>Delegation Revalidation</name>

<t>The essence of this mechanism is re-validation of all delegation metadata that directly or indirectly supports an owner name in cache.
This requires a cache to remember the delegated name server names for each zone cut as received from the parent (delegating) zone's name servers, and also the TTL of that NS RRset, and the TTL of the associated DS RRset (if seen).</t>

<t>A delegation under re-validation is called a "re-validation point" and is "still valid" if its parent zone's servers still respond to an in-zone question with a referral to the re-validation point, and if that referral overlaps with the previously cached referral by at least one name server name, and the DS RRset (if seen) overlaps the previously cached DS RRset (if also seen) by at least one delegated signer.</t>

<t>If the response is not a referral or refers to a different zone than before, then the shape of the delegation hierarchy has changed.
If the response is a referral to the re-validation point but to a wholly novel NS RRset or a wholly novel DS RRset, then the authority for that zone has changed.
For clarity, this includes transitions between empty and non-empty DS RRsets.</t>

<t>If the shape of the delegation hierarchy or the authority for a zone has been found to change, then no currently cached data whose owner names are at or below that re-validation point can be used.
Such non-use can be by directed garbage collection or lazy generational garbage collection or some other method befitting the architecture of the cache.
What matters is that the cache behave as though this data was removed.</t>

<t>Since re-validation can discover changes in the shape of the delegation hierarchy it is more efficient to re-validate from the top (root) downward (to the owner name) since an upper level re-validation may obviate lower level re-validations.
What matters is that the supporting chain of delegations from the root to the owner name be demonstrably valid; further specifics are implementation details.</t>

<t>Re-validation is triggered when delegation meta-data has been cached for a period at most exceeding the delegating NS or DS (if seen) RRset TTL.
If the corresponding child zone's apex NS RRset TTL is smaller than the delegating NS RRset TTL, revalidation should happen at that interval instead.
However, resolvers should impose a sensitive minimum TTL floor they are willing to endure to avoid potential computational DoS attacks inflicted by zones with very short TTLs.</t>

<t>In normal operations this meta-data can be quickly re-validated with no further work.
However, when re-delegation or take-down occurs, a re-validating cache will discover this within one delegation TTL period, allowing the rapid expulsion of old data from the cache.</t>

</section>
<section anchor="IANA"><name>IANA Considerations</name>

<t>This document includes no request to IANA.</t>

</section>
<section anchor="Security"><name>Security Considerations</name>

<t><xref target="upgrade-ns">Upgrading NS RRset Credibility</xref> allows resolvers to cache and utilize the authoritative child apex NS RRset in preference to the non-authoriative parent NS RRset.
However, it is important to implement the steps described in <xref target="revalidation">Delegation Revalidation</xref> at the expiration of the parent's delegating TTL.
Otherwise, the operator of a malicious child zone, originally delegated to, but subsequently delegated away from, can cause resolvers that refresh TTLs on subsequent NS set queries, or that pre-fetch NS queries, to never learn of the redelegated zone.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">

&RFC1034;
&RFC1035;
&RFC2181;
&RFC8109;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

&I-D.vixie-dnsext-resimprove;
&I-D.wijngaards-dnsext-resolver-side-mitigation;
<reference anchor="GHOST1" target="https://www.ndss-symposium.org/ndss2012/">
  <front>
    <title>Ghost Domain Names: Revoked Yet Still Resolvable</title>
    <author initials="J." surname="Jiang" fullname="J Jiang">
      <organization></organization>
    </author>
    <author initials="J." surname="Liang" fullname="J Liang">
      <organization></organization>
    </author>
    <author initials="K." surname="Li" fullname="K Li">
      <organization></organization>
    </author>
    <author initials="J." surname="Li" fullname="J Li">
      <organization></organization>
    </author>
    <author initials="H." surname="Duan" fullname="H Duan">
      <organization></organization>
    </author>
    <author initials="J." surname="Wu" fullname="J Wu">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="GHOST2" target="https://www.ndss-symposium.org/ndss-paper/ghost-domain-reloaded-vulnerable-links-in-domain-name-delegation-and-revocation/">
  <front>
    <title>Ghost Domain Reloaded: Vulnerable Links in Domain Name Delegation and Revocation</title>
    <author initials="X." surname="Li" fullname="Xiang Li">
      <organization></organization>
    </author>
    <author initials="B." surname="Liu" fullname="Baojun Liu">
      <organization></organization>
    </author>
    <author initials="X." surname="Bai" fullname="Xuesong Bai">
      <organization></organization>
    </author>
    <author initials="M." surname="Zhang" fullname="Mingming Zhang">
      <organization></organization>
    </author>
    <author initials="Q." surname="Zhang" fullname="Qifan Zhang">
      <organization></organization>
    </author>
    <author initials="Z." surname="Li" fullname="Zhou Li">
      <organization></organization>
    </author>
    <author initials="H." surname="Duan" fullname="Haixin Duan">
      <organization></organization>
    </author>
    <author initials="Q." surname="Li" fullname="Qi Li">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>


<?line 245?>

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

<t>Wouter Wijngaards proposed explicitly obtaining authoritative child NS data in <xref target="I-D.wijngaards-dnsext-resolver-side-mitigation"/>.
This behavior has been implemented in the Unbound DNS resolver via the "harden-referral-path" option.
The combination of child NS fetch and revalidating the child delegation was originally proposed in <xref target="I-D.vixie-dnsext-resimprove"/>, by Vixie, Joffe, and Neves.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA9VbbW8bN7b+Pr+CcD/UBiTF8aYXXS8WqFunTdo0aeO06Tbo
B2qGkrieIbVDjhU1yH+/54XkcEYjJ829uMA1EESaF/K8n+ccHs3n88JrX6tL
ca1qtZZeWyNeqjtZ64q/LPfi+vkNXHO2vlOtK+Ry2aq7S7p65KWisqWRDaxa
tXLl51r51bwyzm7nxs3b7Mn5+RcFfIInL84vHs3P/zY/f1QUetteCt92zl+c
n//9/KJw3bLRzsELfr+Fh58+fvVtIVslL8WLrWppKSekqcSP0si1apTx4gru
F7s1UGobqY14DhSJm73zqsneKm53l4UQc/HUeNUa5efXSDNdAhbp/8g8X0w8
h3sZ33jhqvMb22oPV+4UXeGNVQsrwOOlbSu+zIv/BHwY3u+bja6rtGPXlio8
D2/7opT+UjhfFXfKdAqJXre225ImXvwEX4HLGkSOcv4KRb6w7Rqf0n7TLeHV
TfefTj0YaaAotvpSvPG2nAlnW9+qlYNP+wY//FEUktghEcE/IbRxl+JmIZ7g
YnSFNX2z6Rowg/4ybC6N/pM2gduyVm5lgSW6qZhWJumrNX5blLYZ7vLTQvyq
3+p8l59kV2cXR3s8fSwed63dqpn4ZfHdIt9pCy9+1apqKVsT5JLt9HohXlkL
b2ZbvdZ1DZaSXR/u9vwZGIt4JpeObjqQnAIF3ZRaGVAcqPVWPDo/p5ul9vtL
cdWA7bWVbPiarWCXh+d//1L89iRc6Yxv4cHnym9UW4M9u5yHHVH0lalh4xr2
XZi6KIxtGzK1S3r05bffPDz/26P8yxfpy8XDLx+mL1/C1pfga2Y1XOHp/Hpx
hxJGj1VvPViL0822tfkDO/1vs5ayrVz2FPnI3OlKzRvtNTsJv/Pdkxc3r8Le
+Odlu0ZpbbzfussHD3a73QK4dXMwvK11umtQSQ/w0sX5w4sH/YscrU6+21jn
c88GLYIr2ltViX+BXm48CCs4rlzW6iSt0Bt0/Jtnn6P2vxffa2nWgztkKt8v
Du5Mv//s6PvjO1Pv/wBPHb78w2J4+djOR7b9wJtPxHUnzeG7TxbjG9P7vu4m
9w2XyQQuPskE5lsJ8frBGnU+r0jnYG+1lZWq5ncd+EOLOp7X2ty6OdwMzyBh
8yrF6zk4FMY+W9LXDxjVy7DBpfg17QAyhB2As0FOybIgpqCXaYe/anS/oWFM
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

-->

</rfc>

