<?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.7.23 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wesplaap-deleg-02" category="std" consensus="true" submissionType="IETF" updates="1035" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title abbrev="DELEG">Extensible Delegation for DNS</title>
    <seriesInfo name="Internet-Draft" value="draft-wesplaap-deleg-02"/>
    <author initials="T." surname="April" fullname="Tim April">
      <organization>Google, LLC</organization>
      <address>
        <email>ietf@tapril.net</email>
      </address>
    </author>
    <author initials="P." surname="Špaček" fullname="Petr Špaček">
      <organization>ISC</organization>
      <address>
        <email>pspacek@isc.org</email>
      </address>
    </author>
    <author initials="R." surname="Weber" fullname="Ralf Weber">
      <organization>Akamai Technologies</organization>
      <address>
        <email>rweber@akamai.com</email>
      </address>
    </author>
    <author initials="D." surname="Lawrence" fullname="David C Lawrence">
      <organization>Salesforce</organization>
      <address>
        <email>tale@dd.org</email>
      </address>
    </author>
    <date/>
    <area>Internet</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 113?>
<t>A delegation in the Domain Name System (DNS) is a mechanism that enables efficient and distributed management of the DNS namespace. It involves delegating authority over subdomains to specific DNS servers via NS records, allowing for a hierarchical structure and distributing the responsibility for maintaining DNS records.</t>
      <t>An NS record contains the hostname of the nameserver for the delegated namespace. Any facilities of that nameserver must be discovered through other mechanisms. This document proposes a new extensible DNS record type, DELEG, for delegation the authority for a domain. Future documents then can use this mechanism to use additional information about the delegated namespace and the capabilities of authoritative nameservers for the delegated namespace.</t>
    </abstract>
  </front>
  <middle>
    <?line 117?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In the Domain Name System <xref target="STD13"/>, subdomains within the domain name hierarchy are indicated by delegations to servers which are authoritative for their portion of the namespace.  The DNS records that do this, called NS records, contain hostnames of nameservers, which resolve to addresses.  No other information is available to the resolver. It is limited to connect to the authoritative servers over UDP and TCP port 53. This limitation is a barrier for efficient introduction of new DNS technology.</t>
      <t>The proposed DELEG record type remedies this problem by providing extensible parameters to indicate capabilities and additional information, such as glue that a resolver may use for the delegated authority. It is authoritative and thus signed in the parent side of the delegation making it possible to validate all delegation parameters (names and glue records) with DNSSEC.</t>
      <t>This document only shows how DELEG can be used instead of or along side a NS record to create a delegation. Future documents can use the extensible mechanism for more advanced features like connecting to a name server with an encrypted transport.</t>
      <section anchor="terminology">
        <name>Terminology</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 <br/>
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in
all capitals, as shown here.</t>
        <t>Terminology regarding the Domain Name System comes from <xref target="BCP219"/>, with addition terms defined here:</t>
        <ul spacing="normal">
          <li>
            <t>legacy name servers: An authoritative server that does not support the DELEG record.</t>
          </li>
          <li>
            <t>legacy resolvers: A resolver that does not support the DELEG record.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="deleg-record-type">
      <name>DELEG Record Type</name>
      <t>The DELEG record uses a new resource record type, whose contents are identical to the SVCB record defined in <xref target="RFC9460"/>. For extensions SVCB and DELEG use Service Parameter Keys (SvcParamKeys) and new SvcParamKeys that might be needed also will use the existing IANA Registry.</t>
      <section anchor="differences-from-svcb">
        <name>Differences from SVCB</name>
        <ul spacing="normal">
          <li>
            <t>DELEG can only have two priorities 0 indicating INCLUDE and 1 indicating a DIRECT delegation. These terms MUST be used in the presentation format of the DELEG record.</t>
          </li>
          <li>
            <t>INCLUDE and DIRECT delegation can be mixed within an RRSet</t>
          </li>
          <li>
            <t>The final INCLUDE target is an SVCB record, though there can be further indirection using CNAME or AliasMode SVCB records.</t>
          </li>
          <li>
            <t>There can be multiple INCLUDE DELEG records, but further indirections through SVCB records have to comply with <xref target="RFC9460"/> in that there can be only one AliasMode SVCB record per name.</t>
          </li>
          <li>
            <t>In order to not allow unbound indirection of DELEG records the maximum number of indirections, CNAME or AliasMode SVCB is 4.</t>
          </li>
          <li>
            <t>The SVCB IPv4hint and IPv6hint parameters keep their key values of 4 and 6, but the presentation format with DELEG MUST be Glue4 and Glue6.</t>
          </li>
          <li>
            <t>Glue4 and Glue6 records when present MUST be used to connect to the delegated name server.</t>
          </li>
          <li>
            <t>The target of a DELEG record MUST NOT be '.' and for INCLUDE must be outside of the delegated domain and for DIRECT in domain delegations below the zone cut.</t>
          </li>
        </ul>
      </section>
      <section anchor="use-of-deleg-record">
        <name>Use of DELEG record</name>
        <t>The DELEG record creates a zone cut similar to the NS record so all data at or below the zone cut has to be resolved using the name servers defined in the DELEG record.</t>
        <t>A DELEG RRset MAY be present at a delegation point.  The DELEG RRset MAY contain multiple records. DELEG RRsets MUST NOT appear at a zone's apex.</t>
        <t>A DELEG RRset MAY be present with or without NS or DS RRsets at the delegation point.</t>
        <t>An authoritative server that is DELEG aware MUST put all DELEG resource records for the delegation into the authority section when the resolver has signalled DELEG support. It SHOULD NOT supply DELEG records in the response when receiving a request without the DE bit.</t>
        <t>If the delegation does not have DELEG records the authoritative server MUST send the NS records and, if the zone is DNSSEC signed, prove the absence of the DELEG RRSet.</t>
        <t>A resolver that is DELEG aware MUST signal its support by sending the DE bit when iterating and MUST use the DELEG records in the referral response.</t>
      </section>
      <section anchor="signaling-deleg-support">
        <name>Signaling DELEG support</name>
        <t>For a long time there will be both DELEG and NS needed for delegation. As both methods should be configured to get to a proper resolution it is not necessary to send both in a referral response. We therefore purpose an EDNS flag to be use similar to the DO Bit for DNSSEC to be used to signal that the sender understands DELEG and does not need NS or glue information in the referral.</t>
        <t>This bit is referred to as the "DELEG" (DE) bit.  In the context of the EDNS0 OPT meta-RR, the DE bit is the TBD of the "extended RCODE and flags" portion of the EDNS0 OPT meta-RR, structured as follows (to be updated when assigned):</t>
        <artwork><![CDATA[
            +0 (MSB)                +1 (LSB)
     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  0: |   EXTENDED-RCODE      |       VERSION         |
     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  2: |DO|CO|DE|              Z                       |
     +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
]]></artwork>
        <t>Setting the DE bit to one in a query indicates to the server that the resolver is able to accept delegations using DELEG only. The DE bit cleared (set to zero) indicates the resolver is unprepared to handle DELEG and hence can only be served NS, DS and glue in a delegation response. The DE bit of the query MUST be copied in the response.</t>
      </section>
      <section anchor="dnssec">
        <name>DNSSEC</name>
        <t>As the DELEG record is authoritative in the parent zone of a zone cut similar to DS it has to be signed in the parent zone.</t>
        <t>In order for the validator to understand that the delegation uses DELEG this draft introduces a new DNSKEY flag TBD. When this flag is set for the key that signs the DS or DELEG record, usually the zone signing key (ZSK), and the request has signalled that it understands DELEG an authenticated denial of existence MUST be send with the referral response, so that a DELEG aware validator can prove the existence or absence of a DELEG record and detect a downgrade attack.</t>
        <t>A Validating Stub Resolver that is DELEG aware has to use a Security-Aware Resolver that is DELEG aware and if it is behind a forwarder this has to be security and DELEG aware as well.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate the DELEG RR in the Resource Record (RR) TYPEs registry, with the meaning of "enchanced delegation information" and referencing this document.</t>
      <t>IANA is requested to assign a new bit in the DNSKEY RR Flags registry (<xref target="RFC4034"/>) for the DELEG bit (N), with the descripion "DELEG" and referencing this document.</t>
      <t>IANA is requested to assign a bit from the EDNS Header Flags registry (<xref target="RFC6891"/>), with the abbreviation DE, the description "DELEG enabled" and referencing this document.</t>
      <t>For the RDATA parameters to a DELEG RR, the DNS Service Bindings (SVCB) registry (<xref target="RFC9460"/>) is used.  This document requests no new assignments to that registry, though it is expected that future DELEG work will.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="STD13" target="https://www.rfc-editor.org/info/std13">
          <reference anchor="RFC1034" target="https://www.rfc-editor.org/info/rfc1034">
            <front>
              <title>Domain names - concepts and facilities</title>
              <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
              <date month="November" year="1987"/>
              <abstract>
                <t>This RFC is the revised basic definition of The Domain Name System. It obsoletes RFC-882. This memo describes the domain style names and their used for host address look up and electronic mail forwarding. It discusses the clients and servers in the domain name system and the protocol used between them.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="13"/>
            <seriesInfo name="RFC" value="1034"/>
            <seriesInfo name="DOI" value="10.17487/RFC1034"/>
          </reference>
          <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
        <reference anchor="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC4034">
          <front>
            <title>Resource Records for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
              <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4034"/>
          <seriesInfo name="DOI" value="10.17487/RFC4034"/>
        </reference>
        <reference anchor="RFC6891">
          <front>
            <title>Extension Mechanisms for DNS (EDNS(0))</title>
            <author fullname="J. Damas" initials="J." surname="Damas"/>
            <author fullname="M. Graff" initials="M." surname="Graff"/>
            <author fullname="P. Vixie" initials="P." surname="Vixie"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Domain Name System's wire protocol includes a number of fixed fields whose range has been or soon will be exhausted and does not allow requestors to advertise their capabilities to responders. This document describes backward-compatible mechanisms for allowing the protocol to grow.</t>
              <t>This document updates the Extension Mechanisms for DNS (EDNS(0)) specification (and obsoletes RFC 2671) based on feedback from deployment experience in several implementations. It also obsoletes RFC 2673 ("Binary Labels in the Domain Name System") and adds considerations on the use of extended labels in the DNS.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="75"/>
          <seriesInfo name="RFC" value="6891"/>
          <seriesInfo name="DOI" value="10.17487/RFC6891"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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>
        <referencegroup anchor="BCP219" target="https://www.rfc-editor.org/info/bcp219">
          <reference anchor="RFC9499" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
        <reference anchor="I-D.tapril-ns2">
          <front>
            <title>Parameterized Nameserver Delegation with NS2 and NS2T</title>
            <author fullname="Tim April" initials="T." surname="April">
              <organization>Akamai Technologies</organization>
            </author>
            <date day="13" month="July" year="2020"/>
            <abstract>
              <t>   Within the DNS, there is no mechanism for authoritative servers to
   advertise which transport methods they are capable of.  If secure
   transport methods are adopted by authoritative operators, transport
   signaling would be required to negotiate how authoritative servers
   would be contacted by resolvers.  This document provides two new
   Resource Record Types, NS2 and NS2T, to facilitate this negotiation
   by allowing zone owners to signal how the authoritative nameserver(s)
   for their zone(s) may accept queries.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tapril-ns2-01"/>
        </reference>
      </references>
    </references>
    <?line 203?>

