<?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.29 (Ruby 3.3.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tlmk-infra-dnssd-00" category="std" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="DNSSD on Infrastructure">Providing DNSSD Service on Infrastructure</title>
    <seriesInfo name="Internet-Draft" value="draft-tlmk-infra-dnssd-00"/>
    <author fullname="Ted Lemon">
      <organization>Apple Inc</organization>
      <address>
        <email>mellon@fugue.com</email>
      </address>
    </author>
    <author fullname="Mathieu Kardous">
      <organization>Silicon Labs</organization>
      <address>
        <email>somebody@example.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="25"/>
    <area>INT</area>
    <workgroup>DNSSD</workgroup>
    <keyword>DNSSD</keyword>
    <keyword>mDNS</keyword>
    <keyword>DNS</keyword>
    <abstract>
      <?line 42?>

<t>DNS Service Discovery provides several mechanisms whereby hosts can discover and advertise services on an IP network. Such discovery can be done using Multicast DNS (mDNS) or DNS, and advertising can be done with DNSSD Service Registration Protocol (SRP) or mDNS. This document describes a way to provide a unified DNSSD proxy service that allows hosts to advertise services using SRP and discover services using unicast DNS via a Discovery Proxy rather than using of mDNS, in scenarios where mDNS is currently the only option.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-tlmk-infra-dnssd/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        DNSSD Working Group mailing list (<eref target="mailto:dnssd@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dnssd/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dnssd/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/https://github.com/Abhayakara/draft-tlmk-infra-dnssd"/>.</t>
    </note>
  </front>
  <middle>
    <?line 46?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>DNS Service Discovery (DNS-SD) <xref target="RFC6763"/> is a general mechanism for advertising and discovering services on IP networks. mDNS is a commonly used transport for DNS-SD. However, it has several shortcomings: it relies entirely on multicast, which works somewhat poorly on WiFi networks. Devices publishing services have to always be available to answer mDNS queries, which can have significant battery impact. When doing service discovery, such devices may do WiFi beacon skipping to save power, and in so doing, miss a large percentage of multicast traffic, making mDNS unreliable.</t>
      <t>To address this, this document describes a way of combining several existing technologies to reduce reliance on multicast. This can be done in, for example, a CE router <xref target="RFC7084"/>, or a SNAC Router <xref target="I-D.ietf-snac-simple"/>. It can actually be done in any device that is expected to be continuously operational on a network link and has sufficient resources to provide the service.</t>
      <t>There are four logical parts to the service:
- The DNS <xref target="RFC1035"/> zone in which DNSSD information will be stored
- The SRP <xref target="RFC9665"/> service, which is used to add and update services in the DNS zone
- The Advertising Proxy <xref target="I-D.ietf-dnssd-advertising-proxy"/> service, which advertises the contents of the zone using mDNS on the infrastructure link
- The Discovery Proxy <xref target="RFC8766"/>, which enables discovery of local services that are advertised using mDNS using the unicast DNS protocol.</t>
      <t>In addition, the service must be advertised so that devices that would like to make use of it can discover it.</t>
      <section anchor="previous-work">
        <name>Previous work</name>
        <t>This specification relies on existing technology and makes reference to that technology assuming that the reader is already familiar with it. Readers should familiarize themselves with at least the following documents.</t>
        <ul spacing="normal">
          <li>
            <t>The DNS specification <xref target="RFC1035"/> which discusses DNS zones</t>
          </li>
          <li>
            <t>The SRP specificaiton <xref target="RFC9665"/> which explains how to register services in the DNS without a pre-shared key</t>
          </li>
          <li>
            <t>The Advertising Proxy specification <xref target="I-D.ietf-dnssd-advertising-proxy"/> which explains how to advertise the contents of a DNS zone using mDNS</t>
          </li>
          <li>
            <t>The Discovery Proxy specification <xref target="RFC8766"/> which describes how to discover mDNS services on a link using DNS queries</t>
          </li>
          <li>
            <t>The DNS Push Specification <xref target="RFC8765"/> which describes how to efficiently do long-lived DNS queries</t>
          </li>
          <li>
            <t>The DNS-SD specification <xref target="RFC6763"/> which describes how to discover services using the DNS and mDNS protocols</t>
          </li>
        </ul>
      </section>
    </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?>

</section>
    <section anchor="modes-of-deployment">
      <name>Modes of deployment</name>
      <t>This service can be deployed either as a centralized service provided by infrastructure, or as an ad-hoc service that takes advantage of infrastructure but is not part of infrastructure. An example of the first would be a Customer Edge router (CE Router) <xref target="RFC7084"/>. CE routers are typically autonomously operating devices--although they can be configured by the end user, this is not typical. However, since they are the basis for the network infrastructure of a home network, we think of DNSSD service provided by a CE router as network infrastructure.</t>
      <t>An example of a device that provides full DNSSD service on an ad-hoc basis would be a SNAC router. SNAC routers connect infrastructure networks to stub networks on an ad-hoc basis and provide all four of the services required for DNSSD service to the SNAC network, but only provide Advertising Proxy service to the infrastructure network. This means that devices on infrastructure can discover devices on the stub network, but not to register with SRP service nor use the SNAC advertising proxy. A SNAC router that implements the behavior described in this document no longer has this limitation.</t>
    </section>
    <section anchor="content-of-service-advertisement">
      <name>Content of Service Advertisement</name>
      <t>The goal of advertising the service is to provide sufficient information that, having resolved the service advertisement, a user of the service has all the information needed to use the service. This includes at least:</t>
      <ul spacing="normal">
        <li>
          <t>Name of the domain to use for service discovery</t>
        </li>
        <li>
          <t>Name of the domain to use for service registration</t>
        </li>
        <li>
          <t>Name of the host providing the DNSSD service</t>
        </li>
        <li>
          <t>Ports to use for the UDP DNS protocol when communicating with the service</t>
        </li>
      </ul>
      <section anchor="service-advertisement-on-infrastructure">
        <name>Service Advertisement on Infrastructure</name>
        <t>Service advertisement on infrastructure is provided using the 'dnssd.service.arpa.' domain. This is a locally-served domain <xref target="RFC6303"/>. The local DNS resolver on infrastructure <bcp14>MUST</bcp14> answer authoratively for queries in the dnssd.service.arpa zone. Because this is an infrastructure-provided service, infrastructure advertises only one service instance, with the service instance name "infrastructure." Therefore, an infrastructure-provided DNSSD service advertises the infrastructure service instance in dnssd.service.arpa as follows:</t>
        <artwork><![CDATA[
infrastructure.'service-name'.dnssd.service.arpa IN SRV 'data'
infrastructure.'service-name'.dnssd.service.arpa IN TXT 'data'
]]></artwork>
        <t>The infrastructure DNSSD service <bcp14>MUST</bcp14> support <xref target="I-D.ietf-dnssd-multi-qtypes"/>. Therefore, this query can be done as a single multi-qtype query. Typical DNS servers will, when answering an SRV query, include additional data containing address <xref target="RFC2782"/> pp 4-5. In such situations, if the DNSSD service is provided by infrastructure, all of the information required to discover it will be returned in response to a single query.</t>
      </section>
      <section anchor="ad-hoc-service-advertisement">
        <name>Ad-Hoc Service Advertisement</name>
        <t>What we mean by "ad hoc" is something that is not integrated into infrastructure. Ad hoc servers do not have control of the local DNS resolver, and therefore cannot be discovered using DNS, and must instead be discovered using mDNS. Because there is no coordination, it is possible (and in some cases likely) that there will be more than one such server, so the service instance name should be handled normally <xref target="RFC6763"/> section 4.1.1.</t>
        <t>Therefore, when advertising with mDNS, the service instance will be advertised as follows:</t>
        <artwork><![CDATA[
'instance-name'.'service-name'.local IN SRV 'data'
'instance-name'.'service-name'.local IN TXT 'data'
]]></artwork>
      </section>
      <section anchor="content-of-srv-record">
        <name>Content of SRV record</name>
        <t>mDNS APIs typically do not provide a way of setting the priority and weight of the SRV record, and the infrastructure service always has the highest priority. Therefore, these fields <bcp14>SHOULD</bcp14> be set to zero, and <bcp14>MUST</bcp14> be ignored. The reason they <bcp14>MUST</bcp14> be ignored is that since they <bcp14>SHOULD</bcp14> be zero, and most devices will not be able to set them to any other value, treating them as described in <xref target="RFC2782"/> presents an opportunity for an attack by advertising a service with a weight of 65535.</t>
        <t>The port field should be set to the UDP port on which SRP service is provided.</t>
        <t>The target is the hostname of the host providing the service.</t>
      </section>
      <section anchor="content-of-the-txt-record">
        <name>Content of the TXT record</name>
        <t>TXT records are made up of a series of name=value pairs. The following names are defined:</t>
        <t>srp-tcp='port': the port number to use for SRP registrations using the DNS Protocol over TCP. If not present, this service is assumed to be available on the port provided in the SRV record.</t>
        <t>dns-udp='port': the port number to use for DNSSD queries using the DNS protocol over UDP. If not present, this service is assumed to be available on the port provided in the SRV record.</t>
        <t>dns-tcp='port': the port number to use for DNSSD queries using the DNS protocol over TCP. If not present, this service is assumed to be available on the port provided in the SRV record.</t>
        <t>srp-tls='port': the port number to use for SRP registrations using TLS. If not present, port 853 is assumed.</t>
        <t>dns-tls='port': the port number to use for DNSSD queries using the DNS protocol over TLS. If not present, port 853 is assumed.</t>
        <t>reg-dn='domain': the domain name to use in SRP registrations. If not present, default.service.arpa is assumed.</t>
        <t>domains='domain-list': a comma-separated list of domains in which service discovery is available. If not present, dnssd.service.arpa and local are assumed to be the only domains.</t>
        <t>'domain'='ip-subnet-list': a link-specific domain that can be used to query services on that specific IP link. The link is identified by a comma-separated list of IPv4 and/or IPv6 prefixes that are present on that link. See <xref target="interface-domains"/>.</t>
        <t>priority='priority': a priority for this service. See <xref target="service-priority"/></t>
        <section anchor="interface-domains">
          <name>Interface-specific domains</name>
          <t>A DNSSD service may support link-specific discovery proxy service. In such cases, each IP link must have its own unique domain, which is specific to the individual DNSSD service. Each such domain must have an name=value entry in the TXT record. This entry has as its name a domain name. Its value is a comma-separated list of IP prefixes that are on-link for the IP link identified by the domain.</t>
          <t>IP subnets are in the form 'IP address'/'prefix-length'. IP addresses are represented according to the IP address family. IPv4 addresses are in the dotted-decimal format as defined in <xref target="RFC952"/> in the section titled GRAMMATICAL HOST TABLE SPECIFICATION, in subsection A under 'address'. IPv6 addresses are represented as described in <xref target="RFC5952"/>.</t>
          <t>As a special (common) case, if the service only provides discovery proxy for a single link, and that is the link on which the DNSSD service is advertised, discovery of services on that link can use the "local" domain. In this case, no domains will be listed in the TXT record; if "local" discovery is to be supported alongside other domains, then the "local" domain must be included in the TXT record. If a service DNSSD service is advertised on more than one link, the local domain is specific to the link for which the destination address for the query is on-link. If the destination address is not on-link for any link, queries in .local are not valid and <bcp14>MUST</bcp14> be responded to with the REFUSED response code.</t>
        </section>
        <section anchor="service-priority">
          <name>Service Priority</name>
          <t>Infrastructure service is always the highest priority, and there can be only one such service. When infrastructure service is discovered, this is done using infrastructure. Consequently there is no need to try to discover an ad hoc service, and no need to choose amongst services. The infrastructure service therefore <bcp14>MUST NOT</bcp14> include a priority. Ad-hoc servers <bcp14>SHOULD</bcp14> include a priority. If a priority is not included, the priority of the Ad-Hoc service is assumed to be 65535.</t>
          <t>Services should choose a priority based on their capabilities. The following priorities are defined:</t>
          <t>0: Server is not constrained and is connected to a high-speed wired network link (that is, not WiFi, probably Ethernet or a fiber optic network).</t>
          <t>100: Server is not constrained and is connected to a WiFi link</t>
          <t>200: Server is constrained, but otherwise well able to provide service.</t>
          <t>65535: Server can provide service if needed, but should not be preferred.</t>
        </section>
      </section>
    </section>
    <section anchor="discovering-the-dnssd-service">
      <name>Discovering the DNSSD service</name>
      <t>A host that wishes to use the DNSSD service must first discover it. Discovery follows a series of steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>Attempt to discover an infrastructure-provided DNSSD service</t>
        </li>
        <li>
          <t>Failing that, browse for a list of Ad-Hoc services.</t>
        </li>
        <li>
          <t>If one or more Ad-Hoc services are returned by the browse, choose one using the priority specified in the TXT record.</t>
        </li>
        <li>
          <t>If no server is discovered, or if no discovered server appears to work, fall back to mDNS-based DNSSD service</t>
        </li>
      </ol>
      <section anchor="advertising-using-ras">
        <name>Advertising using RAs</name>
        <t>DNSSD servers that send RAs <bcp14>MUST</bcp14> include a DNSSD-Service RA option in RAs that they send when the DNSSD service is active. DNSSD clients can distinguish infrastructure DNSSD service from ad-hoc service because infrastructure routers have nonzero lifetimes.</t>
        <t>It can be the case that there is more than one infrastructure router. In some cases these routers will be part of a managed infrastructure, in which case DNSSD service provided by these routers <bcp14>MUST</bcp14> be a common service.</t>
      </section>
    </section>
    <section anchor="dual-homed-infrastructure-dnssd-service">
      <name>Dual-homed infrastructure DNSSD service</name>
      <t>In a dual-homed network, there is more than one default router and potentially more than one DNSSD service. In the case of managed networks, the network operator <bcp14>MUST</bcp14> ensure that there is a single DNSSD service, even if it is advertised by more than one default router.</t>
      <section anchor="unmanaged-networks">
        <name>Unmanaged networks</name>
        <t>In an unmanaged network, there is no way for the operator to decide which default router will provide the DNSSD service when more than one default router is able to do so. So we have the following options:</t>
        <ol spacing="normal" type="1"><li>
            <t>One router defers to the other</t>
          </li>
          <li>
            <t>The routers share a common DNS zone either using SRP replication or DNS zone transfers with secondary failover</t>
          </li>
          <li>
            <t>SRP clients are required to register with both services</t>
          </li>
        </ol>
        <t>Practically speaking option 3 is the only easy option, although it places a greater burden on the client. With option 1, the SRP client may take some time to notice that an SRP service has gone away and then reregister, and this is not ideal. Option 2 requires mechanisms that are not yet described in a standard. Consequently, when more than one infrastructure DNSSD service is present, consumers of the DNSSD service that will register their service using SRP <bcp14>MUST</bcp14> register with all infrastructure DNSSD servers.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>ALlocate 'service-name', "_dnssd-server" is preferred</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6763">
          <front>
            <title>DNS-Based Service Discovery</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document specifies how DNS resource records are named and structured to facilitate service discovery. Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6763"/>
          <seriesInfo name="DOI" value="10.17487/RFC6763"/>
        </reference>
        <reference anchor="RFC7084">
          <front>
            <title>Basic Requirements for IPv6 Customer Edge Routers</title>
            <author fullname="H. Singh" initials="H." surname="Singh"/>
            <author fullname="W. Beebee" initials="W." surname="Beebee"/>
            <author fullname="C. Donley" initials="C." surname="Donley"/>
            <author fullname="B. Stark" initials="B." surname="Stark"/>
            <date month="November" year="2013"/>
            <abstract>
              <t>This document specifies requirements for an IPv6 Customer Edge (CE) router. Specifically, the current version of this document focuses on the basic provisioning of an IPv6 CE router and the provisioning of IPv6 hosts attached to it. The document also covers IP transition technologies. Two transition technologies in RFC 5969's IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) and RFC 6333's Dual-Stack Lite (DS-Lite) are covered in the document. The document obsoletes RFC 6204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7084"/>
          <seriesInfo name="DOI" value="10.17487/RFC7084"/>
        </reference>
        <reference anchor="I-D.ietf-snac-simple">
          <front>
            <title>Automatically Connecting Stub Networks to Unmanaged Infrastructure</title>
            <author fullname="Ted Lemon" initials="T." surname="Lemon">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Jonathan Hui" initials="J." surname="Hui">
              <organization>Google LLC</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document describes a set of practices for connecting stub
   networks to adjacent infrastructure networks.  This is applicable in
   cases such as constrained (Internet of Things) networks where there
   is a need to provide functional parity of service discovery and
   reachability between devices on the stub network and devices on an
   adjacent infrastructure link (for example, a home network).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-snac-simple-07"/>
        </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="RFC9665">
          <front>
            <title>Service Registration Protocol for DNS-Based Service Discovery</title>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>The Service Registration Protocol (SRP) for DNS-based Service Discovery (DNS-SD) uses the standard DNS Update mechanism to enable DNS-SD using only unicast packets. This makes it possible to deploy DNS-SD without multicast, which greatly improves scalability and improves performance on networks where multicast service is not an optimal choice, particularly IEEE 802.11 (Wi-Fi) and IEEE 802.15.4 networks. DNS-SD Service registration uses public keys and SIG(0) to allow services to defend their registrations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9665"/>
          <seriesInfo name="DOI" value="10.17487/RFC9665"/>
        </reference>
        <reference anchor="I-D.ietf-dnssd-advertising-proxy">
          <front>
            <title>Advertising Proxy for DNS-SD Service Registration Protocol</title>
            <author fullname="Stuart Cheshire" initials="S." surname="Cheshire">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Ted Lemon" initials="T." surname="Lemon">
              <organization>Apple Inc.</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   An Advertising Proxy advertises the contents of a DNS zone, for
   example maintained using the DNS-SD Service Registration Protocol
   (SRP), using multicast DNS.  This allows legacy clients to discover
   services registered with SRP using multicast DNS.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-advertising-proxy-04"/>
        </reference>
        <reference anchor="RFC8766">
          <front>
            <title>Discovery Proxy for Multicast DNS-Based Service Discovery</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document specifies a network proxy that uses Multicast DNS to automatically populate the wide-area unicast Domain Name System namespace with records describing devices and services found on the local link.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8766"/>
          <seriesInfo name="DOI" value="10.17487/RFC8766"/>
        </reference>
        <reference anchor="RFC8765">
          <front>
            <title>DNS Push Notifications</title>
            <author fullname="T. Pusateri" initials="T." surname="Pusateri"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>The Domain Name System (DNS) was designed to return matching records efficiently for queries for data that are relatively static. When those records change frequently, DNS is still efficient at returning the updated results when polled, as long as the polling rate is not too high. But, there exists no mechanism for a client to be asynchronously notified when these changes occur. This document defines a mechanism for a client to be notified of such changes to DNS records, called DNS Push Notifications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8765"/>
          <seriesInfo name="DOI" value="10.17487/RFC8765"/>
        </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="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>
        <reference anchor="I-D.ietf-dnssd-multi-qtypes">
          <front>
            <title>DNS Multiple QTYPEs</title>
            <author fullname="Ray Bellis" initials="R." surname="Bellis">
              <organization>Internet Systems Consortium, Inc.</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document specifies a method for a DNS client to request
   additional DNS record types to be delivered alongside the primary
   record type specified in the question section of a DNS QUERY
   (OpCode=0).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-multi-qtypes-08"/>
        </reference>
        <reference anchor="RFC2782">
          <front>
            <title>A DNS RR for specifying the location of services (DNS SRV)</title>
            <author fullname="A. Gulbrandsen" initials="A." surname="Gulbrandsen"/>
            <author fullname="P. Vixie" initials="P." surname="Vixie"/>
            <author fullname="L. Esibov" initials="L." surname="Esibov"/>
            <date month="February" year="2000"/>
            <abstract>
              <t>This document describes a DNS RR which specifies the location of the server(s) for a specific protocol and domain. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2782"/>
          <seriesInfo name="DOI" value="10.17487/RFC2782"/>
        </reference>
        <reference anchor="RFC952">
          <front>
            <title>DoD Internet host table specification</title>
            <author fullname="K. Harrenstien" initials="K." surname="Harrenstien"/>
            <author fullname="M.K. Stahl" initials="M.K." surname="Stahl"/>
            <author fullname="E.J. Feinler" initials="E.J." surname="Feinler"/>
            <date month="October" year="1985"/>
            <abstract>
              <t>This RFC is the official specification of the format of the Internet Host Table. This edition of the specification includes minor revisions to RFC-810 which brings it up to date.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="952"/>
          <seriesInfo name="DOI" value="10.17487/RFC0952"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6303">
          <front>
            <title>Locally Served DNS Zones</title>
            <author fullname="M. Andrews" initials="M." surname="Andrews"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>Experience with the Domain Name System (DNS) has shown that there are a number of DNS zones that all iterative resolvers and recursive nameservers should automatically serve, unless configured otherwise. RFC 4193 specifies that this should occur for D.F.IP6.ARPA. This document extends the practice to cover the IN-ADDR.ARPA zones for RFC 1918 address space and other well-known zones with similar characteristics. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="163"/>
          <seriesInfo name="RFC" value="6303"/>
          <seriesInfo name="DOI" value="10.17487/RFC6303"/>
        </reference>
      </references>
    </references>
    <?line 223?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA71b63LcRnb+j6foUD8obc2MTN1sM+u1xyS1Zq0ujEjF2Uql
Uj2DnpkuYQAYDZAaq7TPkmfJk+U753Q3Gpihomyq1vphDNCXcz/fOd2cTqdZ
a9vCnKqjq6a6tbkt1+r8zfX1ubo2za1dGlWV6rJcNdq1Tbdsu8YcZXqxaMwt
5sjIAyOWujXrqtmdKtfmWZZXy1JvsUve6FU7bYvth6mlKdO8dC6fFhju2sx1
i611zlZlu6sx+vLi5mVWdtuFaU6zHGNOs2VVOlO6zp2qlS6cyUDG00w3RmP4
m5vsrmo+rJuqq0+FjeyD2eFdfpqpqX+Dhy2e/Ivs1pQdFlZqME0pIeFXrEcy
+TN9xNuttgXYIKp/sqZdzapmjde6WW5O1aZta3f6+DENojf21szCoMf04vGi
qe6ceczzH9Oett10i36m/J4tq+3j+WKjd/qDbvTjw1LLMt21m6oh1rCUUquu
KETMNyZXr8y2Kvk9dtel/V23EOypmtd1YaCwJX8zwtDWFEVV/rTq1p2h3bP9
NV/rdmNNp/6im7zq3IGVr21hoR/1Si9curirtmZR5bufzEe9xeayQVZWzRYz
byF8cNX/yGazWZZNp1OFddpGL9ssg1KiQZ5bt6xuTbNTNZusccoZ/NYF2Fhu
QJDbOnW3MY1Z7NSmcq1TS12q3M9TusyVzvHUWmcwl5d1ZMYYdXmlStOSGc3U
dbfcxGk7XmRhVF6VRnWOrOJ1V7R2CcMnq1EPyaweQSj0azLYhgan0++g55Gf
vTNrS+ySLBWcsa2WVaEeXr+74iVp7Zm62ViHFZbd1pStAuvLxi5Au1Z3eqfa
KogEL7rSrizsQHbB+4+7wKtqN7pVGiq/c15AmHpAJMIlSGBmogBH37FTlMGt
1di7V9EV7wuuoA7atvRzqhVzNFG2VG5pSt3YyiuNPyjwueyaBmwWYGxDcQgP
VU3i8eaxtXlemCx7AGtumypH8MHH+4zlIV5Pr88fqU+f/undy7MX3754+vkz
baPV2pRD81Ewx4HuUvbpd2o0vcW4WaRdKxj5lmnuHLQAxZaurpqWlxZSZuqX
6o4sF1Jo1Ub3duzg1i0WwFYIdPjYmMJiN0jD4nFH226D7U0gNgtDZQrY2e5I
vXVVNTLyV/vSJiSeGyG97haFdZsBOxt9a9gWCtiTI3PVtxTMFoW8Lt2dEVtU
v3UQhXFhd7Junu3smiwPv1u10G1LsrfbGm48U79uDPywSrbs3WuiHLubp24L
e84roX1hNMUV98HWNc0FJY62qiG+RhyNzKiSpSeKkgg0gBi8xiDTwL5ajUcy
uuix0MgKZGK05gjPTHUlSZrYhY3dkE/kjcFiCH3gtP2i92F1qGxhS2FPNGk+
wqmZZthWWRXVmvQIBhoDezWsWF1Kmo20eT9PA4YtJ2w5PoSCaXV2oZCUIF9v
0d9+892zz58nFCy0un4zP1Pv4ufL6Tlnoqkr9XLqLK3x+fNMXba8C5TTIRzs
ku0g1Z1XhoQLEGQ+1mbZkjVXNBI6AWsdkgF7ppHYBaYpkgaDU4UtP7CK2MA7
krkl8UGuVdcsRRohbJGje8sgBXA4QHIH612jSHhLLF/rRiJWMvo0m0JohmOQ
iOPkm6fP4eC/e3bESiUYxnQDQu9sURAzrq2gEr8KRTxZ5fsXL2gVv0swduu8
V7OFMHddTQCl9yRs2Xp6iAS/8DyJKRIaU+UIGErizpTD9v7+MVQ73oQUAZE6
MkH6/XufodiqK6HFDkAaKyZIbRSvhffvvn3xggxK9kSMhlu4JB9it6IihUSm
Ja+QzgKBeUqHPBIpacqofa6Dwi9LkqclxUxS7cI1MHgxWNdVsl0IGPzjruqK
HJx94HAFzyY5sOPbdggCbIv9HjwAw5gPE+bwSSYH3TqYOYcwthAfe/G078w7
1j3t4zBuBXMlX249aekw57qtcE8fNuT5Oic6ED4Ket4B0G6BoHQj6AAEAhPQ
GEf5gPgKA+zv7ClbZ4pbbMzDsWphOK5tyF0ot9N2IVo5ypnRQ4YMDvxFlE1i
6hzZVzBgl7hGnG7bON07ireVj3WhbUng4k6CHWGbFDkk7kHkI1AhZNSNmboN
7CdXgO33uswe9V/hQIfp6iHP2I10ZDwx4Hu85ZA0xXeCNGOm8PtGK2S3GCBQ
iZeyZ5JmE+VddW6jrg/v+fz+PU2IvAUnVsD99bQA4M4PbwN8cpAxj5v+N8ZG
EDHomr0ldXpH8O2sKm8J2qC24xHnZoUsyr85CZA1kH/mTh29fn99czSR/6s3
b/n53cW/vL98d3FOz9e/zF+9ig+ZH3H9y9v3r877p37m2dvXry/enMtkvFWD
V9nR6/lfjwRiHL29url8+2b+6kisN8UCFPMkKVrYUANDpjSpXRYkxAjl57Or
//6vk2dekk9OTr6HJL3uTr59xmI1pezG0FF+Qni7TNe1QWigxIyEtdS1bVH/
YixHhzuALwQfOPkf/p0k8x+n6o+LZX3y7E/+BTE8eBlkNnjJMtt/szdZhHjg
1YFtojQH70eSHtI7/+vgd5B78vKPP8JNjJqefPfjn1BKwoZeV1QIwnNzUxfV
jrQSornPIQFO8XcoxFguSjSDdQwHXENgzeN4j0lyhSpymDoFY5GtIoJMN9Vy
WFi1nA4QW3SEnaPUu+gYT5VVy2Bmf8RMzcuA9UJWX9nGhQxHqVCdISkC7Tfq
IscuHgs+BCwU3PdogAtnPV50Yq67mtAUrEx3COPVdoDjKHVIYp1OdUEBer1h
QwxiRLBc2XXXiHyIPkMoyBEgZ9/w/PltkloHAYElhbWYDkxdaIfhhG/pV0CO
I6FxVN6A4TAAyISmU7zEN4F2h5SXQmVo7fDycJ2hyPUA/cZWAzVERntJ48Bb
grCSaImRuOw+S384EmEJPD3mM1RqXOa03aJ/cWAjChWx5gdlDJS9wcQY3Jjf
Okua8rVnQrtH0UxXFCuZJ8efsPKBHDycf5gFX8dsDerGIVgDJ6MpA3CWDGNG
EikIdWxZCa5gCMTQxNNVgtPO53VmLq3mGRTAxVJ1+CKHtM94SezSoKS1VaMG
YXwY+kvJpViBChz+VtgtorPvVHB6I1xBagltiSBQE+KUUeuKKqfVgNAUAttB
oZQUUmk1Q0xMqA6n2VRhFZTg02V0ujOVkeSyI4thTsiavGrj8qUxuZQ9Qbah
WBNNw7OLjrwkoNFTJCT1Rm9jEMurrSYRygpkj3uNgK+e0SQds9Ekamp5WSXw
o7d7DL+qfBUZlqVB78+vBjUJZ2Bu5XDFwnGRbS3hncuIg4rd74xn2fUhPRzw
B0gzxrAeQx0zwp0Fqeum1rNjL6KgA259VBzapzQQC3gZfvr0IyG4p988pXxA
Rif1G3HsjaU5QArjB9/6kZYzd2oRH0hsHjkGRL9PIKPomfrZLLVYjSdyvM80
8hur3REhSdkr3cAycY/StdRImezpJ35S1MhWR6O4f6S4zQBWqKtyP1HDuDmq
wEeE7u0M4RwQjHa+UnPwk7/hv2xE27EfPiXKj2cHlrh8g7D3r7AL3erjv2v6
zb/dhOlMAgejET9D3tkeXFdzO3O//OI21vQ3Oj9x3s6CeFn3ZDDDZjpDMLLx
wqhktozEAgIhVKiVKHdS22Yi3imWKV1aFgZPm4RgFDsKWIHY5DJPS5cutPfE
MZ58+90TYPC6Vs+mz2fwXOlIOtt2HGOAtu1qP5YMXPUAVqRA6sNSGktjUk7L
JtvGhhRKiK4pJeOAyJoOvrhmDZIS6XD0mefTXwAJ7skuv3JnxHAeJgKPdI4A
uTwiwqld3G5iY8KDNipi1vBy3h177oFTXiAqA+UkzeL2L0m3qSLH+wFGyps2
GAUZAk1e9BkgRrx4jMLtH3Imo/ODI+V0pA8xRiIocvOyQt1oSy09Jcss1pVz
llraD2PreEuEkDdT76jYPYp9msZEjWwrhqsQIgcetg2WwESaUfdFHN+9WVBe
LfMCRPPRF0HvQU3tDB9gqGezE/zz7U9xHDH0BBlwkJMTlIMbB5qThtl+tDkO
w32AGMUL0d0wwnztlL2o8mCIg7BiY5ZQTZZxP2B+demSksRbVH+a5RvszrRt
yIV1A2RmW2nB3Rm73rTB6vrlo7XdF6L9SYdgN2gIyxjGDrL4KHwZwgrWFLlT
vuCl1rFhMPq7aSrZjgMk9QLWJTWVJdU2wEOCZ3fjAYztyN6S0qhfvl93S6gm
YGPWsPeccD7DlGzMVs5qIDGucG910RH1oCAIb0vWMAC1vifhQyCclUEw2TrH
ecCfVvI9VSBtq5cfuLRKz8iiTKUhmejkxfPnT5+LRSs5BCMZJo7hRRggGI+p
QtM+xfVJrPXrtXTK04oIBfiVXwaC/fnC0CbpG5ltsMv+WQrmrYYldrXUhk5A
D55ptx9YxKjlUaKLtvsOLH2XBXJqa5kc3ueaetou6x+OidHjUzFn4lkuO6So
lJhPge64oxZPijl/3JxdIXGtvPOwEn3WTQTIveh4itMf8PlqiwmJCc3Dut6j
IDfk+WmXfxX5kikDRhySXg9Ih97/QaR/peS/nvR/jNTZaAr3/zGam1fX+4Ty
Gt89f5oQGQT1dbv9HwT19fuDfODJH46ldPEE+DqGHdwTYMt9bvf3gOtpAMsh
+B3yy0u7sOG0wHLYVc7xNQqpWgsgog/cZ5QJ/dniXiHLGwQ9H6DpQEGAIC8p
lA/RBhYT70D4jUFzEM4Px7aeum5Rmranm84RpqGDH6toyjIeeocTTMHj6SGE
5KIw9fKK1/IFI3XbqIDLqWHPF0y4w3aflC6vbp8RW49hJ3h+Qeyv7Mf0rNAL
JG4sm10bg5zE3fSVBr7wXKOgyLKQnGGc/ok5joBAqvne/cJqAauEgZ8/Uw7g
6yN+l5G8UBk82Cchy+ajCoAuK4SCaCT39LJS3zfrqwtGnRNlNJ69pAXuMpq2
dBp1V9J5KdTkqUpOoeM+sQ+XW0SQTo96lDN1QRvIDQsxhX4TXaZJjDrhuxCA
+hzouwvylftDjqljX9SpZ9KtAiego78Jc9g2DlhDRa4HGYSOTJDJ0OD6YECn
xoAHbPySZj3pVGmpY3zzRd7x42PZbVqYct1ujmeq/+gzdGO8MRJcXi65clgH
2faj5SB2N/PWPVgitEGqFotMc6gHSF9J2Segi0FAD7m+f06Iy08LJQBfyszV
n9/NX7+e31yezV+pX94CM97Mf351oa6vLs4uX+ItnYvIFapuEabOYSx0sHwc
+J6J432B04NQ8DkTRm1xrs7J0MDIQ7nW9IjtNtbDfSe8SG7ljW2f0WOoXkmp
AZzrCN9Y1RH4HSy1+4pmMryLsBfBeLElXzmT8HnEsfUo9ssufS9XeCmr6PWh
eiJL7bNx7wz/TIzH1dJ4L7HaxwKSLfWGHdUwgsX9DlxLlAeIijcdfPfiwOac
SXqw/QUB8aWiQdEqUu8Lc7/pgUgSnbBXBXTa+kq69wTvppJErAv+y0TeN8l3
GVJXp2pFiEv6ibM+F9J4hBSbDwos6Yv4lnTs+727ePn++uK875osq1zgft+n
vQq54tODvaxA91AOt/NcKBcPlYpJYyOk2L5L2fUAwV+Du69l6JLuRn+Ullw6
HTdjzohHSC3clIytD+rWszqb3aDJxGdIKjm2FMqTGctNVUFuekvG20bPEghw
D+F9RyecN/cduKScnvcHptQ68mXuoZFs5TGnx86UuMVk2ALw5Zvvg92LukMd
eh1Cha9AA7/9ggvt/QfL2obO2/XCFra1Zq/A83PsXpX3zSmbm1zyIeLp8jow
Ksd/7jzFM0B/l4xtisADft9xc3Bwi+6hD5UTXo2uRk4otC6AL3fqghSA4XL/
b2UJpNN12WVY4xEYP/nm7yCK72DybbHsyXB+MtefGhIRd3Sh5s4ghIa+RDy1
iqU3ayIuRe4yGkMRVo6bZGWvKd/wqPmyVcPI/UG8kHP4qAdojbsAckHMuo2J
xz77CYbDr5y0p1fFkjs/voc26AEgS9TUVTuBfSPvb+t27HBfdaqQPZmpl6gX
QjsWnPPfC/jMGXDT0MpRCDxlZ6EIQRfFyQVHQ3zK9w1lj59k7Ukw/j7ADDzL
54WDiSh75qsa787j4AVqLH9O+rV+pFxnYUXIqe6K2uQLaivRxT26gCQuONIl
N7v7npMQ/G7u+Na3H0hxRUoYupKAjxKR+hjDQ6fx4v3cXysnDml0aP3uZIG7
kKn3M+2SzsFm/sOysNwz8yfZ1GrrYG1fPktZNdV2fIlk4dvYo4nh2gBj9rIq
qS8Im1iZ1m7JCrLLWNrxbTbtjEq62HQQP8ACB5eXwqRvh0vLM2wdcFG4tKJR
+ZR6zcYxPPSIVTGTcf/djOH6Ia+H2/Npr06do6qZ0v2P8W5jG6FbpCrvR8eb
A/cIwjcH4hURulJRUVfQci96OHhUVl2WvbDperkXR7iyIWkqBHG5WwOvYD7p
z5iasYoiPh7sg/rwliDDyh9gJBBvMSZwyI10Od+XY8JESlRYjr5MBhCC2u4B
4kXqKbQhKMCVwi3AgfzYSNIL3UPtszt9UQHEoE8cOUJLhfK9ovMr+eOEQe4V
x/Wh920Zb0HllB7iHXHOShRcuQ/vbY0vmvaWFq97+mth/Z++oFQqwh1I6XbJ
QP6TjpW4RUvoDtkw15QhEMIp2lFcpgVCYJAg3J/6DW+vLKo2QkSo54r+8Mmf
hiAGy98o+Dj1NJRLjC+NduEPY+iw0d/VgqHUhebYr9bU+cc+i65BFR06jkIW
0Cjt7lc+mfi+Y6CaWxt0oU2CAoUaIh1puP87onLQoafewJpPdcl4PCSmI8zA
bsDJ/R0xGArdEHsrNDwJQnLp33PFBgFN2Jl2WLLCbVpN0s+HeHhyyNy+GJD5
gMF36AjeAD028WL96O6UAApYe9SkoMUwoLchdvihvinf3UsJ9uSYd22WHadh
Ygpi8g3OLLt5e/42fuULkJfzN/O9YfNXVEK1Rg3P6Sbq6D/lsF42O/JsC6aS
v66iXEzrzpcfyuquMPma70Vln06lA2zyH474TzCPPntydByJgP0//1L5bls6
AAA=

-->

</rfc>
