<?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.2 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-deleg-00" category="std" consensus="true" submissionType="IETF" updates="1035" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="DELEG">Extensible Delegation for DNS</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-deleg-00"/>
    <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>
      <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:
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
PkEAAA==

-->

</rfc>