<section anchor="examples">
      <name>Examples</name>
      <t>The following example shows an excerpt from a signed root zone. It shows the delegation point for "example." and "test."</t>
      <t>The "example." delegation has DELEG and NS records. The "test." delegation has DELEG but no NS records.</t>
      <artwork><![CDATA[
example.   300 IN DELEG 1 a.example. Glue4=192.0.2.1 (
                        Glue6=2001:DB8::1 )
example.   300 IN DELEG 0 ns2.example.net.
example.   300 IN DELEG 0 ns3.example.org.
example.   300 IN RRSIG DELEG 13 4 300 20250214164848 (
                        20250207134348 21261 . HyDHYVT5KcqWc7J..= )
example.   300 IN NS    a.example.
example.   300 IN NS    b.example.net.
example.   300 IN NS    c.example.org.
example.   300 IN DS    65163 13 2 5F86F2F3AE2B02... 
example.   300 IN RRSIG DS 13 4 300 20250214164848 (
                        20250207134348 21261 . O0k558jHhyrC21J..= )
example.   300 IN NSEC  a.example. NS DS RRSIG NSEC DELEG
example.   300 IN RRSIG NSEC 13 4 300 20250214164848 (
                        20250207134348 21261 . 1Kl8vab96gG21Aa..= )
a.example. 300 IN A     192.0.2.1
a.example. 300 IN AAAA  2001:DB8::1
]]></artwork>
      <t>The "test." delegation point has a DELEG record and no NS record.</t>
      <artwork><![CDATA[
test.      300 IN DELEG 0 ns2.example.net
test.      300 IN RRSIG DELEG 13 4 300 20250214164848 (
                        20250207134348 21261 . 98Aac9f7A1Ac26Q..= ) 
test.      300 IN NSEC  a.test. RRSIG NSEC DELEG
test.      300 IN RRSIG NSEC 13 4 300  20250214164848 (
                        20250207134348 21261 . kj7YY5tr9h7UqlK..= )
]]></artwork>
      <section anchor="responses">
        <name>Responses</name>
        <t>The following sections show referral examples:</t>
      </section>
      <section anchor="do-bit-clear-de-bit-clear">
        <name>DO bit clear, DE bit clear</name>
        <section anchor="query-for-fooexample">
          <name>Query for foo.example</name>
          <t>;; Header: QR RCODE=0<br/>
