<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-mozleywilliams-dnsop-dnsaid-01" category="std" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="DNS-AID">DNS for AI Discovery</title>

    <author initials="J." surname="Mozley" fullname="Jim Mozley">
      <organization>Infoblox, Inc.</organization>
      <address>
        <email>jmozley@infoblox.com</email>
      </address>
    </author>
    <author initials="N." surname="Williams" fullname="Nic Williams">
      <organization>Infoblox, Inc.</organization>
      <address>
        <email>nic@infoblox.com</email>
      </address>
    </author>
    <author initials="B." surname="Sarikaya" fullname="Behcet Sarikaya">
      <organization>Unaffiliated</organization>
      <address>
        <email>sarikaya@ieee.org</email>
      </address>
    </author>
    <author initials="R." surname="Schott" fullname="Roland Schott">
      <organization>Deutsche Telekom</organization>
      <address>
        <email>roland.schott@telekom.de</email>
      </address>
    </author>

    <date year="2026" month="March" day="02"/>

    <area>ops</area>
    <workgroup>dnsop</workgroup>
    <keyword>DNS</keyword> <keyword>AI</keyword> <keyword>Service Discovery</keyword> <keyword>agent-to-agent</keyword> <keyword>agent2agent</keyword>

    <abstract>


<?line 47?>

<t>This document specifies a method for utilizing the Domain Name System (DNS) to facilitate scalable and interoperable discovery between AI agents. The proposed mechanism, referred to as "DNS AI agent Discovery (DNS-AID)", defines a structured DNS namespace and record usage model to support metadata exchange and capability advertisement.</t>

<t>This will allow organisations to publish information about their AI agents on the Internet or internal networks using a well-known label within the organisation's own DNS namespace. This document does not define how the published agent information is accessed or the exact structure of that information. Instead, it specifies a mechanism for indicating which access protocol should be used and what format the agent information will be provided in.</t>

<t>This document proposes no change to the structure of DNS messages, and no new operation codes, response codes, resource record types, or any other new DNS protocol values.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://example.com/LATEST"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-dnsaid/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        WG Working Group mailing list (<eref target="mailto:WG@example.com"/>),
        which is archived at <eref target="https://example.com/WG"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/USER/REPO"/>.</t>
    </note>


  </front>

  <middle>


<?line 55?>

<!-- # Disclaimer

The present document reflects the authors' individual opinions and does not necessarily represent the views of their respective employers. -->

<section anchor="introduction"><name>Introduction</name>

<t>This document describes DNS for AI Agent Discovery (DNS-AID), a mechanism that enables agents to retrieve operational parameters prior to initiating a session. DNS-AID introduces a leaf zone convention (e.g., _agents.example.com) containing Service Binding (SVCB) records (e.g., chat._agents.example.com) that encode application-specific metadata. It is these records that enable agents to retrieve operational parameters prior to initiating a session, supporting both targeted lookups and capability-based discovery.</t>

<t>The approach leverages existing DNS protocols and records, including DNS Service Discovery (DNS-SD), DNSSEC, and DANE, to provide integrity, authenticity, and automation without requiring human intervention and without requiring modification of the basic principles of DNS. Lastly DNS-AID leverages Domain Control Validation (DCV) described as a best current practice to prove an agent is authorized to act on behalf of a domain in <xref target="I-D.draft-ietf-dnsop-domain-verification-techniques"/>.</t>

<t>DNS-AID provides the bootstrap for discovering an organization's agents. An organization can publish it's own registry of agents and their capabilities at a well-known entry point in the DNS hierarchy. It is also possible to provide names for commonly used agents, so that no registry needs to be queried and the returned capabilities processed (e.g., on a model card or other schema) before the name of can be resolved. It is expected that other documents will develop the content of any registry, such as refining the model card concept to a more structure schema, and will specify the protocol used to interact with the registry. It is more performant and deterministic to receive the details of the IP, protocols and port from an SVCB record than it is to determine this from a model card. It also mitigates against the vulnerability of parsing this information from a model card.</t>

<t>For example, a company may only have a few external agents available for use, and if the IETF standardizes 'types' of AI agents, then perhaps _chat._agents.example.com or _img2txt._agents.example.com etc are all different SVCB records. On the other hand a company may provide an index of all agents via a well know entry point in the DNS hierarchy e.g. _index._agents.example.com.</t>

<t>For example, a company might have only a few external agents available for use, and if the 'types' of AI agent are standardized, then (for example) _chat._agents.example.com and _img2txt._agents.example.com would use different SVCB records.  On the other hand, a company may provide an index of all agents via a well-known entry point in the DNS hierarchy, e.g., _index._agents.example.com.</t>

<t>The DNS-AID model is designed for incremental and non-disruptive deployment within existing DNS infrastructure. It introduces no new DNS message formats, opcodes, response codes, or resource record types. Instead, it defines a structured namespace convention and usage profile for existing record types (primarily SVCB, TXT, and TLSA) all within designated leaf zones (e.g., _a2a._agents.example.com).</t>

<t>Organizations may adopt DNS-AID by publishing agent metadata under delegated subdomains, leveraging DNSSEC for integrity and authenticity, and optionally implementing Domain Control Validation (DCV) to signal delegated authority. These zones may be exposed selectively via split-horizon DNS or different zones, enabling differentiated discovery views for internal and external agents. No changes are required to recursive or authoritative DNS server implementations beyond standard support for DNSSEC and SVCB.</t>

<t>This model supports opt-in adoption, allowing agent operators to publish discovery metadata without coordination with external registries or protocol maintainers. It is compatible with existing DNS tooling, including zone provisioning systems, monitoring platforms, and resolver configurations. DNS-AID is therefore suitable for deployment across enterprise, cloud, and federated environments, and may coexist with other discovery mechanisms without conflict.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="dns-mechanisms-for-agent-discovery"><name>DNS Mechanisms for Agent Discovery</name>

<t>AI agents that need to be discovered are currently being developed to support tasks such as travel planning, etc. See <xref target="agent-cap"/>.</t>

<figure title="AI Agent Capabilities" anchor="agent-cap"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="440" viewBox="0 0 440 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,64 L 8,240" fill="none" stroke="black"/>
<path d="M 200,64 L 200,240" fill="none" stroke="black"/>
<path d="M 240,64 L 240,240" fill="none" stroke="black"/>
<path d="M 432,64 L 432,240" fill="none" stroke="black"/>
<path d="M 8,64 L 200,64" fill="none" stroke="black"/>
<path d="M 240,64 L 432,64" fill="none" stroke="black"/>
<path d="M 8,240 L 200,240" fill="none" stroke="black"/>
<path d="M 240,240 L 432,240" fill="none" stroke="black"/>
<g class="text">
<text x="168" y="36">Agent</text>
<text x="244" y="36">Capabilities</text>
<text x="96" y="84">DISCOVERY</text>
<text x="328" y="84">APPLICATION</text>
<text x="32" y="116">-</text>
<text x="60" y="116">SVCB</text>
<text x="112" y="116">(INDEX)</text>
<text x="264" y="116">-</text>
<text x="300" y="116">TRAVEL</text>
<text x="68" y="132">IP</text>
<text x="264" y="132">-</text>
<text x="292" y="132">COST</text>
<text x="92" y="148">PROTOCOL</text>
<text x="264" y="148">-</text>
<text x="324" y="148">ATTESTATIONS</text>
<text x="76" y="164">PORT</text>
<text x="316" y="164">TRAINING</text>
<text x="372" y="164">DATA</text>
<text x="340" y="180">CERTIFICATIONS</text>
<text x="48" y="196">-WELL</text>
<text x="96" y="196">KNOWN</text>
<text x="148" y="196">AGENTS</text>
<text x="324" y="196">ACCEPTABLE</text>
<text x="384" y="196">USE</text>
<text x="68" y="212">SVCB</text>
<text x="104" y="212">RRs</text>
<text x="264" y="212">-</text>
<text x="284" y="212">TO</text>
<text x="308" y="212">BE</text>
<text x="372" y="212">SPECIFIED...</text>
<text x="76" y="276">This</text>
<text x="120" y="276">draft</text>
<text x="312" y="276">Other</text>
<text x="364" y="276">drafts</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                  Agent Capabilities

+-----------------------+    +-----------------------+
|      DISCOVERY        |    |     APPLICATION       |
|                       |    |                       |
|  - SVCB (INDEX)       |    |  - TRAVEL             |
|      IP               |    |  - COST               |
|      PROTOCOL         |    |  - ATTESTATIONS       |
|      PORT             |    |     TRAINING DATA     |
|                       |    |     CERTIFICATIONS    |
|  -WELL KNOWN AGENTS   |    |     ACCEPTABLE USE    |
|     SVCB RRs          |    |  - TO BE SPECIFIED... |
|                       |    |                       |
+-----------------------+    +-----------------------+

       This draft                   Other drafts
]]></artwork></artset></figure>

<section anchor="use-of-service-binding-records-in-discovery"><name>Use of Service Binding Records in Discovery</name>

<t>Agents will use SVCB records as defined in <xref target="RFC9460"/> to discover other agent endpoints under structured leaf zones (e.g., _chat._agents.example.com). These records allow querying agents to retrieve operational parameters prior to initiating a session, including supported protocols, privacy features (e.g., Encrypted Client Hello via ECH), and failover configurations.</t>

<t>Agents may advertise support for QUIC, HTTP/3, or agent-to-agent protocols via ALPN declarations. Operators may specify alternate endpoints or migrate services across domains without relying on CNAME indirection, improving performance and reducing DNS resolution complexity.</t>

<t>When paired with attribute leaf zones and custom SVCB parameters, this mechanism enables fine-grained discovery of agent capabilities. For instance, an agent querying _a2a._agents.example.com may receive an SVCB record indicating supported modalities (e.g., chat, image-to-text), expected input formats, and cost-related metadata (e.g., token pricing). This structured discovery model supports deterministic, cacheable, and semantically rich interactions between agents.</t>

<t>SVCB records can indicate the protocol used to communicate with a given agent as in <xref target="svcb-ex"/>:</t>

<figure title="SVCB Record Example" anchor="svcb-ex"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="568" viewBox="0 0 568 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<g class="text">
<text x="112" y="36">_index._agents.example.com.</text>
<text x="244" y="36">3600</text>
<text x="276" y="36">IN</text>
<text x="308" y="36">SVCB</text>
<text x="336" y="36">1</text>
<text x="448" y="36">ai-index-svc.example.com.</text>
<text x="560" y="36">(</text>
<text x="76" y="52">alpn=&quot;a2a&quot;</text>
<text x="68" y="68">port=443</text>
<text x="108" y="84">ipv4hint=192.0.2.1</text>
<text x="116" y="100">ipv6hint=2001:db8::1</text>
<text x="8" y="116">)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
_index._agents.example.com. 3600 IN SVCB 1 ai-index-svc.example.com. (
    alpn="a2a"
    port=443
    ipv4hint=192.0.2.1
    ipv6hint=2001:db8::1
)
]]></artwork></artset></figure>

</section>
<section anchor="DNS-SD"><name>DNS-Based Service Discovery</name>

<t>DNS-SD as defined in <xref target="RFC6763"/>, extends the capabilities of the Domain Name System to support service-type-based discovery. Unlike previous DNS resolution, which requires prior knowledge of a specific hostname, DNS-SD enables clients to discover services based on their functional type (e.g., _http._tcp, _printer._udp) within a given domain.</t>

<t>DNS-SD provides a mechanism for AI agents to discover other agents or services based on declared capabilities rather than explicit names. For example, an agent may issue a query for _data-cleaner._a2a._agents.example.com to locate services capable of performing data sanitization tasks. This type-based discovery model supports dynamic ecosystems where agent roles and capabilities may evolve over time.</t>

<t>DNS-SD operates over both multicast DNS (mDNS) and unicast DNS, allowing for flexible deployment in local networks and globally scoped domains. In enterprise or cloud environments, unicast DNS-SD enables structured and policy-compliant discovery across organizational boundaries. When combined with SVCB records, DNS-SD allows agents to retrieve detailed service metadata, including transport preferences, protocol support, and operational parameters.</t>

<t>This model supports federated agent architectures, where multiple agents may advertise similar capabilities under different domains. By leveraging DNS-SD, agents can perform capability-based queries and receive a list of candidate services, each accompanied by structured metadata for evaluation and selection.</t>

