<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tlmk-infra-dnssd-01" category="std" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="DNSSD on Infrastructure">Providing DNSSD Service on Infrastructure</title>
    <seriesInfo name="Internet-Draft" value="draft-tlmk-infra-dnssd-01"/>
    <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="2026" month="January" day="26"/>
    <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.draft-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.draft-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 specification <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.draft-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 [I-D.draft-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="service-availability-monitoring">
      <name>Service Availability Monitoring</name>
      <t>Once the consumer has registered with the DNSSD service, it is important to monitor the availability of the service.</t>
      <t>If the service being used is provided by a router, whether it be a CE router <xref target="RFC7084"/> or a SNAC router <xref target="I-D.draft-ietf-snac-simple"/>,
the consumer <bcp14>MUST</bcp14> monitor periodic RAs to ensure the service is still available.</t>
      <t>If the service being used is provided by a non-router device that relies on mDNS, the consumer must monitor the service provider to ensure it is still available.
This can be done by sending periodic queries to the service provider, listening for Time-To-Live updates, etc.</t>
      <t>If the consumer detects that the service is no longer available, it must restart the service discovery process defined in this specification.</t>
    </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.draft-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="10" month="October" 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-08"/>
        </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.draft-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="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 235?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
kYp1FIg9AAA=

-->

</rfc>
