<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' []>
<rfc ipr="trust200902" category="std" docName="draft-pwouters-ds-uplifting-00">
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc private=""?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<front>
<title abbrev="parental-rrtype">Updates to the The Delegation Server (DS) Record</title>

<author initials="P." surname="Wouters" fullname="Paul Wouters">
<organization>Aiven</organization>
<address>
<postal>
<street></street>
<city></city>
<code></code>
<country></country>
<region></region>
</postal>
<phone></phone>
<email>paul.wouters@aiven.io</email>
<uri></uri>
</address>
</author>

<area>Operations</area>
<workgroup>dnsop</workgroup>
<keyword>dnssec</keyword>
<keyword>ds rrtypes</keyword>


<abstract>
<t>This document updates the DNSSEC Delegation Signer (DS) Resource Record (RR)
Type Digest Algorithms IANA Registry to carry two new non-digest algorithm entries.</t>

<t>The first new type value creates a generic method to embed a Parental
RRtype within the DS record.  The second new type value creates an Alias
DS record to point to the actual DS record published in a different
DNSSEC signed zone under DNS Provider change control.</t>

<t>The DNSSEC Delegation Signer (DS) Resource Record (RR) Type Digest
Algorithms Registry is renamed to the DNSSEC Delegation Signal Registry.</t>

<t>
This document updates [many things which we should figure out].
</t>
</abstract>
</front>

<middle>

<section anchor="introduction" title="Introduction">
<t>The Delegation Signer (DS) Resource Record Type (RRtype)
<xref target="RFC4034"/> has the unique property that the record is stored
at the parental side of the delegation instead of at the child side.
It is currently the only record with this property. As this property was
a significant modification of the existing DNS protocol, it took many
years for DNS software and DNS deployment to reliably serve and resolve
this RRtype.</t>

<t>A number of proposals have surfaced that want to create
similarly behaving Parental RRtypes. This is faciliated by <xref
target="PARENTAL-RRTYPE"/>. Like the then-new DS
RRtype, it is expected to take many years before Parental RRtypes are
supported on the global internet.  To facilitate new Parental RRtypes
in the immediate future, the only possible interim solution is to use
the DS RRtype through special Digest Algorithms values.</t>

<t>Furthermore, DS records are difficult to update for DNS Providers,
as only Registrants or Registrars can update these records via the EPP
protocol <xref target="RFC5730"/>.  While a mechanism for updating DS
records by the DNS Provider via CDS records <xref target="RFC8078"/>
was created 7 years ago, hardly any TLD support consuming CDS records at
this time. An update mechanism under change control of the DNS Provider
that not depends on Registry support is needed.</t>

<t>This document adds two special Digest Algorithms. One value is used to
embed a Parental RRtype. The second value is used to specify a DS-redirection
record that can be pointed to a signed zone under change control by the DNS
Provider.</t>

<section title="Requirements Language">
<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 title="DNS Terminology">
<t>This document uses DNS Terminology as described in BCP 219 <xref target="RFC8499"/>.</t>
</section>
</section>