<t>DNS-SD also supports extensibility through TXT records and custom service naming conventions, enabling organizations to encode additional attributes relevant to agent interaction (e.g., supported data formats, authentication requirements, or cost models). A TXT record with the same name as the SVCB record could be used to provide additional meta-data. These features make DNS-SD a suitable foundation for scalable, interoperable, and semantically rich agent discovery workflows.</t>

<t>An index of agents by type of service can be provided via DNS-SD as a well known entry point to a more complete capability description via a common schema, e.g., _index._agents.example.com. This may be used in addition to or instead of querying for specific agent services such as _data-cleaner._a2a._agents.example.com. Querying specific services will shortcut communication compared to querying an index.</t>

</section>
<section anchor="DCV"><name>Domain Control Validation</name>

<t>DCV refers to the process by which an entity demonstrates authoritative control over a DNS domain. As described in <xref target="I-D.draft-ietf-dnsop-domain-verification-techniques"/>, DNS-based DCV typically involves the placement of a DNS record, most commonly a TXT record, containing a challenge token or assertion at a designated location within the domain. This record is then queried by an Application Service Provider (ASP) to confirm control.</t>

<t>Authorization should not solely exist solely within the discovery phase, however there may be use cases in which agents acting on behalf of domains, prior to application handshake, can prove they are acting on behalf of a domain (organization). This may be a preferable mechanism, especially for ephemeral agents, to prove they act on behalf of a domain, rather than manage many temporary security mechanisms across multiple information security pillars (firewalls, certs, etc.).</t>

<t>In the context of DNS-AID, DCV provides a mechanism for agents to assert delegated authority on behalf of a domain. For example, an organization may publish a TXT record under a structured leaf zone (e.g., _agent-roles._a2a._agents.example.com) containing metadata such as:</t>

<t>ai-role=data-cleaner; crm=dummyorg; access=readonly</t>

<t>This record signals that a specific agent is authorized to perform scoped operations under the domain's authority. When protected by DNSSEC <xref target="RFC9364"/>, such assertions become cryptographically verifiable, mitigating risks of spoofing or unauthorized delegation.</t>

<t>DCV within DNS-AID supports both ephemeral and persistent validation models. Ephemeral validation may be used for short-lived agent credentials or session-based delegation, while persistent records enable long-term authorization signaling. TTL and expiration considerations, as discussed in the draft, are critical to ensuring that validation records do not persist beyond their intended scope.</t>

<t>Furthermore, DNS-AID encourages the use of application-specific naming conventions and token formats to avoid service confusion and collision. Validation records should be scoped to the intended service and include unguessable tokens or structured metadata to prevent unauthorized reuse across federated agent ecosystems.</t>

</section>
</section>
<section anchor="Architecture"><name>Architecture</name>

<t>The DNS hierarchical namespace supports multi-tenant and federated discovery models. Organizations may delegate subdomains to tenants (e.g., customer1._agents.vendor.com) or publish agent metadata under federated zones (e.g., region1._a2a.example.org). This enables scoped discovery, policy enforcement, and operational isolation across tenants, departments, or geographic regions. Combined with DNSSEC and access controls, this model supports secure delegation and trust signaling in complex agent ecosystems, including SaaS platforms and cross-organizational collaborations.</t>

<section anchor="example-communication"><name>Example Communication</name>

<t>Agent (org1) wants to find other agents provided by another entity (org2) and discover/verify capabilities <xref target="querying-ex"/>:</t>

<figure title="Agent ORG1 Querying Org2" anchor="querying-ex"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="528" viewBox="0 0 528 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,64 L 8,112" fill="none" stroke="black"/>
<path d="M 8,144 L 8,256" fill="none" stroke="black"/>
<path d="M 80,64 L 80,112" fill="none" stroke="black"/>
<path d="M 272,48 L 272,112" fill="none" stroke="black"/>
<path d="M 344,64 L 344,112" fill="none" stroke="black"/>
<path d="M 400,104 L 400,144" fill="none" stroke="black"/>
<path d="M 448,64 L 448,112" fill="none" stroke="black"/>
<path d="M 520,64 L 520,112" fill="none" stroke="black"/>
<path d="M 520,144 L 520,256" fill="none" stroke="black"/>
<path d="M 8,64 L 80,64" fill="none" stroke="black"/>
<path d="M 272,64 L 344,64" fill="none" stroke="black"/>
<path d="M 448,64 L 520,64" fill="none" stroke="black"/>
<path d="M 88,80 L 264,80" fill="none" stroke="black"/>
<path d="M 352,80 L 440,80" fill="none" stroke="black"/>
<path d="M 88,96 L 264,96" fill="none" stroke="black"/>
<path d="M 352,96 L 440,96" fill="none" stroke="black"/>
<path d="M 8,112 L 80,112" fill="none" stroke="black"/>
<path d="M 272,112 L 344,112" fill="none" stroke="black"/>
<path d="M 448,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,256 L 520,256" fill="none" stroke="black"/>
<polygon class="arrowhead" points="448,80 436,74.4 436,85.6" fill="black" transform="rotate(0,440,80)"/>
<polygon class="arrowhead" points="360,96 348,90.4 348,101.6" fill="black" transform="rotate(180,352,96)"/>
<polygon class="arrowhead" points="272,80 260,74.4 260,85.6" fill="black" transform="rotate(0,264,80)"/>
<polygon class="arrowhead" points="96,96 84,90.4 84,101.6" fill="black" transform="rotate(180,88,96)"/>
<g class="text">
<text x="152" y="36">DNS</text>
<text x="188" y="36">SVCB</text>
<text x="232" y="36">Query</text>
<text x="188" y="52">_a2a._agents.example</text>
<text x="288" y="52">com</text>
<text x="20" y="84">AI</text>
<text x="56" y="84">Agent</text>
<text x="308" y="84">Resolver</text>
<text x="468" y="84">Auth</text>
<text x="504" y="84">DNS</text>
<text x="44" y="100">(ORG1)</text>
<text x="308" y="100">(ORG1)</text>
<text x="484" y="100">(ORG2)</text>
<text x="100" y="164">_a2a._agents.org2.com.</text>
<text x="212" y="164">3600</text>
<text x="244" y="164">IN</text>
<text x="276" y="164">SVCB</text>
<text x="304" y="164">1</text>
<text x="404" y="164">ai-index-svc.org2.com.</text>
<text x="504" y="164">(</text>
<text x="84" y="180">alpn=&quot;a2a&quot;</text>
<text x="76" y="196">port=443</text>
<text x="116" y="212">ipv4hint=192.0.2.1</text>
<text x="124" y="228">ipv6hint=2001:db8::1</text>
<text x="16" y="244">)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                 DNS SVCB Query
             _a2a._agents.example.com
+--------+                       +--------+            +--------+
|AI Agent|---------------------->|Resolver|----------->|Auth DNS|
| (ORG1) |<----------------------| (ORG1) |<-----------| (ORG2) |
+--------+                       +--------+      |     +--------+
                                                 |
+------------------------------------------------+--------------+
|_a2a._agents.org2.com. 3600 IN SVCB 1 ai-index-svc.org2.com. ( |
|    alpn="a2a"                                                 |
|    port=443                                                   |
|    ipv4hint=192.0.2.1                                         |
|    ipv6hint=2001:db8::1                                       |
|)                                                              |
+---------------------------------------------------------------+
]]></artwork></artset></figure>

</section>
<section anchor="example-record"><name>Example Record</name>
<figure title="Example SVCB Resource Record" anchor="exampleRR"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="504" viewBox="0 0 504 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<g class="text">
<text x="92" y="36">_a2a._agents.org2.com.</text>
<text x="204" y="36">3600</text>
<text x="236" y="36">IN</text>
<text x="268" y="36">SVCB</text>
<text x="296" y="36">1</text>
<text x="396" y="36">ai-index-svc.org2.com.</text>
<text x="496" y="36">(</text>
<text x="76" y="52">alpn=&quot;a2a&quot;</text>
<text x="68" y="68">port=443</text>
<text x="108" y="84">ipv4hint=192.0.2.1</text>
<text x="116" y="100">ipv6hint=2001:db8::1</text>
<text x="8" y="116">)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
_a2a._agents.org2.com. 3600 IN SVCB 1 ai-index-svc.org2.com. (
    alpn="a2a"
    port=443
    ipv4hint=192.0.2.1
    ipv6hint=2001:db8::1
)
]]></artwork></artset></figure>

<t><list style="symbols">
  <t>_a2a._agents.example.com.: The service name, following the SVCB naming convention (_service._agents.example.com).</t>
  <t>3600: TTL (Time to Live) in seconds.</t>
  <t>IN SVCB: The record type.</t>
  <t>1: SVCB priority. 0 is for alias mode; 1+ is for service mode.</t>
  <t>ai-index-svc.org2.com.: The target name of the service.</t>
  <t>alpn="a2a": Specifies the ALPN protocol identifier. This is where your custom protocol is declared.</t>
  <t>port=443: The port on which the service is available.</t>
  <t>ipv4hint and ipv6hint: Optional hints for clients to connect directly.</t>
</list></t>

</section>
<section anchor="example-use-cases"><name>Example Use Cases</name>

<t><list style="numbers" type="1">
  <t>A user instructs their internal agent to "clean up DummyCorp contacts based on this email." The agent must discover DummyCorp's authorized agents, validate its own delegation to act on behalf of the enterprise, and initiate a secure session. DNS-AID enables this by publishing agent endpoints and roles under DNS zones controlled by each organization.</t>
  <t>A research consortium deploys agents across multiple institutions. Each institution publishes its agents under its own domain (e.g., _a2a._agents.universityA.example.edu), allowing collaborators to discover services based on capability (e.g., _data-annotator._a2a.universityB.example.edu) while respecting institutional boundaries and trust models.</t>
  <t>A SaaS provider hosts agents for multiple customers. Each customer's agents are published under tenant-specific zones (e.g., customer1._agents.saas.com), enabling scoped discovery and policy enforcement. DNS-AID supports this model through hierarchical zone delegation and metadata-rich SVCB records.</t>
  <t>Lightweight agents deployed on mobile or edge devices require low-latency, cacheable discovery mechanisms. The DNS distributed architecture and support for SVCB hints (e.g., IP addresses, preferred protocols) enable efficient resolution and connection bootstrapping in constrained environments.</t>
  <t>In regulated industries, agents must operate within jurisdictional boundaries and maintain audit trails of interactions. DNS supports geographic scoping via ccTLDs and split-horizon configurations, while query logging and DNSSEC provide observability and integrity guarantees.</t>
</list></t>

</section>
<section anchor="zone-and-other-requirements"><name>Zone and Other Requirements</name>

<section anchor="delegation-and-chain-of-trust"><name>Delegation and Chain of Trust</name>

<t>A public authoritative zone used for the purposes of agent discovery <bcp14>MUST</bcp14> use DNSSEC <xref target="RFC4033"/>. The zone <bcp14>MUST</bcp14> establish a complete chain of trust to a publicly recognized trust anchor. AI agents <bcp14>MUST</bcp14> use validating resolvers, or have the capability to validate records.</t>

<t>All DNS-AID-specific discovery records (e.g. SVCB/HTTPS <xref target="RFC9460"/>, TXT/URI <xref target="RFC7553"/> used for capability descriptors, and any DNS-AID-defined RRTypes) <bcp14>MUST</bcp14> be signed and published in the DNS-AID External Zone. Where DNS-AID endpoints rely on TLS, publication of DANE TLSA records <bcp14>MAY</bcp14> be used to bind endpoint certificates to DNSSEC-validated names <xref target="RFC6698"/><xref target="RFC7671"/>. Resolver behavior consuming DNS-AID data <bcp14>MUST</bcp14> treat DNSSEC-bogus responses as failures and <bcp14>MUST NOT</bcp14> act on unsigned or invalidly signed discovery data.</t>

</section>
<section anchor="performance-optimizations"><name>Performance Optimization(s)</name>

<t>Each agent service endpoint that is specifically published as a DNS record <bcp14>SHOULD</bcp14> be an SVCB record in ServiceMode (or HTTPS RR for HTTPS endpoints) to convey connection parameters and capability locators with a single lookup <xref target="RFC9460"/>. SVCB "address hints" (ipv4hint, ipv6hint) <bcp14>SHOULD</bcp14> be used to reduce A/AAAA follow-up queries; resolvers <bcp14>MAY</bcp14> still validate final addresses via canonical resolution. Where human-friendly names are required, SVCB AliasMode (priority 0) <bcp14>MAY</bcp14> be used to map from a stable alias name to a canonical name.</t>

