<?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.26 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dyson-primary-zonefile-initialisation-01" category="std" consensus="true" submissionType="IETF" updates="9432" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title>Initialisation of Zone Files on the DNS Primary Server</title>
    <seriesInfo name="Internet-Draft" value="draft-dyson-primary-zonefile-initialisation-01"/>
    <author fullname="Karl Dyson">
      <organization>Nominet UK</organization>
      <address>
        <postal>
          <street>Minerva House</street>
          <street>Edmund Halley Road</street>
          <street>Oxford Science Park</street>
          <city>Oxford</city>
          <code>OX4 4DQ</code>
          <country>UK</country>
        </postal>
        <email>karl.dyson@nominet.uk</email>
        <uri>https://nominet.uk</uri>
      </address>
    </author>
    <date year="2025" month="March" day="25"/>
    <keyword>catalog zone</keyword>
    <keyword>zone file initialisation</keyword>
    <keyword>primary server</keyword>
    <keyword>master file</keyword>
    <abstract>
      <?line 47?>

<t>This document describes an update to "DNS Catalog Zones" (<xref target="RFC9432"/>) that facilitates a method for the primary server of a DNS zone to create the underlying master file for member zone(s) using information contained within a catalog zone.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/karldyson/draft-dyson-primary-zonefile-initialisation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 51?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Once a DNS zone's master file exists on the primary server, there is a standard way to automate the distribution of that zone to secondary servers defined in "DNS Catalog Zones" (<xref target="RFC9432"/>). Further, there is a standard way to dynamically alter the contents of a zone defined in "Dynamic Updates in the Domain Name System (DNS UPDATE)" (<xref target="RFC2136"/>).</t>
      <t>However there is no standards-defined method of initialising a new master file for the zone, ready for such operations.</t>
      <t>Various DNS software products have proprietary mechanisms for achieving this, some requiring that the zone master file is somehow pre-populated on the primary servers' filesystem.</t>
      <t>Operators of large scale DNS systems may want to be able to signal the creation of a new file for a new zone without wanting to be tied to a particular vendor's proprietary software. Further, they may want to avoid the need or overhead of engineering a bespoke solution with the ongoing need to support and maintain it.</t>
      <t>Having dynamically provisioned a new zone on the primary server, the operator may then manage resource records in the zone via "DNS Dynamic Updates" (<xref target="RFC2136"/>). In this scenario, they may also want to distribute the zones to secondary servers via "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
      <t>This document defines a vendor-independent mechanism of signalling to the primary server that a new file is to be created for the new zone, populated with basic minimal initial zone data, and then loaded into the server to be authoritatively served.</t>
      <t>The scope of this document is confined to the initial provisioning and loading of the zone on the primary server, including the creation of it's initial zone file, configuration and state.</t>
      <t>Broader provisioning of the base nameserver configuration is beyond the scope of this document.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following is in addition to the conventions and definitions as defined in "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
      <t>The use of parenthesis in the examples is as described in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 5.1.</t>
      <section anchor="primary-server">
        <name>Primary Server</name>
        <t>Within DNS servers, specifically when transferring zones to other servers, there is the concept of a primary server and a secondary server in each transfer relationship.</t>
        <t>Each secondary server will be transferring the zone from a configured upstream primary server, which may, itself, be a secondary server to a further upstream primary server, and so on.</t>
        <t>However, within this document, the term "primary server" is used specifically to mean the primary server at the root of the AXFR/IXFR dependency graph. This server is where the resource records that form the zone's content are maintained in the master file. Thus, that server does not transfer the zone from another server.</t>
      </section>
      <section anchor="master-file">
        <name>Master File</name>
        <t>The term "master file" is as per the description in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 5, noting that some software products offer data stores for the master file that are not an actual file on a filesystem, such as a database.</t>
      </section>
    </section>
    <section anchor="catalog-zone-properties">
      <name>Catalog Zone Properties</name>
      <t>This section specifies new Catalog Zone level properties, additional to those defined in "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
      <t>If initialisation of the underlying master file for the member zone is not required or is disabled in an implementation's configuration, then the various initialisation properties defined in this document <bcp14>MAY</bcp14> be absent, and in that context, their absence DOES NOT constitute a broken catalog zone.</t>
      <t>However, if the initialisation of the underlying master file for the member zone is enabled, and the properties and parameters defined below constitute a broken configuration as defined in this document, then the catalog is broken, and <bcp14>MUST NOT</bcp14> be processed ("DNS Catalog Zones" (<xref target="RFC9432"/>) Section 5.1).</t>
      <section anchor="schema-version-version-property">
        <name>Schema Version (version property)</name>
        <t>For this memo, the value of the version resource record is unchanged.</t>
        <t>"DNS Catalog Zones" (<xref target="RFC9432"/>) Section 3 is clear that "Catalog consumers <bcp14>MUST</bcp14> ignore any RRs in the catalog zone for which no processing is specified or which are otherwise not supported by the implementation." and as such the addition of the records outlined in this document will be ignored by implementations that do not recognise them.</t>
      </section>
      <section anchor="zone-file-initialisation-init-property">
        <name>Zone File Initialisation (init property)</name>
        <t>When suitable configuration is activated in the implementation, and a new member zone entry is added to the catalog, the primary server <bcp14>MUST</bcp14> create the underlying master file for the zone using the values of the properties and parameters outlined in the init property. The implementation <bcp14>MUST</bcp14> also create the relevant dynamic zone configuration and state, load the zone, and serve it authoritatively.</t>
        <t>It is not necessary for the catalog zone's primary server to be the member zone's primary server, however, the same server <bcp14>MUST</bcp14> be the primary server for all member zones within a given catalog zone.</t>
        <t>The implementation may permit the following on a global, or per catalog basis, by way of suitable configuration parameters:</t>
        <ul spacing="normal">
          <li>
            <t>The master file is ONLY created for the zone if the master file does not already exist</t>
          </li>
          <li>
            <t>The master file is NEVER created (effectively, the initialisation capability is disabled for this catalog or primary server, and the master file would be expected to exist as is the case before this document)</t>
          </li>
          <li>
            <t>The master file is ALWAYS created when a new member zone is added to the catalog zone, overwriting any existing master file for the zone</t>
          </li>
        </ul>
        <t>If a server is consuming a catalog zone and is configured to be primary server for the member zones therein, it <bcp14>MUST</bcp14> perform the actions as defined within this document. All other servers <bcp14>MUST</bcp14> ignore the additional records defined herein, as per "DNS Catalog Zones" (<xref target="RFC9432"/>) Section 3.</t>
        <t>A number of sub-properties, expressed as labels within the bailiwick of the "init" label, define the initialisation parameters.</t>
      </section>
      <section anchor="start-of-authority-soa-property">
        <name>Start Of Authority (soa property)</name>
        <t>The soa property is used to specify the SOA that will be applied to the created zone file for the member zone.</t>
        <t>There <bcp14>MUST</bcp14> be one and ONLY one soa property record defined in a given scope.</t>
        <t>Multiple soa property records within a given scope constitutes a broken catalog zone.</t>
        <t>See the <xref target="memberZoneSection"/> for clarity on scope inheritance.</t>
        <t>Absence of a soa property similarly constitutes a broken catalog zone.</t>
        <section anchor="parameters">
          <name>Parameters</name>
          <t>With the exception of the serial number, the SOA record parameters are supplied as three character-string values in the RDATA of a TXT resource record.</t>
          <t>The first being the MNAME value, the second being the RNAME value, and the third containing the numeric timer values in decimal in the same order as expected in an SOA resource record, as defined in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 3.3.13.</t>
          <t>All three <bcp14>MUST</bcp14> be present.</t>
          <t>The MNAME and RNAME <bcp14>MUST</bcp14> be fully qualified, however a terminal @ label can be supplied to indicate the member zone's name. In this case, the @ label <bcp14>MUST</bcp14> be substituted with the member zone's name at zone file creation. See also <xref target="generalBehaviourSection"/>.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <artwork><![CDATA[
soa.init.$CATZ 0 TXT ( "ns1.example.com"
      "hostmaster.example.com"
      "14400 900 2419200 3600" )

soa.init.$CATZ 0 TXT ( "ns1.@" "hostmaster.@"
      "14400 900 2419200 3600" )
]]></artwork>
        </section>
      </section>
      <section anchor="nameservers-ns-property">
        <name>Nameservers (ns property)</name>
        <t>Actual NS records cannot be used, as we do not want to actually delegate outside of this catalog zone.</t>
        <t>The nameserver parameters are supplied as key=value pairs in the RDATA of a TXT resource record, with the pairs separated by whitespace.</t>
        <t>If the nameservers are in-bailiwick and address records are therefore required, suitable address records <bcp14>MUST</bcp14> be created in the member zone's master file from the parameters specified.</t>
        <t>If the nameservers are in-bailiwick of a zone in the catalog, and an address is not specified, this would result in a zone that will not load - this denotes a broken catalog zone.</t>
        <t>There <bcp14>MUST</bcp14> be at least one ns property record.</t>
        <t>Therefore, a catalog zone that contains no nameserver entries applicable to a given member zone constitutes a broken catalog zone.</t>
        <t>The ns property can be specified multiple times, with one nameserver specified per entry.</t>
        <section anchor="name-parameter">
          <name>name Parameter</name>
          <t>The "name" parameter <bcp14>MUST</bcp14> be present, and contains the hostname of the nameserver as it is intended to appear in the corresponding NS record's RDATA in the zone's master file. See also <xref target="generalBehaviourSection"/>.</t>
          <t>The value of the "name" parameter <bcp14>MUST</bcp14> be compliant with "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 3.3.11.</t>
          <t>An ns property record that does not contain a "name" parameter consistutes a broken catalog zone.</t>
        </section>
        <section anchor="ipv4-and-ipv6-parameters">
          <name>ipv4 and ipv6 Parameters</name>
          <t>The "ipv4" and "ipv6" parameters are <bcp14>OPTIONAL</bcp14>. They contain the IP address(es) of the hostname specified in the "name" parameter.</t>
          <t>If the value in the "name" parameter is in-bailwick, and hence requires that the relevant address enties are also created in the zone, at least one of either the "ipv4" or "ipv6" parameters <bcp14>MUST</bcp14> be specified.</t>
          <t>The value of the "ipv4" parameter, if present, <bcp14>MUST</bcp14> be a valid IPv4 address, compliant with "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 3.4.1.</t>
          <t>The value of the "ipv6" parameter, if present, <bcp14>MUST</bcp14> be a valid IPv6 address, compliant with "DNS Extensions to Support IP Version 6" (<xref target="RFC3596"/>) Section 2.1 and <bcp14>SHOULD</bcp14> use the representation defined in "A Recommendation for IPv6 Address Text Representation (<xref target="RFC5952"/>) Section 4.</t>
          <t>An ns property record that contains an in-bailiwick name, but does not contain at least one address parameter constitutes a broken catalog zone.</t>
          <t>Only records within the member zone are within the scope of this document; if the primary server is also coincidentally the primary server for a member zone's parent, regardless of whether the parent zone is also a member zone, it is the responsibility of the parent zone's administrator to ensure the delegation and any required glue resource records are present in the parent zone.</t>
        </section>
        <section anchor="examples-1">
          <name>Examples</name>
          <artwork><![CDATA[
ns.init.$CATZ 0 TXT ( "name=some.name.server."
      "ipv4=192.0.2.1 ipv6=2001:db8::1" )

ns.init.$CATZ 0 TXT ( "name=another.name.server."
      "ipv4=192.0.2.129 ipv6=2001:db8:44::1" )
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="memberZoneSection">
      <name>Member Zone Properties</name>
      <t>The default properties outlined above can be overridden per member zone. If properties are specified in a more specific scope than the defaults, the most specific scope <bcp14>MUST</bcp14> be used.</t>
      <t>A subset <bcp14>MAY</bcp14> be specified in a more specific scope, for example, the SOA could be omitted, and just the NS records specified.</t>
      <t>The omitted properties would be inherited from the catalog level values.</t>
      <artwork><![CDATA[
<unique-N>.zones.$CATZ          0 PTR example.com.
soa.init.<unique-N>.zones.$CATZ 0 TXT ( "<mname>"
      "<rname>" "<refresh> <retry> <expire> <minimum>" )
ns.init.<unique-N>.zones.$CATZ  0 TXT ( "name=some.name.server. "
      "ipv4=192.0.2.1 ipv6=2001:db8::1" )
]]></artwork>
      <section anchor="change-of-ownership-coo-property">
        <name>Change Of Ownership (coo property)</name>
        <t>There is no change to the coo property; if the member zone changes ownership to another catalog, fundamentally, the zone's master file already exists.</t>
        <t>The scope of this document is solely concerned with the initialisation of a new zone's master file, and so in the case of the zone changing ownership, the initialisation parameters <bcp14>MUST NOT</bcp14> be processed.</t>
        <t>Noting that the primary server for a given catalog's member zones may not be the primary server for the catalog zone itself, nor the primary server for another catalog's member zones, operators should consider their implementation's configuration when planning a change of ownership operation.</t>
      </section>
    </section>
    <section anchor="name-server-behaviour">
      <name>Name Server Behaviour</name>
      <section anchor="generalBehaviourSection">
        <name>General Behaviour</name>
        <t>Some of the parameters specified in the initialisation properties contain domain-name values as defined in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 3.3, for example in the NS records and in the SOA. These will be used to specify values in the corresponding resource records in the member zone's file. The domain-name values <bcp14>MUST</bcp14> be fully qualified in the parameter specification in the property.</t>
        <t>Similar to its use in "Domain Names - Implementation and Specification" (<xref target="RFC1035"/>) Section 5.1, a terminal @ label may be used as a short cut for the member zone's name, and in such cases, the terminal @ label <bcp14>MUST</bcp14> be substituted by the member zone name at the point of zone file creation.</t>
      </section>
      <section anchor="member-zone-removal">
        <name>Member Zone Removal</name>
        <t>If the member zone is removed from the catalog zone, then the zone's master file <bcp14>MUST</bcp14> be removed along with related zone configuration and state data.</t>
      </section>
      <section anchor="zone-associated-state-reset">
        <name>Zone-Associated State Reset</name>
        <t>In the event of a zone state reset being carried out, the state of the zone's master file <bcp14>SHOULD</bcp14> be reset as if the file was being initialised for the first time per this document.</t>
      </section>
    </section>
    <section anchor="implementation-and-operational-notes">
      <name>Implementation and Operational Notes</name>
      <t>When configuring the use of catalog zones, implementations should give the operator the ability to indicate whether the catalog zone consumer is a primary or secondary for a given catalog's member zones.</t>
      <t>Secondary servers are not interested in the properties and parameters defined within this document and <bcp14>MUST</bcp14> ignore them.</t>
      <t>A given consumer <bcp14>MAY</bcp14> be primary or secondary, but of course cannot be both. A consumer that has undefined consumer status should default to secondary, which will result in backward compatibility with "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
      <t>It is not mandatory that the primary server for a given catalog zone is also the primary server for the catalog's member zones.</t>
      <t>As well as creating the undelying zone file and initial contents, the implementaion <bcp14>MUST</bcp14> also dynamically create and maintain related zone configuration and state. Further, the implementation <bcp14>MUST</bcp14> load and authoritatively serve the zone to clients.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document does not alter the security considerations outlined in "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following entries to the registry:</t>
      <t>Registry Name: DNS Catalog Zones Properties</t>
      <t>Reference: this document</t>
      <table>
        <name>DNS Catalog Zones Properies Registry</name>
        <thead>
          <tr>
            <th align="left">Property Prefix</th>
            <th align="left">Description</th>
            <th align="left">Status</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">init</td>
            <td align="left">Zone Initialisation Properties</td>
            <td align="left">Standards Track</td>
            <td align="left">this document</td>
          </tr>
          <tr>
            <td align="left">soa.init</td>
            <td align="left">Start Of Authority Property</td>
            <td align="left">Standards Track</td>
            <td align="left">this document</td>
          </tr>
          <tr>
            <td align="left">ns.init</td>
            <td align="left">Name Server Property</td>
            <td align="left">Standards Track</td>
            <td align="left">this document</td>
          </tr>
        </tbody>
      </table>
      <t>Field meanings are unchanged from the definitions in "DNS Catalog Zones" (<xref target="RFC9432"/>).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC9432">
        <front>
          <title>DNS Catalog Zones</title>
          <author fullname="P. van Dijk" initials="P." surname="van Dijk"/>
          <author fullname="L. Peltan" initials="L." surname="Peltan"/>
          <author fullname="O. Surý" initials="O." surname="Surý"/>
          <author fullname="W. Toorop" initials="W." surname="Toorop"/>
          <author fullname="C.R. Monshouwer" initials="C.R." surname="Monshouwer"/>
          <author fullname="P. Thomassen" initials="P." surname="Thomassen"/>
          <author fullname="A. Sargsyan" initials="A." surname="Sargsyan"/>
          <date month="July" year="2023"/>
          <abstract>
            <t>This document describes a method for automatic DNS zone provisioning among DNS primary and secondary name servers by storing and transferring the catalog of zones to be provisioned as one or more regular DNS zones.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9432"/>
        <seriesInfo name="DOI" value="10.17487/RFC9432"/>
      </reference>
      <reference anchor="RFC2136">
        <front>
          <title>Dynamic Updates in the Domain Name System (DNS UPDATE)</title>
          <author fullname="P. Vixie" initials="P." role="editor" surname="Vixie"/>
          <author fullname="S. Thomson" initials="S." surname="Thomson"/>
          <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
          <author fullname="J. Bound" initials="J." surname="Bound"/>
          <date month="April" year="1997"/>
          <abstract>
            <t>Using this specification of the UPDATE opcode, it is possible to add or delete RRs or RRsets from a specified zone. Prerequisites are specified separately from update operations, and can specify a dependency upon either the previous existence or nonexistence of an RRset, or the existence of a single RR. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2136"/>
        <seriesInfo name="DOI" value="10.17487/RFC2136"/>
      </reference>
      <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="RFC1035">
        <front>
          <title>Domain names - implementation and specification</title>
          <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
          <date month="November" year="1987"/>
          <abstract>
            <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="13"/>
        <seriesInfo name="RFC" value="1035"/>
        <seriesInfo name="DOI" value="10.17487/RFC1035"/>
      </reference>
      <reference anchor="RFC3596">
        <front>
          <title>DNS Extensions to Support IP Version 6</title>
          <author fullname="S. Thomson" initials="S." surname="Thomson"/>
          <author fullname="C. Huitema" initials="C." surname="Huitema"/>
          <author fullname="V. Ksinant" initials="V." surname="Ksinant"/>
          <author fullname="M. Souissi" initials="M." surname="Souissi"/>
          <date month="October" year="2003"/>
          <abstract>
            <t>This document defines the changes that need to be made to the Domain Name System (DNS) to support hosts running IP version 6 (IPv6). The changes include a resource record type to store an IPv6 address, a domain to support lookups based on an IPv6 address, and updated definitions of existing query types that return Internet addresses as part of additional section processing. The extensions are designed to be compatible with existing applications and, in particular, DNS implementations themselves. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="88"/>
        <seriesInfo name="RFC" value="3596"/>
        <seriesInfo name="DOI" value="10.17487/RFC3596"/>
      </reference>
      <reference anchor="RFC5952">
        <front>
          <title>A Recommendation for IPv6 Address Text Representation</title>
          <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
          <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
          <date month="August" year="2010"/>
          <abstract>
            <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5952"/>
        <seriesInfo name="DOI" value="10.17487/RFC5952"/>
      </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>
    </references>
    <?line 292?>

<section anchor="examples-2">
      <name>Examples</name>
      <section anchor="catalog-zone-example">
        <name>Catalog Zone Example</name>
        <t>The following is an example catalog zone showing the additional properties and parameters as outlined in this document.</t>
        <t>There are defaults specified for the SOA and NS records, which would be used by the example.com. zone.</t>
        <t>The example.net. zone would utilise the default SOA record, but would utilise the more specific NS records.</t>
        <t>The default nameservers are in-bailiwick of example.com, which is in the catalog, and so the address record details are supplied in order to facilitate the addition of the address records.</t>
        <artwork><![CDATA[
catz.invalid.                   0 SOA invalid. invalid. (
      1 3600 600 2419200 3600 )
catz.invalid.                   0 NS invalid.
soa.init.catz.invalid.          0 TXT ( "ns1.example.com."
      "hostmaster.example.com." "14400 900 2419200 3600" )
ns.init.catz.invalid.           0 TXT ( "name=ns1.example.com. "
      "ipv4=192.0.2.1 ipv6=2001:db8::1" )
ns.init.catz.invalid.           0 TXT ( "name=ns2.example.com. "
      "ipv4=192.0.2.2 ipv6=2001:db8::2" )
kahdkh6f.zones.catz.invalid.    0 PTR example.com.
hajhsjha.zones.catz.invalid.    0 PTR example.net.
ns.hajhsjha.zones.catz.invalid. 0 TXT "name=ns1.example.com"
ns.hajhsjha.zones.catz.invalid. 0 TXT ( "name=ns1.example.net "
      "ipv4=192.0.2.250 ipv6=2001:db8:ff::149" )
]]></artwork>
      </section>
      <section anchor="examplecom-master-file-example">
        <name>example.com Master File Example</name>
        <t>This is the resulting zonefile for example.com as initilised from the above catalog zone example.</t>
        <artwork><![CDATA[
example.com.     3600 SOA ns1.example.com. hostmaster.example.com. (
                           1 14400 900 2419200 3600 )
example.com.     3600 NS   ns1.example.com.
example.com.     3600 NS   ns2.example.com.
ns1.example.com. 3600 A    192.0.2.1
ns1.example.com. 3600 AAAA 2001:db8::1
ns2.example.com. 3600 A    192.0.2.2
ns2.example.com. 3600 AAAA 2001:db8::2
]]></artwork>
      </section>
      <section anchor="examplenet-master-file-example">
        <name>example.net Master File Example</name>
        <t>This is the resulting zonefile for example.net as initilised from the above catalog zone example.</t>
        <artwork><![CDATA[
example.net.     3600 SOA ns1.example.com. hostmaster.example.com. (
                            1 14400 900 2419200 3600 )
example.net.     3600 NS   ns1.example.com.
example.net.     3600 NS   ns1.example.net.
ns1.example.net. 3600 A    192.0.2.250
ns1.example.net. 3600 AAAA 2001:db8:ff::149
]]></artwork>
      </section>
    </section>
    <section anchor="author-notesthoughts">
      <name>Author Notes/Thoughts</name>
      <t><em>NB: To be removed by the RFC Editor prior to publication.</em></t>
      <t>The term "Primary Master" ("DNS Dynamic Updates" (<xref target="RFC2136"/>) Section 1 is not applicable as the primary server noted in this document likely is NOT listed in the MNAME or NS.</t>
      <section anchor="is-catalog-zones-the-right-place-for-this">
        <name>Is catalog zones the right place for this?</name>
        <t>Much consideration has been given as to whether the primary server should be consuming the/a catalog zone, rather than simply serving it to secondary servers for consumption.</t>
        <t>It does feel a little bit like it muddies the waters between zone distribution and zone "provisioning" but:</t>
        <ol spacing="normal" type="1"><li>
            <t>In a catalog zone scenario, the catalog equally feels like the place for zone related parameters</t>
          </li>
          <li>
            <t>It feels less like Dynamic Updates would be the right place for it, for example; Dynamic Updates has specific purpose around updating existing zones, which seems further removed from this functionality.</t>
          </li>
          <li>
            <t>An API for <em>just</em> zone initialisation feels like a big thing that would likely be overkill, and probably not get implemented, and would likely be a part of a wider implementation's general nameserver configuration and operations API, which is waaaaay beyond the scope of this document, and possibly beyond standardisation.</t>
          </li>
        </ol>
        <t>It may be considered that this is "nameserver configuration", however, it has strong parallels in this regard to the "configuration" on secondary servers, including such considerations as to which entities are allowed to notify and/or transfer the zone, as are conveyed to those secondary servers in "DNS Catalog Zones" (<xref target="RFC9432"/>). Indeed, much of the same configuration may be needed by or shared with the primary server for those same zones.</t>
        <t>Implementing via an extension of catalog zones feels like it closes the gap in the end-to-end ecosystem whereby catalog zones + dynamic updates gives an end-to-end approach to the creation of a zone, its underlying master file, distribution of that zone to secondary servers, and the ongoing manipulation of records in the zone.</t>
        <t>TODO - add more detail explaining the above, reasoning, etc...?</t>
      </section>
      <section anchor="properties">
        <name> Properties</name>
        <section anchor="general">
          <name> General</name>
          <t>TODO: Do we need to signal the initial TTL of the records being added (SOA, NS, A, AAAA)... I think so... Could specifiy with an extra key=value pair, or could leave it to pick up from the SOA</t>
          <t>Do we even need to supply these properties (soa, ns, etc) ? The reason an operator would be doing this would be because they want to create a zonefile with standard tooling and then immediatly commence making dynamic updates to the zone. An implementation could simply drop in basic SOA and NS with the expectation being that the operator then <em>replaces</em> them.</t>
          <section anchor="acls">
            <name>ACLs...?</name>
            <t>Do we need to consider a mechanism for providing also-notify, allow-transfer and similar style ACL configuration? It seems limiting to certain use cases, otherwise, to assume that server level configuration of such parameters is enough.</t>
            <t>Some implementations facilitate this within the *.ext tree, but this is implementation specific, and unhelpful for operators using a combination of vendor products. Consider, for example, an operator using one vendor's product for unsigned primary, another for signing, and a third for serving the auth zones to the target network(s).</t>
          </section>
        </section>
        <section anchor="coo-property">
          <name>coo Property</name>
          <t>Are there any considerations around change of ownership that need mentioning or documenting here...?</t>
          <t>14/11 - section added to address this; is there anything else that needs clarifying or covering?</t>
        </section>
        <section anchor="soa-property">
          <name>soa Property</name>
          <t>Consideration was given as to whether things like SOA parameters should be individual records, but it seemed unnecessary to break them out and create the additional records.</t>
          <t>Should we permit the property to be made up of multiple TXT records so long as a given parameter is not repeated?</t>
          <t>Should we specify a SOA serial format? or an initial soa serial value...? If not, should we specify in the text, or leave it to the implemention, which may have a default, such as BIND's "serial-update-method"</t>
          <t>Given that it is pretty much expected that the operator is going to start making changes to the zone via dynamic updates, it'd be reasonable to expect them to be able to set those parameters. Which does beg the question, do we need to specify soa and nameserver values at all, or just specify that the zone file is or is not to be created, and fill some template default values with the expectation that the operator would immediatly overwrite them with "correct" values...?</t>
        </section>
        <section anchor="ns-property">
          <name>ns Property</name>
          <t>Is there a circular dependency or race condition issue here...?</t>
          <t>Do we need to consider the possibility of multiple IP addresses for a nameserver name? If so, maybe comma separate them like this: ipv4=192.0.2.1,192.0.2.2</t>
        </section>
      </section>
    </section>
    <section anchor="change-log">
      <name>Change Log</name>
      <t><em>NB: To be removed by the RFC Editor prior to publication.</em></t>
      <section anchor="initial-draft">
        <name>00 - Initial draft</name>
      </section>
      <section anchor="section">
        <name>00 - 01</name>
        <t>Final feedback incorporated before wider circulation for discussion and feedback</t>
      </section>
    </section>
    <section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgments</name>
      <t>The author wishes to thank Ray Bellis and Ruth Trevor-Allen for their reviews, feedback and discussion during the initial drafting of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
bZeNDjHjj1SM6oT/D1YueHazXAAA

-->

</rfc>
