<?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.17 (Ruby 3.2.6) -->


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

]>


<rfc ipr="trust200902" docName="draft-fujiwara-dnsop-dns-upper-limit-values-02" category="bcp" consensus="true" submissionType="IETF" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="dns-upper-limit-values">Upper limit values for DNS</title>

    <author initials="K." surname="Fujiwara" fullname="Kazunori Fujiwara">
      <organization abbrev="JPRS">Japan Registry Services Co., Ltd.</organization>
      <address>
        <postal>
          <country>Japan</country>
        </postal>
        <email>fujiwara@wide.ad.jp</email>
      </address>
    </author>

    <date year="2025" month="February" day="28"/>

    <area>operations</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 76?>

<t>There are parameters in the DNS protocol
that do not have clear upper limit values.
If a protocol is implemented without considering the upper limit,
it may become vulnerable to DoS attacks,
and several attack methods have been proposed.
This draft proposes reasonable upper limit values for DNS protocols.</t>



    </abstract>



  </front>

  <middle>


<?line 85?>

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

<t>There are parameters in the DNS protocol that do not have clear upper limits.
For example, the number of alias levels using CNAME Resource records,
the number of name servers,
the number of resource records in an RRSet,
the number of delegation levels using unrelated name server names,
and the number of DNSKEYs for each domain name.</t>

<t>If a protocol is implemented without considering the upper limit,
it may become vulnerable to DoS attacks,
and several attack methods have been proposed.</t>

<t>This draft proposes reasonable upper limits for DNS protocols.</t>

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

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>

<?line -18?>

<t>Many of the specialized terms used in this document are defined in
DNS Terminology <xref target="RFC9499"/>.</t>

</section>
<section anchor="problem-statement"><name>Problem Statement</name>

<t>There are parameters in the DNS protocol that do not have clear upper limits.
For example, 
the number of Resource Records in an RRSet,
the number of alias levels using CNAME Resource records,
and the number of delegation levels using unrelated name server names.</t>

<t>If a protocol is implemented without considering the upper limit,
it may become vulnerable to DoS attacks.
In recent years, DNS vulnerabilities research have been actively  progressed
and many vulnerabilities have been made public.
Each time a vulnerability is discovered,
upper limits on the execution time, number of attempts, and size
are added to DNS software implementations.</t>

<t>If we define upper limits for some parameters in advance and
treat anything that exceeds them as an error,
we can reduce the need to respond reactively.</t>

<t>Authoritative servers are expected to enter an error state when they
read zone files, receive zone transfers, or receive dynamic updates
that contains RRsets that exceed the upper limit.
Full-service resolvers can prevent malfunction by treating a name
resolution error as responses from authoritative servers that exceed
the upper limit.</t>

<section anchor="recent-upper-limit-values-in-implementations"><name>Recent upper limit values in implementations</name>

<t><list style="symbols">
  <t>Number of Resource Records in an RRSet  <vspace blankLines='1'/>
BIND 9 introduced 'max-records-per-type' parameter, and the default is 100.  <vspace blankLines='1'/>
CVE-2024-1737 "BIND's database will be slow if a very large number of RRs
exist at the same name" was reported and BIND 9.18.28 implemented the limit.</t>
  <t>Number of RRSIGs/DNSKEYs/DSs in a RRSet  <vspace blankLines='1'/>
KeyTrap <xref target="KeyTrap"></xref> is a vulnerability caused by the fact that
there is no upper limit on the number of
DNSKEY, DS, or RRSIG resource records.  <vspace blankLines='1'/>
Unbound introduced the maximum number of RRSIG validations for an
RRset (MAX_VALIDATE_RRSIGS) as 8, and the maximum allowed digest
match failures per DS, for DNSKEYs with the same properties
(MAX_DS_MATCH_FAILURES) as 4.</t>
  <t>Number of alias levels using CNAME Resource records  <vspace blankLines='1'/>