<t>Authoritative servers <bcp14>MUST</bcp14> support EDNS(0) <xref target="RFC6891"/> and TCP fallback <xref target="RFC7766"/>. Operators <bcp14>SHOULD</bcp14> target response sizes that avoid IP fragmentation on common paths (e.g., &lt;= 1232 bytes on IPv6), preferring compression and layered indirection over oversized RRsets. TTLs <bcp14>MUST</bcp14> be chosen to reflect the volatility of capability data; index/indirection records may use longer TTLs than frequently changing endpoint or capability descriptors. Negative caching <bcp14>MUST</bcp14> conform to <xref target="RFC2308"/>.</t>

<t>A representative naming pattern is shown below; the exact label order is deployment-specific, but the leaf per service, per agent rule applies:</t>

<figure><artwork><![CDATA[
; Hashed, per-agent, per-service leaf
a4k2f9._mcp._agents.example.org.  600 IN SVCB 1 svc-a4k2f9.example.org.
    alpn="map,h2,h3" port=443 ipv6hint=2001:db8::5 ipv4hint=192.0.2.5

; Optional alias for a friendlier owner name
billing._mcp._agents.example.org. 300 IN SVCB 0 a4k2f9._mcp._agents.example.org.
]]></artwork></figure>

</section>
<section anchor="customizations"><name>Customization(s)</name>

<t>DNS-AID deployments <bcp14>MAY</bcp14> define additional SVCB parameters (SvcParamKeys) to convey agent-specific capability metadata, provided that interoperability safeguards in <xref target="RFC9460"/> are observed. During experimentation, unregistered keys <bcp14>MUST</bcp14> use the numeric keyNNNNN presentation form, and any client behavior that depends on them <bcp14>MUST</bcp14> be gated via the mandatory SvcParam to ensure downgrade safety.</t>

<t>This specification defines the following provisional SvcParamKeys for DNS-AID (names are illustrative; production deployments <bcp14>MUST</bcp14> register through IANA per <xref target="RFC9460"/> or use keyNNNNN until standardized):</t>

<t>The following are example use cases for additional params:</t>

<t><list style="symbols">
  <t>cap - a capability descriptor locator or inline identifier (e.g., a URN or compact JSON-Ref) that identifies the agent's advertised capability schema/version.</t>
  <t>cap-sha256 - a base64url-encoded SHA-256 digest of the canonical capability descriptor to support integrity checks and cache revalidation.</t>
  <t>policy - a URI or URN identifying a policy bundle applicable to this agent (e.g., jurisdiction, data handling class) for client-side selection.</t>
  <t>realm - an opaque token for multi-tenant scoping or authz realm selection during protocol bootstrapping.</t>
</list></t>

<t>Clients that require any of these parameters <bcp14>MUST</bcp14> verify their presence via the mandatory key; otherwise, the SVCB record <bcp14>MUST</bcp14> be ignored. Example:</t>

<figure><artwork><![CDATA[
Single-RRTYPE publication with custom params (experimental keys shown)
a4k2f9._mcp._agents.example.org. 600 IN SVCB 1 svc-a4k2f9.example.org.
    alpn="h2" port=443 ipv4hint=192.0.2.5
    mandatory=alpn,port,key65001,key65002,key65010
    key65001="cap=urn:cap:example:mcp:invoice.v1"
    key65002="cap-sha256=yvZ0n7q8bE2gYkz8m1j1s0yQG0mC2F6qj3b9pVb6Gk0"
    key65010="bap=a2a/1,mcp/1"
]]></artwork></figure>

<t>Where endpoints are HTTPS, the HTTPS RR variant <bcp14>SHOULD</bcp14> be used to co-locate transport parameters such as ECH with capability metadata; otherwise, generic SVCB <bcp14>MAY</bcp14> be used. Future standardization <bcp14>SHOULD</bcp14> define the exact syntax (e.g., ABNF) and registry policy for these keys, including error handling for malformed or conflicting parameters. Until registration is complete, deployments <bcp14>MUST</bcp14> treat unknown keyNNNNN parameters as opaque and <bcp14>MUST NOT</bcp14> infer semantics without out-of-band agreement.</t>

</section>
</section>
</section>
<section anchor="implementation-guidance"><name>Implementation Guidance</name>

<section anchor="discovery-usage-examples"><name>Discovery Usage Examples</name>

<section anchor="discovery-status-1-known-service-and-domain"><name>Discovery Status 1 (Known Service and Domain)</name>
<t>Query foobar._mcp._agents.example.com <xref target="discovery-ex"/>:</t>

<t>In this scenario, the AI Agent Client knows both the service type (mcp) and the
authoritative domain (example.com) and performs a direct SVCB query.</t>

<figure title="Discovery Status 1: SVCB Query with Full Chain Traversal" anchor="discovery-ex"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="816" width="584" viewBox="0 0 584 816" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 72,112 L 72,784" fill="none" stroke="black"/>
<path d="M 296,112 L 296,784" fill="none" stroke="black"/>
<path d="M 512,112 L 512,784" fill="none" stroke="black"/>
<path d="M 80,160 L 288,160" fill="none" stroke="black"/>
<path d="M 304,208 L 504,208" fill="none" stroke="black"/>
<path d="M 304,256 L 504,256" fill="none" stroke="black"/>
<path d="M 304,304 L 504,304" fill="none" stroke="black"/>
<path d="M 304,352 L 504,352" fill="none" stroke="black"/>
<path d="M 304,416 L 504,416" fill="none" stroke="black"/>
<path d="M 304,480 L 504,480" fill="none" stroke="black"/>
<path d="M 80,544 L 288,544" fill="none" stroke="black"/>
<path d="M 80,736 L 288,736" fill="none" stroke="black"/>
<polygon class="arrowhead" points="512,416 500,410.4 500,421.6" fill="black" transform="rotate(0,504,416)"/>
<polygon class="arrowhead" points="512,304 500,298.4 500,309.6" fill="black" transform="rotate(0,504,304)"/>
<polygon class="arrowhead" points="512,208 500,202.4 500,213.6" fill="black" transform="rotate(0,504,208)"/>
<polygon class="arrowhead" points="312,480 300,474.4 300,485.6" fill="black" transform="rotate(180,304,480)"/>
<polygon class="arrowhead" points="312,352 300,346.4 300,357.6" fill="black" transform="rotate(180,304,352)"/>
<polygon class="arrowhead" points="312,256 300,250.4 300,261.6" fill="black" transform="rotate(180,304,256)"/>
<polygon class="arrowhead" points="296,736 284,730.4 284,741.6" fill="black" transform="rotate(0,288,736)"/>
<polygon class="arrowhead" points="296,160 284,154.4 284,165.6" fill="black" transform="rotate(0,288,160)"/>
<polygon class="arrowhead" points="88,544 76,538.4 76,549.6" fill="black" transform="rotate(180,80,544)"/>
<g class="text">
<text x="12" y="36">AI</text>
<text x="48" y="36">Agent</text>
<text x="100" y="36">Client</text>
<text x="24" y="52">wants</text>
<text x="60" y="52">to</text>
<text x="112" y="52">discover:</text>
<text x="296" y="52">foobar._mcp._agents.example.com</text>
<text x="20" y="68">(mcp</text>
<text x="48" y="68">=</text>
<text x="92" y="68">service,</text>
<text x="156" y="68">foobar</text>
<text x="192" y="68">=</text>
<text x="272" y="68">agent/capability,</text>
<text x="392" y="68">example.com</text>
<text x="448" y="68">=</text>
<text x="488" y="68">trusted</text>
<text x="552" y="68">domain)</text>
<text x="40" y="100">Agent</text>
<text x="92" y="100">Client</text>
<text x="260" y="100">Resolver</text>
<text x="304" y="100">/</text>
<text x="336" y="100">Cache</text>
<text x="480" y="100">Root/TLD/Auth</text>
<text x="552" y="100">DNS</text>
<text x="108" y="132">1.</text>
<text x="140" y="132">SVCB</text>
<text x="184" y="132">Query</text>
<text x="144" y="148">(Recursive)</text>
<text x="316" y="196">2.</text>
<text x="352" y="196">Query</text>
<text x="396" y="196">Root</text>
<text x="316" y="244">3.</text>
<text x="364" y="244">Referral</text>
<text x="412" y="244">to</text>
<text x="444" y="244">.com</text>
<text x="476" y="244">NS</text>
<text x="316" y="292">4.</text>
<text x="352" y="292">Query</text>
<text x="396" y="292">.com</text>
<text x="432" y="292">TLD</text>
<text x="316" y="340">5.</text>
<text x="364" y="340">Referral</text>
<text x="412" y="340">to</text>
<text x="444" y="340">auth</text>
<text x="476" y="340">NS</text>
<text x="316" y="388">6.</text>
<text x="352" y="388">Query</text>
<text x="396" y="388">Auth</text>
<text x="428" y="388">NS</text>
<text x="456" y="388">for</text>
<text x="408" y="404">foobar._mcp._agents</text>
<text x="316" y="452">7.</text>
<text x="348" y="452">SVCB</text>
<text x="392" y="452">RRSet</text>
<text x="452" y="452">Response</text>
<text x="392" y="468">(DNSSEC-signed)</text>
<text x="108" y="516">8.</text>
<text x="140" y="516">SVCB</text>
<text x="196" y="516">Response</text>
<text x="128" y="532">(cached</text>
<text x="168" y="532">+</text>
<text x="220" y="532">validated)</text>
<text x="132" y="580">Response</text>
<text x="208" y="580">includes:</text>
<text x="104" y="596">-</text>
<text x="144" y="596">Service</text>
<text x="204" y="596">target</text>
<text x="104" y="612">-</text>
<text x="132" y="612">ALPN</text>
<text x="200" y="612">protocol(s)</text>
<text x="104" y="628">-</text>
<text x="132" y="628">Port</text>
<text x="180" y="628">number</text>
<text x="104" y="644">-</text>
<text x="152" y="644">IPv4/IPv6</text>
<text x="216" y="644">hints</text>
<text x="104" y="660">-</text>
<text x="140" y="660">DNSSEC</text>
<text x="212" y="660">signatures</text>
<text x="104" y="676">-</text>
<text x="164" y="676">Capabilities</text>
<text x="244" y="676">(cost,</text>
<text x="168" y="692">modalities,</text>
<text x="236" y="692">etc)</text>
<text x="108" y="724">9.</text>
<text x="140" y="724">A2A,</text>
<text x="180" y="724">MCP,</text>
<text x="220" y="724">etc.</text>
<text x="160" y="756">(Agent-to-Agent</text>
<text x="160" y="772">communication</text>
<text x="248" y="772">begins)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
      AI Agent Client
      wants to discover:   foobar._mcp._agents.example.com
      (mcp = service, foobar = agent/capability, example.com = trusted domain)

        Agent Client              Resolver / Cache         Root/TLD/Auth DNS
              |                           |                          |
              |   1. SVCB Query           |                          |
              |   (Recursive)             |                          |
              |-------------------------->|                          |
              |                           |                          |
              |                           | 2. Query Root            |
              |                           |------------------------->|
              |                           |                          |
              |                           | 3. Referral to .com NS   |
              |                           |<-------------------------|
              |                           |                          |
              |                           | 4. Query .com TLD        |
              |                           |------------------------->|
              |                           |                          |
              |                           | 5. Referral to auth NS   |
              |                           |<-------------------------|
              |                           |                          |
              |                           | 6. Query Auth NS for     |
              |                           |    foobar._mcp._agents   |
              |                           |------------------------->|
              |                           |                          |
              |                           | 7. SVCB RRSet Response   |
              |                           |    (DNSSEC-signed)       |
              |                           |<-------------------------|
              |                           |                          |
              |   8. SVCB Response        |                          |
              |   (cached + validated)    |                          |
              |<--------------------------|                          |
              |                           |                          |
              |   Response includes:      |                          |
              |   - Service target        |                          |
              |   - ALPN protocol(s)      |                          |
              |   - Port number           |                          |
              |   - IPv4/IPv6 hints       |                          |
              |   - DNSSEC signatures     |                          |
              |   - Capabilities (cost,   |                          |
              |      modalities, etc)     |                          |
              |                           |                          |
              |   9. A2A, MCP, etc.       |                          |
              |-------------------------->|                          |
              |   (Agent-to-Agent         |                          |
              |    communication begins)  |                          |
              |                           |                          |
]]></artwork></artset></figure>

