<?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.39 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dnssd-uld-00" category="std" submissionType="IETF" updates="6762" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Unicast Local Discovery">Providing Local Unicast DNS-SD Service on Infrastructure</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-uld-00"/>
    <author fullname="Ted Lemon">
      <organization>Apple Inc</organization>
      <address>
        <email>mellon@fugue.com</email>
      </address>
    </author>
    <author fullname="Karsten Sperling">
      <organization>Apple Inc</organization>
      <address>
        <email>ksperling@apple.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="18"/>
    <area>INT</area>
    <workgroup>DNSSD</workgroup>
    <keyword>DNSSD</keyword>
    <keyword>mDNS</keyword>
    <keyword>DNS</keyword>
    <keyword>ULD</keyword>
    <abstract>
      <?line 43?>

<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 DNS-SD Service Registration Protocol (SRP) or mDNS. This document defines Unicast Local Discovery (ULD), a service that combines an SRP registrar, a Discovery Proxy, and an Advertising Proxy. Hosts can use a ULD server to advertise and discover services on the local link entirely via unicast SRP and DNS while remaining interoperable with hosts that use mDNS.</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-ietf-dnssd-uld/"/>.
      </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/dnssd-wg/draft-ietf-dnssd-uld"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<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. While DNS-SD can operate over either unicast DNS or Multicast DNS (mDNS) <xref target="RFC6762"/>, in practice mDNS is the prevalent method for local service discovery in home networks and other unmanaged environments, because unicast DNS-SD requires infrastructure support (managed DNS zones, service registration mechanisms) that is not typically present on such networks.</t>
      <t>However, mDNS relies entirely on multicast, and places the responsibility for answering queries on each device that is publishing a service. This interacts poorly with Wi-Fi in several compounding ways: Multicast frames are not acknowledged or retransmitted at the MAC layer, making them inherently less reliable. Unlike unicast frames, they are also not buffered by the access point when a station is sleeping. This creates a problematic tradeoff especially for battery-powered devices: either wake at every DTIM beacon (usually multiple times per second) at a significant power cost, or extend sleep intervals and miss a large proportion of queries, making mDNS unreliable. Finally, multicast frames are transmitted at the lowest mandatory data rate, consuming many times more airtime than equivalent unicast frames. This means that even moderate amounts of mDNS traffic can consume a disproportionate share of available airtime.</t>
      <t>To address this, this document defines a way of combining several existing technologies into a Unicast Local Discovery (ULD) service: an SRP registrar <xref target="RFC9665"/> with its Authoritative DNS Server <xref target="RFC1034"/> <xref target="RFC1035"/> to handle registration and discovery over unicast, and an Advertising Proxy <xref target="I-D.ietf-dnssd-advertising-proxy"/> and Discovery Proxy <xref target="RFC8766"/> to provide interoperability with mDNS.</t>
      <t>While each of these components can be deployed today, only when they are integrated in a standardized way into a discoverable service can a client rely entirely on unicast discovery and cease participating in mDNS itself. From a client's perspective, ULD is a drop-in replacement for mDNS: If a ULD server is available on a particular link, the client uses it for all local advertisement and discovery on that link; otherwise it falls back to mDNS. Note that because SRP is used for registration, advertisement via ULD is limited to the record patterns defined by DNS-SD.</t>
      <t>A ULD server can be deployed as part of the network infrastructure, for example on a CE router <xref target="RFC7084"/>, or on an ad-hoc basis on devices such as SNAC Routers <xref target="I-D.ietf-snac-simple"/> that already have the required capabilities. It can be implemented in any device that is expected to be continuously operational on a network link and has sufficient resources to provide the service.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</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>This document uses the terms "infrastructure" and "ad-hoc" to refer to the two different ways a ULD server can be deployed:</t>
      <dl>
        <dt>Infrastructure server:</dt>
        <dd>
          <t>The ULD server is a router on the link that has been intentionally deployed as part of the network infrastructure. At most one infrastructure server is expected per link.</t>
        </dd>
        <dt>Ad-hoc server:</dt>
        <dd>
          <t>The ULD server is a device on the link that is not part of the network infrastructure but has the required capabilities, such as a SNAC router. Multiple ad-hoc servers may be present on the same link.</t>
        </dd>
      </dl>
      <t>This document uses the terms "shared" and "unique" when referring to resource record sets in the sense of Section 2 of <xref target="RFC6762"/>: A unique record set is conceptually under the sole control of a single owning device, whereas a shared record set may contain records contributed by multiple devices.</t>
    </section>
    <section anchor="unicast-local-discovery">
      <name>Unicast Local Discovery</name>
      <t>ULD provides service registration and discovery within the ".local." domain, the same domain used by mDNS <xref target="RFC6762"/>. This ensures that ULD is a transparent replacement for mDNS from the perspective of applications and resolver libraries (see <xref target="local-zone"/> for further discussion of this design choice). Unlike mDNS, where the separate IPv4 and IPv6 multicast addresses effectively result in two independent .local namespaces (Section 20 of <xref target="RFC6762"/>), ULD maintains a single unified .local zone per link.</t>
      <t>This document updates <xref target="RFC6762"/> to allow .local queries to be directed to a ULD server as an alternative to mDNS multicast: Any DNS query for a name ending with ".local." <bcp14>MUST</bcp14> be sent to the ULD server for the link, or to the mDNS IPv4 link-local multicast address 224.0.0.251 or its IPv6 equivalent FF02::FB.</t>
      <t>The following sections describe the architecture and operation of a ULD server on a single link. There are five logical parts to a ULD server:</t>
      <ul spacing="normal">
        <li>
          <t>The DNS <xref target="RFC1035"/> zone in which DNS-SD information will be stored</t>
        </li>
        <li>
          <t>The SRP <xref target="RFC9665"/> service, which is used to add and update services in the DNS zone</t>
        </li>
        <li>
          <t>The Authoritative DNS Server <xref target="RFC1035"/> which authoritatively answers unicast DNS queries, drawing on both the zone and the Discovery Proxy</t>
        </li>
        <li>
          <t>The Discovery Proxy <xref target="RFC8766"/>, which enables unicast discovery of local services that are advertised via mDNS but have not been registered via SRP</t>
        </li>
        <li>
          <t>The Advertising Proxy <xref target="I-D.ietf-dnssd-advertising-proxy"/> service, which advertises the contents of the zone using mDNS, ensuring SRP-registered services are discoverable via mDNS</t>
        </li>
      </ul>
      <figure anchor="fig-architecture">
        <name>ULD Server Architecture</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="408" viewBox="0 0 408 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 8,128 L 8,176" fill="none" stroke="black"/>
              <path d="M 8,224 L 8,320" fill="none" stroke="black"/>
              <path d="M 64,88 L 64,120" fill="none" stroke="black"/>
              <path d="M 64,184 L 64,216" fill="none" stroke="black"/>
              <path d="M 120,128 L 120,176" fill="none" stroke="black"/>
              <path d="M 136,128 L 136,176" fill="none" stroke="black"/>
              <path d="M 168,224 L 168,320" fill="none" stroke="black"/>
              <path d="M 184,88 L 184,120" fill="none" stroke="black"/>
              <path d="M 200,224 L 200,320" fill="none" stroke="black"/>
              <path d="M 296,32 L 296,80" fill="none" stroke="black"/>
              <path d="M 296,128 L 296,176" fill="none" stroke="black"/>
              <path d="M 296,224 L 296,320" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,320" fill="none" stroke="black"/>
              <path d="M 400,32 L 400,320" fill="none" stroke="black"/>
              <path d="M 8,32 L 296,32" fill="none" stroke="black"/>
              <path d="M 360,32 L 400,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 296,80" fill="none" stroke="black"/>
              <path d="M 8,128 L 120,128" fill="none" stroke="black"/>
              <path d="M 136,128 L 296,128" fill="none" stroke="black"/>
              <path d="M 8,176 L 120,176" fill="none" stroke="black"/>
              <path d="M 136,176 L 296,176" fill="none" stroke="black"/>
              <path d="M 8,224 L 168,224" fill="none" stroke="black"/>
              <path d="M 200,224 L 296,224" fill="none" stroke="black"/>
              <path d="M 304,240 L 352,240" fill="none" stroke="black"/>
              <path d="M 200,272 L 296,272" fill="none" stroke="black"/>
              <path d="M 176,288 L 192,288" fill="none" stroke="black"/>
              <path d="M 304,288 L 352,288" fill="none" stroke="black"/>
              <path d="M 8,320 L 168,320" fill="none" stroke="black"/>
              <path d="M 200,320 L 296,320" fill="none" stroke="black"/>
              <path d="M 360,320 L 400,320" fill="none" stroke="black"/>
              <path d="M 196,184 L 212,216" fill="none" stroke="black"/>
              <path d="M 156,216 L 172,184" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="360,288 348,282.4 348,293.6" fill="black" transform="rotate(0,352,288)"/>
              <polygon class="arrowhead" points="312,240 300,234.4 300,245.6" fill="black" transform="rotate(180,304,240)"/>
              <polygon class="arrowhead" points="204,184 192,178.4 192,189.6" fill="black" transform="rotate(243.43494882292202,196,184)"/>
              <polygon class="arrowhead" points="200,288 188,282.4 188,293.6" fill="black" transform="rotate(0,192,288)"/>
              <polygon class="arrowhead" points="192,88 180,82.4 180,93.6" fill="black" transform="rotate(270,184,88)"/>
              <polygon class="arrowhead" points="180,184 168,178.4 168,189.6" fill="black" transform="rotate(296.565051177078,172,184)"/>
              <polygon class="arrowhead" points="72,216 60,210.4 60,221.6" fill="black" transform="rotate(90,64,216)"/>
              <polygon class="arrowhead" points="72,120 60,114.4 60,125.6" fill="black" transform="rotate(90,64,120)"/>
              <g class="text">
                <text x="112" y="52">Unicast</text>
                <text x="160" y="52">DNS</text>
                <text x="196" y="52">over</text>
                <text x="100" y="68">UDP,</text>
                <text x="140" y="68">TCP,</text>
                <text x="172" y="68">or</text>
                <text x="200" y="68">TLS</text>
                <text x="64" y="148">SRP</text>
                <text x="216" y="148">Authoritative</text>
                <text x="64" y="164">Registrar</text>
                <text x="212" y="164">Server</text>
                <text x="380" y="180">mDNS</text>
                <text x="248" y="244">Discovery</text>
                <text x="84" y="260">.local</text>
                <text x="248" y="260">Proxy</text>
                <text x="84" y="276">zone</text>
                <text x="248" y="292">Advertising</text>
                <text x="248" y="308">Proxy</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+-----------------------------------+       +----+