;;</t>
          <t>;; Question<br/>
foo.example.  IN MX</t>
          <t>;; Answer<br/>
;; (empty)</t>
          <t>;; Authority<br/>
example.   300 IN NS    a.example.<br/>
example.   300 IN NS    b.example.net.<br/>
example.   300 IN NS    c.example.org.</t>
          <t>;; Additional <br/>
a.example. 300 IN A     192.0.2.1<br/>
a.example. 300 IN AAAA  2001:DB8::1</t>
        </section>
        <section anchor="query-for-footest">
          <name>Query for foo.test</name>
          <t>;; Header: QR AA RCODE=3
;;</t>
          <t>;; Question<br/>
foo.test.   IN MX</t>
          <t>;; Answer<br/>
;; (empty)</t>
          <t>;; Authority<br/>
.   300 IN SOA ...</t>
          <t>;; Additional <br/>
;; (empty)</t>
        </section>
      </section>
      <section anchor="do-bit-set-de-bit-clear">
        <name>DO bit set, DE bit clear</name>
        <section anchor="query-for-fooexample-1">
          <name>Query for foo.example</name>
          <artwork><![CDATA[
;; Header: QR DO RCODE=0  
;;

;; Question  
foo.example.   IN MX

;; Answer  
;; (empty)

;; Authority  
    
example.   300 IN NS    a.example.  
example.   300 IN NS    b.example.net.  
example.   300 IN NS    c.example.org.  
example.   300 IN DS    65163 13 2 5F86F2F3AE2B02...  
example.   300 IN RRSIG DS 13 4 300 20250214164848 (  
                        20250207134348 21261 . O0k558jHhyrC21J..= )  
;; Additional  
a.example. 300 IN A     192.0.2.1  
a.example. 300 IN AAAA  2001:DB8::1
]]></artwork>
        </section>
        <section anchor="query-for-footest-1">
          <name>Query for foo.test</name>
          <artwork><![CDATA[
;; Header: QR DO AA RCODE=3  
;;
    
;; Question  
foo.test.      IN MX 
    
;; Answer  
;; (empty)

;; Authority  
.          300 IN SOA ...
.          300 IN RRSIG SOA ...
.          300 IN NSEC  aaa NS SOA RRSIG NSEC DNSKEY ZONEMD
.          300 IN RRSIG NSEC 13 4 300  
test.      300 IN NSEC  a.test. RRSIG NSEC DELEG
test.      300 IN RRSIG NSEC 13 4 300  20250214164848 (
                        20250207134348 21261 . aBFYask;djf7UqlK..= )

;; Additional   
;; (empty)    
]]></artwork>
        </section>
      </section>
      <section anchor="do-bit-clear-de-bit-set">
        <name>DO bit clear, DE bit set</name>
        <section anchor="query-for-fooexample-2">
          <name>Query for foo.example</name>
          <artwork><![CDATA[
;; Header: QR DE RCODE=0  
;;

;; Question  
foo.example.  IN MX

;; Answer  
;; (empty)

;; Authority  
example.   300 IN DELEG 1 a.example. Glue4=192.0.2.1 (
                        Glue6=2001:DB8::1 )
example.   300 IN DELEG 0 ns2.example.net.
example.   300 IN DELEG 0 ns3.example.org.

;; Additional   
;; (empty)  
]]></artwork>
        </section>
        <section anchor="query-for-footest-2">
          <name>Query for foo.test</name>
          <artwork><![CDATA[
;; Header: QR AA RCODE=0
;;
    
;; Question  
foo.test.   IN MX 
    
;; Answer  
;; (empty)

;; Authority  
test.      300 IN DELEG 0 ns2.example.net

;; Additional   
;; (empty)    
]]></artwork>
        </section>
      </section>
      <section anchor="do-bit-set-de-bit-set">
        <name>DO bit set, DE bit set</name>
        <section anchor="query-for-fooexample-3">
          <name>Query for foo.example</name>
          <artwork><![CDATA[
;; Header: QR DO DE RCODE=0  
;;

;; Question  
foo.example.  IN MX

;; Answer  
;; (empty)

;; Authority  
    
example.   300 IN DELEG 1 a.example. Glue4=192.0.2.1 (
                        Glue6=2001:DB8::1 )
example.   300 IN DELEG 0 ns2.example.net.
example.   300 IN DELEG 0 ns3.example.org.
example.   300 IN RRSIG DELEG 13 4 300 20250214164848 (
                        20250207134348 21261 . HyDHYVT5KcqWc7J..= )
example.   300 IN DS    65163 13 2 5F86F2F3AE2B02...  
example.   300 IN RRSIG DS 13 4 300 20250214164848 (  
                        20250207134348 21261 . O0k558jHhyrC21J..= )  

;; Additional  
a.example. 300 IN A     192.0.2.1  
a.example. 300 IN AAAA  2001:DB8::1  
]]></artwork>
        </section>
        <section anchor="query-for-footest-3">
          <name>Query for foo.test</name>
          <artwork><![CDATA[
;; Header: QR DO DE AA RCODE=3  
;;
    
;; Question  
foo.test.      IN MX 
    
;; Answer  
;; (empty)

;; Authority  
.          300 IN SOA ...
.          300 IN RRSIG SOA ...
.          300 IN NSEC  aaa NS SOA RRSIG NSEC DNSKEY ZONEMD
.          300 IN RRSIG NSEC 13 4 300  
test.      300 IN NSEC  a.test. RRSIG NSEC DELEG
test.      300 IN RRSIG NSEC 13 4 300  20250214164848 (
                        20250207134348 21261 . aBFYask;djf7UqlK..= )

;; Additional   
;; (empty)    
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="acknowledgments-unnumbered">
      <name>Acknowledgments {:unnumbered}</name>
      <t>This document is heavily based on past work done by Tim April in 
<xref target="I-D.tapril-ns2"/> and thus extends the thanks to the people helping on this which are:
John Levine, Erik Nygren, Jon Reed, Ben Kaduk, Mashooq Muhaimen, Jason Moreau, Jerrod Wiesman, Billy Tiemann, Gordon Marx and Brian Wellington.</t>
    </section>
    <section anchor="todo">
      <name>TODO</name>
      <dl>
        <dt>RFC EDITOR:</dt>
        <dd>
          <t>PLEASE REMOVE THE THIS SECTION PRIOR TO PUBLICATION.</t>
        </dd>
      </dl>
      <ul spacing="normal">
        <li>
          <t>Write a security considerations section</t>
        </li>
        <li>
          <t>Change the parameters form temporary to permanent once IANA assigned. Temporary use:
          </t>
          <ul spacing="normal">
            <li>
              <t>DELEG QType code is 65432</t>
            </li>
            <li>
              <t>DELEG EDNS Flag Bit is 3</t>
            </li>
            <li>
              <t>DELEG DNSKEY Flag Bit is 0</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="change-log">
      <name>Change Log</name>
      <dl>
        <dt>RFC EDITOR:</dt>
        <dd>
          <t>PLEASE REMOVE THE THIS SECTION PRIOR TO PUBLICATION.</t>
        </dd>
      </dl>
      <section anchor="since-draft-wesplaap-deleg-00">
        <name>since draft-wesplaap-deleg-00</name>
        <ul spacing="normal">
          <li>
            <t>Clarified SVCB priority behaviour</t>
          </li>
          <li>
            <t>Added section on differences to draft-homburg-deleg-incremental-deleg</t>
          </li>
        </ul>
      </section>
      <section anchor="since-draft-wesplaap-deleg-01">
        <name>since draft-wesplaap-deleg-01</name>
        <ul spacing="normal">
          <li>
            <t>Reorganised and streamlined the draft to the bare mininum for DELEG as an NS replacement</t>
          </li>
          <li>
            <t>Defined codepoints for temporary testing</t>
          </li>
          <li>
            <t>Added examples</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="C." surname="Elmerot" fullname="Christian Elmerot">
        <organization>Cloudflare</organization>
        <address>
          <email>christian@elmerot.se</email>
        </address>
      </contact>
      <contact initials="E." surname="Lewis" fullname="Edward Lewis">
        <organization>ICANN</organization>
        <address>
          <email>edward.lewis@icann.org</email>
        </address>
      </contact>
      <contact initials="R." surname="Arends" fullname="Roy Arends">
        <organization>ICANN</organization>
        <address>
          <email>roy.arends@icann.org</email>
        </address>
      </contact>
      <contact initials="S." surname="Huque" fullname="Shumon Huque">
        <organization>Salesforce</organization>
        <address>
          <email>shuque@gmail.com</email>
        </address>
      </contact>
      <contact initials="K." surname="Darilion" fullname="Klaus Darilion">
        <organization>nic.at</organization>
        <address>
          <email>klaus.darilion@nic.at</email>
        </address>
      </contact>
      <contact initials="L." surname="Peltan" fullname="Libor Peltan">
        <organization>CZ.nic</organization>
        <address>
          <email>libor.peltan@nic.cz</email>
        </address>
      </contact>
      <contact initials="V." surname="Čunát" fullname="Vladimír Čunát">
        <organization>CZ.nic</organization>
        <address>
          <email>vladimir.cunat@nic.cz</email>
        </address>
      </contact>
      <contact initials="S." surname="Kerr" fullname="Shane Kerr">
        <organization>NS1</organization>
        <address>
          <email>shane@time-travellers.org</email>
        </address>
      </contact>
      <contact initials="D." surname="Blacka" fullname="David Blacka">
        <organization>Verisign</organization>
        <address>
          <email>davidb@verisign.com</email>
        </address>
      </contact>
      <contact initials="G." surname="Michaelson" fullname="George Michaelson">
        <organization>APNIC</organization>
        <address>
          <email>ggm@algebras.org</email>
        </address>
      </contact>
      <contact initials="B." surname="Schwartz" fullname="Ben Schwartz">
        <organization>Meta</organization>
        <address>
          <email>bemasc@meta.com</email>
        </address>
      </contact>
      <contact initials="J." surname="Včelák" fullname="Jan Včelák">
        <organization>NS1</organization>
        <address>
          <email>jvcelak@ns1.com</email>
        </address>
      </contact>
      <contact initials="P. van" surname="Dijk" fullname="Peter van Dijk">
        <organization>PowerDNS</organization>
        <address>
          <email>peter.van.dijk@powerdns.com</email>
        </address>
      </contact>
      <contact initials="P." surname="Homburg" fullname="Philip Homburg">
        <organization>NLnet Labs</organization>
        <address>
          <email>philip@nlnetlabs.nl</email>
        </address>
      </contact>
      <contact initials="E." surname="Nygren" fullname="Erik Nygren">
        <organization>Akamai Technologies</organization>
        <address>
          <email>erik+ietf@nygren.org</email>
        </address>
      </contact>
      <contact initials="V." surname="Adhvaryu" fullname="Vandan Adhvaryu">
        <organization>Team Internet</organization>
        <address>
          <email>vandan@adhvaryu.uk</email>
        </address>
      </contact>
      <contact initials="M." surname="Bretelle" fullname="Manu Bretelle">
        <organization>Meta</organization>
        <address>
          <email>chantr4@gmail.com</email>
        </address>
      </contact>
      <contact initials="B." surname="Halley" fullname="Bob Halley">
        <organization>Cloudflare</organization>
        <address>
          <email>bhalley@cloudflare.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAJZOtGcAA+1ba3LbSJL+j1PUyD9amqYQJPWwrY6OFkVSttp6maTlcc9s
bBSBIgkTLxcA0bStG8zeYecAe4qevddkZhWAAglKco93Y3tjFDNtslCVmZX5
5asK3N3dtVIv9cUR639MRZh4Y1+wnvDFlKdeFLJJJFnvcmjx8ViK2yPW65/3
X1hu5IQ8gEWu5JN0dyGS2Oc83nVx4W6zbbk8haefe51R/85y4Ms0kssjlqSu
lcX4MDlirebegWV5sTxiqcyStN1sPoelSTYOvCQB5ukyBiJn/dGpxaXg8DFM
hQxFas3FchFJtxzZ7aEglpWkPHT/nftRCCuXIrFi74j9OY2cBksimUoxSeDT
MsAP/2ZZPEtnkTyydi0Gf14IUo1s1oml59OI2uTIC4yxSE556H0i9RyxF1E0
9UWDnZ936akIuOcfMU+kk+OU4yIbBTYYXNv//Z8x//t/iLnB4lqkklXGq2zO
hhXycRJzR8yPvcSxYaJJfmC/FWMhDdoD7k9YOVgl3JlzIMlGwpmFkR9NPdCZ
wUgucN0xp1m2EwUmq559zhdShI4wuPX4reeyLqs8qvIccl8kACz9ULNKYfTY
dWk/lgPWl944S0vrKPLdmfSS1OMh6/uBkFFaQ7/rR5k78QEzJn0nX3ks1Eo7
ERXSfXfBpcvOxcJL6kzQ7VxemgQFzbd9nH/sOTwMDVto1UdL1gE1uI8iKKOl
zWn2BnLDWRaAT77MPmSP12syw+nHU/xmWFBRfOXzLAGbAU6BRA3N0HNsnpr0
5rjEdvWSYz3BJHrujSFqXAsfnLHOPL/YsMgk6eMCO6YFRND5VCF443PXC379
L8n+/tcs/PVvtUZfo3pLqzxpO1nI0zq6wxkPBXslZJ1nXA5bVTXC3OPUC8Ru
Kvmt8H0hkzULKfSf+NyZ8xqaNwIw6E1Dk7CLS8bHt/rRmoleCKAh2IXnzLjw
k1orda4vzyoBYjoNjrk/FWPJ14U8ESEbOjNAb/qphtiFSLlJawz/Js5xAMNr
wv0MjngDMcv/9W91YWtFh+9vHeHz+XGYtNYoQQQUkt0CvZ73vo7WdbQQElOR
GQdxkQ2LbBcWHcc4xQ2TdeIzAGvMXkbBOANl1Ah6DlEaYta4Ev1iWnYc+vDQ
h2d26FcjhvTm7HI5BZ/9+tAK9p5/T3kiJAprZrqBVAbq6LizWy6XWQ2HkeBB
mRRN6NPSY66X2tm8QvmChxk7kaA8QPEjEADIg3C8vyGGnERj9pIDpeWjY/F4
RvOPneIpUbV2d3cZ6BkczEmtDnPLOsQLWTqDyiQCAiG7BMZsuExSEbBtwMQO
8xLGWSBQUi8JYC5PmQg5VDMJE5OJ53giTBmohbmQBSi1CJcFPORTEeCjaKIY
XA5pW5RgbXaWAufbyL8FMrk04ZSpusFLlywCv2VQsrgkWMLSiCWxcDzgSLQS
IWFGwm49Dt7ApHCgboEaBPYfLZAUFliczTwhuXRmEPd9qJJk5qSZFFV5cTaK
KEG4CCs1ACdIgASQdwr/xym9ko1tWZ2wZMswqyopgcwsSlLcab5z2jVJSyRx
SO8YFGWopBMCT+4gc0C0Wg3KNpYHUMxB1EDJHdQPrE9nMsqmMxYBWVnaKbHZ
aAamg3oyIyvEMoqjRKAxQ7FgwqhJy21gXdhQlWiDZDVwgmKX1lHKVbax2WlG
Ss2ZkRpCBpmWZYmALyCIgaCIRrnrekgYzOKFQC5QbPg4ytJNOiKz4TOHx3xs
KCoXDGjcmgpP7tU4eUXguS74qvUE/V1GLgAEE7Z1ttEvPn/+w3DUa+3d3TVM
gC482KhapIaIUwHAJQNnhK26nkNijJeGdhW8tcgLAOuMZle3pbfiSRZDxY3K
MgGmMARWNy2aKAi5ERmhAXqD6OBW/EVDt0At6dPQYEPLA86B3oqCgungG4AJ
+F1GGnqmETFm3EI8wiiBC7Rz4XqpXD+B0iTwUA/wGEQIhZPmM6u7zrVC8eBN
75owMOpekxLYwZ4GOpErubMxl9LTHleGKc8wMe0TXAG1leapZGkzy0Idan9x
lTeYDgKfA+Ei8AjYMBF2GaA94SNUHBgqDPeKuQRlprgF2F9u/yqCcUv1/oAI
QzAkbOpnQlmTF7qE8LQkZ1pHeeGqub6rWlWOBBUqVkYwXQM3xio5hUG3iF5G
CAj4HDfnQTSJErU72NIt9z1sPDHymrONjW8rYCFT2oYG3w75DBpg2O/aqHcz
YkWhv4TiMFokgM2FtgPGFAiAWUIygztyFwXFaASt6VRJbiQEghe0uCieIVxN
yCqjlTDNV8YtSgcReqULVYADAkyALhBB8M1FjmJKJhGGWfR+Hbhpn8AA+ja5
jAn2kocJQhj2/eQJFBwy8BQCFf6gEWcL8uCtizfD0VZD/csur+jzoP/6zdmg
38PPw5ed8/Pig5phwZerN+f6OX4qV3avLi76lz21GEbZytBF5x38A8aytq6u
R2dXl53zLQUQ0zwYn2CfY4xpYOQYix4XgeqKxIG0qkD1l79YJ+CrrX2Imj8N
TrvtVuv53Z3+8qz1dB++LCBZED9lcvUVzAARM44Fx9BiIbbAZQC+Pub4hIAB
QQtyIAKn1B7YfQrNY57Sa8I31ENgsomMMJL/BNK1UaSGtpH2QogIMsC9TDx0
D+RzZFl/ZAggZ2naFtp1KAXqYlYee4FbGIFTZTGFLBLLCCp2STb3a6RZOvlj
yUAKUwMDBf0RBCsFpkoMy8oqAFlk0NVW8/8CUgHBOSXHoLTlwkcqoXSMHt50
T/JVuZJAz8quz/cPm3d34GMYe5UrYYqjNWhmJQ462xAU5QH/6zxWQM+4hHgx
vHVoCL/t0BoU1xxVWgm86YwqolAIF+EHbRwYEsBSujKeTQAazjqXHdDMFIs+
ivLgdT1vMhF0mKIBgSKimctgQ5CccUx8iwgivIdWxpjdzGM5Eb/snr/p9UnS
lvmAsx64aXdUiT1gEpSOEEZOXUY0FYXBLqDv4pwQUkFRRa8Ax2S8ximPloH3
EYjr+gSGBoMhdDV/pFoBTAdWzcmkHDpilS5C08boj1RmYqoXOd1JJnXqdz0p
VFLNEtx297Jz0ceo3PE9nlxEbgUxia2Yl5SCzE+9GMJtLoi5T3B4KNLruCVF
+WtS1+bCuiKIMaCgY5vIVHrmaXU3ZOkoFPUyQ0csye1J64AL6aJrRuST1HOw
LITaNXQr6gCzVbZCRgz4Ry/IAhZmwRiIwBxzT42N2gOz7GvVqYGz69t9sKlq
v+DLIX0xEu9ciFjXjJhQIFVnqsDbpyWHSrObMKeyM4mfw/QFEFBr8dMhSrMy
VOwU43hOtgrz9ZKvWp3r+JlvVYMSy/xqJMsTIhL+zv6OZMAsnYMob5ego6ip
aICZrtPzddqBYEQ/MAv0sUAb4/pPCBIn05n7TSJWrVwTdFUNgnE3Xw2lSgAV
ssxVUJYsEMKolOIpZ+j5soY3YDzR6VfnCVe7Xt4QFIWzEZ7XIgiEwU6eNAYJ
KBlyP9LMzUbVplnTRQCwvMtYWZY3EoUv585uzkxKo+nkTixwW9+BdmLx0X5A
JAJlpEoqbBVBb2i6YU6fp6tlqxaaWvbNeRqcS3HlC8x4JGackW8XOqtky7Xe
Up2mrDQxUMLqUED+YHZCZEOsv1VTppjo9E5Ve1m40TCEp2os8Qp6eGwhFAd4
KLxblXuk+AD+nha6UvZnYw+xe7ZW3xc1BgXQ9bhVqzxSFFjGraKYqv0G8yYl
bFHDVOrrpqNBDZNK03ycYBqupjnKU4SHai1UZyqlR+hNkqJCGi9JrqIUpI0r
JUHnKXWCDnUcyQuGDSqGOkEC/VzXuoAYElc6HDKtZ1mndD5CLQmebOtMQ5UJ
YHkcFYEV+ePJmKpfqmcuNuskai6E81nkUtWb+S6SAG+beNNMqnCK8ZGaDmxb
QU2kr0whkvSFVoWAC107l0t12ACMiTYGwLoNvtVST7DniTOJ7TCWBX1smCc+
n+r4g4pbiWW9K3YCfPUVJ1q8mEriamPlOZiEAakz/C9dNCaGdgpUoo60u1MX
WTlxqNopbybHavdqWPHmCstbxGCLbff6O+QQjOkTHyp8PxYVF263yaARQiPw
3cGgYaLJU9RGJ718/hZVvGjMQfdKV2aorWRr9dimhnJxQEmd1CTCugLKYa09
ut91FYJ5opxoB9oStvL3fZNtXwxPdtbGW2z7HMbLBd/v7n7d//TS5hH7Av/0
/zSirnFXbZX+vmjSN/3BEHrHgtWXf55rG7j2rr50r770+l9Y5e+X1b1+C64W
hJ90JXyAKSiWodNAcAVnyo90khz9ZlapxHssq/WhCXccEaeVAkOlb4V7rEVt
nWWJreNDrgTbbyfK0z8JGe2YrFf4ZCHky5hrzM8AhL4wfGpGwbbob8ZaaHSv
BubS4qSG9mmkiDI8GMJpPCt15JWeE8VeWXUU6yzVeFFUgMierMXc9bOq6tkU
pRKqBesqKZDdM4uj2uMtXIgBvCjj80Suj7IiIlVGo9KUhiaojVaCq4MRfE+i
OGAsWmzY6av+OxUvIUpAWFVlAKygMfgXTZpLgFU6cUPBtXJUgWOoqAHMMyga
lmVuxekIH1y//cvw1U6jOCvPi4BqtaESaVobc0n/quGnKlmEHkRr0Dk10wSd
3MqURqgkq02T+HJIfmhppuxS0YjBsgwoGWD+LGuClcKf0gJ0OA6Vp9EinEqO
535pyp05FQw3igGqZJhmY2j87ykgNFzoVoINhZNh3bbboWf3LkQ5oMJReWAs
oPsC2dCW+P4CrfESE4yatHEIoulAtyR8n45w6Jyii9dQLtUo8AmQioOUyMiW
OpNBdqCzZLNiyqE+yItVfRi0PRjssNG76z4SUYcgjdJwgeAEH1D1Fuh8ps43
K3VtkWu3SHwyNUxV4dE4GLQ3SUsJS3sFpc4wvxdEBwHJTzFLFtKx7c+f/wAt
+35zb//ubqfwELVRJLB9uWNsQR07xihsntv/OTmRBR0K5bmavRQcrVov5+Gz
5y2Q05BIvdnlKQX2+g1TzLSUU9+mug/Le6pVMOh1Rp2ViwVeIKBRXLfmp2sn
HlXBeK5204WyYFV0dSpCV71YoVF/Zx71av1gFUbWUyrSN33av0tQ6ZMi5RTi
YwxemsebiTp0V5IuIjmnihj4qQvqMXgvugDrf+QBdJCJaqRVGaSuVWhc3wrg
efpHR8hY24nn0V5GUR7koYtSk+t6QsLUliZqK/1vQTZN7S3F2XhmrEWHrhTv
RaNLaxSB+gV42gJKrFwk0+295gMf95pNdnap57cYt4tndNDyY+t5227abRtq
ubXCz/yjw5gf281m66h38uzoqMV27mXVZGHSLpiF2Hg9NH2vmB7J6abp0MSd
vci3s8f2abzdbB8026391uH+s/1nD+xETW4+be3t78Hkdqt92GI2e7nsvXx3
Mzp45Xx46zz92bZ/3LhD0Df8laq8d9r4MUpQU53HKKBHUw8PWod7qIA2Ozh9
dnjaPt3r9NsnzbZtQylyr+qG31ZvV835wcGz9y9nS9lttx7QG7RuJgRh23TS
gnLRQ/XW6n3i07RvuoHWK//ZLR8/P5y+aLc6vNyAIagWoUN0CpfZNAv+kFvh
Ktr71z1ZhQ3055qKxHRsBQb6D1FRG7rf4TbM/h9zoOfPOtx5PnnaaXWc9uFr
0uMmkXMkqCe1ANgkeRUA30Ty+fun794dpPL57OmbD/6rEgHYWwx07bmWPZL8
0gAzQlmragskR6ozuSr7rUal+8LHT9hranIwcUyiKLdeuQfrhx90mXDEXg/U
EcCPTRq38uevMZkimphl0MADiEt28adiWidMFlBt0OdtEcTpcsei8eJkkVkP
h7p7JlUD3T0Tq2EOszWKUb6vACMPul79nFXHY6xOy4gsa0WzsFApd+8e1eaQ
JMWyr9KsoYThVYdBlK7Zdbm+8HYFBQNJ0N09HkeqGqjuFOiUMFKPS07VPeNI
FVImpvT8Yvf6e66ByhxDEwW08T+PAtx9E9dAd9/kNeDVT35Ehv3tKdbQwFdE
qLoka6jXQNHjMtfmeWu5q4TiJk+qxVjpUFWYPQA1I+obXvYYvG3Cml0qd8UB
658qE94/R6cvTm8G4VQzg6kG9Jery/5F714eK5nsd5Eq+cnpO57Mf3DfT4xc
WQfEVQOVONqYFyG2fXU0669Hs0dFMhXIfiuo/l80WI+z2tf6fuH4zd/g9t/I
5x9fI38VchV6NyTjh8Bbg92rWvg+oKra+u4BPVXmPD4X/w4xXT/9/8Khwe+n
qvjfKCvuqcwLQG50mX/VFv+qLVh9baHM+YR1nHkYLXzhTtW58uejLFTvxwn3
bvXVcLxVEfzWw6tLju8U0Ovm+KILnim7eCE2Xpa/LsarBuvz55/Odnu2+unw
LoStu7vyLXh1Z69OidMZD+fFZW4sIjxxngk/pgsSfXdX/EbjyPo5moXsXNx6
oWiYP1xrsJ9h9kDgiy74w8BX3M3mDXbBk1kUfWAX2Yx7AU3jCUy8iKTgGXwT
UkYue+uJJODw9MTDi76RJ+AbfH0RSRdnc/mRxD+R+JPdt8LHt1DSKKQ7pNFV
78qyBqdd1u+dja4GR9YRuz7vd4aQvfoXVzd9NnqJ/z8DwPa7+Io3ux6cXQ1g
Ibt+c3J+1u3goI2vwr4F98F7seLyyqncTeWnKjCzC4qbivyiNb+bwHsjAGUQ
R1K/ehILCXtRr/g7Ql145a8z2GxUTM0S0C5j+du4r/F9ZuDu0ptEhwf7e23j
KV3Q4M0MvXkCE/aMh9oNzcdN1JOW+DyafhttQXxMPNxT/a/3m6jPrs+lN8Gr
cXqFU79RjHfwM0B0lEmcBL4DE/I3x/DVLONNZVChoj9Tv7rU5IGxpF/ccV+N
PChPC1kNhPpdIboRAipJAYeBT68M0qUJ3WtrbxjjbWWAP4fL1A8i9D0IXcbQ
4ScwcEgKfItav3mINqOTU/3KXAkGQe9mFxvOj+KsfwCwJ4cnPkEAAA==

-->

</rfc>