</section>
<section anchor="discovery-status-2-known-service-or-domain-trusted"><name>Discovery Status 2 (Known Service OR Domain, Trusted)</name>

<t>Query of the known organisation's index if service is unknown <xref target="discovery-ex2"/>:</t>

<t>In this scenario, the Agent Client knows the trusted domain (example.com) but the
specific agent service type is unknown. The client queries a well-known index entry
point to discover available agent capabilities. The index query is not DNS.</t>

<figure title="Discovery Status 2: Index-Based Discovery with Service Selection" anchor="discovery-ex2"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1024" width="568" viewBox="0 0 568 1024" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 72,128 L 72,992" fill="none" stroke="black"/>
<path d="M 296,128 L 296,992" fill="none" stroke="black"/>
<path d="M 512,128 L 512,992" fill="none" stroke="black"/>
<path d="M 80,192 L 288,192" fill="none" stroke="black"/>
<path d="M 304,240 L 504,240" fill="none" stroke="black"/>
<path d="M 304,288 L 504,288" fill="none" stroke="black"/>
<path d="M 304,336 L 504,336" fill="none" stroke="black"/>
<path d="M 304,384 L 504,384" fill="none" stroke="black"/>
<path d="M 304,448 L 504,448" fill="none" stroke="black"/>
<path d="M 304,528 L 504,528" fill="none" stroke="black"/>
<path d="M 80,592 L 288,592" fill="none" stroke="black"/>
<path d="M 304,832 L 504,832" fill="none" stroke="black"/>
<path d="M 80,896 L 288,896" fill="none" stroke="black"/>
<path d="M 304,896 L 504,896" fill="none" stroke="black"/>
<path d="M 80,944 L 288,944" fill="none" stroke="black"/>
<polygon class="arrowhead" points="512,832 500,826.4 500,837.6" fill="black" transform="rotate(0,504,832)"/>
<polygon class="arrowhead" points="512,448 500,442.4 500,453.6" fill="black" transform="rotate(0,504,448)"/>
<polygon class="arrowhead" points="512,336 500,330.4 500,341.6" fill="black" transform="rotate(0,504,336)"/>
<polygon class="arrowhead" points="512,240 500,234.4 500,245.6" fill="black" transform="rotate(0,504,240)"/>
<polygon class="arrowhead" points="312,896 300,890.4 300,901.6" fill="black" transform="rotate(180,304,896)"/>
<polygon class="arrowhead" points="312,528 300,522.4 300,533.6" fill="black" transform="rotate(180,304,528)"/>
<polygon class="arrowhead" points="312,384 300,378.4 300,389.6" fill="black" transform="rotate(180,304,384)"/>
<polygon class="arrowhead" points="312,288 300,282.4 300,293.6" fill="black" transform="rotate(180,304,288)"/>
<polygon class="arrowhead" points="296,944 284,938.4 284,949.6" fill="black" transform="rotate(0,288,944)"/>
<polygon class="arrowhead" points="296,192 284,186.4 284,197.6" fill="black" transform="rotate(0,288,192)"/>
<polygon class="arrowhead" points="88,896 76,890.4 76,901.6" fill="black" transform="rotate(180,80,896)"/>
<polygon class="arrowhead" points="88,592 76,586.4 76,597.6" fill="black" transform="rotate(180,80,592)"/>
<g class="text">
<text x="12" y="36">AI</text>
<text x="48" y="36">Agent</text>
<text x="100" y="36">Client</text>
<text x="28" y="52">knows:</text>
<text x="192" y="52">example.com</text>
<text x="252" y="52">is</text>
<text x="296" y="52">trusted</text>
<text x="24" y="68">wants</text>
<text x="60" y="68">to</text>
<text x="112" y="68">discover:</text>
<text x="192" y="68">available</text>
<text x="260" y="68">agents</text>
<text x="304" y="68">and</text>
<text x="356" y="68">services</text>
<text x="36" y="84">queries:</text>
<text x="252" y="84">_index._agents.example.com</text>
<text x="408" y="84">(well-known</text>
<text x="480" y="84">entry</text>
<text x="532" y="84">point)</text>
<text x="40" y="116">Agent</text>
<text x="92" y="116">Client</text>
<text x="260" y="116">Resolver</text>
<text x="304" y="116">/</text>
<text x="336" y="116">Cache</text>
<text x="480" y="116">Root/TLD/Auth</text>
<text x="552" y="116">DNS</text>
<text x="108" y="148">1.</text>
<text x="140" y="148">SVCB</text>
<text x="184" y="148">Query</text>
<text x="156" y="164">_index._agents</text>
<text x="144" y="180">(Recursive)</text>
<text x="316" y="228">2.</text>
<text x="352" y="228">Query</text>
<text x="396" y="228">Root</text>
<text x="316" y="276">3.</text>
<text x="364" y="276">Referral</text>
<text x="412" y="276">to</text>
<text x="444" y="276">.com</text>
<text x="476" y="276">NS</text>
<text x="316" y="324">4.</text>
<text x="352" y="324">Query</text>
<text x="396" y="324">.com</text>
<text x="432" y="324">TLD</text>
<text x="316" y="372">5.</text>
<text x="364" y="372">Referral</text>
<text x="412" y="372">to</text>
<text x="444" y="372">auth</text>
<text x="476" y="372">NS</text>
<text x="316" y="420">6.</text>
<text x="352" y="420">Query</text>
<text x="396" y="420">Auth</text>
<text x="428" y="420">NS</text>
<text x="456" y="420">for</text>
<text x="388" y="436">_index._agents</text>
<text x="316" y="484">7.</text>
<text x="352" y="484">Index</text>
<text x="392" y="484">DNS</text>
<text x="444" y="484">Response</text>
<text x="352" y="500">(SVCB</text>
<text x="400" y="500">RRSet</text>
<text x="436" y="500">or</text>
<text x="404" y="516">CNAME/AliasMode)</text>
<text x="108" y="564">8.</text>
<text x="144" y="564">Index</text>
<text x="192" y="564">Agent</text>
<text x="252" y="564">Response</text>
<text x="128" y="580">(cached</text>
<text x="168" y="580">+</text>
<text x="220" y="580">validated)</text>
<text x="132" y="628">Response</text>
<text x="208" y="628">includes:</text>
<text x="104" y="644">-</text>
<text x="132" y="644">List</text>
<text x="164" y="644">of</text>
<text x="200" y="644">agent</text>
<text x="248" y="644">types</text>
<text x="136" y="660">(mcp,</text>
<text x="180" y="660">a2a,</text>
<text x="224" y="660">etc.)</text>
<text x="104" y="676">-</text>
<text x="144" y="676">Service</text>
<text x="216" y="676">endpoints</text>
<text x="104" y="692">-</text>
<text x="156" y="692">Capability</text>
<text x="236" y="692">metadata</text>
<text x="104" y="708">-</text>
<text x="140" y="708">DNSSEC</text>
<text x="212" y="708">signatures</text>
<text x="108" y="740">9.</text>
<text x="144" y="740">Parse</text>
<text x="196" y="740">index,</text>
<text x="252" y="740">select</text>
<text x="152" y="756">desired</text>
<text x="208" y="756">agent</text>
<text x="252" y="756">type</text>
<text x="148" y="772">(e.g.,</text>
<text x="196" y="772">mcp)</text>
<text x="112" y="804">10.</text>
<text x="152" y="804">Query</text>
<text x="212" y="804">specific</text>
<text x="152" y="820">agent</text>
<text x="208" y="820">service</text>
<text x="212" y="836">foobar._mcp._aiag...</text>
<text x="320" y="868">11.</text>
<text x="364" y="868">Return</text>
<text x="424" y="868">service</text>
<text x="368" y="884">details</text>
<text x="112" y="932">12.</text>
<text x="148" y="932">A2A,</text>
<text x="188" y="932">MCP,</text>
<text x="228" y="932">etc.</text>
<text x="160" y="964">(Agent-to-Agent</text>
<text x="160" y="980">communication</text>
<text x="248" y="980">begins)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
      AI Agent Client
      knows:            example.com is trusted
      wants to discover: available agents and services
      queries:          _index._agents.example.com (well-known entry point)

        Agent Client              Resolver / Cache         Root/TLD/Auth DNS
              |                           |                          |
              |   1. SVCB Query           |                          |
              |   _index._agents          |                          |
              |   (Recursive)             |                          |
              |-------------------------->|                          |
              |                           |                          |
              |                           | 2. Query Root            |
              |                           |------------------------->|
              |                           |                          |
              |                           | 3. Referral to .com NS   |
              |                           |<-------------------------|
              |                           |                          |
              |                           | 4. Query .com TLD        |
              |                           |------------------------->|
              |                           |                          |
              |                           | 5. Referral to auth NS   |
              |                           |<-------------------------|
              |                           |                          |
              |                           | 6. Query Auth NS for     |
              |                           |    _index._agents        |
              |                           |------------------------->|
              |                           |                          |
              |                           | 7. Index DNS Response    |
              |                           |    (SVCB RRSet or        |
              |                           |     CNAME/AliasMode)     |
              |                           |<-------------------------|
              |                           |                          |
              |   8. Index Agent Response |                          |
              |   (cached + validated)    |                          |
              |<--------------------------|                          |
              |                           |                          |
              |   Response includes:      |                          |
              |   - List of agent types   |                          |
              |     (mcp, a2a, etc.)      |                          |
              |   - Service endpoints     |                          |
              |   - Capability metadata   |                          |
              |   - DNSSEC signatures     |                          |
              |                           |                          |
              |   9. Parse index, select  |                          |
              |      desired agent type   |                          |
              |      (e.g., mcp)          |                          |
              |                           |                          |
              |   10. Query specific      |                          |
              |       agent service       |                          |
              |       foobar._mcp._aiag...|------------------------->|
              |                           |                          |
              |                           | 11. Return service       |
              |                           |     details              |
              |<--------------------------|<-------------------------|
              |                           |                          |
              |   12. A2A, MCP, etc.      |                          |
              |-------------------------->|                          |
              |   (Agent-to-Agent         |                          |
              |    communication begins)  |                          |
              |                           |                          |
]]></artwork></artset></figure>

</section>
<section anchor="discovery-status-3-multi-domain-query-for-known-service"><name>Discovery Status 3 (Multi-Domain Query for Known Service)</name>

<t>Query the same well-known agent name across multiple known domains (potential for this discovery case to be met by the registry described in Discovery Status 4):</t>