<section anchor="traditional-ds" title="Traditional DS RRtype">
<t>The traditional DS RRtype Wire Format is defined as follows in <xref target="RFC4034"/> Section 5:</t>

       <figure align="center">
            <artwork align="left"><![CDATA[
                       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Key Tag             |  Algorithm    |  Digest Type  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                            Digest                             /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
        </figure>
<t>The Digest length depends on the Digest Type.</t>
</section>

<section anchor="ds-parental-rrtype" title="Parental RRtype inside DS">
<t>If the Algorithm field contains the value 253, the DS record MUST be
interpreted as an embedded Parental RRtype using the following Wire Format:</t>

       <figure align="center">
            <artwork align="left"><![CDATA[
                       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Parental RRtype          | Algorithm=253 |  Reserved     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           TTL                                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                           RRdata                              ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
        </figure>

<t>The CLASS of the embedded RRtype is identical to the CLASS of the
DS record that contains it. It is not expected to be anything other
than IN.</t>

<t>To avoid ambiguity of RRtypes embedded in the DS RRtype, only RRtypes
with the Parental RRtype flag are accepted as embedded RRtype, with the
exception of the DS RRtype itself which is disallowed. For example, the
currently proposed DELEG RRType <xref target="I-D.dnsop-deleg"/>
could be embedded in this DS record.</t>
</section>

<section anchor="ds-indirection" title="DS redirection">
<t>If the Algorithm field contains the value 254, the DS record MUST be
interpreted as DS-redirection record using the following Wire Format:</t>

       <figure align="center">
            <artwork align="left"><![CDATA[
                       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Reserved (SHOULD be 0)   | Algorithm=254 |  Reserved     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                           FQDN                                ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
        </figure>
<t>The FQDN MUST NOT use compression.</t>
<t>If the target FQDN does not resolve with Authenticated Data for QTYPE=DS,
the resolver should consider its DNSSEC state to have reached the Indeterminate
state as defined in <xref target="RFC4034"/> Section 5.</t>
<t>What to say if the DS target itself is an DS-redirection?</t>
</section>

<section anchor="operational-considerations" title="Operational Considerations">
<t>It is expected to still take some time before these two DS type records are
widely interpreted to the meaning defined in this document. Until then, classic
DS records MUST be used to ensure the domain is properly secured with DNSSEC.
However, the two DS type records defined in this document can be deployed by
authoritative servers without risk of negatively affecting the DNSSEC status
of the domain, as unknown Digest Algorithms are treated the same as if the
DS record did not exist.</t>
</section>

<section anchor="security-considerations" title="Security Considerations">
<t>What to say here?</t>
</section>

<section anchor="iana-considerations" title="IANA considerations">
<t>This document renames the DNSSEC Delegation Signer (DS) Resource Record (RR) Type Digest Algorithms
Registry to the DNSSEC Delegation Signal (DS) Resource Record (RR) Types Registry.</t>
<t>This document is added to the Reference section.</t>
<section anchor="iana-table1" title="DS Type Table">
<t>A column "Digest Algorithm" is added to the table after the Description column.</t>
<t>The column "Status" is renamed to "Algorithm Status".</t>
<t>The "Digest Algorithm" colum is populated with "Yes" for all existing assigned values, except 0</t>
<t>The Unassigned entry is updated from "6-255" to "6-252", and a new row for value 255 is marked Unassigned</t> 
<t>Two new entries are added to the table:</t>

<texttable anchor="tbl1a" suppress-title="true">
 <ttcol align="left">Value</ttcol>
 <ttcol align="left">Description</ttcol>
 <ttcol align="left">Algorithm</ttcol>
 <ttcol align="left">Algorithm Status</ttcol>
 <ttcol align="left">Reference</ttcol>
 <c>253</c><c>Parental RRtype</c><c>-</c><c>-</c><c>[this RFC]</c>
 <c>254</c><c>DS Redirection</c><c>-</c><c>-</c><c>[this RFC]</c>
</texttable>

</section>
</section>

<section anchor="yang-model-update" title="Yang Model Update">
<t> update RFC 9108 for yang. TODO</t>
</section>

</middle>
<back>
<references title="Normative References">
<?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
<?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"?>
<?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml"?>
</references>
<references title="Informative References">
<?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5730.xml"?>
<?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8078.xml"?>
<?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8499.xml"?>
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.dnsop-deleg.xml"?>
   <reference anchor='PARENTAL-RRTYPE'>
      <front>
      <title>Parental Reource Record Types in DNS</title>
      <author initials='P' surname='Wouters' fullname='P. Wouters'>
      <organization>Aiven</organization>
      </author>
      <author initials='V' surname='Dukhovni' fullname='V. Dukhovni'>
      <organization>Google DNS</organization>
      </author>
      <date month='February' day='4' year='2024' />
      <abstract><t>
       This document updates the DNS Parameters' Resource Record (RR) TYPEs
       registry by adding a field denotating "Parental RRtype" that
       instructs DNS name servers to store or query RRtypes that have this
       new field set at the parent side of a delegation instead of at the
       child side.
       </t></abstract>
      </front>
   </reference>

</references>

<section anchor="acknowledgments" title="Acknowledgments">
<t>The idea of using the DS record for other purposes has been suggested by various
people in the past</t>
</section>

</back>
</rfc>