Unbound and BIND 9 introduced 'max-query-restarts' parameter,
and the default is 11.
(Hard limit on the number of times
 Unbound is allowed to restart a query upon encountering a CNAME record.)</t>
</list></t>

</section>
</section>
<section anchor="possible-upper-limits"><name>Possible upper limits</name>

<section anchor="items"><name>Possible upper limit items</name>

<t><list style="symbols">
  <t>Number of Resource Records in a RRSet</t>
  <t>Number of NS Resource Records in a delegation</t>
  <t>Number of DS Resource Records in a delegation</t>
  <t>Number of glue RRs in a delegation</t>
  <t>Number of DNSKEY Resource Records in a DNSKEY RRSet</t>
  <t>Number of RRSIG RRs for each name and type</t>
  <t>Number of levels of unrelated only delegations</t>
  <t>Number of alias levels using CNAME Resource records</t>
</list></t>

</section>
<section anchor="packet-size-limits"><name>Packet size limits</name>

<t>There were comments that there are size limitations even if no precise
upper limits are set.</t>

<t>The DNS packet format has an upper limit of 65535 octets,
so an RRset cannot exceed that size.
However, the size 65535 is large,
attackers use this upper limit to carry out resource-wasting attacks.</t>

<t>Also, the upper limit size of a single resource record is 65535 octets
minus DNS header size because RDLENGTH is 16 bits.</t>

<t>Section 4.2.1 UDP usage of <xref target="RFC1035"/> limits the UDP message size 512.</t>

<t>The size of a DNS response that can be sent using unfragmented UDP is
about 1400 octets. <xref target="RFC9715"/></t>

</section>
<section anchor="upper-limit-concept"><name>Upper limit concept</name>

<t>Best Current Practice documents should allow for values
that are currently in widespread use.
However, apparent anomalies may be excluded.</t>

<t>It is desirable to determine the upper limit values
by conducting extensive measurements on the Internet
and excluding obvious errors or malicious errors,
and to set the value that has the least impact.</t>

<t>For this reason, this document specifies desirable upper-limit values
and upper limit values that should result in an error if exceeded.</t>

<t>Some DNS RFCs define upper limit values.</t>

</section>
<section anchor="number-of-resource-records-in-a-rrset"><name>Number of Resource Records in a RRSet</name>

<t>Since there are 13 root name servers and 13 name servers for com and net TLDs,
the maximum number of NS RR in an NS RRSet should be larger than or equal to 13.</t>

<t>Since there are 13 name servers for root, com, net
and they have both IPv4 and IPv6 addresses,
26 glue records in a delegation should be allowed.</t>

<t>In recent years, there have been cases where
many TXT resource records have been set at the zone apex.
Many services seem to request their designated authentication tokens
written as TXT records at the zone apex to verify domain name registrants.
However, there seem to be cases where authentication tokens are only added,
as there seems to be no procedure for deleting them once they have been set.
It is necessary to standardize and deploy
<xref target="I-D.ietf-dnsop-domain-verification-techniques"/>,
and to write TXT records not at the zone apex,
but application-specific undercore prefix labels.</t>

</section>
<section anchor="number-of-alias-levels-using-cnamedname"><name>Number of alias levels using CNAME/DNAME</name>

<t>Many resolver implementations can resolve over 10 CNAME aliases.
Unbound and BIND 9 introduced 'max-query-restarts' parameter,
and the default is 11.</t>

<t>However,
a stub resolver that receives a response containing multiple CNAME aliases
must find the final A, AAAA Resource record
that corresponds to the CNAME in each application.
To avoid this complexity,
the recommended number of CNAME chains is 1.
CNAME/DNAME aliases with more than three levels are too complicated.</t>

</section>
<section anchor="number-of-rrsigsdnskeysdss-in-a-rrset"><name>Number of RRSIGs/DNSKEYs/DSs in a RRSet</name>

<t>KeyTrap <xref target="KeyTrap"></xref> is a vulnerability caused by the fact that
there is no upper limit on the number of DNSKEY, DS, or RRSIG resource records.
If there were upper limits on these, the damage could be mitigated.</t>