<figure title="Discovery Status 3: Parallel Multi-Domain Service Discovery" anchor="discovery-ex3"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="912" width="536" viewBox="0 0 536 912" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 72,128 L 72,880" fill="none" stroke="black"/>
<path d="M 296,128 L 296,880" fill="none" stroke="black"/>
<path d="M 512,144 L 512,880" fill="none" stroke="black"/>
<path d="M 80,224 L 288,224" fill="none" stroke="black"/>
<path d="M 304,272 L 504,272" fill="none" stroke="black"/>
<path d="M 304,320 L 504,320" fill="none" stroke="black"/>
<path d="M 80,400 L 288,400" fill="none" stroke="black"/>
<path d="M 80,480 L 288,480" fill="none" stroke="black"/>
<path d="M 304,528 L 504,528" fill="none" stroke="black"/>
<path d="M 304,576 L 504,576" fill="none" stroke="black"/>
<path d="M 80,656 L 288,656" fill="none" stroke="black"/>
<path d="M 80,832 L 288,832" fill="none" stroke="black"/>
<polygon class="arrowhead" points="512,528 500,522.4 500,533.6" fill="black" transform="rotate(0,504,528)"/>
<polygon class="arrowhead" points="512,272 500,266.4 500,277.6" fill="black" transform="rotate(0,504,272)"/>
<polygon class="arrowhead" points="312,576 300,570.4 300,581.6" fill="black" transform="rotate(180,304,576)"/>
<polygon class="arrowhead" points="312,320 300,314.4 300,325.6" fill="black" transform="rotate(180,304,320)"/>
<polygon class="arrowhead" points="296,832 284,826.4 284,837.6" fill="black" transform="rotate(0,288,832)"/>
<polygon class="arrowhead" points="296,480 284,474.4 284,485.6" fill="black" transform="rotate(0,288,480)"/>
<polygon class="arrowhead" points="296,224 284,218.4 284,229.6" fill="black" transform="rotate(0,288,224)"/>
<polygon class="arrowhead" points="88,656 76,650.4 76,661.6" fill="black" transform="rotate(180,80,656)"/>
<polygon class="arrowhead" points="88,400 76,394.4 76,405.6" fill="black" transform="rotate(180,80,400)"/>
<g class="text">
<text x="12" y="36">AI</text>
<text x="48" y="36">Agent</text>
<text x="100" y="36">Client</text>
<text x="28" y="52">knows:</text>
<text x="176" y="52">img2txt</text>
<text x="220" y="52">is</text>
<text x="240" y="52">a</text>
<text x="292" y="52">well-known</text>
<text x="360" y="52">agent</text>
<text x="404" y="52">type</text>
<text x="28" y="68">knows:</text>
<text x="180" y="68">org1.com</text>
<text x="232" y="68">and</text>
<text x="284" y="68">org2.com</text>
<text x="336" y="68">are</text>
<text x="384" y="68">trusted</text>
<text x="448" y="68">domains</text>
<text x="24" y="84">wants</text>
<text x="60" y="84">to</text>
<text x="112" y="84">discover:</text>
<text x="176" y="84">which</text>
<text x="220" y="84">orgs</text>
<text x="260" y="84">have</text>
<text x="312" y="84">img2txt</text>
<text x="372" y="84">agents</text>
<text x="440" y="84">available</text>
<text x="40" y="116">Agent</text>
<text x="92" y="116">Client</text>
<text x="260" y="116">Resolver</text>
<text x="304" y="116">/</text>
<text x="336" y="116">Cache</text>
<text x="448" y="116">Root/TLD/Auth</text>
<text x="520" y="116">DNS</text>
<text x="432" y="132">(ORG1</text>
<text x="472" y="132">and</text>
<text x="512" y="132">ORG2)</text>
<text x="108" y="164">1.</text>
<text x="140" y="164">SVCB</text>
<text x="184" y="164">Query</text>
<text x="180" y="180">img2txt._a2a._agents</text>
<text x="136" y="196">.org1.com</text>
<text x="144" y="212">(Recursive)</text>
<text x="316" y="260">2.</text>
<text x="360" y="260">Resolve</text>
<text x="416" y="260">.org1</text>
<text x="464" y="260">chain</text>
<text x="316" y="308">3.</text>
<text x="352" y="308">Auth.</text>
<text x="392" y="308">DNS</text>
<text x="428" y="308">org1</text>
<text x="360" y="340">returns</text>
<text x="424" y="340">service</text>
<text x="476" y="340">info</text>
<text x="108" y="372">4.</text>
<text x="156" y="372">Response</text>
<text x="220" y="372">(org1)</text>
<text x="128" y="388">(cached</text>
<text x="168" y="388">+</text>
<text x="220" y="388">validated)</text>
<text x="108" y="436">5.</text>
<text x="140" y="436">SVCB</text>
<text x="184" y="436">Query</text>
<text x="180" y="452">img2txt._a2a._agents</text>
<text x="136" y="468">.org2.com</text>
<text x="316" y="516">6.</text>
<text x="360" y="516">Resolve</text>
<text x="416" y="516">.org2</text>
<text x="464" y="516">chain</text>
<text x="316" y="564">7.</text>
<text x="352" y="564">Auth.</text>
<text x="392" y="564">DNS</text>
<text x="428" y="564">org2</text>
<text x="360" y="596">returns</text>
<text x="424" y="596">service</text>
<text x="476" y="596">info</text>
<text x="108" y="628">8.</text>
<text x="156" y="628">Response</text>
<text x="220" y="628">(org2)</text>
<text x="128" y="644">(cached</text>
<text x="168" y="644">+</text>
<text x="220" y="644">validated)</text>
<text x="108" y="692">9.</text>
<text x="148" y="692">Client</text>
<text x="220" y="692">evaluates:</text>
<text x="104" y="708">-</text>
<text x="144" y="708">Service</text>
<text x="228" y="708">capabilities</text>
<text x="132" y="724">from</text>
<text x="172" y="724">both</text>
<text x="232" y="724">responses</text>
<text x="104" y="740">-</text>
<text x="136" y="740">Trust</text>
<text x="188" y="740">levels</text>
<text x="252" y="740">(DNSSEC)</text>
<text x="104" y="756">-</text>
<text x="136" y="756">Cost,</text>
<text x="196" y="756">latency,</text>
<text x="252" y="756">etc.</text>
<text x="112" y="788">10.</text>
<text x="156" y="788">Select</text>
<text x="220" y="788">endpoint</text>
<text x="264" y="788">&amp;</text>
<text x="180" y="804">A2A/protocol</text>
<text x="252" y="804">with</text>
<text x="156" y="820">chosen</text>
<text x="220" y="820">provider</text>
<text x="160" y="852">(Agent-to-Agent</text>
<text x="160" y="868">communication</text>
<text x="248" y="868">begins)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
      AI Agent Client
      knows:            img2txt is a well-known agent type
      knows:            org1.com and org2.com are trusted domains
      wants to discover: which orgs have img2txt agents available

        Agent Client              Resolver / Cache     Root/TLD/Auth DNS
              |                           |              (ORG1 and ORG2)
              |                           |                          |
              |   1. SVCB Query           |                          |
              |   img2txt._a2a._agents    |                          |
              |   .org1.com               |                          |
              |   (Recursive)             |                          |
              |-------------------------->|                          |
              |                           |                          |
              |                           | 2. Resolve .org1 chain   |
              |                           |------------------------->|
              |                           |                          |
              |                           | 3. Auth. DNS org1        |
              |                           |<-------------------------|
              |                           |    returns service info  |
              |                           |                          |
              |   4. Response (org1)      |                          |
              |   (cached + validated)    |                          |
              |<--------------------------|                          |
              |                           |                          |
              |   5. SVCB Query           |                          |
              |   img2txt._a2a._agents    |                          |
              |   .org2.com               |                          |
              |-------------------------->|                          |
              |                           |                          |
              |                           | 6. Resolve .org2 chain   |
              |                           |------------------------->|
              |                           |                          |
              |                           | 7. Auth. DNS org2        |
              |                           |<-------------------------|
              |                           |    returns service info  |
              |                           |                          |
              |   8. Response (org2)      |                          |
              |   (cached + validated)    |                          |
              |<--------------------------|                          |
              |                           |                          |
              |   9. Client evaluates:    |                          |
              |   - Service capabilities  |                          |
              |     from both responses   |                          |
              |   - Trust levels (DNSSEC) |                          |
              |   - Cost, latency, etc.   |                          |
              |                           |                          |
              |   10. Select endpoint &   |                          |
              |       A2A/protocol with   |                          |
              |       chosen provider     |                          |
              |-------------------------->|                          |
              |   (Agent-to-Agent         |                          |
              |    communication begins)  |                          |
              |                           |                          |
]]></artwork></artset></figure>

</section>
<section anchor="discovery-status-4-untrusted-domain-consolidated-registry"><name>Discovery Status 4 (Untrusted Domain / Consolidated Registry)</name>

<t>Query a consolidated (reputable) registry (not DNS) when neither domain nor comprehensive service list is known:</t>

<figure title="Discovery Status 4: Registry-Based Discovery Across Multiple Providers" anchor="discovery-ex4"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="976" width="616" viewBox="0 0 616 976" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 72,128 L 72,944" fill="none" stroke="black"/>
<path d="M 296,128 L 296,944" fill="none" stroke="black"/>
<path d="M 512,128 L 512,944" fill="none" stroke="black"/>
<path d="M 80,208 L 288,208" fill="none" stroke="black"/>
<path d="M 304,272 L 504,272" fill="none" stroke="black"/>
<path d="M 304,320 L 504,320" fill="none" stroke="black"/>
<path d="M 80,400 L 288,400" fill="none" stroke="black"/>
<path d="M 304,448 L 504,448" fill="none" stroke="black"/>
<path d="M 80,816 L 288,816" fill="none" stroke="black"/>
<path d="M 80,896 L 288,896" fill="none" stroke="black"/>
<polygon class="arrowhead" points="512,272 500,266.4 500,277.6" fill="black" transform="rotate(0,504,272)"/>
<polygon class="arrowhead" points="312,448 300,442.4 300,453.6" fill="black" transform="rotate(180,304,448)"/>
<polygon class="arrowhead" points="312,320 300,314.4 300,325.6" fill="black" transform="rotate(180,304,320)"/>
<polygon class="arrowhead" points="296,896 284,890.4 284,901.6" fill="black" transform="rotate(0,288,896)"/>
<polygon class="arrowhead" points="296,816 284,810.4 284,821.6" fill="black" transform="rotate(0,288,816)"/>
<polygon class="arrowhead" points="296,400 284,394.4 284,405.6" fill="black" transform="rotate(0,288,400)"/>
<polygon class="arrowhead" points="296,208 284,202.4 284,213.6" fill="black" transform="rotate(0,288,208)"/>
<g class="text">
<text x="12" y="36">AI</text>
<text x="48" y="36">Agent</text>
<text x="100" y="36">Client</text>
<text x="28" y="52">knows:</text>
<text x="152" y="52">a</text>
<text x="192" y="52">trusted</text>
<text x="260" y="52">registry</text>
<text x="324" y="52">(e.g.,</text>
<text x="484" y="52">registry.ai-trust-community.org)</text>
<text x="24" y="68">wants</text>
<text x="60" y="68">to</text>
<text x="112" y="68">discover:</text>
<text x="168" y="68">all</text>
<text x="212" y="68">viable</text>
<text x="272" y="68">img2txt</text>
<text x="332" y="68">agents</text>
<text x="400" y="68">available</text>
<text x="460" y="68">(any</text>
<text x="500" y="68">org)</text>
<text x="40" y="84">scenario:</text>
<text x="168" y="84">agent</text>
<text x="220" y="84">choice</text>
<text x="276" y="84">driven</text>
<text x="316" y="84">by</text>
<text x="376" y="84">capability,</text>
<text x="440" y="84">not</text>
<text x="484" y="84">domain</text>
<text x="548" y="84">affinity</text>
<text x="40" y="116">Agent</text>
<text x="92" y="116">Client</text>
<text x="260" y="116">Resolver</text>
<text x="304" y="116">/</text>
<text x="336" y="116">Cache</text>
<text x="460" y="116">Registry</text>
<text x="504" y="116">/</text>
<text x="532" y="116">Auth</text>
<text x="568" y="116">DNS</text>
<text x="108" y="148">1.</text>
<text x="140" y="148">SVCB</text>
<text x="184" y="148">Query</text>
<text x="156" y="164">_index._agents</text>
<text x="184" y="180">.registry.ai-trust...</text>
<text x="144" y="196">(Recursive)</text>
<text x="316" y="244">2.</text>
<text x="360" y="244">Resolve</text>
<text x="428" y="244">registry</text>
<text x="356" y="260">domain</text>
<text x="408" y="260">chain</text>
<text x="316" y="308">3.</text>
<text x="356" y="308">Return</text>
<text x="420" y="308">registry</text>
<text x="384" y="340">index/catalog</text>
<text x="460" y="340">SVCB</text>
<text x="108" y="372">4.</text>
<text x="156" y="372">Registry</text>
<text x="216" y="372">Index</text>
<text x="124" y="388">(HTTP,</text>
<text x="176" y="388">JSON,</text>
<text x="220" y="388">etc)</text>
<text x="324" y="436">5.</text>
<text x="372" y="436">Registry</text>
<text x="444" y="436">Response</text>
<text x="356" y="484">Response</text>
<text x="432" y="484">contains:</text>
<text x="328" y="500">-</text>
<text x="352" y="500">Ref</text>
<text x="392" y="500">list:</text>
<text x="448" y="500">img2txt</text>
<text x="364" y="516">agents</text>
<text x="412" y="516">from</text>
<text x="468" y="516">multiple</text>
<text x="368" y="532">trusted</text>
<text x="420" y="532">orgs</text>
<text x="328" y="548">-</text>
<text x="368" y="548">Domains</text>
<text x="408" y="548">+</text>
<text x="456" y="548">endpoints</text>
<text x="328" y="564">-</text>
<text x="376" y="564">Aggregate</text>
<text x="452" y="564">ratings,</text>
<text x="352" y="580">SLA</text>
<text x="392" y="580">info,</text>
<text x="436" y="580">cost</text>
<text x="328" y="596">-</text>
<text x="364" y="596">DNSSEC</text>
<text x="436" y="596">provenance</text>
<text x="328" y="612">-</text>
<text x="388" y="612">Capabilities</text>
<text x="468" y="612">(cost,</text>
<text x="384" y="628">modalities,</text>
<text x="452" y="628">etc)</text>
<text x="108" y="660">6.</text>
<text x="148" y="660">Client</text>
<text x="216" y="660">evaluates</text>
<text x="132" y="676">registry</text>
<text x="200" y="676">results</text>
<text x="116" y="692">(may</text>
<text x="168" y="692">include</text>
<text x="216" y="692">one</text>
<text x="244" y="692">or</text>
<text x="124" y="708">more</text>
<text x="180" y="708">followup</text>
<text x="248" y="708">queries</text>
<text x="120" y="724">per</text>
<text x="176" y="724">Discovery</text>
<text x="244" y="724">Status</text>
<text x="280" y="724">1</text>
<text x="120" y="740">for</text>
<text x="180" y="740">additional</text>
<text x="256" y="740">detail)</text>
<text x="108" y="772">7.</text>
<text x="144" y="772">Query</text>
<text x="196" y="772">chosen</text>
<text x="152" y="788">agent's</text>
<text x="204" y="788">auth</text>
<text x="240" y="788">DNS</text>
<text x="136" y="804">for</text>
<text x="176" y="804">final</text>
<text x="232" y="804">details</text>
<text x="108" y="852">8.</text>
<text x="172" y="852">A2A/protocol</text>
<text x="244" y="852">with</text>
<text x="192" y="868">registry-selected</text>
<text x="156" y="884">endpoint</text>
<text x="160" y="916">(Agent-to-Agent</text>
<text x="160" y="932">communication</text>
<text x="248" y="932">begins)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
      AI Agent Client
      knows:            a trusted registry (e.g., registry.ai-trust-community.org)
      wants to discover: all viable img2txt agents available (any org)
      scenario:         agent choice driven by capability, not domain affinity

        Agent Client              Resolver / Cache         Registry / Auth DNS
              |                           |                          |
              |   1. SVCB Query           |                          |
              |   _index._agents          |                          |
              |   .registry.ai-trust...   |                          |
              |   (Recursive)             |                          |
              |-------------------------->|                          |
              |                           |                          |
              |                           | 2. Resolve registry      |
              |                           |    domain chain          |
              |                           |------------------------->|
              |                           |                          |
              |                           | 3. Return registry       |
              |                           |<-------------------------|
              |                           |    index/catalog SVCB    |
              |                           |                          |
              |   4. Registry Index       |                          |
              |   (HTTP, JSON, etc)       |                          |
              |-------------------------->|                          |
              |                           |                          |
              |                           |  5. Registry Response    |
              |                           |<-------------------------|
              |                           |                          |
              |                           |   Response contains:     |
              |                           |   - Ref list: img2txt    |
              |                           |     agents from multiple |
              |                           |     trusted orgs         |
              |                           |   - Domains + endpoints  |
              |                           |   - Aggregate ratings,   |
              |                           |     SLA info, cost       |
              |                           |   - DNSSEC provenance    |
              |                           |   - Capabilities (cost,  |
              |                           |     modalities, etc)     |
              |                           |                          |
              |   6. Client evaluates     |                          |
              |   registry results        |                          |
              |   (may include one or     |                          |
              |    more followup queries  |                          |
              |    per Discovery Status 1 |                          |
              |    for additional detail) |                          |
              |                           |                          |
              |   7. Query chosen         |                          |
              |      agent's auth DNS     |                          |
              |      for final details    |                          |
              |-------------------------->|                          |
              |                           |                          |
              |   8. A2A/protocol with    |                          |
              |      registry-selected    |                          |
              |      endpoint             |                          |
              |-------------------------->|                          |
              |   (Agent-to-Agent         |                          |
              |    communication begins)  |                          |
              |                           |                          |
]]></artwork></artset></figure>

