<?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-00" 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="February" day="23"/>

    <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 <em>DNS AI agent Discovery</em> (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><em>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.</em></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>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. These records enable agents to retrieve operational parameters prior to initiating a session, supporting both targeted lookups and capability-based discovery. 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. Lastly, the draft for Domain Control Validation (DCV) proposes a best current practice to prove an agent is authorized to act on behalf of a domain.</t>

<t>This mechanism 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 any registry does not need to be queried and the returned capabilities processed (e.g. on a model card or other schema) and then the name of this resolved. It is expected that other drafts will develop the content of any registry, such as refining the model card concept to a more structure schema, and 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>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">
<g class="text">
<text x="168" y="36">Agent</text>
<text x="244" y="36">Capabilities</text>
<text x="104" y="68">┌───────────────────────┐</text>
<text x="336" y="68">┌───────────────────────┐</text>
<text x="8" y="84">│</text>
<text x="96" y="84">DISCOVERY</text>
<text x="200" y="84">│</text>
<text x="240" y="84">│</text>
<text x="328" y="84">APPLICATION</text>
<text x="432" y="84">│</text>
<text x="8" y="100">│</text>
<text x="200" y="100">│</text>
<text x="240" y="100">│</text>
<text x="432" y="100">│</text>
<text x="8" y="116">│</text>
<text x="32" y="116">-</text>
<text x="60" y="116">SVCB</text>
<text x="112" y="116">(INDEX)</text>
<text x="200" y="116">│</text>
<text x="240" y="116">│</text>
<text x="264" y="116">-</text>
<text x="300" y="116">TRAVEL</text>
<text x="432" y="116">│</text>
<text x="8" y="132">│</text>
<text x="68" y="132">IP</text>
<text x="200" y="132">│</text>
<text x="240" y="132">│</text>
<text x="264" y="132">-</text>
<text x="292" y="132">COST</text>
<text x="432" y="132">│</text>
<text x="8" y="148">│</text>
<text x="92" y="148">PROTOCOL</text>
<text x="200" y="148">│</text>
<text x="240" y="148">│</text>
<text x="264" y="148">-</text>
<text x="324" y="148">ATTESTATIONS</text>
<text x="432" y="148">│</text>
<text x="8" y="164">│</text>
<text x="76" y="164">PORT</text>
<text x="200" y="164">│</text>
<text x="240" y="164">│</text>
<text x="316" y="164">TRAINING</text>
<text x="372" y="164">DATA</text>
<text x="432" y="164">│</text>
<text x="8" y="180">│</text>
<text x="200" y="180">│</text>
<text x="240" y="180">│</text>
<text x="340" y="180">CERTIFICATIONS</text>
<text x="432" y="180">│</text>
<text x="8" y="196">│</text>
<text x="48" y="196">-WELL</text>
<text x="96" y="196">KNOWN</text>
<text x="148" y="196">AGENTS</text>
<text x="200" y="196">│</text>
<text x="240" y="196">│</text>
<text x="324" y="196">ACCEPTABLE</text>
<text x="384" y="196">USE</text>
<text x="432" y="196">│</text>
<text x="8" y="212">│</text>
<text x="68" y="212">SVCB</text>
<text x="104" y="212">RRs</text>
<text x="200" y="212">│</text>
<text x="240" y="212">│</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="432" y="212">│</text>
<text x="8" y="228">│</text>
<text x="200" y="228">│</text>
<text x="240" y="228">│</text>
<text x="432" y="228">│</text>
<text x="104" y="244">└───────────────────────┘</text>
<text x="336" y="244">└───────────────────────┘</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 traditional 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 type 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 vs. querying an index derived from something like organisation's agent registry.</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>The authors do not intend for authorization to exist solely within this phase of the discovery process, 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=salesforce; 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, 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>DNS’s 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">
<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="204" y="52">_a2a._agents.example.com</text>
<text x="44" y="68">┌────────┐</text>
<text x="308" y="68">┌────────┐</text>
<text x="484" y="68">┌────────┐</text>
<text x="16" y="84">│AI</text>
<text x="260" y="84">Agent├──────────────────────►│Resolver├───────────►│Auth</text>
<text x="508" y="84">DNS│</text>
<text x="8" y="100">│</text>
<text x="44" y="100">(ORG1)</text>
<text x="176" y="100">│◄──────────────────────┤</text>
<text x="308" y="100">(ORG1)</text>
<text x="396" y="100">│◄─────┬─────┤</text>
<text x="484" y="100">(ORG2)</text>
<text x="520" y="100">│</text>
<text x="44" y="116">└────────┘</text>
<text x="308" y="116">└────────┘</text>
<text x="400" y="116">│</text>
<text x="484" y="116">└────────┘</text>
<text x="400" y="132">│</text>
<text x="264" y="148">┌────────────────────────────────────────────────┴──────────────┐</text>
<text x="96" 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="520" y="164">│</text>
<text x="8" y="180">│</text>
<text x="84" y="180">alpn=&quot;a2a&quot;</text>
<text x="520" y="180">│</text>
<text x="8" y="196">│</text>
<text x="76" y="196">port=443</text>
<text x="520" y="196">│</text>
<text x="8" y="212">│</text>
<text x="116" y="212">ipv4hint=192.0.2.1</text>
<text x="520" y="212">│</text>
<text x="8" y="228">│</text>
<text x="124" y="228">ipv6hint=2001:db8::1</text>
<text x="520" y="228">│</text>
<text x="12" y="244">│)</text>
<text x="520" y="244">│</text>
<text x="264" y="260">└───────────────────────────────────────────────────────────────┘</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 Salesforce contacts based on this email.” The agent must discover Salesforce’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.edu), allowing collaborators to discover services based on capability (e.g., _data-annotator._a2a.universityB.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. DNS’s 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>SHOULD</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., ≤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"/>. When high update rates are expected, IXFR and NOTIFY <bcp14>SHOULD</bcp14> be used to reduce propagation latency.</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>

<t>```
; 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</t>

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

</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>

<t><spanx style="verb">
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"
</spanx></t>

<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">
<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="72" y="116">│</text>
<text x="296" y="116">│</text>
<text x="512" y="116">│</text>
<text x="72" y="132">│</text>
<text x="108" y="132">1.</text>
<text x="140" y="132">SVCB</text>
<text x="184" y="132">Query</text>
<text x="296" y="132">│</text>
<text x="512" y="132">│</text>
<text x="72" y="148">│</text>
<text x="144" y="148">(Recursive)</text>
<text x="296" y="148">│</text>
<text x="512" y="148">│</text>
<text x="184" y="164">├──────────────────────────►│</text>
<text x="512" y="164">│</text>
<text x="72" y="180">│</text>
<text x="296" y="180">│</text>
<text x="512" y="180">│</text>
<text x="72" y="196">│</text>
<text x="296" y="196">│</text>
<text x="316" y="196">2.</text>
<text x="352" y="196">Query</text>
<text x="396" y="196">Root</text>
<text x="512" y="196">│</text>
<text x="72" y="212">│</text>
<text x="404" y="212">├─────────────────────────►│</text>
<text x="72" y="228">│</text>
<text x="296" y="228">│</text>
<text x="512" y="228">│</text>
<text x="72" y="244">│</text>
<text x="296" y="244">│</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="512" y="244">│</text>
<text x="72" y="260">│</text>
<text x="404" y="260">│◄─────────────────────────┤</text>
<text x="72" y="276">│</text>
<text x="296" y="276">│</text>
<text x="512" y="276">│</text>
<text x="72" y="292">│</text>
<text x="296" y="292">│</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="512" y="292">│</text>
<text x="72" y="308">│</text>
<text x="404" y="308">├─────────────────────────►│</text>
<text x="72" y="324">│</text>
<text x="296" y="324">│</text>
<text x="512" y="324">│</text>
<text x="72" y="340">│</text>
<text x="296" y="340">│</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="512" y="340">│</text>
<text x="72" y="356">│</text>
<text x="404" y="356">│◄─────────────────────────┤</text>
<text x="72" y="372">│</text>
<text x="296" y="372">│</text>
<text x="512" y="372">│</text>
<text x="72" y="388">│</text>
<text x="296" y="388">│</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="512" y="388">│</text>
<text x="72" y="404">│</text>
<text x="296" y="404">│</text>
<text x="408" y="404">foobar._mcp._agents</text>
<text x="512" y="404">│</text>
<text x="72" y="420">│</text>
<text x="404" y="420">├─────────────────────────►│</text>
<text x="72" y="436">│</text>
<text x="296" y="436">│</text>
<text x="512" y="436">│</text>
<text x="72" y="452">│</text>
<text x="296" y="452">│</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="512" y="452">│</text>
<text x="72" y="468">│</text>
<text x="296" y="468">│</text>
<text x="392" y="468">(DNSSEC-signed)</text>
<text x="512" y="468">│</text>
<text x="72" y="484">│</text>
<text x="404" y="484">│◄─────────────────────────┤</text>
<text x="72" y="500">│</text>
<text x="296" y="500">│</text>
<text x="512" y="500">│</text>
<text x="72" y="516">│</text>
<text x="108" y="516">8.</text>
<text x="140" y="516">SVCB</text>
<text x="196" y="516">Response</text>
<text x="296" y="516">│</text>
<text x="512" y="516">│</text>
<text x="72" y="532">│</text>
<text x="128" y="532">(cached</text>
<text x="168" y="532">+</text>
<text x="220" y="532">validated)</text>
<text x="296" y="532">│</text>
<text x="512" y="532">│</text>
<text x="184" y="548">│◄──────────────────────────┤</text>
<text x="512" y="548">│</text>
<text x="72" y="564">│</text>
<text x="296" y="564">│</text>
<text x="512" y="564">│</text>
<text x="72" y="580">│</text>
<text x="132" y="580">Response</text>
<text x="208" y="580">includes:</text>
<text x="296" y="580">│</text>
<text x="512" y="580">│</text>
<text x="72" y="596">│</text>
<text x="104" y="596">•</text>
<text x="144" y="596">Service</text>
<text x="204" y="596">target</text>
<text x="296" y="596">│</text>
<text x="512" y="596">│</text>
<text x="72" y="612">│</text>
<text x="104" y="612">•</text>
<text x="132" y="612">ALPN</text>
<text x="200" y="612">protocol(s)</text>
<text x="296" y="612">│</text>
<text x="512" y="612">│</text>
<text x="72" y="628">│</text>
<text x="104" y="628">•</text>
<text x="132" y="628">Port</text>
<text x="180" y="628">number</text>
<text x="296" y="628">│</text>
<text x="512" y="628">│</text>
<text x="72" y="644">│</text>
<text x="104" y="644">•</text>
<text x="152" y="644">IPv4/IPv6</text>
<text x="216" y="644">hints</text>
<text x="296" y="644">│</text>
<text x="512" y="644">│</text>
<text x="72" y="660">│</text>
<text x="104" y="660">•</text>
<text x="140" y="660">DNSSEC</text>
<text x="212" y="660">signatures</text>
<text x="296" y="660">│</text>
<text x="512" y="660">│</text>
<text x="72" y="676">│</text>
<text x="104" y="676">•</text>
<text x="164" y="676">Capabilities</text>
<text x="244" y="676">(cost,</text>
<text x="296" y="676">│</text>
<text x="512" y="676">│</text>
<text x="72" y="692">│</text>
<text x="168" y="692">modalities,</text>
<text x="236" y="692">etc)</text>
<text x="296" y="692">│</text>
<text x="512" y="692">│</text>
<text x="72" y="708">│</text>
<text x="296" y="708">│</text>
<text x="512" y="708">│</text>
<text x="72" y="724">│</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="296" y="724">│</text>
<text x="512" y="724">│</text>
<text x="184" y="740">├──────────────────────────►│</text>
<text x="512" y="740">│</text>
<text x="72" y="756">│</text>
<text x="160" y="756">(Agent-to-Agent</text>
<text x="296" y="756">│</text>
<text x="512" y="756">│</text>
<text x="72" y="772">│</text>
<text x="160" y="772">communication</text>
<text x="248" y="772">begins)</text>
<text x="296" y="772">│</text>
<text x="512" y="772">│</text>
<text x="72" y="788">│</text>
<text x="296" y="788">│</text>
<text x="512" y="788">│</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">
<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="72" y="132">│</text>
<text x="296" y="132">│</text>
<text x="512" y="132">│</text>
<text x="72" y="148">│</text>
<text x="108" y="148">1.</text>
<text x="140" y="148">SVCB</text>
<text x="184" y="148">Query</text>
<text x="296" y="148">│</text>
<text x="512" y="148">│</text>
<text x="72" y="164">│</text>
<text x="156" y="164">_index._agents</text>
<text x="296" y="164">│</text>
<text x="512" y="164">│</text>
<text x="72" y="180">│</text>
<text x="144" y="180">(Recursive)</text>
<text x="296" y="180">│</text>
<text x="512" y="180">│</text>
<text x="184" y="196">├──────────────────────────►│</text>
<text x="512" y="196">│</text>
<text x="72" y="212">│</text>
<text x="296" y="212">│</text>
<text x="512" y="212">│</text>
<text x="72" y="228">│</text>
<text x="296" y="228">│</text>
<text x="316" y="228">2.</text>
<text x="352" y="228">Query</text>
<text x="396" y="228">Root</text>
<text x="512" y="228">│</text>
<text x="72" y="244">│</text>
<text x="404" y="244">├─────────────────────────►│</text>
<text x="72" y="260">│</text>
<text x="296" y="260">│</text>
<text x="512" y="260">│</text>
<text x="72" y="276">│</text>
<text x="296" y="276">│</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="512" y="276">│</text>
<text x="72" y="292">│</text>
<text x="404" y="292">│◄─────────────────────────┤</text>
<text x="72" y="308">│</text>
<text x="296" y="308">│</text>
<text x="512" y="308">│</text>
<text x="72" y="324">│</text>
<text x="296" y="324">│</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="512" y="324">│</text>
<text x="72" y="340">│</text>
<text x="404" y="340">├─────────────────────────►│</text>
<text x="72" y="356">│</text>
<text x="296" y="356">│</text>
<text x="512" y="356">│</text>
<text x="72" y="372">│</text>
<text x="296" y="372">│</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="512" y="372">│</text>
<text x="72" y="388">│</text>
<text x="404" y="388">│◄─────────────────────────┤</text>
<text x="72" y="404">│</text>
<text x="296" y="404">│</text>
<text x="512" y="404">│</text>
<text x="72" y="420">│</text>
<text x="296" y="420">│</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="512" y="420">│</text>
<text x="72" y="436">│</text>
<text x="296" y="436">│</text>
<text x="388" y="436">_index._agents</text>
<text x="512" y="436">│</text>
<text x="72" y="452">│</text>
<text x="404" y="452">├─────────────────────────►│</text>
<text x="72" y="468">│</text>
<text x="296" y="468">│</text>
<text x="512" y="468">│</text>
<text x="72" y="484">│</text>
<text x="296" y="484">│</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="512" y="484">│</text>
<text x="72" y="500">│</text>
<text x="296" y="500">│</text>
<text x="352" y="500">(SVCB</text>
<text x="400" y="500">RRSet</text>
<text x="436" y="500">or</text>
<text x="512" y="500">│</text>
<text x="72" y="516">│</text>
<text x="296" y="516">│</text>
<text x="404" y="516">CNAME/AliasMode)</text>
<text x="512" y="516">│</text>
<text x="72" y="532">│</text>
<text x="404" y="532">│◄─────────────────────────┤</text>
<text x="72" y="548">│</text>
<text x="296" y="548">│</text>
<text x="512" y="548">│</text>
<text x="72" y="564">│</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="296" y="564">│</text>
<text x="512" y="564">│</text>
<text x="72" y="580">│</text>
<text x="128" y="580">(cached</text>
<text x="168" y="580">+</text>
<text x="220" y="580">validated)</text>
<text x="296" y="580">│</text>
<text x="512" y="580">│</text>
<text x="184" y="596">│◄──────────────────────────┤</text>
<text x="512" y="596">│</text>
<text x="72" y="612">│</text>
<text x="296" y="612">│</text>
<text x="512" y="612">│</text>
<text x="72" y="628">│</text>
<text x="132" y="628">Response</text>
<text x="208" y="628">includes:</text>
<text x="296" y="628">│</text>
<text x="512" y="628">│</text>
<text x="72" y="644">│</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="296" y="644">│</text>
<text x="512" y="644">│</text>
<text x="72" y="660">│</text>
<text x="136" y="660">(mcp,</text>
<text x="180" y="660">a2a,</text>
<text x="224" y="660">etc.)</text>
<text x="296" y="660">│</text>
<text x="512" y="660">│</text>
<text x="72" y="676">│</text>
<text x="104" y="676">•</text>
<text x="144" y="676">Service</text>
<text x="216" y="676">endpoints</text>
<text x="296" y="676">│</text>
<text x="512" y="676">│</text>
<text x="72" y="692">│</text>
<text x="104" y="692">•</text>
<text x="156" y="692">Capability</text>
<text x="236" y="692">metadata</text>
<text x="296" y="692">│</text>
<text x="512" y="692">│</text>
<text x="72" y="708">│</text>
<text x="104" y="708">•</text>
<text x="140" y="708">DNSSEC</text>
<text x="212" y="708">signatures</text>
<text x="296" y="708">│</text>
<text x="512" y="708">│</text>
<text x="72" y="724">│</text>
<text x="296" y="724">│</text>
<text x="512" y="724">│</text>
<text x="72" y="740">│</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="296" y="740">│</text>
<text x="512" y="740">│</text>
<text x="72" y="756">│</text>
<text x="152" y="756">desired</text>
<text x="208" y="756">agent</text>
<text x="252" y="756">type</text>
<text x="296" y="756">│</text>
<text x="512" y="756">│</text>
<text x="72" y="772">│</text>
<text x="148" y="772">(e.g.,</text>
<text x="196" y="772">mcp)</text>
<text x="296" y="772">│</text>
<text x="512" y="772">│</text>
<text x="72" y="788">│</text>
<text x="296" y="788">│</text>
<text x="512" y="788">│</text>
<text x="72" y="804">│</text>
<text x="112" y="804">10.</text>
<text x="152" y="804">Query</text>
<text x="212" y="804">specific</text>
<text x="296" y="804">│</text>
<text x="512" y="804">│</text>
<text x="72" y="820">│</text>
<text x="152" y="820">agent</text>
<text x="208" y="820">service</text>
<text x="296" y="820">│</text>
<text x="512" y="820">│</text>
<text x="72" y="836">│</text>
<text x="324" y="836">foobar._mcp._aiag...├─────────────────────────►│</text>
<text x="72" y="852">│</text>
<text x="296" y="852">│</text>
<text x="512" y="852">│</text>
<text x="72" y="868">│</text>
<text x="296" y="868">│</text>
<text x="320" y="868">11.</text>
<text x="364" y="868">Return</text>
<text x="424" y="868">service</text>
<text x="512" y="868">│</text>
<text x="72" y="884">│</text>
<text x="296" y="884">│</text>
<text x="368" y="884">details</text>
<text x="512" y="884">│</text>
<text x="292" y="900">│◄──────────────────────────┤◄─────────────────────────┤</text>
<text x="72" y="916">│</text>
<text x="296" y="916">│</text>
<text x="512" y="916">│</text>
<text x="72" y="932">│</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="296" y="932">│</text>
<text x="512" y="932">│</text>
<text x="184" y="948">├──────────────────────────►│</text>
<text x="512" y="948">│</text>
<text x="72" y="964">│</text>
<text x="160" y="964">(Agent-to-Agent</text>
<text x="296" y="964">│</text>
<text x="512" y="964">│</text>
<text x="72" y="980">│</text>
<text x="160" y="980">communication</text>
<text x="248" y="980">begins)</text>
<text x="296" y="980">│</text>
<text x="512" y="980">│</text>
<text x="72" y="996">│</text>
<text x="296" y="996">│</text>
<text x="512" y="996">│</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="568" viewBox="0 0 568 912" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<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="480" y="116">Root/TLD/Auth</text>
<text x="552" y="116">DNS</text>
<text x="72" y="132">│</text>
<text x="296" y="132">│</text>
<text x="432" y="132">(ORG1</text>
<text x="472" y="132">and</text>
<text x="512" y="132">ORG2)</text>
<text x="72" y="148">│</text>
<text x="296" y="148">│</text>
<text x="512" y="148">│</text>
<text x="72" y="164">│</text>
<text x="108" y="164">1.</text>
<text x="140" y="164">SVCB</text>
<text x="184" y="164">Query</text>
<text x="296" y="164">│</text>
<text x="512" y="164">│</text>
<text x="72" y="180">│</text>
<text x="180" y="180">img2txt._a2a._agents</text>
<text x="296" y="180">│</text>
<text x="512" y="180">│</text>
<text x="72" y="196">│</text>
<text x="136" y="196">.org1.com</text>
<text x="296" y="196">│</text>
<text x="512" y="196">│</text>
<text x="72" y="212">│</text>
<text x="144" y="212">(Recursive)</text>
<text x="296" y="212">│</text>
<text x="512" y="212">│</text>
<text x="184" y="228">├──────────────────────────►│</text>
<text x="512" y="228">│</text>
<text x="72" y="244">│</text>
<text x="296" y="244">│</text>
<text x="512" y="244">│</text>
<text x="72" y="260">│</text>
<text x="296" y="260">│</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="512" y="260">│</text>
<text x="72" y="276">│</text>
<text x="404" y="276">├─────────────────────────►│</text>
<text x="72" y="292">│</text>
<text x="296" y="292">│</text>
<text x="512" y="292">│</text>
<text x="72" y="308">│</text>
<text x="296" y="308">│</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="512" y="308">│</text>
<text x="72" y="324">│</text>
<text x="404" y="324">│◄─────────────────────────┤</text>
<text x="72" y="340">│</text>
<text x="296" y="340">│</text>
<text x="360" y="340">returns</text>
<text x="424" y="340">service</text>
<text x="476" y="340">info</text>
<text x="512" y="340">│</text>
<text x="72" y="356">│</text>
<text x="296" y="356">│</text>
<text x="512" y="356">│</text>
<text x="72" y="372">│</text>
<text x="108" y="372">4.</text>
<text x="156" y="372">Response</text>
<text x="220" y="372">(org1)</text>
<text x="296" y="372">│</text>
<text x="512" y="372">│</text>
<text x="72" y="388">│</text>
<text x="128" y="388">(cached</text>
<text x="168" y="388">+</text>
<text x="220" y="388">validated)</text>
<text x="296" y="388">│</text>
<text x="512" y="388">│</text>
<text x="184" y="404">│◄──────────────────────────┤</text>
<text x="512" y="404">│</text>
<text x="72" y="420">│</text>
<text x="296" y="420">│</text>
<text x="512" y="420">│</text>
<text x="72" y="436">│</text>
<text x="108" y="436">5.</text>
<text x="140" y="436">SVCB</text>
<text x="184" y="436">Query</text>
<text x="296" y="436">│</text>
<text x="512" y="436">│</text>
<text x="72" y="452">│</text>
<text x="180" y="452">img2txt._a2a._agents</text>
<text x="296" y="452">│</text>
<text x="512" y="452">│</text>
<text x="72" y="468">│</text>
<text x="136" y="468">.org2.com</text>
<text x="296" y="468">│</text>
<text x="512" y="468">│</text>
<text x="184" y="484">├──────────────────────────►│</text>
<text x="512" y="484">│</text>
<text x="72" y="500">│</text>
<text x="296" y="500">│</text>
<text x="512" y="500">│</text>
<text x="72" y="516">│</text>
<text x="296" y="516">│</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="512" y="516">│</text>
<text x="72" y="532">│</text>
<text x="404" y="532">├─────────────────────────►│</text>
<text x="72" y="548">│</text>
<text x="296" y="548">│</text>
<text x="512" y="548">│</text>
<text x="72" y="564">│</text>
<text x="296" y="564">│</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="512" y="564">│</text>
<text x="72" y="580">│</text>
<text x="404" y="580">│◄─────────────────────────┤</text>
<text x="72" y="596">│</text>
<text x="296" y="596">│</text>
<text x="360" y="596">returns</text>
<text x="424" y="596">service</text>
<text x="476" y="596">info</text>
<text x="512" y="596">│</text>
<text x="72" y="612">│</text>
<text x="296" y="612">│</text>
<text x="512" y="612">│</text>
<text x="72" y="628">│</text>
<text x="108" y="628">8.</text>
<text x="156" y="628">Response</text>
<text x="220" y="628">(org2)</text>
<text x="296" y="628">│</text>
<text x="512" y="628">│</text>
<text x="72" y="644">│</text>
<text x="128" y="644">(cached</text>
<text x="168" y="644">+</text>
<text x="220" y="644">validated)</text>
<text x="296" y="644">│</text>
<text x="512" y="644">│</text>
<text x="184" y="660">│◄──────────────────────────┤</text>
<text x="512" y="660">│</text>
<text x="72" y="676">│</text>
<text x="296" y="676">│</text>
<text x="512" y="676">│</text>
<text x="72" y="692">│</text>
<text x="108" y="692">9.</text>
<text x="148" y="692">Client</text>
<text x="220" y="692">evaluates:</text>
<text x="296" y="692">│</text>
<text x="512" y="692">│</text>
<text x="72" y="708">│</text>
<text x="104" y="708">•</text>
<text x="144" y="708">Service</text>
<text x="228" y="708">capabilities</text>
<text x="296" y="708">│</text>
<text x="512" y="708">│</text>
<text x="72" y="724">│</text>
<text x="132" y="724">from</text>
<text x="172" y="724">both</text>
<text x="232" y="724">responses</text>
<text x="296" y="724">│</text>
<text x="512" y="724">│</text>
<text x="72" y="740">│</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="296" y="740">│</text>
<text x="512" y="740">│</text>
<text x="72" y="756">│</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="296" y="756">│</text>
<text x="512" y="756">│</text>
<text x="72" y="772">│</text>
<text x="296" y="772">│</text>
<text x="512" y="772">│</text>
<text x="72" y="788">│</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="296" y="788">│</text>
<text x="512" y="788">│</text>
<text x="72" y="804">│</text>
<text x="180" y="804">A2A/protocol</text>
<text x="252" y="804">with</text>
<text x="296" y="804">│</text>
<text x="512" y="804">│</text>
<text x="72" y="820">│</text>
<text x="156" y="820">chosen</text>
<text x="220" y="820">provider</text>
<text x="296" y="820">│</text>
<text x="512" y="820">│</text>
<text x="184" y="836">├──────────────────────────►│</text>
<text x="512" y="836">│</text>
<text x="72" y="852">│</text>
<text x="160" y="852">(Agent-to-Agent</text>
<text x="296" y="852">│</text>
<text x="512" y="852">│</text>
<text x="72" y="868">│</text>
<text x="160" y="868">communication</text>
<text x="248" y="868">begins)</text>
<text x="296" y="868">│</text>
<text x="512" y="868">│</text>
<text x="72" y="884">│</text>
<text x="296" y="884">│</text>
<text x="512" y="884">│</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">
<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="72" y="132">│</text>
<text x="296" y="132">│</text>
<text x="512" y="132">│</text>
<text x="72" y="148">│</text>
<text x="108" y="148">1.</text>
<text x="140" y="148">SVCB</text>
<text x="184" y="148">Query</text>
<text x="296" y="148">│</text>
<text x="512" y="148">│</text>
<text x="72" y="164">│</text>
<text x="156" y="164">_index._agents</text>
<text x="296" y="164">│</text>
<text x="512" y="164">│</text>
<text x="72" y="180">│</text>
<text x="184" y="180">.registry.ai-trust...</text>
<text x="296" y="180">│</text>
<text x="512" y="180">│</text>
<text x="72" y="196">│</text>
<text x="144" y="196">(Recursive)</text>
<text x="296" y="196">│</text>
<text x="512" y="196">│</text>
<text x="184" y="212">├──────────────────────────►│</text>
<text x="512" y="212">│</text>
<text x="72" y="228">│</text>
<text x="296" y="228">│</text>
<text x="512" y="228">│</text>
<text x="72" y="244">│</text>
<text x="296" y="244">│</text>
<text x="316" y="244">2.</text>
<text x="360" y="244">Resolve</text>
<text x="428" y="244">registry</text>
<text x="512" y="244">│</text>
<text x="72" y="260">│</text>
<text x="296" y="260">│</text>
<text x="356" y="260">domain</text>
<text x="408" y="260">chain</text>
<text x="512" y="260">│</text>
<text x="72" y="276">│</text>
<text x="404" y="276">├─────────────────────────►│</text>
<text x="72" y="292">│</text>
<text x="296" y="292">│</text>
<text x="512" y="292">│</text>
<text x="72" y="308">│</text>
<text x="296" y="308">│</text>
<text x="316" y="308">3.</text>
<text x="356" y="308">Return</text>
<text x="420" y="308">registry</text>
<text x="512" y="308">│</text>
<text x="72" y="324">│</text>
<text x="404" y="324">│◄─────────────────────────┤</text>
<text x="72" y="340">│</text>
<text x="296" y="340">│</text>
<text x="384" y="340">index/catalog</text>
<text x="460" y="340">SVCB</text>
<text x="512" y="340">│</text>
<text x="72" y="356">│</text>
<text x="296" y="356">│</text>
<text x="512" y="356">│</text>
<text x="72" y="372">│</text>
<text x="108" y="372">4.</text>
<text x="156" y="372">Registry</text>
<text x="216" y="372">Index</text>
<text x="296" y="372">│</text>
<text x="512" y="372">│</text>
<text x="72" y="388">│</text>
<text x="124" y="388">(HTTP,</text>
<text x="176" y="388">JSON,</text>
<text x="220" y="388">etc)</text>
<text x="296" y="388">│</text>
<text x="512" y="388">│</text>
<text x="184" y="404">│──────────────────────────►┤</text>
<text x="512" y="404">│</text>
<text x="72" y="420">│</text>
<text x="296" y="420">│</text>
<text x="512" y="420">│</text>
<text x="72" y="436">│</text>
<text x="296" y="436">│</text>
<text x="324" y="436">5.</text>
<text x="372" y="436">Registry</text>
<text x="444" y="436">Response</text>
<text x="512" y="436">│</text>
<text x="72" y="452">│</text>
<text x="404" y="452">│◄─────────────────────────┤</text>
<text x="72" y="468">│</text>
<text x="296" y="468">│</text>
<text x="512" y="468">│</text>
<text x="72" y="484">│</text>
<text x="296" y="484">│</text>
<text x="356" y="484">Response</text>
<text x="432" y="484">contains:</text>
<text x="512" y="484">│</text>
<text x="72" y="500">│</text>
<text x="296" y="500">│</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="512" y="500">│</text>
<text x="72" y="516">│</text>
<text x="296" y="516">│</text>
<text x="364" y="516">agents</text>
<text x="412" y="516">from</text>
<text x="468" y="516">multiple</text>
<text x="512" y="516">│</text>
<text x="72" y="532">│</text>
<text x="296" y="532">│</text>
<text x="368" y="532">trusted</text>
<text x="420" y="532">orgs</text>
<text x="512" y="532">│</text>
<text x="72" y="548">│</text>
<text x="296" y="548">│</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="512" y="548">│</text>
<text x="72" y="564">│</text>
<text x="296" y="564">│</text>
<text x="328" y="564">•</text>
<text x="376" y="564">Aggregate</text>
<text x="452" y="564">ratings,</text>
<text x="512" y="564">│</text>
<text x="72" y="580">│</text>
<text x="296" y="580">│</text>
<text x="352" y="580">SLA</text>
<text x="392" y="580">info,</text>
<text x="436" y="580">cost</text>
<text x="512" y="580">│</text>
<text x="72" y="596">│</text>
<text x="296" y="596">│</text>
<text x="328" y="596">•</text>
<text x="364" y="596">DNSSEC</text>
<text x="436" y="596">provenance</text>
<text x="512" y="596">│</text>
<text x="72" y="612">│</text>
<text x="296" y="612">│</text>
<text x="328" y="612">•</text>
<text x="388" y="612">Capabilities</text>
<text x="468" y="612">(cost,</text>
<text x="512" y="612">│</text>
<text x="72" y="628">│</text>
<text x="296" y="628">│</text>
<text x="384" y="628">modalities,</text>
<text x="452" y="628">etc)</text>
<text x="512" y="628">│</text>
<text x="72" y="644">│</text>
<text x="296" y="644">│</text>
<text x="512" y="644">│</text>
<text x="72" y="660">│</text>
<text x="108" y="660">6.</text>
<text x="148" y="660">Client</text>
<text x="216" y="660">evaluates</text>
<text x="296" y="660">│</text>
<text x="512" y="660">│</text>
<text x="72" y="676">│</text>
<text x="132" y="676">registry</text>
<text x="200" y="676">results</text>
<text x="296" y="676">│</text>
<text x="512" y="676">│</text>
<text x="72" y="692">│</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="296" y="692">│</text>
<text x="512" y="692">│</text>
<text x="72" y="708">│</text>
<text x="124" y="708">more</text>
<text x="180" y="708">followup</text>
<text x="248" y="708">queries</text>
<text x="296" y="708">│</text>
<text x="512" y="708">│</text>
<text x="72" y="724">│</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="296" y="724">│</text>
<text x="512" y="724">│</text>
<text x="72" y="740">│</text>
<text x="120" y="740">for</text>
<text x="180" y="740">additional</text>
<text x="256" y="740">detail)</text>
<text x="296" y="740">│</text>
<text x="512" y="740">│</text>
<text x="72" y="756">│</text>
<text x="296" y="756">│</text>
<text x="512" y="756">│</text>
<text x="72" y="772">│</text>
<text x="108" y="772">7.</text>
<text x="144" y="772">Query</text>
<text x="196" y="772">chosen</text>
<text x="296" y="772">│</text>
<text x="512" y="772">│</text>
<text x="72" y="788">│</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="296" y="788">│</text>
<text x="512" y="788">│</text>
<text x="72" y="804">│</text>
<text x="136" y="804">for</text>
<text x="176" y="804">final</text>
<text x="232" y="804">details</text>
<text x="296" y="804">│</text>
<text x="512" y="804">│</text>
<text x="184" y="820">├──────────────────────────►│</text>
<text x="512" y="820">│</text>
<text x="72" y="836">│</text>
<text x="296" y="836">│</text>
<text x="512" y="836">│</text>
<text x="72" y="852">│</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="296" y="852">│</text>
<text x="512" y="852">│</text>
<text x="72" y="868">│</text>
<text x="192" y="868">registry-selected</text>
<text x="296" y="868">│</text>
<text x="512" y="868">│</text>
<text x="72" y="884">│</text>
<text x="156" y="884">endpoint</text>
<text x="296" y="884">│</text>
<text x="512" y="884">│</text>
<text x="184" y="900">├──────────────────────────►│</text>
<text x="512" y="900">│</text>
<text x="72" y="916">│</text>
<text x="160" y="916">(Agent-to-Agent</text>
<text x="296" y="916">│</text>
<text x="512" y="916">│</text>
<text x="72" y="932">│</text>
<text x="160" y="932">communication</text>
<text x="248" y="932">begins)</text>
<text x="296" y="932">│</text>
<text x="512" y="932">│</text>
<text x="72" y="948">│</text>
<text x="296" y="948">│</text>
<text x="512" y="948">│</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>

<t><spanx style="verb">
; 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
</spanx></t>

<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>

<t>```
$ORIGIN example.org.
$TTL 3600</t>

<t>; ----------------------------------------------------------------------
; 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.</t>

<t>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</t>

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

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

<t>; 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</t>

<t>; (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</t>

<t>; (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</t>

<t>; ----------------------------------------------------------------------
; 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.</t>

<t>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"</t>

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

<t>; ----------------------------------------------------------------------
; Optional DANE TLSA for the service endpoint used above.
; Owner: _<spanx style="verb">&lt;port&gt;</spanx>._tcp.<spanx style="verb">&lt;endpoint-FQDN&gt;</spanx>
; 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 )</t>

<t>; ----------------------------------------------------------------------
; (Optional) Address records for the service endpoint, if hosted 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
```</t>

</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 security considerations apply.</t>

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

<t>IANA is requested to register an underscored attribute leaf as part of <xref target="RFC8552"/> for agents.</t>

<t>IANA is requested to designate custom key-value pairs for SVCB parameters to facilitate agent-to-agent application discovery, potentially for cost optimization (token input counts, costs per token bundle, etc.)</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>



    </references>

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



<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="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="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="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="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="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>
<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 698?>

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

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

</section>


  </back>

<!-- ##markdown-source:
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
hDzv5dj1DVTyYz0t4liyfi6wsmZmgphTsBd4STqzXpKTM3GSNDlhCLh/Tdwl
4hVnX9DMWX8uDhAN/GRa6zaqulE61/lR5p0oeLnqRJhxj0iosra4WgL7XMrJ
cHKSRI1csRK/8QGvhCpE1FyFCJd+WVaFX1Qf7YKOHuLznPIVcTMDYFTv7aSh
Ve/6OOE7VPDEPgNjuU9nZoqSpiZpo/KYrNx7z/IaFqq+uC3Ez9uZU4XXLQf7
6BlacbCPnqGlg330DC0d7KNnaOlgHz1DSwe7a8/QYgnyEQXvY/I/6lCYFuu7
NFb1DHl+pjTzvlxpmVTbd93liTq77mdAHA/sxrC657bmo5tp+e2rAefO3UxH
UoBRDhTisYJVh+NgcFMFnUBqP91ybuczKfN35cbxGtPcYrg7dDJdc/+HD/aw
rU6DzIi92ZTcq9VnhuXjMlfDhqzm1QeT1BbKdLjdMq+5/8MH29ywItw5C243
s6qr4ZaDVSNFUTBst9t/f9J9cxM1TOzgOA+3lWbWl0aFN8/sLyEo/gbF+GZn
sQ/4gwf7iTgbfiYu4M5SH3Bnl/UyKYtffs+lroXKzm1y7lJf8JaqP6cqY1Kk
9StXOL3iInb+YFdg2PMPMkfkisMzZ+n5Blt8rD5Jc66xJ3mOkfFO3mH2ufSX
AiGOp/r9pqbV6q1z69huLCg/9b7eVunCScUg5heGcnHpo1hnizwKVKNM6mBw
f7OKA9s6YRf4brkoBTxr+Pyqnc1sT9KfkuuV6kXxiWQsA/U35sctu66WlRlW
HqztUGDRtx842Een8IqDddxpYt4QOWz+0bdCTmEk+rb0OR1uel/+TXowuBm4
KcOOySD9K6Hgdru006XG4uqDfXSHXDPYvZ80w+/cBcP/ufHonSqP7nzk0e7b
+zM8unOLwX7uPPrBDI/ufOTRN854NeA8bFsjRJr0iNN6pcF8t3ClzPCq1EbV
Oug8Vlkk5hZzo8woapEUG5t53Fh9uD3KNXSlvcQl8+MzcPSXstugrJPxT7eZ
WbfTXXdngsk7cYvBpGyIqz+30jJ/InL3Z+LD2lrqw9raxXAG9riJVcUJNdfk
can7alvVXyTW0yJPr2OnIVAzpAjVmTiQnAsr4FqQ9vt6picFVfRplM6muqTw
NainvEp0xE2I+Q2JlC/I9AhbjV2Wpz2p6Vlk2O91C49U4NxH5ZTKyvrUWimI
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

-->

</rfc>