<t>Therefore, considering the DNSKEY rollover and the multi-signer model,
the maximum number of DNSKEYs for both KSK and ZSK may be 6.
The maximum number of DS RRs in a DS RRSet may be 3.</t>

<t>The number of RRSIG RRs for each owner name and type pair may be 6.</t>

<t>Unbound introduced the maximum number of RRSIG validations for an
RRset (MAX_VALIDATE_RRSIGS) as 8.</t>

</section>
<section anchor="number-of-delegation-levels-using-unrelated-name-server-names"><name>Number of delegation levels using unrelated name server names</name>

<t><xref target="RFC9471"/> states that all in-domain glue records are attached to
the delegation response.
Therefore, using in-domain name server names for DNS delegation
minimizes name resolution costs.</t>

<t>Unrelated (or, rarely sibling) name server names are used/required for
DNS hosting services.</t>

<t>However, using unrelated name server names increases the name resolution costs
and may increase the likelihood of name resolution errors.</t>

<t>For some domain names, there are multiple layers of dependence
on unrelated name server names when resolving the name.
If information on unrelated name server names is not in the cache,
such as immediately after the recursive resolver is started,
the recursive resolver must perform A/AAAA name resolution
for the unrelated name server names.
If the name server for the domain name that holds the name server name
also has only unrelated name server names,
the resolver must also perform A/AAAA name resolution
for those unrelated name server names.
If the time required for name resolution exceeds one second,
the stub resolver may treat the name resolution as having timed out,
and users operating a browser, etc., may become impatient and reload the page.
Even if the first name resolution takes too long,
the A/AAAA RRs for the name server names are cached for each TTL time,
so name resolution from the second time onwards can be performed
in a short time, and there is thought to be little actual harm,
but if the TTL time expires,
it will be necessary to start over with name resolution
for the unrelated name server names,
and the name resolution time will be extended again.
Frequent use of unrelated name server names can cause unstable name resolution,
such as a significant difference between the time it takes to resolve a name
and the time it takes to resolve a name,
or sometimes the name resolution time is so long
that it is treated as a timeout.</t>

<t>This section proposes to use in-domain name servers as much as possible
for name resolution of unrelated name server names
to reduce the name resolution costs.</t>

<t>Furthermore, there are cases where cyclic dependencies in delegation occur,
settings that depend on sibling glue,
and cases where the sibling glue disappears or
some name servers stop responding, making it impossible to resolve names.</t>

<t><xref target="Tsuname2021"/> pointed out attacks and countermeasures that
use increased load due to cyclic dependencies.</t>

<t>Many cyclic delegations are likely due to misconfigurations.</t>

<t>To avoid complex name resolutions and misconfigurations,
it is better to avoid using unrelated name server names as much as possible.</t>

<t>Unrelated name server names <bcp14>SHOULD</bcp14> be hosted by a domain name 
with at least one in-domain name server name.
In other words, DNS providers <bcp14>SHOULD</bcp14> have at least one in-domain nameserver
for their domain names.</t>

<t>From ICANN's Centralized Zone Data Service (CZDS), 
an investigation into the dependencies of second-level domain names
within the five largest TLDs (com, net, org, info, biz) revealed that
less than 10% were unclassifiable (dependence on other TLDs or errors),
around 0.3% were resolvable by in-domain name server names,
64% were dependent on unrelated name server names at only the first level,
26% were dependent on unrelated name server names at two levels,
and less than 1% were dependent on unrelated name server names
at three levels or more.</t>

<t>Therefore,
if delegation using only unrelated name server names were permitted
up to two levels,
name resolution would be successful for 99% of domain names.</t>

</section>
</section>
<section anchor="RecommendationResolver"><name>Recommendation of DNS upper limit values</name>