</section>
<section anchor="discovery-status-4-unknown-wildcard-or-status-2-untrusted"><name>Discovery Status 4 (Unknown / Wildcard, or status 2 untrusted?)</name>
<t>This case is out of scope.</t>

</section>
</section>
<section anchor="ai-providers"><name>AI Providers</name>

<section anchor="publishing-schema"><name>Publishing Schema</name>

<t>Publishers <bcp14>SHOULD</bcp14> expose per-service discovery records using SVCB (or HTTPS for HTTP origins) at stable, well-scoped owner names (e.g., agent-id._mcp._agents.example.org.). SVCB ServiceMode conveys connection parameters and capability locators in a single round trip; AliasMode <bcp14>MAY</bcp14> be used to map a friendly name to a hashed leaf for sharding without duplicating RRSets. Initial connection parameter keys (alpn, port, address hints) and the mandatory key <bcp14>MUST</bcp14> be honored by clients. <xref target="RFC9460"/></t>

<t>Minimal example:</t>

<figure><artwork><![CDATA[
; ServiceMode SVCB for an MCP-capable agent
a4k2f9._mcp._agents.example.org.  600 IN SVCB 1 svc-a4k2f9.example.net.
    alpn="h2,h3" port=443 ipv6hint=2001:db8::5 ipv4hint=192.0.2.5
    mandatory=alpn,port
]]></artwork></figure>

<t>SVCB/HTTPS semantics and SvcParam processing <bcp14>MUST</bcp14> follow <xref target="RFC9460"/> to ensure interop and correct fallback.</t>

</section>
<section anchor="ttls-update-agility"><name>TTLs, Update Agility</name>

<t>Publishers <bcp14>SHOULD</bcp14> assign longer TTLs to relatively static indirection records (aliases, stable service labels) and shorter TTLs to volatile endpoint/capability records to balance cache efficiency with rollout safety. Consumers will apply negative caching per <xref target="RFC2308"/>, so publishers <bcp14>SHOULD</bcp14> avoid unnecessary NXDOMAIN flaps during deployments (e.g., prefer blue/green leaves over in-place deletions).</t>

</section>
<section anchor="example-dns-aid-zonefile"><name>Example DNS-AID Zonefile</name>

<figure><artwork><![CDATA[
$ORIGIN example.org.
$TTL 3600

; ---------------------------------------------------------------------
; SOA / NS
; ---------------------------------------------------------------------
@               IN SOA  ns1.example.org. hostmaster.example.org. (
                        2025091901 ; serial (YYYYMMDDnn)
                        7200       ; refresh
                        1800       ; retry
                        1209600    ; expire
                        3600 )     ; minimum
                IN NS    ns1.example.org.
                IN NS    ns2.example.org.

ns1             IN A     192.0.2.53
ns1             IN AAAA  2001:db8::53
ns2             IN A     192.0.2.54
ns2             IN AAAA  2001:db8::54

; ---------------------------------------------------------------------
; DNS-AID discovery (MCP example): per-service, per-agent leaf
; - Leaf is a stable mapping from AgentID -> label (e.g. hashed).
; - Use SVCB ServiceMode (priority > 0) to bind connection parameters.
; ---------------------------------------------------------------------

; AliasMode to keep a friendly name stable even if the leaf changes
billing._mcp._agents    300 IN SVCB 0 a4k2f9._mcp._agents.example.org.

; Leaf per agent/service (ServiceMode). Shorter TTL for agility.
a4k2f9._mcp._agents     600 IN SVCB 1 svc-a4k2f9.example.net. \
                            alpn="h2,h3" \
                            port=443 \
                            ipv4hint=192.0.2.5 \
                            ipv6hint=2001:db8::5 \
                            mandatory=alpn,port

; (Optional) Another service face for the same agent (A2A)
a4k2f9._a2a._agents     600 IN SVCB 1 svc-a4k2f9.example.net. \
                            alpn="h2" port=8443 \
                            mandatory=alpn,port

; (Optional) HTTPS RR at apex for web-style consumers of DNS-AID
; metadata
@                        900 IN HTTPS 1 web-gw.example.net. \
                            alpn="h2,h3" port=443

; ---------------------------------------------------------------------
; Capability / policy signaling via SVCB custom keys (experimental)
; Use numeric keyNNNNN until you register IANA SvcParamKeys.
; Gate client requirements with "mandatory".
; ---------------------------------------------------------------------
; Example: reference a capability descriptor and advertise supported
; app protocols.
; NOTE: Values and key numbers are illustrative.

a4k2f9._mcp._agents 600 IN SVCB 1 svc-a4k2f9.example.net. \
                        alpn="h2,h3" port=443 \
                        mandatory=alpn,port,key65001,key65010 \
                        key65001="cap=urn:cap:example:mcp:invoice.v1" \
                        key65010="bap=a2a/1,mcp/1"

; ---------------------------------------------------------------------
; Domain Control Validation (DCV) for DNS-AID authorization
; Publish a short-lived token to prove control over example.org.
; Remove after successful validation. Resolver MUST DNSSEC-validate.
; ---------------------------------------------------------------------
_agents-challenge 300 IN TXT "bnd-req=svc:crm-sync@vendor.example;nonce=3Qz6l8pA;exp=2025-09-19T06:00:00Z"

; ---------------------------------------------------------------------
; Optional DANE TLSA for the service endpoint used above.
; Owner: _`<port>`._tcp.`<endpoint-FQDN>`
; Usage 3 (DANE-EE), Selector 1 (SPKI), Match 1 (SHA-256)
; Replace the hash with the actual SPKI hash of the leaf certificate.
; ---------------------------------------------------------------------
_443._tcp.svc-a4k2f9.example.net.  1800 IN TLSA 3 1 1 (
    0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789AB )

; ---------------------------------------------------------------------
; (Optional) Address records for the service endpoint, if in-zone.
; If hosted out-of-zone (example.net), these will live there instead.
; ---------------------------------------------------------------------
svc-a4k2f9               900 IN A     192.0.2.5
svc-a4k2f9               900 IN AAAA  2001:db8::5
web-gw                   900 IN A     192.0.2.80
web-gw                   900 IN AAAA  2001:db8::80
]]></artwork></figure>

</section>
<section anchor="how-to-use-this-zonefile"><name>How to use this zonefile</name>

