<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-bortzmeyer-more-edes-03"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">

  <front>
    <title abbrev="More EDEs">Addition of Extended DNS Errors codes</title>

    <seriesInfo name="Internet-Draft" value="draft-bortzmeyer-more-edes-03"/>
   
    <author fullname="Stéphane Bortzmeyer" initials="S." surname="Bortzmeyer">
      
      <organization>Afnic</organization>
      <address>
        <postal>
          <street>7, avenue du 8 mai 1945</street>
          <city>Guyancourt</city>
          <code>78280</code>
          <country>FR</country>
          <!-- Uses two letter country code -->
        </postal>        
        <email>bortzmeyer+ietf@nic.fr</email>  
        <uri>https://www.afnic.fr/</uri>
      </address>
    </author>
   
    <date year="2025"/>

    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>DNS EDE</keyword>

    <abstract>
      <t>This document is the specification of three new EDE (Extended
      DNS Errors) codes, for minimal answers, local roots and
      tailoring based on the client IP address.</t>
    </abstract>
 
  </front>

  <middle>
    
    <section>
      <name>Introduction</name>
      <t><xref target="RFC8914"/> created the EDE (Extended DNS
      Errors). Each error is identified by a code, and there is an
      IANA registry of these codes. This specification adds four
      codes:</t>
      <ul>
        <li>One to say that the response has been tailored from the IP
	address of the end-client, for instance through ECS (EDNS
	Client Subnet),</li>
	<li>One to say that the response was deliberately minimal,</li>
        <li>One to say that the response comes from a local root.</li>
	<li>One to say that the request was rejected because of rate-limiting.</li>
      </ul>
      
      <section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
      </section>

    </section>
    
    <section>
      <name>Tailoring</name>
      <t>This response code, TBD, means that the response has been
      tailored on the basis of the IP address of the client. It can be
      from its actual IP address in the query (DNS-based load
      balancing), or because of ECS (EDNS Client Subnet, <xref
      target="RFC7871"/>). It MAY be sent by authoritative servers or
      resolvers, for instance when they implement ECS. Note that the
      fact that the server accepts ECS can also be seen in the EDNS
      part of the response, but it does not mean that ECS was actually
      used to tailor the answer. Also, this response code is more
      general than just ECS. To differentiate between the type of
      tailoring, the EXTRA-TEXT field MAY be used.</t>
      <t>If a resolver receives this EDE from an authoritative server,
      it SHOULD copy it in the response sent to its client.</t>
    </section>

    <section>
      <name>Minimal response</name>
      <t>This response code, TBD, means that the response was
      deliberately minimal. It can be because the request was using
      the QTYPE ANY, as documented by <xref target="RFC8482"/>. Or it
      can be also for cases like "glue records not sent since I wanted
      to save bits". It MAY be sent by authoritative servers or
      resolvers.</t>
    </section>

    <section>
      <name>Local root</name>
      <t>This response code, TBD, means that the response comes from
      a local root, as documented in <xref target="RFC8806"/>. It MAY
      be sent by resolvers using a local root.</t>
    </section>

    <section>
      <name>Rate-limiting</name>
      <t>This response code, TBD, means that the request was
      rejected because the DNS client queries too much <xref target="RRL"/>. It MAY
      be sent by resolvers or authoritative name servers, probably
      together with a REFUSED response code.</t>
    </section>

    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate codes to these four EDE and to
      add them to the "Extended DNS Error Codes", with a reference to
      this document.</t>
      <t>Note that the policy for the registry "Extended DNS Error
      Codes" is just "First come, first served" so this document is
      not strictly necessary.</t>
    </section>
    
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>The EDE are sent with EDNS and are not signed. They should be
      used with care (see <xref target="RFC8914"/>, section 6).</t>
    </section>
    
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <xi:include
            href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include
            href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7871.xml"/>
        <xi:include
            href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include
	    href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8482.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8806.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8914.xml"/>
        
      </references>
      <references>
	<name>Informative references</name>

        <reference anchor="RRL" target="https://kb.isc.org/docs/aa-01000">
          <front>
            <title>A Quick Introduction to Response Rate
	    Limiting</title>
            <author>
              <organization>ISC</organization>
            </author>
            <date year="2014"/>
          </front>
        </reference>
	
      </references>
    </references>
 
    <section anchor="survey-impl" numbered="false">
      <name>Surveys of implementors</name>
      <t>This appendix lists the various issues open againt diverse
      DNS programs, to gather input from the implementors about these
      new EDE.</t>
      <ul>
	<li><eref
		target="https://gitlab.nic.cz/knot/knot-resolver/-/issues/923">Knot
	resolver</eref></li>
	<li><eref
		target="https://github.com/PowerDNS/pdns/issues/14911">PowerDNS,
	PowerDNS recursor and dnsdist</eref></li>
	<li><eref
	       target="https://gitlab.nic.cz/knot/knot-dns/-/issues/945">Knot</eref></li>
	<li><eref
		target="https://gitlab.isc.org/isc-projects/bind9/-/issues/5073">BIND</eref></li>
	<li><eref
		target="https://github.com/NLnetLabs/unbound/issues/1199">Unbound</eref></li>	
      </ul>
    </section>
    
        <section anchor="Acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>Original idea by Marco Davids.</t>
    </section>
    
 </back>
</rfc>