<texttable>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Desirable upper limit</ttcol>
      <ttcol align='left'>hard limit</ttcol>
      <ttcol align='left'>protocol limit</ttcol>
      <ttcol align='left'>implementation limit</ttcol>
      <c>DNS message size</c>
      <c>1400</c>
      <c>&#160;</c>
      <c>65535</c>
      <c>&#160;</c>
      <c>UDP/DNS message size (without EDNS)</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>512</c>
      <c>&#160;</c>
      <c>UDP/DNS message size (with EDNS)</c>
      <c>1400 (RFC9715)</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>1232 (DNS Flag Day)</c>
      <c>number of RRs in a RRSet</c>
      <c>13</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>100 (BIND 9)</c>
      <c>number of NS RRs in a delegation</c>
      <c>13</c>
      <c>13</c>
      <c>&#160;</c>
      <c>root/TLDs NS</c>
      <c>number of glue RRs in a delegation</c>
      <c>26</c>
      <c>26</c>
      <c>&#160;</c>
      <c>TLD glue</c>
      <c>number of DS RRs in a delegation</c>
      <c>3</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>number of DNSKEY RRs</c>
      <c>6</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>number of RRSIG RRs for each name and type</c>
      <c>2</c>
      <c>8</c>
      <c>&#160;</c>
      <c>8 (Unbound)</c>
      <c>number of levels of unrelated only delegations</c>
      <c>1</c>
      <c>(2)</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>number of CNAME/DNAME chains</c>
      <c>1</c>
      <c>11</c>
      <c>&#160;</c>
      <c>11 (Unbound, BIND 9)</c>
</texttable>

<t>DNS software is expected to make these items configurable parameters
that operators can control.</t>

<t>Recursive resolvers <bcp14>SHOULD</bcp14> respond with a name resolution error
(Server Failure) if it receives a response from an authoritative
server that exceeds the hard limits.</t>

<t>Authoritative servers <bcp14>SHOULD</bcp14> be in an error state if they find
RRSets that exceed the hard limits when they load zone files, receive
zone data by zone transfers, or receive DNS Updates.</t>

</section>
<section anchor="iana"><name>IANA Considerations</name>
<t>This document requests no IANA actions.</t>

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

</section>


  </middle>

  <back>


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



<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="RFC9499">
  <front>
    <title>DNS Terminology</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
    <date month="March" year="2024"/>
    <abstract>
      <t>The Domain Name System (DNS) is defined in literally dozens of different RFCs. The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has changed in the decades since the DNS was first defined. This document gives current definitions for many of the terms used in the DNS in a single document.</t>
      <t>This document updates RFC 2308 by clarifying the definitions of "forwarder" and "QNAME". It obsoletes RFC 8499 by adding multiple terms and clarifications. Comprehensive lists of changed and new definitions can be found in Appendices A and B.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="219"/>
  <seriesInfo name="RFC" value="9499"/>
  <seriesInfo name="DOI" value="10.17487/RFC9499"/>
</reference>

<reference anchor="RFC1035">
  <front>
    <title>Domain names - implementation and specification</title>
    <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
    <date month="November" year="1987"/>
    <abstract>
      <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="13"/>
  <seriesInfo name="RFC" value="1035"/>
  <seriesInfo name="DOI" value="10.17487/RFC1035"/>
</reference>

<reference anchor="RFC9471">
  <front>
    <title>DNS Glue Requirements in Referral Responses</title>
    <author fullname="M. Andrews" initials="M." surname="Andrews"/>
    <author fullname="S. Huque" initials="S." surname="Huque"/>
    <author fullname="P. Wouters" initials="P." surname="Wouters"/>
    <author fullname="D. Wessels" initials="D." surname="Wessels"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>The DNS uses glue records to allow iterative clients to find the addresses of name servers that are contained within a delegated zone. Authoritative servers are expected to return all available glue records for in-domain name servers in a referral response. If message size constraints prevent the inclusion of all glue records for in-domain name servers, the server must set the TC (Truncated) flag to inform the client that the response is incomplete and that the client should use another transport to retrieve the full response. This document updates RFC 1034 to clarify correct server behavior.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9471"/>
  <seriesInfo name="DOI" value="10.17487/RFC9471"/>