|         Unicast DNS over          |       |    |
|         UDP, TCP, or TLS          |       |    |
+-----------------------------------+       |    |
       |              ^                     |    |
       v              |                     |    |
+-------------+ +-------------------+       |    |
|     SRP     | |   Authoritative   |       |    |
|  Registrar  | |      Server       |       |    |
+-------------+ +-------------------+       |mDNS|
       |            ^   ^                   |    |
       v           /     \                  |    |
+-------------------+   +-----------+       |    |
|                   |   | Discovery |<------|    |
|      .local       |   |   Proxy   |       |    |
|       zone        |   +-----------+       |    |
|                   |-->|Advertising|------>|    |
|                   |   |   Proxy   |       |    |
+-------------------+   +-----------+       +----+
]]></artwork>
        </artset>
      </figure>
      <t>A device serving multiple links (e.g. a CE router with multiple VLAN interfaces) conceptually maintains a separate ULD instance per link, each with its own .local zone; the server's link-local address on each interface inherently scopes queries to the correct zone. Selection of the preferred server is also per link: a client operating on multiple links performs discovery separately for each, and may use ULD on some links while falling back to mDNS on others.</t>
      <section anchor="transports">
        <name>Transports</name>
        <t>A ULD server <bcp14>MUST</bcp14> support DNS over UDP, DNS over TCP, and DNS over TLS <xref target="RFC7858"/>. DNS over TLS support is required by the SRP specification <xref target="RFC9665"/> and is also the basis for DNS Push Notifications. All services (DNS queries, SRP registration, and DNS Push) operate on the standard ports: port 53 for UDP and TCP, port 853 for TLS. A ULD server <bcp14>MUST</bcp14> support IPv6; dual-stack requirements are addressed in <xref target="dual-stack"/>.</t>
        <t>On IPv6, clients <bcp14>MUST</bcp14> address ULD traffic to the server's link-local address, and a ULD server <bcp14>MUST</bcp14> refuse requests for ".local." that are not received on a link-local address, responding with RCODE 5 (REFUSED).</t>
        <t>ULD clients <bcp14>MAY</bcp14> use TLS, however clients that do support TLS <bcp14>SHOULD NOT</bcp14> fall back to plain TCP or UDP. TLS in ULD provides opportunistic encryption as described in Section 4.1 of <xref target="RFC7858"/>. Servers <bcp14>MUST NOT</bcp14> require client certificates and <bcp14>MAY</bcp14> use self-signed server certificates. Clients <bcp14>SHOULD NOT</bcp14> reject a server's TLS certificate, as server authentication is not a goal in this context.</t>
      </section>
      <section anchor="protocol-operations">
        <name>Protocol Operations</name>
        <section anchor="registering-services">
          <name>Registering Services</name>
          <t>A ULD server <bcp14>MUST</bcp14> accept service registrations via the Service Registration Protocol (SRP) <xref target="RFC9665"/>. Registrations <bcp14>MUST</bcp14> use ".local." as the registration domain, matching the names that would be used if the service were advertised via mDNS. The use of any other registration domain, including default.service.arpa, is out of scope for this specification.</t>
          <t>Because the .local zone is link-scoped, clients <bcp14>MUST</bcp14> only include address records (A, AAAA) in their SRP registrations that are valid on the link, following the same rules as for mDNS responses in Section 6.2 of <xref target="RFC6762"/>.</t>
        </section>
        <section anchor="discovering-services">
          <name>Discovering Services</name>
          <t>A ULD server <bcp14>MUST</bcp14> answer authoritatively for queries in ".local." and <bcp14>MUST</bcp14> support both standard DNS queries (over UDP, TCP, or TLS) and DNS Push Notifications <xref target="RFC8765"/> (over TLS using DSO <xref target="RFC8490"/>).</t>
          <t>The server draws on two sources: its authoritative zone (containing SRP-registered services) and the Discovery Proxy (reflecting services advertised via mDNS). Because ULD uses .local for both its zone and mDNS interactions, the Discovery Proxy operates without name rewriting or text-encoding translation — mDNS records are served to unicast clients with names unchanged. This is in contrast to deployments where a Discovery Proxy rewrites names between a delegated subdomain and .local as described in Section 5.5 of <xref target="RFC8766"/>.</t>
          <t>Since records matching a query could be shared, by default the server <bcp14>MUST</bcp14> answer from the union of both sources: for a given query it returns the matching records from the zone together with the matching records from the Discovery Proxy; a DNS Push subscription <bcp14>MUST</bcp14> likewise reflect changes from both sources, even when initial results came from only one.</t>
          <t>As an important optimization, when the query matches a unique record set in the .local zone, the server <bcp14>SHOULD</bcp14> treat the zone data as complete and not consult the Discovery Proxy. A record set registered via SRP is considered unique if it was part of a Host Description or Service Description Instruction (Section 3.3.1 of <xref target="RFC9665"/>). Because unique records have a single owner, the zone can be assumed to hold the entire set.</t>
          <t>Because the Advertising Proxy publishes zone contents via mDNS on the same link that the Discovery Proxy monitors, it is conceivable for the server to see records from its own .local zone reflected back via the Discovery Proxy; the server <bcp14>MUST</bcp14> ensure that such duplicate records are not returned to clients.</t>
          <t>The server <bcp14>SHOULD</bcp14> include additional records as defined in Section 12 of <xref target="RFC6763"/> (e.g., SRV, TXT, and address records alongside PTR answers), except where doing so would cause the response to be excessively large.</t>
        </section>
        <section anchor="discovery-proxy">
          <name>Discovery Proxy</name>
          <t>The Discovery Proxy's contributions to ULD queries generally follow the answer-aggregation behavior of Section 5.6 of <xref target="RFC8766"/>, answering from its mDNS cache when populated and otherwise issuing mDNS queries on the link. However, the behavior described there for standard DNS queries assumes that such queries are used only for one-shot operations expected to return unique records, while long-lived subscriptions are used when browsing for shared record sets. This is a reasonable assumption in the context of a generic Discovery Proxy, since off-link clients performing wide-area DNS-SD discovery will generally have the resources needed to implement DNS Push <xref target="RFC8765"/> over TLS. In the context of ULD, DNS Push subscriptions remain <bcp14>RECOMMENDED</bcp14> when querying for shared records, but it is desirable to support constrained clients that cannot use them: Such clients <bcp14>MAY</bcp14> implement time-bounded browse operations using repeated standard DNS queries. The interval between repeated queries <bcp14>MUST</bcp14> be at least 9 seconds (90% of the 10-second TTL cap imposed by the Discovery Proxy, Section 5.5.1 of <xref target="RFC8766"/>).</t>
          <t>To support such clients, the ULD server <bcp14>MUST</bcp14> continue to issue mDNS queries for the requested records for at least 20 seconds after the most recent matching standard DNS query, as it would for records in which a local client has an active interest (Section 5.2 of <xref target="RFC6762"/>). Where the requested records are unique (indicated by the cache-flush bit), whether received from the link or already held in the cache, the server need issue no further mDNS queries other than to refresh them as they approach expiry. Where the records may be shared, the server responds to each query immediately from its cache, while the continued querying surfaces any additional records on the link and keeps the cache current, so that the client's successive point-in-time snapshots converge on the complete set. This effectively matches the treatment that Section 5.6 of <xref target="RFC8766"/> describes for subscriptions.</t>
        </section>
        <section anchor="advertising-proxy">
          <name>Advertising Proxy</name>
          <t>A ULD server <bcp14>MUST</bcp14> publish the contents of its ".local." zone into mDNS using an Advertising Proxy, ensuring that services registered via SRP are discoverable via mDNS. As with the Discovery Proxy, the Advertising Proxy in ULD effectively operates without name rewriting: Because the records are already in the .local domain, the rewriting operation mandated by Section 2.1.2 of <xref target="I-D.ietf-dnssd-advertising-proxy"/> is a no-op.</t>
          <t>A ULD server <bcp14>MUST</bcp14> implement TSR <xref target="I-D.ietf-dnssd-tsr"/> to correctly resolve conflicts that arise when the same records reach mDNS via different paths, for example when a client transitions from direct mDNS participation to using ULD.</t>
        </section>
        <section anchor="administrative-records">
          <name>Administrative Records</name>
          <t>The ".local." zone <bcp14>MUST</bcp14> contain a number of administrative records. These records have no meaning in the mDNS namespace and <bcp14>MUST NOT</bcp14> be published by the Advertising Proxy.</t>
          <t>As described in Section 6 of <xref target="RFC8766"/>, the zone <bcp14>MUST</bcp14> contain:</t>
          <ul spacing="normal">
            <li>
              <t>A SOA record for the zone</t>
            </li>
            <li>
              <t>Exactly one NS record for the zone, referencing the ULD server's own hostname in .local</t>
            </li>
            <li>
              <t>AAAA record(s) for that hostname, and A record(s) if applicable</t>
            </li>
          </ul>
          <t>For compatibility with client libraries that perform standard DNS Push or SRP service endpoint discovery, the zone <bcp14>MUST</bcp14> also contain the following SRV records, each pointing to the server's hostname in .local and the relevant well-known port:</t>
          <ul spacing="normal">
            <li>
              <t><tt>_dns-push-tls._tcp.local.</tt> — port 853 (DNS Push Notifications)</t>
            </li>
            <li>
              <t><tt>_dnssd-srp-tls._tcp.local.</tt> — port 853 (SRP registration over TLS)</t>
            </li>
            <li>
              <t><tt>_dnssd-srp._tcp.local.</tt> — port 53 (SRP registration over UDP/TCP)</t>
            </li>
          </ul>
          <t>The ULD server <bcp14>MUST</bcp14> ensure its own hostname is unique on the link. This can be achieved either by using a randomly generated name that is statistically guaranteed to be unique, or by claiming the name via mDNS probing as defined in Section 8 of <xref target="RFC6762"/>. In either case, the server's hostname is owned and defended directly by the server as an mDNS participant, not published on behalf of a client via the Advertising Proxy.</t>
        </section>
      </section>
      <section anchor="server-discovery-and-monitoring">
        <name>Server Discovery and Monitoring</name>
        <section anchor="advertisement">
          <name>Server Advertisement</name>
          <t>All active ULD servers <bcp14>MUST</bcp14> advertise their presence using mDNS, as a DNS-SD service instance of type <tt>&lt;uld-service-name&gt;._tcp</tt>. The service advertisement consists of:</t>
          <ul spacing="normal">
            <li>
              <t>A PTR record at <tt>&lt;uld-service-name&gt;._tcp.local.</tt> pointing to the service instance name</t>
            </li>
            <li>
              <t>An SRV record for the service instance, pointing to the server's hostname and port 53</t>
            </li>
            <li>
              <t>A TXT record for the service instance, containing a <tt>pri</tt> key indicating the server's priority as defined below</t>
            </li>
          </ul>
          <t>The SRV priority and weight fields <bcp14>SHOULD</bcp14> be set to zero and <bcp14>MUST</bcp14> be ignored by clients. Per Section 5 of <xref target="RFC6763"/>, these fields are used for selecting among multiple SRV records for a single service instance, which does not apply here; additionally, mDNS APIs do not typically expose them to applications.</t>
          <t>Selection among ULD servers is based on the numeric value of the <tt>pri</tt> TXT key (lower priority values are preferred). If there are multiple servers with the same priority, the one with the numerically lowest IPv6 link-local address <bcp14>MUST</bcp14> be preferred. Services <bcp14>MUST</bcp14> advertise a priority based on their deployment mode and capabilities:</t>
          <ul spacing="normal">
            <li>
              <t>0: Infrastructure server</t>
            </li>
            <li>
              <t>100: Non-constrained ad-hoc server on a wired network link</t>
            </li>
            <li>
              <t>200: Non-constrained ad-hoc server on a Wi-Fi link</t>
            </li>
            <li>
              <t>1000: Constrained ad-hoc server, but otherwise well able to provide service</t>
            </li>
            <li>
              <t>65535: Ad-hoc server that can provide service if needed, but should not be preferred</t>
            </li>
          </ul>
        </section>
        <section anchor="infrastructure-ra-option">
          <name>Infrastructure RA Option</name>
          <t>An infrastructure ULD server <bcp14>MUST</bcp14> additionally advertise its presence by including the ULD RA option in its IPv6 Router Advertisements. The presence of the RA option signals that the sender of the RA is a ULD server, and the server's link-local source address in the RA is the address clients use to reach it.</t>
          <t>This additional advertisement mechanism serves a dual purpose: It provides IPv6 clients with a faster discovery path that does not rely on mDNS, and it enables the designation of the infrastructure ULD server to be protected by RA Guard <xref target="RFC6105"/>. In order for this protection to be effective, IPv6-capable clients <bcp14>MUST</bcp14> use the RA option for infrastructure server discovery, either exclusively or to verify the infrastructure designation of a server discovered via DNS-SD. The DNS-SD advertisement remains necessary to enable clients already using an ad-hoc server to discover a new infrastructure server via their existing ULD connection (avoiding the need to wake for multicast RA reception), and to support IPv4-only clients.</t>
        </section>
        <section anchor="client-behavior">
          <name>Client Behavior</name>
          <t>A client that wishes to use ULD on a particular link must first discover the preferred ULD server. Discovery follows a series of steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>Attempt to discover an infrastructure server.</t>
            </li>
            <li>
              <t>Failing that, browse for a list of ad-hoc servers, and determine the preferred one using the priority specified in the TXT record (see <xref target="advertisement"/>). Since all ULD servers <bcp14>MUST</bcp14> support IPv6, an IPv6 client need only query the IPv6 mDNS multicast address (FF02::FB) for this.</t>
            </li>
            <li>
              <t>If no server is discovered, or if no discovered server appears to work, fall back to mDNS for .local service registration and discovery.</t>
            </li>
          </ol>
          <t>Once a client has started to use a ULD server, it <bcp14>SHOULD</bcp14> cease its own mDNS participation on that link, and rely on the ULD server for all .local operations. The client <bcp14>MUST</bcp14> also monitor the availability of the service. If the client detects that the service is no longer available, it <bcp14>MUST</bcp14> restart the discovery process.</t>
          <t>The client <bcp14>MUST</bcp14> consider its ULD server unavailable when operations directed at the server persistently fail (DNS queries time out, SRP lease refresh fails, or a DNS Push session is lost). When a client currently using an infrastructure server is awake and processing Router Advertisements, it <bcp14>MUST</bcp14> check for the continued presence of the ULD RA option. However, clients are not required to wake specifically for RA reception.</t>
          <t>As motivated in <xref target="convergence"/>, clients of an ad-hoc server <bcp14>MUST</bcp14> additionally keep looking for the appearance of a more-preferred server; this could be an infrastructure server or another ad-hoc server that is preferable to the current server according to the rules defined in <xref target="advertisement"/>. Clients <bcp14>SHOULD</bcp14> utilize a DNS Push subscription with the current server for this purpose. When a client migrates to a new server (whether due to server failure or the appearance of a more-preferred server), it <bcp14>MUST</bcp14> re-register all its services with the new server.</t>
        </section>
      </section>
      <section anchor="dual-stack">
        <name>IPv4 and Dual-Stack Operation</name>
        <t>ULD is designed primarily for IPv6 operation: Infrastructure server discovery uses IPv6 Router Advertisements, and clients connect to the server's IPv6 link-local address, which provides inherent link-scoping. However, dual-stack mDNS interoperability is required to ensure that services on IPv4-only devices remain discoverable through the Discovery Proxy, and services on dual-stack ULD clients can be discovered over IPv4.</t>
        <t>A ULD server <bcp14>MUST</bcp14> therefore participate in mDNS on both the IPv6 multicast address (FF02::FB) and the IPv4 multicast address (224.0.0.251), unless deployed in an IPv6-only environment. The server <bcp14>SHOULD</bcp14> also accept ULD client connections over IPv4.</t>
        <t>Clients <bcp14>MAY</bcp14> connect to the ULD server over IPv4 using an on-link address. When a server receives ULD traffic over IPv4, it <bcp14>MUST</bcp14> verify that the source address falls within a directly-connected subnet of the receiving interface before processing a ".local." request. Even when connecting over IPv4, clients <bcp14>MUST</bcp14> use the server's IPv6 link-local address for the tiebreaker comparison defined in <xref target="advertisement"/>; this ensures all clients converge on the same server regardless of transport. If the preferred server is not reachable over IPv4, an IPv4-only client <bcp14>MUST</bcp14> fall back to mDNS. As the RA-based discovery mechanism is IPv6-only, an IPv4-only client discovers all servers, including the infrastructure server, via mDNS.</t>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>The ideal deployment state for ULD is a single infrastructure server on each link, providing streamlined discovery for all clients.</t>
      <t>A device that implements ULD <bcp14>MAY</bcp14> provide ULD service by default. Unless it qualifies as an infrastructure server (see below), it <bcp14>MUST</bcp14> advertise as an ad-hoc server with a priority reflecting its capabilities.</t>
      <t>In managed networks, the infrastructure ULD server designation <bcp14>MUST</bcp14> be enabled via explicit configuration by the network operator. Where multiple managed routers are present on a link, the operator <bcp14>MUST</bcp14> ensure that at most one advertises the ULD RA option.</t>
      <t>In unmanaged networks such as home networks, CE routers <xref target="RFC7084"/> are typically autonomously operating devices that form the basis for the network infrastructure. A CE router that provides ULD <bcp14>SHOULD</bcp14> claim infrastructure status by default, since it is already the de facto infrastructure for the link. Indications that a device is serving in this role include being the default router (sending RAs with nonzero Router Lifetime) and providing services such as DHCPv4 that are inherently singleton on the link. A device that is not clearly the primary gateway for the link <bcp14>MUST NOT</bcp14> claim infrastructure status without explicit configuration.</t>
      <t>Note that Homenet <xref target="RFC7788"/> does not define a "primary router" designation — it uses a distributed model with no single designated device. ULD's "one infrastructure server" assumption does not align well with this architecture. In Homenet networks, ULD servers may need to operate in ad-hoc mode, or Homenet could be extended to elect a ULD infrastructure server.</t>
    </section>
    <section anchor="snac-router-considerations">
      <name>SNAC Router Considerations</name>
      <t>TODO: The AdProxy and DiscProxy components of the SNAC router could use ULD, and the device itself can host a ULD server.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO</t>
    </section>
    <section anchor="domain-name-reservation-considerations">
      <name>Domain Name Reservation Considerations</name>
      <t>The considerations set out in <xref target="RFC6762"/> for handling of names within the ".local." domain continue to apply.