<t><list style="symbols">
  <t>Adjust TTLs for agility vs. cache efficiency. Use longer TTLs on indirection (aliases), shorter TTLs on volatile leaves and DCV. This aligns with DNS caching behavior and negative caching rules <xref target="RFC2308"/>.</t>
  <t>Follow SVCB/HTTPS semantics. Clients must honor SvcPriority, AliasMode (priority 0), and ServiceMode parameters, including mandatory, alpn, port, and address hints per <xref target="RFC9460"/>.</t>
  <t>DCV token flow. Issue a time-bounded token at _agents-challenge.domain and require DNSSEC-validated retrieval (pattern analogous to ACME's DNS-01 in <xref target="RFC8555"/>). Remove on success.</t>
  <t>Bind transport to DNS with DANE (optional). If your relying parties validate DNSSEC, publish TLSA to bind the endpoint's cert/key, using the operational guidance in <xref target="RFC7671"/> (TLSA record format in <xref target="RFC6698"/>).</t>
  <t>Sign the zone. This file is pre-signing. Sign with DNSSEC (DNSKEY/DS/RRSIG, etc.) before deployment; validators must treat unsigned/bogus discovery data as a failure (per your earlier spec). See DNSSEC core specs <xref target="RFC4033"/>, <xref target="RFC4034"/>, <xref target="RFC4035"/> and operational guidance.</t>
</list></t>

</section>
</section>
<section anchor="why-these-records"><name>Why these records</name>

<t><list style="symbols">
  <t>SVCB/HTTPS concentrate connection metadata and allow aliasing at apex and service labels, reducing round trips and enabling policy-gated parameters via mandatory.</t>
  <t>Per-service, per-agent leaves avoid oversized RRsets and allow parallel administration/sharding while keeping alias names stable. This follows performance guidance in SVCB and your DNS-AID perf section.</t>
  <t>DCV via TXT mirrors a well-understood, automated control-proof pattern <xref target="RFC8555"/> that fits DNS-AID authorization workflows.</t>
  <t>DANE TLSA optionally removes reliance on external PKI anchors for endpoint auth where DNSSEC is deployed <xref target="RFC6698"/>, with deployment rules in <xref target="RFC7671"/>.</t>
</list></t>

</section>
</section>
<section anchor="future-work-unaddressed-portions"><name>Future Work &amp; Unaddressed Portions</name>

<t>How a consolidated registry would operate? Would it gather and publish information from individual organisations (scraping), would those organisations registery attest to security and be verified?</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>DNSSEC and other security considerations apply. More work is needed to expand on this.</t>

</section>
<section anchor="operational-considerations"><name>Operational Considerations</name>

<t>Work is needed to expand on operational considerations.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>IANA maintains a registry of "Underscored and Globally Scoped DNS Node Names" per <xref target="RFC8552"/>.  IANA is is requested to register an underscored attribute leaf for AI agents. _agent is suggested.</t>

<t>IANA maintains a registry of "DNS SVCB Service Parameter Keys (SvcParamKeys)" per <xref target="RFC9460"/>.  IANA is requested to designate custom key-value pairs for SVCB parameters to facilitate agent-to-agent application discovery and cost optimization.  The following parameters are requested:</t>

<t>Name       | Meaning
-----------+---------------------------------------------------------
cap        | capability descriptor locator or inline identifier
           | (e.g., a URN or compact JSON-Ref)
cap-sha256 | capability base64url-encoded SHA-256 digest of the
           | canonical capability descriptor
policy     | URI or URN identifying a policy bundle applicable to an
           | agent
realm      | opaque token for multi-tenant scoping or authz realm
           | selection during protocol bootstrapping</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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="RFC9460">
  <front>
    <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
    <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
    <author fullname="M. Bishop" initials="M." surname="Bishop"/>
    <author fullname="E. Nygren" initials="E." surname="Nygren"/>
    <date month="November" year="2023"/>
    <abstract>
      <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9460"/>
  <seriesInfo name="DOI" value="10.17487/RFC9460"/>
</reference>
<reference anchor="RFC4033">
  <front>
    <title>DNS Security Introduction and Requirements</title>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="R. Austein" initials="R." surname="Austein"/>
    <author fullname="M. Larson" initials="M." surname="Larson"/>
    <author fullname="D. Massey" initials="D." surname="Massey"/>
    <author fullname="S. Rose" initials="S." surname="Rose"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4033"/>
  <seriesInfo name="DOI" value="10.17487/RFC4033"/>
</reference>
<reference anchor="RFC6891">
  <front>
    <title>Extension Mechanisms for DNS (EDNS(0))</title>
    <author fullname="J. Damas" initials="J." surname="Damas"/>
    <author fullname="M. Graff" initials="M." surname="Graff"/>
    <author fullname="P. Vixie" initials="P." surname="Vixie"/>
    <date month="April" year="2013"/>
    <abstract>
      <t>The Domain Name System's wire protocol includes a number of fixed fields whose range has been or soon will be exhausted and does not allow requestors to advertise their capabilities to responders. This document describes backward-compatible mechanisms for allowing the protocol to grow.</t>
      <t>This document updates the Extension Mechanisms for DNS (EDNS(0)) specification (and obsoletes RFC 2671) based on feedback from deployment experience in several implementations. It also obsoletes RFC 2673 ("Binary Labels in the Domain Name System") and adds considerations on the use of extended labels in the DNS.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="75"/>
  <seriesInfo name="RFC" value="6891"/>
  <seriesInfo name="DOI" value="10.17487/RFC6891"/>
</reference>
<reference anchor="RFC7766">
  <front>
    <title>DNS Transport over TCP - Implementation Requirements</title>
    <author fullname="J. Dickinson" initials="J." surname="Dickinson"/>
    <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
    <author fullname="R. Bellis" initials="R." surname="Bellis"/>
    <author fullname="A. Mankin" initials="A." surname="Mankin"/>
    <author fullname="D. Wessels" initials="D." surname="Wessels"/>
    <date month="March" year="2016"/>
    <abstract>
      <t>This document specifies the requirement for support of TCP as a transport protocol for DNS implementations and provides guidelines towards DNS-over-TCP performance on par with that of DNS-over-UDP. This document obsoletes RFC 5966 and therefore updates RFC 1035 and RFC 1123.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7766"/>
  <seriesInfo name="DOI" value="10.17487/RFC7766"/>
</reference>
<reference anchor="RFC2308">
  <front>
    <title>Negative Caching of DNS Queries (DNS NCACHE)</title>
    <author fullname="M. Andrews" initials="M." surname="Andrews"/>
    <date month="March" year="1998"/>
    <abstract>
      <t>RFC1034 provided a description of how to cache negative responses. It however had a fundamental flaw in that it did not allow a name server to hand out those cached responses to other resolvers, thereby greatly reducing the effect of the caching. This document addresses issues raise in the light of experience and replaces RFC1034 Section 4.3.4. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2308"/>
  <seriesInfo name="DOI" value="10.17487/RFC2308"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.draft-ietf-dnsop-domain-verification-techniques">
   <front>
      <title>Domain Control Validation using DNS</title>
      <author fullname="Shivan Kaul Sahib" initials="S. K." surname="Sahib">
         <organization>Brave Software</organization>
      </author>
      <author fullname="Shumon Huque" initials="S." surname="Huque">
         <organization>Salesforce</organization>
      </author>
      <author fullname="Paul Wouters" initials="P." surname="Wouters">
         <organization>Aiven</organization>
      </author>
      <author fullname="Erik Nygren" initials="E." surname="Nygren">
         <organization>Akamai Technologies</organization>
      </author>
      <author fullname="Tim Wicinski" initials="T." surname="Wicinski">
         <organization>Cox Communications</organization>
      </author>
      <date day="1" month="February" year="2026"/>
      <abstract>
	 <t>   Many application services on the Internet need to verify ownership or
   control of a domain in the Domain Name System (DNS).  The general
   term for this process is &quot;Domain Control Validation&quot;, and can be done
   using a variety of methods such as email, HTTP/HTTPS, or the DNS
   itself.  This document focuses only on DNS-based methods, which
   typically involve the Application Service Provider requesting a DNS
   record with a specific format and content to be visible in the domain
   to be verified.  There is wide variation in the details of these
   methods today.  This document provides some best practices to avoid
   known problems.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-domain-verification-techniques-11"/>
   
</reference>
<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="RFC9364">
  <front>
    <title>DNS Security Extensions (DNSSEC)</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="February" year="2023"/>
    <abstract>
      <t>This document describes the DNS Security Extensions (commonly called "DNSSEC") that are specified in RFCs 4033, 4034, and 4035, as well as a handful of others. One purpose is to introduce all of the RFCs in one place so that the reader can understand the many aspects of DNSSEC. This document does not update any of those RFCs. A second purpose is to state that using DNSSEC for origin authentication of DNS data is the best current practice. A third purpose is to provide a single reference for other documents that want to refer to DNSSEC.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="237"/>
  <seriesInfo name="RFC" value="9364"/>
  <seriesInfo name="DOI" value="10.17487/RFC9364"/>
</reference>
<reference anchor="RFC7553">
  <front>
    <title>The Uniform Resource Identifier (URI) DNS Resource Record</title>
    <author fullname="P. Faltstrom" initials="P." surname="Faltstrom"/>
    <author fullname="O. Kolkman" initials="O." surname="Kolkman"/>
    <date month="June" year="2015"/>
    <abstract>
      <t>This document describes the already registered DNS resource record (RR) type, called the Uniform Resource Identifier (URI) RR, that is used for publishing mappings from hostnames to URIs.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7553"/>
  <seriesInfo name="DOI" value="10.17487/RFC7553"/>
</reference>
<reference anchor="RFC6698">
  <front>
    <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="J. Schlyter" initials="J." surname="Schlyter"/>
    <date month="August" year="2012"/>
    <abstract>
      <t>Encrypted communication on the Internet often uses Transport Layer Security (TLS), which depends on third parties to certify the keys used. This document improves on that situation by enabling the administrators of domain names to specify the keys used in that domain's TLS servers. This requires matching improvements in TLS client software, but no change in TLS server software. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6698"/>
  <seriesInfo name="DOI" value="10.17487/RFC6698"/>
</reference>
<reference anchor="RFC7671">
  <front>
    <title>The DNS-Based Authentication of Named Entities (DANE) Protocol: Updates and Operational Guidance</title>
    <author fullname="V. Dukhovni" initials="V." surname="Dukhovni"/>
    <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
    <date month="October" year="2015"/>
    <abstract>
      <t>This document clarifies and updates the DNS-Based Authentication of Named Entities (DANE) TLSA specification (RFC 6698), based on subsequent implementation experience. It also contains guidance for implementers, operators, and protocol developers who want to use DANE records.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7671"/>
  <seriesInfo name="DOI" value="10.17487/RFC7671"/>
</reference>
<reference anchor="RFC8555">
  <front>
    <title>Automatic Certificate Management Environment (ACME)</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
    <author fullname="D. McCarney" initials="D." surname="McCarney"/>
    <author fullname="J. Kasten" initials="J." surname="Kasten"/>
    <date month="March" year="2019"/>
    <abstract>
      <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8555"/>
  <seriesInfo name="DOI" value="10.17487/RFC8555"/>
</reference>
<reference anchor="RFC4034">
  <front>
    <title>Resource Records for the DNS Security Extensions</title>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="R. Austein" initials="R." surname="Austein"/>
    <author fullname="M. Larson" initials="M." surname="Larson"/>
    <author fullname="D. Massey" initials="D." surname="Massey"/>
    <author fullname="S. Rose" initials="S." surname="Rose"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
      <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4034"/>
  <seriesInfo name="DOI" value="10.17487/RFC4034"/>
</reference>
<reference anchor="RFC4035">
  <front>
    <title>Protocol Modifications for the DNS Security Extensions</title>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="R. Austein" initials="R." surname="Austein"/>
    <author fullname="M. Larson" initials="M." surname="Larson"/>
    <author fullname="D. Massey" initials="D." surname="Massey"/>
    <author fullname="S. Rose" initials="S." surname="Rose"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications.</t>
      <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4035"/>
  <seriesInfo name="DOI" value="10.17487/RFC4035"/>
</reference>
<reference anchor="RFC8552">
  <front>
    <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
    <author fullname="D. Crocker" initials="D." surname="Crocker"/>
    <date month="March" year="2019"/>
    <abstract>
      <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="222"/>
  <seriesInfo name="RFC" value="8552"/>
  <seriesInfo name="DOI" value="10.17487/RFC8552"/>
</reference>



    </references>

</references>


<?line 718?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors thank Aijun Wang, Ben Schwartz and Ross Gibson for their contributions, questions, and comments.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAFG1pWkAA+1963obx7HgfzxFH/p8x8AaAAmQoiTKsg2RlMwTiaQJSoqz
u58zGDSAsQYzyFxIQZbyLPss+2Rbt74MLpQAK2snMb7EIgYzPd3Vda/qqlar
VSuiItZHaufkvK9GaaZ6Z+okysP0RmfznVowGGT6hn9u9c5OdmphUOhxms2P
VF4Ma7VhGibBFAYYZsGoaE3Td7Ge30ZxHAXTvDVM8nSG/w2iYWuvU8vLwTTK
8yhNruczeOjs9PqpUl+oIM5TeEmUDPVMw3+SYqepdvQwKtIsCmL8ctZ7Av/A
BHfOrq6f7tSScjrQ2VFtCPM5Ut297mFrb7+1162FaZLrJC/zIzWCcXUNpr9f
CzIdHKl0ltdu0+zNOEvLGcwZp1d7AxNOs+FRTamWgnXSv70z+qevs5so1A4k
dDUYwwxbRdqiP9ylLn+/0UmpcTh5zetn8HdBC34NL4+SsXqGv8DVaRDFeMN3
+m0wncW6HaZTuBxk4eRITYpilh/t7nq/7dJY46iYlIMj9bJ/erV7dXp5Addi
gENerH7oee/6tH9dqwVlMUkBZjBfxbv239FUvaA9gyEUgHcMm5KM0kGcvm3C
X2Gbrmue58+8vd9FcgfP1g52HoXqtWz9pwyXROG6oZ7oSagL1Q+y6E0wD9xo
L5NgNIrgFYUe+mPlcud3kda6Dbd6g12lcZAMVT+cpEXhhjrRZZGHE62udazf
ENztcBk90s7pke8KvqE91LVakmbToIhuYINx7vZLrd1u12qtFqDCIC+yICxq
tetJlCugkHIKaKHymQ6jUaRzFaiphp0YEsGVBSznHSJFAXM5SWECiTqHiav+
PC/0VNUBJxuqSAGdQ7i1gKWrPAziYBBrhQuLkkJn6UxndGVoUFUNdHGrdYIk
TYiZt9U1vGIG96a5HsIkwkmQRPm0qTI90lkG1+A1Qc7cwDzmkJ+mgmygAaQ4
1KMoocXAcsuwKPFxfA6Bns+CkCeX6RCIS5U5jKWm6VDH+I68nM3SrEA4BEDB
gdJvcS5jfiYMZsEAlzpXwRBeXES5RhC2BaTIX4BnxOkt7iQuATYByB5HnpWD
OMonym5OmsCOpGWB4I0yBwwFPyDEzxB6CSAb7AVBMgliBd+RT+Qwb9yZQN3q
OG69SdLbBChtAIu4BRqMeAR/Dl/CuHBPBQ4Idh8RhimALUkLAaGawDpwHJk6
gJHh7i8Bng/CUOe4bzBRvB0oPCwc8FU6gstB5bE2rA5wKBg2VbSIgLL3hIPA
eCNg7LjU20kUTuRdiCpFGqaxyidpGQ8BowAgOD/YpFt8F7+JprM8Z9qmASHc
TTTUiKjtRaIQZER4KMEA2EQcr7IwhCdAE5Eob9Lr4f5Ew/4j2tPbQsCtHDE5
n6EE8L6nZQbIKIiIfDgnQRIkc5XCmzIaCN9gl3sTxKXOhZ6n0XAYA+V//R/w
5QuihjiIpjrDteDqdM67KksCWop1CAhGUCGWm39JIAYolIBc6SxKCF1xHRYZ
Eo0gBzYWz2EIMyqOcRPp25y3FzEYVwjjA9cBbjWL07nOgLJbrW9q8PkC8TlL
hwA6eMUitAEiYRYN4I2euO+tI/JmBU8It3SCPCY3JARblekiizTMxe4ErHAW
ZID8QEuIQhHiawoAiIqIcQxYhiYtoK3kXUh5NGtCzlgHI/UuTXATE5CmtL91
3R63m+onYWWefGvgbQWwTRzbSOwnCHD4Xu+/On7SkN3PzSiwqKK9cihZJmKP
CmazmOgiTVpCPKFlWUBbBZIlbEqu7fgelD4XkJqGW+LVAWCsKoJsDA8OVZym
b8pZvsA0W4MAidQKgjYjKqwmSwMg7hhmkiElAQuJchrWx/7c49tAKVESxuXQ
3LSkEDG69BFb4I/+6TGT50nv/LRJ/JiJn1jrOIPZNYkmcFND/gZ3w5XUMg0g
mBKp6G9llOFrJ+U0SJg1G1wg/rN0I0gX3CEeh8lFAShgzwC+SRjNEHOZmbTV
8yAvgNIM/jmYiAQ+ThEjY/UqiKMhD1k/OX7VsDQ0REEZAH/LCxWWIDyJmwFL
RvDIwlGcGcaYCy+I3omYBeYNgw70JIhHOK0A6JReDf/75Zdvz1onbVaqI12M
jCpNd7RgrnalrQJINIn+BgzrwwfYarMiATyzoUGaFqiVzIjoDWYQmiUiv94Z
+WV0hV71F0CwxEnXQgRdpseAQoAGuADGd9wc5lQWJUnmFFUxCvfCY7M0IqnB
yg8g2CSCfQD1d27oC20DuA1IAWnKwyiSr7QeINxpmsBusnCiaQDVpEyNSepm
mWg9JIoEsQQQA6IcmvkikZagCAyr04a3idgV1oHoJ4pMGGQkjVmKoC45DRow
NMxJ05A4RYQMgm6gSRbFN3polqbfIiNHdMB58iiGV4uWMwS8jNMZjYZcDlEJ
QZ3M7aKQP6DIzlHyMBPEu70pwoOhnhWEdXA984Urz7opJAVvZEY3Z43ECEQC
LPEnoELEXKQ+gRrPwqyJhgcuR2oATJZkHHK5KUwNmE3I/DDUKL9wAPgRVG4j
39TZZXOBE5GiOMrSKeIqcnMryifIF5gJp/YlOCpc4Qc8KNAECZmmsLNjNJcA
VYCacpGyZZygCs16J8wG+HPOwIThfL1meeha7SmggcgRFJuAkTPco2kAQyFm
TgJkBmoEmoZ+K0qmoZcbWD8JDDIHcs2bEQk80ETOC7gCLwLekasvSYX5Eqdo
ldkm3psg3CcByIOf1sk3xNafoum4W7xd/bsuQrA+NWrXwCZGYBUgxnlQB8Zw
IWov4euE+HdlwYZAiWsP9VtC2Niu9yYKhBMo5AQfZQQK6Q5mjUOtmvMd0I/G
k4JBT5uwDfxXQJsA5G3JUKBfH7lpNO7YAxz9zk24JWUbZrJ2C5b3YBHrPnkT
PpEdN5XoX3ftwzU/RfKHyQO1T51HY+SrbGmEGdlyCH9S45MWiKOsnJFCO9So
0JKuKgZWRUUBKswCy7uY5TjFUUwCz1YQ+wT1/dka+yDNVpsIVdNppbHrDF1P
TcVFsbELOzCKBKvsKvxXqDroJVPW+HF7m+r6z9eMfNfP+70G7ZeAgYEYkNJn
tOPc6cTdYKU2C1ty4YnwnDAjGKYgC8w2DeZGqJM2QPhtrfIS9hpEko71mF6d
lwPWQABwojHJ1oDiJ/srap7R6xY0PXg1ab+w5AiniVtNQ3xE60KfAQIg9mYj
+lQxJ78GbCkDBdc4QPOYvRy5jtlaglci1ueg0xctUsRSNtRJIzJ0RmM0WYXH
idlfyOXkeVfYKhv5XgNc4AJ3aatzY9jmxDdYXWVpCshQgoxB9pTZ1ZA/ieaV
o8KbOTjJHg70PIUXGQZkfSk4FdkJcncBRhlzm2lRbsxxE1oAbEIEMjDIl+L2
n60UMFt9h4pbuUUPo4KHKeB0lDgF3kFB1APUpGB6Vp/AzUaLjUxXVhyIeRWk
5MkQHuEXaYq74VsjZB8Sl0MjCa/k5C+DzQNlkDzHcG0WBwUyAfEaiAaGKmMy
isYlG2O5Z4eSvpyxCpeXsB1GMHisKQgz0EeRZeoMSBglRhin5ZDfMdJDBB9s
sU5uoixNpiyh8TfEzTClpfEqRenzYCv2du5BNxmBGYrery+QQITTsHJ0Qiof
fWf2+0bP1S2ZojsvXvav0XWO/6rzC/r76vSHl2dXpyf4d//73vPn9o+a3NH/
/uLl8xP3l3vy+OLFi9PzE34YrqrKpdrOi96PO7zMnYvL67OL897zHZYlvg8C
iYAV8IjhR5ZskNecYQXPPDm+/L//p3MAhtB/XD097nY6Dz98kC8POvcP4Mst
cBbhKSjb+StAc14DQ1cHSJbEQEGbh12McQNy9GOBrMMNBmj+j/+JkPnfR+rr
QTjrHHwjF3DBlYsGZpWLBLPlK0sPMxBXXFrxGgvNyvUFSFfn2/ux8t3A3bv4
9bcxKsWtzoNvxUOEBPXC4Rm5gao+oFrNuUnZhtLMsQbOv4ybBlsppm+MPJf4
JRssfLthTUWQv8mtmQJ2KNyDpJkkRNSgdLZVX2vYYA6twJ6RLfv3v/9dBUF+
MybffPXDUz72bLVa7avW6s9X+MDaH2vvecSTs/7xxavTqx/NK97b/6je5eXz
s+MeQtf8aB5b+niPrfgRH2uxOlc/gw39c2PhsZa6vuq9On2+/Bh+zi7XvK2l
ji8AeVe8DT+XVxfXF8cXz1c81rvG6BAtrb/02MVVdUhvbTDLs/Oz82fqpHfd
qz62vGr32PHp1fXZU4Fl34Hk9SlQz5/OL16fq96z0/PrfvWx3vHx6eV178nz
Uwx7+W8jUF5d5atAcn2hnpyq/uXpMbzy9KTdbm+/b1sil0Fd9sSiQ2fF6Bcs
BvDXHLG+9suR+sLSgqIg7eMd66z1sX7nA9D0F+plTp6GRffnlfglgRn61D12
HgY0M3zjAimU1d2heKKA5z48ONwDnotmtowikosVBp0MyXLIRWP0lOQV2upa
56vR4+xMKMSDfpq5VU4+hz/VKRHCoGCe1ueA7ofoJgjnIMgDXIOd+CnYLvMZ
3nwcR7js78F8SkmpPD3+viHSH4zJdIWGYYHOKrhEtSrKG0iZ46b6/vr6cnef
IxSVOLPnFsFX9p5fnsNGhXFglZgLq7fhS4wjJ4hJFyu0t00wOBjHGYUSGWNy
o9WIgu/5V2OCPqh2x+e9F6cUych0yJojKKeogqGmZXw+NvAHVpnR30jvKiVO
g/v9FtX2Wu01eS0CUohJHwoK2NlBCfPyEIfc22VegGlMmOp2usnKhYtSmAAF
4m8LFkho7NQr46Ws+Pja6ilp8ahRh2T9y00W89YZWARn48xa8E55MTWHZaCI
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
d1k6R4e3GqaORxqbdNzZy1/9l6UpzkIRsG2dk/A7S0LxouBSXV/E8KbDtDBD
h6T/kRWuWwyjbPE7tCBs/GDzYYz2QP50+9PGizqRkMVXfjh982F643HGdcAz
qrSVN7eYjVL95z2ys5vcRmjrRbnaaXg2Ptwqs2ZNGvzmi1qdBf+PI4bDZVt5
m2Gs8AALF9A093/bYJg6Nb2TCvlY8S3d3ALD/1AXJC6D4cpCbT4M1uBYcTh5
02EW6m1wbHtjy33tvZsNc99kNoilu+UwSrnaHaKEbzkMdeqLHGA29un+7qTm
g/ZKb8QWsDFk1eLkHODgWw1jfSsrfvukYT4fiP9FvRoHa70aB0dWT1pKS+hx
YsALI9hNM6tcusSu83BwIH5XvY7iYRhgSy5qHSKnX0rjAfm2weWNKIcA/qUC
DiPbWAULM/TO3EulSKGrn9yn8ju1mlzSrlKcfoulPCslwJYLXJY5DYIavKs0
aMoMwowj3rOgkEJ4Tc4yMB2EbHEuW1aOq1xFw/VVWRpirftVDrlEVr5hBUPq
GCv1CzMs/Ao6VDR75BX5W1HXz1YXm3vl/CZUOo1LrnGnH6wxApAxNTWGpXSt
wQbumJpLfUcjyghZNWmuU1OnEjFK2nH6ZRRthYpqUR1bOGeSUuEcctNwFZ92
pd5XrfYiSqIpvF1XKus8qoCV4EySLcFsp5ZpL0u78jlqwSW6qNbP2a4OHI6w
oq4OV6nxqq+6WicIPVs8TFr82cp9rFRU66O5AmNSVU1qFWdU7cNUX5QioFhS
sKlezqgUZW9MaLeKxIIcs0SrhQixyGFM5Uaw0igWHgnVqiqGdSp4hyqklJi0
/kisESgIQh2nvKGlZqJLlfVKg9iRMRMpiElL5ppYplRzKElWWEUdkVoKrJHv
FSu/SX9GLIAFxLFYFJGLnX1rCyHCxFNb4NSDCVWhLJEksHUS4PX5n08uXvQA
j0ZxMMtN1Sq/Do7wDi49qQZxqXexbk2CBHljOgxHSYt6IVIBbqq13JDtMuX2
TYU3LIU7ijDvCBHoPy+uzp7B2ys1n/4TmyhgOwWsQbhecm7wQdK76AHDP+9/
tiG/W5BrSIvwDpXknSqlYhX2aYAF6qrX67VF0Wg+3b3uvb2HnYd7HfUIUQ8Z
Wf1H+Lx4cXKSJIsJUu5zH2hZ/sQariPgaZO1N3ceVG4uFnv4+Ld29x4e8t2P
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

-->

</rfc>