</reference>




    </references>

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

<reference anchor="Tsuname2021" >
  <front>
    <title>TsuNAME: exploiting misconfiguration and vulnerability to DDoS DNS</title>
    <author initials="G. M." surname="Moura" fullname="Giovane C. M. Moura">
      <organization>SIDN Labs</organization>
    </author>
    <author initials="" surname="Sebastian Castro" fullname="Sebastian Castro">
      <organization>InternetNZ</organization>
    </author>
    <author initials="" surname="John S Heidemann" fullname="John S. Heidemann">
      <organization>USC/ISI</organization>
    </author>
    <author initials="" surname="Wes Hardaker" fullname="Wes Hardaker">
      <organization>USC/ISI</organization>
    </author>
    <date year="2021"/>
  </front>
  <seriesInfo name="IMC '21: Proceedings of the 21st ACM Internet Measurement Conference" value=""/>
</reference>
<reference anchor="KeyTrap" >
  <front>
    <title>The KeyTrap Denial-of-Service Algorithmic Complexity Attacks on DNS</title>
    <author initials="" surname="Elias Heftrig" fullname="Elias Heftrig">
      <organization>ATHENE</organization>
    </author>
    <author initials="" surname="Haya Schulmann" fullname="Haya Schulmann">
      <organization>ATHENE</organization>
    </author>
    <author initials="" surname="Niklas Vogel" fullname="Niklas Vogel">
      <organization>TU Darmstadt</organization>
    </author>
    <author initials="" surname="Michael Waidner" fullname="Michael Waidner">
      <organization>Fraunhofer SIT</organization>
    </author>
    <date year="2024"/>
  </front>
</reference>


<reference anchor="RFC9715">
  <front>
    <title>IP Fragmentation Avoidance in DNS over UDP</title>
    <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
    <author fullname="P. Vixie" initials="P." surname="Vixie"/>
    <date month="January" year="2025"/>
    <abstract>
      <t>The widely deployed Extension Mechanisms for DNS (EDNS(0)) feature in the DNS enables a DNS receiver to indicate its received UDP message size capacity, which supports the sending of large UDP responses by a DNS server. Large DNS/UDP messages are more likely to be fragmented, and IP fragmentation has exposed weaknesses in application protocols. It is possible to avoid IP fragmentation in DNS by limiting the response size where possible and signaling the need to upgrade from UDP to TCP transport where necessary. This document describes techniques to avoid IP fragmentation in DNS.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9715"/>
  <seriesInfo name="DOI" value="10.17487/RFC9715"/>
</reference>


<reference anchor="I-D.ietf-dnsop-domain-verification-techniques">
   <front>
      <title>Domain Control Validation using DNS</title>
      <author fullname="Shivan Kaul Sahib" initials="S. K." surname="Sahib">
         <organization>Brave Software</organization>
      </author>
      <author fullname="Shumon Huque" initials="S." surname="Huque">
         <organization>Salesforce</organization>
      </author>
      <author fullname="Paul Wouters" initials="P." surname="Wouters">
         <organization>Aiven</organization>
      </author>
      <author fullname="Erik Nygren" initials="E." surname="Nygren">
         <organization>Akamai Technologies</organization>
      </author>
      <date day="21" month="October" year="2024"/>
      <abstract>
	 <t>   Many application services on the Internet need to verify ownership or
   control of a domain in the Domain Name System (DNS).  The general
   term for this process is &quot;Domain Control Validation&quot;, and can be done
   using a variety of methods such as email, HTTP/HTTPS, or the DNS
   itself.  This document focuses only on DNS-based methods, which
   typically involve the Application Service Provider requesting a DNS
   record with a specific format and content to be visible in the domain
   to be verified.  There is wide variation in the details of these
   methods today.  This document provides some best practices to avoid
   known problems.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-domain-verification-techniques-06"/>
   
</reference>




    </references>



  </back>

<!-- ##markdown-source:
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
zcIUYFr8D/B+KdQHOAAA

-->

</rfc>