Name resolution APIs and libraries <bcp14>SHOULD</bcp14> continue to recognize .local names as special
and <bcp14>SHOULD NOT</bcp14> send queries for these names to their configured (unicast) caching DNS server,
unless that server is also the ULD server for the link in question.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>Allocate <tt>&lt;uld-service-name&gt;</tt>, "_uld" 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="RFC6762">
          <front>
            <title>Multicast DNS</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
              <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
              <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6762"/>
          <seriesInfo name="DOI" value="10.17487/RFC6762"/>
        </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="RFC1034">
          <front>
            <title>Domain names - concepts and facilities</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised basic definition of The Domain Name System. It obsoletes RFC-882. This memo describes the domain style names and their used for host address look up and electronic mail forwarding. It discusses the clients and servers in the domain name system and the protocol used between them.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1034"/>
          <seriesInfo name="DOI" value="10.17487/RFC1034"/>
        </reference>
        <reference anchor="RFC1035">
          <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="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>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <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-06"/>
        </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="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="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="RFC7858">
          <front>
            <title>Specification for DNS over Transport Layer Security (TLS)</title>
            <author fullname="Z. Hu" initials="Z." surname="Hu"/>
            <author fullname="L. Zhu" initials="L." surname="Zhu"/>
            <author fullname="J. Heidemann" initials="J." surname="Heidemann"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <author fullname="D. Wessels" initials="D." surname="Wessels"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="May" year="2016"/>
            <abstract>
              <t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS. Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626. In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
              <t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7858"/>
          <seriesInfo name="DOI" value="10.17487/RFC7858"/>
        </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="RFC8490">
          <front>
            <title>DNS Stateful Operations</title>
            <author fullname="R. Bellis" initials="R." surname="Bellis"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="J. Dickinson" initials="J." surname="Dickinson"/>
            <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Pusateri" initials="T." surname="Pusateri"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a new DNS OPCODE for DNS Stateful Operations (DSO). DSO messages communicate operations within persistent stateful sessions using Type Length Value (TLV) syntax. Three TLVs are defined that manage session timeouts, termination, and encryption padding, and a framework is defined for extensions to enable new stateful operations. This document updates RFC 1035 by adding a new DNS header OPCODE that has both different message semantics and a new result code. This document updates RFC 7766 by redefining a session, providing new guidance on connection reuse, and providing a new mechanism for handling session idle timeouts.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8490"/>
          <seriesInfo name="DOI" value="10.17487/RFC8490"/>
        </reference>
        <reference anchor="I-D.ietf-dnssd-tsr">
          <front>
            <title>Multicast DNS conflict resolution using the Time Since Received (TSR) EDNS option</title>
            <author fullname="Ted Lemon" initials="T." surname="Lemon">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document specifies a new conflict resolution mechanism for DNS,
   for use in cases where the advertisement is being proxied, rather
   than advertised directly, e.g. when using a combined DNS-SD
   advertising proxy and SRP registrar.  A new EDNS option is defined
   that communicates the time at which the set of resource records on a
   particular DNS owner name was most recently updated.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-tsr-03"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <date day="6" month="May" year="2026"/>
            <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-10"/>
        </reference>
        <reference anchor="RFC6105">
          <front>
            <title>IPv6 Router Advertisement Guard</title>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
            <author fullname="C. Popoviciu" initials="C." surname="Popoviciu"/>
            <author fullname="J. Mohacsi" initials="J." surname="Mohacsi"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>Routed protocols are often susceptible to spoof attacks. The canonical solution for IPv6 is Secure Neighbor Discovery (SEND), a solution that is non-trivial to deploy. This document proposes a light-weight alternative and complement to SEND based on filtering in the layer-2 network fabric, using a variety of filtering criteria, including, for example, SEND status. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6105"/>
          <seriesInfo name="DOI" value="10.17487/RFC6105"/>
        </reference>
        <reference anchor="RFC7788">
          <front>
            <title>Home Networking Control Protocol</title>
            <author fullname="M. Stenberg" initials="M." surname="Stenberg"/>
            <author fullname="S. Barth" initials="S." surname="Barth"/>
            <author fullname="P. Pfister" initials="P." surname="Pfister"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This document describes the Home Networking Control Protocol (HNCP), an extensible configuration protocol, and a set of requirements for home network devices. HNCP is described as a profile of and extension to the Distributed Node Consensus Protocol (DNCP). HNCP enables discovery of network borders, automated configuration of addresses, name resolution, service discovery, and the use of any routing protocol that supports routing based on both the source and destination address.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7788"/>
          <seriesInfo name="DOI" value="10.17487/RFC7788"/>
        </reference>
        <reference anchor="I-D.ietf-dnssd-srp-replication">
          <front>
            <title>Automatic Replication of DNS-SD Service Registration Protocol Zones</title>
            <author fullname="Ted Lemon" initials="T." surname="Lemon">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Abtin Keshavarzian" initials="A." surname="Keshavarzian">
              <organization>Google</organization>
            </author>
            <author fullname="Jonathan Hui" initials="J." surname="Hui">
              <organization>Google</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document describes a protocol that can be used for ad-hoc
   replication of a DNS zone by multiple servers where a single primary
   DNS authoritative server is not available and the use of stable
   storage is not desirable.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-srp-replication-02"/>
        </reference>
      </references>
    </references>
    <?line 271?>

<section anchor="local-zone">
      <name>Choice of Local Domain</name>
      <t>To make ULD a drop-in replacement for mDNS, a client querying a ULD server must see the same records it would have seen via mDNS, and a device advertising services via the ULD server must be discoverable as if it was advertising those services via mDNS. In other words, the ULD zone must have the same semantics as the ".local." namespace for that link.</t>
      <t>Indeed, when users or applications reference names in .local, their intent is generally semantic: to find or resolve services on the local link, not to trigger the use of the Multicast DNS protocol specifically. Because of this, the intended adoption path for ULD is for resolver libraries to use it transparently as the resolution mechanism for .local when a ULD server is available, requiring no changes to most applications.</t>
      <t>So while a new locally-served special-use domain could be defined for ULD on the wire, this would create two namespaces with identical content and semantics, and would require implementations and libraries to map between them. It would also contradict the insight that .local is about semantics rather than implementation, further discouraging the intended adoption path. Instead, ULD directly uses the .local zone defined by mDNS.</t>
    </section>
    <section anchor="why-ad-hoc">
      <name>Rationale for Supporting Ad-Hoc Servers</name>
      <t>From the point of view of a ULD client, the simplest deployment would be one where the network's DNS resolver also provides ULD. The client already sends all DNS queries to this resolver, so queries for names in .local could simply be handled alongside all other queries at the same endpoint. Many real-world networks are in fact structured in a way that would support this: In home networks, the CE Router <xref target="RFC7084"/> typically acts as a DNS forwarder, DHCP server, and IPv6 router for the local link. The same architecture extends to many small and medium enterprise networks, where a single site gateway commonly provides these services across multiple network segments (VLANs), making it a natural deployment point for ULD across the entire site.</t>
      <t>However, adding ULD support to existing network infrastructure requires firmware updates to devices such as CE routers and site gateways, which may not happen quickly across the installed base. Meanwhile, SNAC routers <xref target="I-D.ietf-snac-simple"/> and similar devices already implement all the components needed for ULD (SRP registrar, Advertising Proxy, Discovery Proxy) and are typically updated more frequently. To enable ULD deployment in the near term, it is therefore important to support a mode of operation where such devices can offer ULD service on an ad-hoc basis.</t>
      <t>Supporting ad-hoc ULD servers means that clients must be able to discover and select among them, directing .local queries to the ULD server while sending other DNS queries to the configured resolver. This adds complexity, but also enables deployment in networks where the DNS resolver is an off-link service that cannot provide ULD; this is a common configuration in more complex enterprise networks.</t>
    </section>
    <section anchor="convergence">
      <name>Convergence on a Preferred Server</name>
      <t>At first glance, multiple ULD servers on a link would seem to provide workable service through their mDNS proxies: Services registered on one server would become visible through others via the Advertising Proxy and Discovery Proxy. However, name conflict resolution breaks down in this configuration. If two clients were to register the same name on different servers, both SRP servers would accept the registration, and the resulting conflict would only manifest at the mDNS layer, where it may persist unresolved or be resolved silently and incorrectly, but in both cases without feedback to either client.</t>
      <t>This can be addressed either through server-to-server replication of registrations <xref target="I-D.ietf-dnssd-srp-replication"/>, or by having all clients converge on the same server — that is, all clients independently select the same server using a deterministic priority mechanism. ULD takes the latter approach: since its target deployment state is a stable infrastructure server per link, the added complexity of replication is not warranted.</t>
      <t>Convergence also needs to be maintained over time: Ad-hoc servers in particular can appear and disappear at any time, and an infrastructure server may become available after clients have already begun using an ad-hoc server. If discovery were a one-time process, clients performing it at different times could observe different sets of available servers and make different server choices, breaking convergence. Therefore, discovery of ULD servers must be an ongoing process: Clients need to monitor the availability of their chosen server, discover newly available servers, and migrate to a higher-priority server when one appears.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAPqcg2oAA519/ZbbRpbf/3yKSuvkTPeapD4syXJ71jM9ammts/pKd3tn
5yTZMUgUSaxAgAuA3aJl5+Qh8gB5ljxKniT3dz+qCiAp2ek5Y3WDQKHq1v2+
v1ucTCajruhKf+5O3jf1bZEX1dK9rudZ6X6sinnWdu7y7fXk+tJd++a2mHtX
V+5VtWjok2Y777aNPxlls1njb2kIe0QGuCzaeX3rm93JaJ51flk3u3PXdvlo
u8np7/bcPf3m6aPRKK/nVbamKeRNtugmhe8Wk7xq23yyLfPJgwejdjtbF21b
1FW329B9r17cvBxV2/XMN+cjDHU+mtdV66t2S4MusrL1I5rO16Os8Rnd/vZm
dFc3H5ZNvd2cYz3Xl6MPfkfX8vORm+gV+mVNv+kF/PPj68vRra+2NL5zvaed
k5n8lYYFxf4JH9LVdVaUtA5M/s9Yx7RulnQ5a+arc7fquk17fv8+bsKV4tZP
7ab7uHB/1tR3rb/Pz9/HO4tutZ3FJ+Xv6bxeyz2Tu+X9Q0QbjbJtt6obrI6G
cW6xLUuh8Y3P3Wu/riu+Tm/OquLnrCPanruLzab0tLtz/szLYta+LOvqz4vt
cuvx5tH+mP+cNW3nK3e98U1J5PitQ39o9YE/Z/hYRq/qZk0P3RLRi2oR/xhN
p9PRaDKZuGxGvJfNu9GINiPwZeA2t2FG9q1rPf1NjLj28xXNpV237m7lGz/b
uVXddq2bZ5XL9TmXVbnLcvqtK1pPz/KwLfid7nr13lW+AxdN3fV2vgqP7XiQ
mXd5XXm3bcENb7ZlF2THnYKrzoge+Gvcew1uTh+/o/0dytuVXxZYL+joSEa7
el6X7vT66j2PicGn7mZVtDTEfLv2VedyvygqmvoRcXSnxNhnNBNbpOtWWeeI
+jN+jCZEo7tGX9zgzvgwTeHjTpdRuYtkJfzJ1P0QSLslOmaQIn4RkbirEwpj
hED8lNzdyruSp0y88cHRiorGlzt3W2Ruq0vCBDEACHy3Koi3GjBVhXkUVeeb
mlgrm5VKU9luXiYmxUQTZloXeV760egeMWfX1DnpNCL0MdY6lc05c58+/aer
l89Jf33966+OaJ+5pa/6zOaIeXs7nS4Yf6drjvzVTt1feUHKByAkL6Yj3QtS
eVoQ/bON6hl8cJDnwiwf/frrmOhCokFygyXhc8wbtN6Q8s5KMM7ak9bIeeKy
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
wEy/xms6+n9OTguYunMAAA==

-->

</rfc>
