<?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-02" 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>
    <author initials="J." surname="Damick" fullname="Jeff Damick">
      <organization>Amazon</organization>
      <address>
        <email>jdamick@amazon.com</email>
      </address>
    </author>

    <date year="2026" month="May" day="27"/>

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

    <abstract>


<?line 65?>

<t>The document standardizes an approach for publishing AI agents in the Domain Name System (DNS) so that other agents can discover them. Discovery is then initiated based on one of three generic use cases, in increasing computational and latency cost: (1) the requestor knows both the organization and agent (2) the requestor knows the organization that provides a capability, but not the specific agent (3) the requestor knows the required capability, but not the organization or agent. Of these use cases only (1) and (2) are in scope for this document, although (3) can be derived from this specification.</t>

<t>DNS for AI Discovery (DNS-AID) is designed so that, once a client has learned an organization's agents, subsequent transactions can utilize the first use case with the benefit of cacheable connectivity information that is learnable as an agentic skill. The mechanism uses Service Binding (SVCB) records for connectivity information and key meta data, a well known entry point using DNS-Based Service Discovery (DNS-SD) labels into an organization's agent index, and optionally DNS Security Extensions (DNSSEC) and DNS-Based Authentication of Named Entities (DANE) TLSA records for trust and security. DNS-AID provides consumers of agent services with a direct connection method for agentic workloads not mediated by a third party. Organizations can use the same approach across public and private networks networks, providing consistency and common operational models, including publishing agents that are hosted in service provider domains.</t>

<t>This document introduces no new resource record types, opcodes, or response codes.</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 73?>

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

<t>This document standardizes an approach for publishing AI agents in the DNS so that other agents can discover them. Discovery can be initiated based on one of three use cases, where they are ranked in ascending order of latency and computational power required to complete:</t>

<t><list style="numbers" type="1">
  <t>The requestor knows both the agent and its origin domain, and a single DNS query provides connectivity information and key metadata (see <xref target="use-case-known-agent"/>)</t>
  <t>The requestor knows the domain but not which agent provides a required capability, and an organization-level index returns a list of agents from which one is selected (see <xref target="use-case-known-organization"/>)</t>
  <t>The requestor knows the required capability, but not the agent or domain, or knows neither, in which case it must rely on an external directory or search service (see <xref target="use-case-known-capability"/>)</t>
</list></t>

<t>Of the above discovery use cases, (1) and (2) are addressed by this document. The third use case can be derived from (2) based on a well-known entry point to an organization's index of agents, such that any organization could build a search service based on this information. In the event the capability is unknown, external search is likely used anyway, which is treated like (3).</t>

<section anchor="design"><name>Design</name>

<t>DNS-AID is designed so that, once a client has learned an organization's agent capabilities, subsequent queries can use the first use case. The intention is to provide a minimum DNS record set, that is cacheable or even learnable as an agentic skill, with each organization able to control the advertisement of its own agents. This also provides consumers of agent services with a direct connection method for agentic workloads not mediated by a third party. Organizations can use the same approach within internal networks, providing consistency across public and private networks. The mechanism uses SVCB and DNS-SD to include connectivity and metadata within a single DNS record, and optionally utilizes DANE TLSA records to support efficiently establishing encrypted communication.</t>

<t>A deployment using the DNS-AID approach uses the following:</t>

<t><list style="symbols">
  <t>Service Binding (SVCB) records <xref target="RFC9460"/> for the agent endpoint and protocol</t>
  <t>TLSA records <xref target="RFC6698"/> <bcp14>MAY</bcp14> be used for the agent's TLS identity</t>
  <t>The records <bcp14>SHOULD</bcp14> be DNSSEC-signed <xref target="RFC9364"/> for data origin authentication and data integrity, if TLSA records are used they <bcp14>MUST</bcp14> be signed</t>
  <t>DNS-Based Service Discovery (DNS-SD) <xref target="RFC6763"/> <bcp14>MAY</bcp14> be used for compatibility with existing service-discovery tooling</t>
  <t>Several extensions - agent-to-zone control proofs, query-time policy signaling, and cross-domain search - are being explored in parallel and are summarized under <xref target="FutureWork"/>.</t>
</list></t>

<t>We note in section <xref target="TXT-fallback"/> that there could be an option to fall back to TXT records, but this is not optimal given the utility and efficiency of the SVCB record type for service discovery.</t>

</section>
<section anchor="determinism"><name>Determinism</name>

<t>DNS discovery is deterministic and cacheable: a given query against a given zone returns the same SVCB and TLSA RRsets, signed and time-bounded, until the publisher rotates them. The downstream agent's decisions over the discovered metadata are not deterministic. Implementations and reviewers <bcp14>SHOULD</bcp14> treat DNS-AID as providing a verifiable transport for agent metadata, not as a guarantee that an agent will behave predictably given that metadata.</t>

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

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

<?line -18?>

<dl>
  <dt>agent</dt>
  <dd>
    <t>A program that exchanges structured messages with other programs (other agents, services, or human-facing applications), typically over an HTTP transport.</t>
  </dd>
  <dt>agent record</dt>
  <dd>
    <t>The SVCB record set published at an agent's primary owner name, together with any AliasMode records that redirect to it.</t>
  </dd>
  <dt>agent protocol</dt>
  <dd>
    <t>The application-layer protocol an agent speaks once a TLS connection has been established (for example, the Model Context Protocol or Agent-to-Agent). Carried in the <spanx style="verb">bap</spanx> SvcParamKey, or in <spanx style="verb">alpn</spanx> when only one protocol is supported.</t>
  </dd>
  <dt>capability descriptor</dt>
  <dd>
    <t>A machine-readable document describing the operations, inputs, and outputs an agent exposes. The descriptor itself is fetched out of band; DNS-AID carries its URI and a SHA-256 digest of its canonical form.</t>
  </dd>
  <dt>organization index</dt>
  <dd>
    <t>The list of agents an organization chooses to advertise as discoverable, published at <spanx style="verb">_index._agents.&lt;domain&gt;</spanx>.</t>
  </dd>
  <dt>primary owner</dt>
  <dd>
    <t>The fully-qualified domain name at which an agent's normative SVCB ServiceMode record is published.</t>
  </dd>
</dl>

</section>
<section anchor="discovery-use-cases"><name>Discovery Use Cases</name>

<t>This section of the document provides details of the three generic use cases, including DNS record usage.</t>

<section anchor="use-case-known-agent"><name>Known Agent</name>

<t>This section covers the use case where a requestor knows both the agent and its origin domain.</t>

<t>A single SVCB record type query for <spanx style="verb">agent-name.example.com</spanx> returns IP addresses, transport, agent protocol, and capability metadata. A TLSA record type query authenticates the TLS endpoint, although implementations may use other mechanisms. This is the form publishers <bcp14>SHOULD</bcp14> support and the form requestors <bcp14>MUST</bcp14> try first.</t>

<t>The SVCB record of an agent can provide some or all of the following:</t>

<t><list style="symbols">
  <t><spanx style="verb">TargetName</spanx> -- The target of the SVCB record, which can be the same as the agent domain name or different in the cases such as where a service provider hosts an agent.</t>
  <t><spanx style="verb">ipv4hint</spanx> and <spanx style="verb">ipv6hint</spanx> -- TargetName IP addressing.</t>
  <t><spanx style="verb">alpn</spanx> -- A unique protocol suite used by the target (e.g. <spanx style="verb">alpn=mcp,h2,h3</spanx>) consisting of transport (e.g. <spanx style="verb">h2</spanx>, <spanx style="verb">h3</spanx>) and/or an application-layer (agent) protocol (e.g. <spanx style="verb">mcp</spanx> or <spanx style="verb">a2a</spanx>) see <xref target="agents-supporting-multiple-protos"/>.</t>
  <t><spanx style="verb">bap</spanx> -- An optional SvcParamKey for agent protocol (e.g. <spanx style="verb">mcp</spanx>, <spanx style="verb">a2a</spanx>). Carrying the agent protocol as a separate parameter lets consumers and policy engines match on agent protocol without parsing transport protocols in <spanx style="verb">alpn</spanx>. Publishers <bcp14>MAY</bcp14> place the agent protocol directly in <spanx style="verb">alpn</spanx>. This is considered experimental, see <xref target="experimental-use-of-bap"/>.</t>
  <t><spanx style="verb">well-known</spanx> -- The well-known URI path as as described in <xref target="RFC8615"/> e.g. <spanx style="verb">/.well-known/agent-card.json</spanx>.</t>
  <t><spanx style="verb">cap</spanx> -- Capability descriptor locator or inline identifier (e.g., a URN or compact JSON-Ref).</t>
  <t><spanx style="verb">cap-sha256</spanx> -- Capability base64url-encoded SHA-256 digest of the canonical capability descriptor.</t>
  <t>Optional <spanx style="verb">policy</spanx> and <spanx style="verb">realm</spanx> parameters for multi-tenant or compliance-scoped deployments, or operator and/or service-specific metadata. The exact syntax and registry policy for these keys are deferred to a future revision (see <xref target="FutureWork"/>).</t>
</list></t>

<t>Operators <bcp14>MAY</bcp14> publish the same agent under an <spanx style="verb">_agents.example.com</spanx> inventory leaf (for organizations that prefer a single containing prefix for their agents) or under a canonical DNS-SD label (so off-the-shelf DNS-SD clients can enumerate). In these cases SVCB AliasMode <bcp14>MUST</bcp14> be used to point at the primary owner.</t>

<t>Examples of these records are shown below in <xref target="svcb-ex-1"/> and their usage in <xref target="discovery-ex1"/>:</t>

<figure title="SVCB Record Examples" anchor="svcb-ex-1"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="600" viewBox="0 0 600 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<g class="text">
<text x="8" y="36">#</text>
<text x="28" y="36">An</text>
<text x="64" y="36">agent</text>
<text x="112" y="36">named</text>
<text x="180" y="36">agent-name</text>
<text x="244" y="36">with</text>
<text x="316" y="36">connectivity</text>
<text x="384" y="36">and</text>
<text x="444" y="36">capability</text>
<text x="536" y="36">information</text>
<text x="96" y="52">agent-name.example.com.</text>
<text x="212" y="52">3600</text>
<text x="244" y="52">IN</text>
<text x="276" y="52">SVCB</text>
<text x="304" y="52">1</text>
<text x="320" y="52">.</text>
<text x="336" y="52">(</text>
<text x="76" y="68">alpn=&quot;a2a&quot;</text>
<text x="68" y="84">port=443</text>
<text x="108" y="100">ipv4hint=192.0.2.1</text>
<text x="116" y="116">ipv6hint=2001:db8::1</text>
<text x="140" y="132">well-known=agent-card.json</text>
<text x="96" y="148">cap=&lt;capability</text>
<text x="204" y="148">descriptor</text>
<text x="284" y="148">locator&gt;</text>
<text x="48" y="164">...</text>
<text x="8" y="180">)</text>
<text x="8" y="212">#</text>
<text x="40" y="212">Agent</text>
<text x="108" y="212">agent-name</text>
<text x="176" y="212">where</text>
<text x="216" y="212">the</text>
<text x="276" y="212">TargetName</text>
<text x="332" y="212">is</text>
<text x="352" y="212">a</text>
<text x="388" y="212">hosted</text>
<text x="448" y="212">service</text>
<text x="96" y="228">agent-name.example.com.</text>
<text x="212" y="228">3600</text>
<text x="244" y="228">IN</text>
<text x="276" y="228">SVCB</text>
<text x="304" y="228">1</text>
<text x="448" y="228">resource.service-provider.example</text>
<text x="592" y="228">(</text>
<text x="48" y="244">...</text>
<text x="8" y="260">)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
# An agent named agent-name with connectivity and capability information
agent-name.example.com. 3600 IN SVCB 1 . (
    alpn="a2a"
    port=443
    ipv4hint=192.0.2.1
    ipv6hint=2001:db8::1
    well-known=agent-card.json
    cap=<capability descriptor locator>
    ...
)

# Agent agent-name where the TargetName is a hosted service
agent-name.example.com. 3600 IN SVCB 1 resource.service-provider.example (
    ...
)
]]></artwork></artset></figure>

<figure title="Discovery Example 1: Known Agent Discovery" anchor="discovery-ex1"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="768" width="576" viewBox="0 0 576 768" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 24,112 L 24,752" fill="none" stroke="black"/>
<path d="M 224,112 L 224,728" fill="none" stroke="black"/>
<path d="M 416,112 L 416,728" fill="none" stroke="black"/>
<path d="M 544,112 L 544,752" fill="none" stroke="black"/>
<path d="M 32,176 L 216,176" fill="none" stroke="black"/>
<path d="M 232,240 L 408,240" fill="none" stroke="black"/>
<path d="M 32,416 L 216,416" fill="none" stroke="black"/>
<path d="M 32,480 L 216,480" fill="none" stroke="black"/>
<path d="M 232,544 L 408,544" fill="none" stroke="black"/>
<path d="M 32,608 L 216,608" fill="none" stroke="black"/>
<path d="M 32,736 L 536,736" fill="none" stroke="black"/>
<polygon class="arrowhead" points="544,736 532,730.4 532,741.6" fill="black" transform="rotate(0,536,736)"/>
<polygon class="arrowhead" points="416,544 404,538.4 404,549.6" fill="black" transform="rotate(0,408,544)"/>
<polygon class="arrowhead" points="416,240 404,234.4 404,245.6" fill="black" transform="rotate(0,408,240)"/>
<polygon class="arrowhead" points="240,544 228,538.4 228,549.6" fill="black" transform="rotate(180,232,544)"/>
<polygon class="arrowhead" points="240,240 228,234.4 228,245.6" fill="black" transform="rotate(180,232,240)"/>
<polygon class="arrowhead" points="224,480 212,474.4 212,485.6" fill="black" transform="rotate(0,216,480)"/>
<polygon class="arrowhead" points="224,176 212,170.4 212,181.6" fill="black" transform="rotate(0,216,176)"/>
<polygon class="arrowhead" points="40,608 28,602.4 28,613.6" fill="black" transform="rotate(180,32,608)"/>
<polygon class="arrowhead" points="40,416 28,410.4 28,421.6" fill="black" transform="rotate(180,32,416)"/>
<g class="text">
<text x="12" y="36">AI</text>
<text x="48" y="36">Agent</text>
<text x="104" y="36">Client:</text>
<text x="24" y="52">-</text>
<text x="56" y="52">wants</text>
<text x="92" y="52">to</text>
<text x="120" y="52">use</text>
<text x="228" y="52">agent-name.example.com</text>
<text x="24" y="84">Agent</text>
<text x="220" y="84">Resolver</text>
<text x="416" y="84">Authoritative</text>
<text x="528" y="84">Agent</text>
<text x="564" y="84">or</text>
<text x="224" y="100">Cache</text>
<text x="416" y="100">DNS</text>
<text x="544" y="100">Gateway</text>
<text x="44" y="148">1.</text>
<text x="76" y="148">SVCB</text>
<text x="120" y="148">Query</text>
<text x="80" y="164">(Recursive)</text>
<text x="244" y="212">2.</text>
<text x="296" y="212">Iterative</text>
<text x="368" y="212">Queries</text>
<text x="268" y="228">retrieve</text>
<text x="324" y="228">SVCB</text>
<text x="368" y="228">RRset</text>
<text x="44" y="276">3.</text>
<text x="92" y="276">Response</text>
<text x="140" y="276">to</text>
<text x="176" y="276">agent</text>
<text x="76" y="292">(validated</text>
<text x="128" y="292">+</text>
<text x="168" y="292">cached)</text>
<text x="68" y="308">Response</text>
<text x="144" y="308">includes:</text>
<text x="40" y="324">-</text>
<text x="92" y="324">TargetName</text>
<text x="40" y="340">-</text>
<text x="68" y="340">ALPN</text>
<text x="124" y="340">protocol</text>
<text x="184" y="340">suite</text>
<text x="40" y="356">-</text>
<text x="68" y="356">Port</text>
<text x="116" y="356">number</text>
<text x="40" y="372">-</text>
<text x="88" y="372">IPv4/IPv6</text>
<text x="152" y="372">hints</text>
<text x="40" y="388">-</text>
<text x="76" y="388">DNSSEC</text>
<text x="148" y="388">signatures</text>
<text x="40" y="404">-</text>
<text x="100" y="404">Capabilities</text>
<text x="44" y="452">4.</text>
<text x="76" y="452">TLSA</text>
<text x="120" y="452">Query</text>
<text x="80" y="468">(Recursive)</text>
<text x="244" y="516">5.</text>
<text x="296" y="516">Iterative</text>
<text x="368" y="516">Queries</text>
<text x="268" y="532">retrieve</text>
<text x="324" y="532">TLSA</text>
<text x="368" y="532">RRset</text>
<text x="44" y="580">6.</text>
<text x="76" y="580">TLSA</text>
<text x="132" y="580">Response</text>
<text x="108" y="596">(validated+cached)</text>
<text x="44" y="644">7.</text>
<text x="80" y="644">Agent</text>
<text x="144" y="644">validates</text>
<text x="80" y="660">certificate</text>
<text x="44" y="692">8.</text>
<text x="80" y="692">Agent</text>
<text x="160" y="692">communication</text>
<text x="60" y="708">begins</text>
<text x="112" y="708">using</text>
<text x="168" y="708">service</text>
<text x="64" y="724">binding</text>
<text x="140" y="724">parameters</text>
<text x="224" y="756">|</text>
<text x="416" y="756">|</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
AI Agent Client:
  - wants to use agent-name.example.com

Agent                  Resolver              Authoritative     Agent or
                         Cache                    DNS           Gateway
  |                        |                       |               |
  |                        |                       |               |
  | 1. SVCB Query          |                       |               |
  | (Recursive)            |                       |               |
  |----------------------->|                       |               |
  |                        |                       |               |
  |                        | 2. Iterative Queries  |               |
  |                        | retrieve SVCB RRset   |               |
  |                        |<--------------------->|               |
  |                        |                       |               |
  | 3. Response to agent   |                       |               |
  | (validated + cached)   |                       |               |
  | Response includes:     |                       |               |
  | - TargetName           |                       |               |
  | - ALPN protocol suite  |                       |               |
  | - Port number          |                       |               |
  | - IPv4/IPv6 hints      |                       |               |
  | - DNSSEC signatures    |                       |               |
  | - Capabilities         |                       |               |
  |<-----------------------|                       |               |
  |                        |                       |               |
  | 4. TLSA Query          |                       |               |
  | (Recursive)            |                       |               |
  |----------------------->|                       |               |
  |                        |                       |               |
  |                        | 5. Iterative Queries  |               |
  |                        | retrieve TLSA RRset   |               |
  |                        |<--------------------->|               |
  |                        |                       |               |
  | 6. TLSA Response       |                       |               |
  | (validated+cached)     |                       |               |
  |<-----------------------|                       |               |
  |                        |                       |               |
  | 7. Agent validates     |                       |               |
  | certificate            |                       |               |
  |                        |                       |               |
  | 8. Agent communication |                       |               |
  | begins using service   |                       |               |
  | binding parameters     |                       |               |
  |--------------------------------------------------------------->|
  |                        |                       |               |
]]></artwork></artset></figure>

<section anchor="agents-supporting-multiple-protos"><name>Agents Supporting Multiple Protocols</name>

<t>This section details cases where the same agent might support multiple agent and transport protocols. <xref section="7.1" sectionFormat="comma" target="RFC9460"/> describes the use of <spanx style="verb">alpn</spanx> SvcParamKeys in this regard for agent application-layer and transport protocols. Agents would process the RRset, and could choose from multiple SVCB records, selecting the preferred protocol suite.</t>

<t>Each application-layer (agent) protocol <bcp14>MUST</bcp14> be a separate record in an RRset e.g.</t>

<figure><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="64" width="384" viewBox="0 0 384 64" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<g class="text">
<text x="92" y="36">agent-name.example.com</text>
<text x="196" y="36">IN</text>
<text x="228" y="36">SVCB</text>
<text x="256" y="36">.</text>
<text x="324" y="36">alpn=mcp,h2,h3</text>
<text x="92" y="52">agent-name.example.com</text>
<text x="196" y="52">IN</text>
<text x="228" y="52">SVCB</text>
<text x="256" y="52">.</text>
<text x="324" y="52">alpn=a2a,h2,h3</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
agent-name.example.com IN SVCB . alpn=mcp,h2,h3
agent-name.example.com IN SVCB . alpn=a2a,h2,h3
]]></artwork></artset></figure>

<t>Multiple protocols <bcp14>MUST NOT</bcp14> be used in the <spanx style="verb">alpn</spanx> value as the SvcParamKey <bcp14>MUST</bcp14> uniquely identify a protocol suite:</t>

<figure><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="48" width="568" viewBox="0 0 568 48" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<g class="text">
<text x="92" y="36">agent-name.example.com</text>
<text x="196" y="36">IN</text>
<text x="228" y="36">SVCB</text>
<text x="256" y="36">.</text>
<text x="340" y="36">alpn=mcp,a2a,h2,h3</text>
<text x="424" y="36">#</text>
<text x="452" y="36">MUST</text>
<text x="488" y="36">NOT</text>
<text x="516" y="36">be</text>
<text x="548" y="36">used</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
agent-name.example.com IN SVCB . alpn=mcp,a2a,h2,h3 # MUST NOT be used
]]></artwork></artset></figure>

<t>See <xref section="7.1" sectionFormat="comma" target="RFC9460"/> for further details. Examples of records to support multiple protocols are shown below in <xref target="svcb-ex-multi-proto"/>.</t>

<figure title="SVCB Records for Multi-Protocol Support" anchor="svcb-ex-multi-proto"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="624" viewBox="0 0 624 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<g class="text">
<text x="8" y="36">#</text>
<text x="28" y="36">An</text>
<text x="64" y="36">agent</text>
<text x="132" y="36">supporting</text>
<text x="212" y="36">multiple</text>
<text x="288" y="36">protocols</text>
<text x="8" y="52">#</text>
<text x="36" y="52">Each</text>
<text x="84" y="52">record</text>
<text x="124" y="52">in</text>
<text x="148" y="52">an</text>
<text x="184" y="52">RRset</text>
<text x="220" y="52">is</text>
<text x="252" y="52">used</text>
<text x="280" y="52">a</text>
<text x="316" y="52">single</text>
<text x="416" y="52">application-layer</text>
<text x="520" y="52">(agent)</text>
<text x="588" y="52">protocol</text>
<text x="92" y="68">agent-name.example.com</text>
<text x="196" y="68">IN</text>
<text x="228" y="68">SVCB</text>
<text x="256" y="68">.</text>
<text x="324" y="68">alpn=mcp,h2,h3</text>
<text x="92" y="84">agent-name.example.com</text>
<text x="196" y="84">IN</text>
<text x="228" y="84">SVCB</text>
<text x="256" y="84">.</text>
<text x="312" y="84">alpn=a2a,h2</text>
<text x="8" y="116">#</text>
<text x="60" y="116">TargetName</text>
<text x="120" y="116">can</text>
<text x="148" y="116">be</text>
<text x="200" y="116">different</text>
<text x="252" y="116">to</text>
<text x="296" y="116">support</text>
<text x="340" y="116">to</text>
<text x="384" y="116">support</text>
<text x="448" y="116">service</text>
<text x="520" y="116">providers</text>
<text x="8" y="132">#</text>
<text x="28" y="132">or</text>
<text x="80" y="132">different</text>
<text x="160" y="132">endpoints</text>
<text x="96" y="148">agent-name.example.com.</text>
<text x="212" y="148">3600</text>
<text x="244" y="148">IN</text>
<text x="276" y="148">SVCB</text>
<text x="304" y="148">1</text>
<text x="448" y="148">resource.service-provider.example</text>
<text x="592" y="148">(</text>
<text x="92" y="164">alpn=mcp,h2,h3</text>
<text x="192" y="180">well-known=/.well-known/agent-card.json</text>
<text x="8" y="196">)</text>
<text x="96" y="212">agent-name.example.com.</text>
<text x="212" y="212">3600</text>
<text x="244" y="212">IN</text>
<text x="276" y="212">SVCB</text>
<text x="304" y="212">1</text>
<text x="420" y="212">agent-name-a2a.example.com</text>
<text x="536" y="212">(</text>
<text x="80" y="228">alpn=a2a,h2</text>
<text x="204" y="244">well-known=/not-well-known/other-card.json</text>
<text x="8" y="260">)</text>
<text x="8" y="292">#</text>
<text x="28" y="292">It</text>
<text x="64" y="292">would</text>
<text x="100" y="292">be</text>
<text x="148" y="292">possible</text>
<text x="196" y="292">to</text>
<text x="224" y="292">use</text>
<text x="268" y="292">DNS-SD</text>
<text x="328" y="292">labels,</text>
<text x="396" y="292">although</text>
<text x="452" y="292">this</text>
<text x="484" y="292">is</text>
<text x="536" y="292">redundant</text>
<text x="8" y="308">#</text>
<text x="28" y="308">as</text>
<text x="56" y="308">the</text>
<text x="108" y="308">protocol</text>
<text x="156" y="308">is</text>
<text x="180" y="308">in</text>
<text x="208" y="308">the</text>
<text x="248" y="308">alpn,</text>
<text x="288" y="308">but</text>
<text x="360" y="308">organizations</text>
<text x="440" y="308">might</text>
<text x="480" y="308">use</text>
<text x="516" y="308">this</text>
<text x="552" y="308">for</text>
<text x="8" y="324">#</text>
<text x="72" y="324">compatibility</text>
<text x="148" y="324">with</text>
<text x="204" y="324">existing</text>
<text x="312" y="324">service-discovery</text>
<text x="420" y="324">tooling,</text>
<text x="468" y="324">or</text>
<text x="496" y="324">for</text>
<text x="8" y="340">#</text>
<text x="56" y="340">filtering</text>
<text x="112" y="340">and</text>
<text x="164" y="340">security</text>
<text x="236" y="340">purposes</text>
<text x="96" y="356">agent-name.example.com.</text>
<text x="212" y="356">3600</text>
<text x="244" y="356">IN</text>
<text x="276" y="356">SVCB</text>
<text x="304" y="356">1</text>
<text x="424" y="356">_a2a.agent-name.example.com</text>
<text x="544" y="356">(</text>
<text x="80" y="372">alpn=a2a,h2</text>
<text x="8" y="388">)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
# An agent supporting multiple protocols
# Each record in an RRset is used a single application-layer (agent) protocol
agent-name.example.com IN SVCB . alpn=mcp,h2,h3
agent-name.example.com IN SVCB . alpn=a2a,h2

# TargetName can be different to support to support service providers
# or different endpoints
agent-name.example.com. 3600 IN SVCB 1 resource.service-provider.example (
    alpn=mcp,h2,h3
    well-known=/.well-known/agent-card.json
)
agent-name.example.com. 3600 IN SVCB 1 agent-name-a2a.example.com (
    alpn=a2a,h2
    well-known=/not-well-known/other-card.json
)

# It would be possible to use DNS-SD labels, although this is redundant
# as the protocol is in the alpn, but organizations might use this for
# compatibility with existing service-discovery tooling, or for
# filtering and security purposes
agent-name.example.com. 3600 IN SVCB 1 _a2a.agent-name.example.com (
    alpn=a2a,h2
)

]]></artwork></artset></figure>

</section>
</section>
<section anchor="use-case-known-organization"><name>Known Organization</name>

<t>This section covers the use case where a the requestor knows the organizational domain, but not which agent provides a required capability.</t>

<t>An SVCB record type query for <spanx style="verb">_index._agents.example.com</spanx> returns a pointer to an organization-specific registry of all agents. The requestor uses the data returned to select an agent and cache the selection so that the process in <xref target="use-case-known-agent"/> can be used for subsequent interaction. The data provided at <spanx style="verb">_index._agents.{domain}</spanx>, protocols and schemas are out of scope for DNS-AID.</t>

<t>The TargetName <bcp14>MUST</bcp14> be used and <bcp14>MUST</bcp14> not contain underscores as used in DNS-SD labels, as public x.509 certificates will be used in communications with the index. Following the <spanx style="verb">_index._agents.example.com</spanx> SVCB record query, agents will use the TargetName for any TLSA record query.</t>

<t>The labels <spanx style="verb">_index._agents</spanx> have been chosen as DNS-SD labels with the intent of registering them with IANA, as it is not possible to register a generic name such as <spanx style="verb">agent-index</spanx>.</t>

<t>Examples of these records are shown below in <xref target="svcb-ex-2"/>:</t>

<figure title="Organizational Index Record Examples" anchor="svcb-ex-2"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="632" viewBox="0 0 632 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<g class="text">
<text x="8" y="36">#</text>
<text x="76" y="36">Organizational</text>
<text x="160" y="36">agent</text>
<text x="208" y="36">index</text>
<text x="244" y="36">at</text>
<text x="264" y="36">a</text>
<text x="316" y="36">well-known</text>
<text x="380" y="36">name</text>
<text x="112" y="52">_index._agents.example.com.</text>
<text x="244" y="52">3600</text>
<text x="276" y="52">IN</text>
<text x="308" y="52">SVCB</text>
<text x="336" y="52">1</text>
<text x="440" y="52">agent-index.example.com</text>
<text x="544" y="52">(</text>
<text x="48" y="68">...</text>
<text x="8" y="84">)</text>
<text x="8" y="116">#</text>
<text x="76" y="116">Organizational</text>
<text x="160" y="116">agent</text>
<text x="208" y="116">index</text>
<text x="244" y="116">at</text>
<text x="264" y="116">a</text>
<text x="316" y="116">well-known</text>
<text x="380" y="116">name</text>
<text x="424" y="116">using</text>
<text x="456" y="116">a</text>
<text x="492" y="116">hosted</text>
<text x="552" y="116">service</text>
<text x="112" y="132">_index._agents.example.com.</text>
<text x="244" y="132">3600</text>
<text x="276" y="132">IN</text>
<text x="308" y="132">SVCB</text>
<text x="336" y="132">1</text>
<text x="480" y="132">resource.service-provider.example</text>
<text x="624" y="132">(</text>
<text x="48" y="148">...</text>
<text x="8" y="164">)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
# Organizational agent index at a well-known name
_index._agents.example.com. 3600 IN SVCB 1 agent-index.example.com (
    ...
)

# Organizational agent index at a well-known name using a hosted service
_index._agents.example.com. 3600 IN SVCB 1 resource.service-provider.example (
    ...
)

]]></artwork></artset></figure>

<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="1248" width="576" viewBox="0 0 576 1248" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 24,144 L 24,1232" fill="none" stroke="black"/>
<path d="M 224,144 L 224,776" fill="none" stroke="black"/>
<path d="M 224,792 L 224,1208" fill="none" stroke="black"/>
<path d="M 416,144 L 416,776" fill="none" stroke="black"/>
<path d="M 416,792 L 416,1208" fill="none" stroke="black"/>
<path d="M 544,144 L 544,1232" fill="none" stroke="black"/>
<path d="M 32,192 L 216,192" fill="none" stroke="black"/>
<path d="M 232,256 L 408,256" fill="none" stroke="black"/>
<path d="M 32,432 L 216,432" fill="none" stroke="black"/>
<path d="M 32,496 L 216,496" fill="none" stroke="black"/>
<path d="M 232,560 L 408,560" fill="none" stroke="black"/>
<path d="M 32,624 L 216,624" fill="none" stroke="black"/>
<path d="M 32,784 L 536,784" fill="none" stroke="black"/>
<path d="M 32,960 L 216,960" fill="none" stroke="black"/>
<path d="M 232,1024 L 408,1024" fill="none" stroke="black"/>
<path d="M 32,1088 L 216,1088" fill="none" stroke="black"/>
<path d="M 32,1216 L 536,1216" fill="none" stroke="black"/>
<polygon class="arrowhead" points="544,1216 532,1210.4 532,1221.6" fill="black" transform="rotate(0,536,1216)"/>
<polygon class="arrowhead" points="544,784 532,778.4 532,789.6" fill="black" transform="rotate(0,536,784)"/>
<polygon class="arrowhead" points="416,1024 404,1018.4 404,1029.6" fill="black" transform="rotate(0,408,1024)"/>
<polygon class="arrowhead" points="416,560 404,554.4 404,565.6" fill="black" transform="rotate(0,408,560)"/>
<polygon class="arrowhead" points="416,256 404,250.4 404,261.6" fill="black" transform="rotate(0,408,256)"/>
<polygon class="arrowhead" points="240,1024 228,1018.4 228,1029.6" fill="black" transform="rotate(180,232,1024)"/>
<polygon class="arrowhead" points="240,560 228,554.4 228,565.6" fill="black" transform="rotate(180,232,560)"/>
<polygon class="arrowhead" points="240,256 228,250.4 228,261.6" fill="black" transform="rotate(180,232,256)"/>
<polygon class="arrowhead" points="224,960 212,954.4 212,965.6" fill="black" transform="rotate(0,216,960)"/>
<polygon class="arrowhead" points="224,496 212,490.4 212,501.6" fill="black" transform="rotate(0,216,496)"/>
<polygon class="arrowhead" points="224,192 212,186.4 212,197.6" fill="black" transform="rotate(0,216,192)"/>
<polygon class="arrowhead" points="40,1088 28,1082.4 28,1093.6" fill="black" transform="rotate(180,32,1088)"/>
<polygon class="arrowhead" points="40,624 28,618.4 28,629.6" fill="black" transform="rotate(180,32,624)"/>
<polygon class="arrowhead" points="40,432 28,426.4 28,437.6" fill="black" transform="rotate(180,32,432)"/>
<g class="text">
<text x="12" y="36">AI</text>
<text x="48" y="36">Agent</text>
<text x="104" y="36">Client:</text>
<text x="24" y="52">-</text>
<text x="60" y="52">trusts</text>
<text x="104" y="52">the</text>
<text x="168" y="52">example.com</text>
<text x="268" y="52">organization</text>
<text x="24" y="68">-</text>
<text x="56" y="68">wants</text>
<text x="92" y="68">to</text>
<text x="140" y="68">discover</text>
<text x="216" y="68">available</text>
<text x="284" y="68">agents</text>
<text x="328" y="68">and</text>
<text x="380" y="68">services</text>
<text x="432" y="68">for</text>
<text x="456" y="68">a</text>
<text x="508" y="68">capability</text>
<text x="24" y="84">-</text>
<text x="64" y="84">queries</text>
<text x="204" y="84">_index._agents.example.com</text>
<text x="360" y="84">(well-known</text>
<text x="432" y="84">entry</text>
<text x="484" y="84">point)</text>
<text x="24" y="116">Agent</text>
<text x="220" y="116">Resolver</text>
<text x="416" y="116">Authoritative</text>
<text x="528" y="116">Agent</text>
<text x="564" y="116">or</text>
<text x="224" y="132">Cache</text>
<text x="416" y="132">DNS</text>
<text x="544" y="132">Gateway</text>
<text x="44" y="164">1.</text>
<text x="76" y="164">SVCB</text>
<text x="120" y="164">Query</text>
<text x="92" y="180">_index._agents</text>
<text x="244" y="228">2.</text>
<text x="296" y="228">Iterative</text>
<text x="368" y="228">Queries</text>
<text x="268" y="244">retrieve</text>
<text x="324" y="244">SVCB</text>
<text x="368" y="244">RRset</text>
<text x="44" y="292">3.</text>
<text x="92" y="292">Response</text>
<text x="140" y="292">to</text>
<text x="176" y="292">agent</text>
<text x="108" y="308">(cached+validated)</text>
<text x="68" y="324">Response</text>
<text x="144" y="324">includes:</text>
<text x="40" y="340">-</text>
<text x="92" y="340">TargetName</text>
<text x="40" y="356">-</text>
<text x="68" y="356">ALPN</text>
<text x="124" y="356">protocol</text>
<text x="40" y="372">-</text>
<text x="68" y="372">Port</text>
<text x="116" y="372">number</text>
<text x="40" y="388">-</text>
<text x="88" y="388">IPv4/IPv6</text>
<text x="152" y="388">hints</text>
<text x="40" y="404">-</text>
<text x="76" y="404">DNSSEC</text>
<text x="148" y="404">signatures</text>
<text x="40" y="420">-</text>
<text x="100" y="420">Capabilities</text>
<text x="44" y="468">4.</text>
<text x="76" y="468">TLSA</text>
<text x="120" y="468">Query</text>
<text x="160" y="468">for</text>
<text x="80" y="484">TargetName.</text>
<text x="244" y="532">5.</text>
<text x="296" y="532">Iterative</text>
<text x="368" y="532">Queries</text>
<text x="268" y="548">retrieve</text>
<text x="324" y="548">TLSA</text>
<text x="368" y="548">RRset</text>
<text x="44" y="596">6.</text>
<text x="76" y="596">TLSA</text>
<text x="132" y="596">Response</text>
<text x="108" y="612">(validated+cached)</text>
<text x="44" y="660">7.</text>
<text x="80" y="660">Agent</text>
<text x="144" y="660">validates</text>
<text x="80" y="676">certificate</text>
<text x="44" y="708">8.</text>
<text x="116" y="708">Agent-to-agent</text>
<text x="88" y="724">communication</text>
<text x="56" y="740">Agent</text>
<text x="120" y="740">retrieves</text>
<text x="56" y="756">index</text>
<text x="96" y="756">via</text>
<text x="132" y="756">e.g.</text>
<text x="168" y="756">via</text>
<text x="60" y="772">https,</text>
<text x="108" y="772">a2a,</text>
<text x="148" y="772">etc.</text>
<text x="44" y="820">9.</text>
<text x="80" y="820">Agent</text>
<text x="128" y="820">makes</text>
<text x="68" y="836">semantic</text>
<text x="132" y="836">search</text>
<text x="72" y="852">selection</text>
<text x="136" y="852">based</text>
<text x="172" y="852">on</text>
<text x="56" y="868">index</text>
<text x="104" y="868">data,</text>
<text x="160" y="868">caching</text>
<text x="56" y="884">agent</text>
<text x="112" y="884">details</text>
<text x="164" y="884">e.g.</text>
<text x="56" y="900">name,</text>
<text x="128" y="900">capability,</text>
<text x="196" y="900">etc.</text>
<text x="48" y="932">10.</text>
<text x="88" y="932">Query</text>
<text x="128" y="932">for</text>
<text x="172" y="932">target</text>
<text x="56" y="948">agent</text>
<text x="100" y="948">SVCB</text>
<text x="144" y="948">RRset</text>
<text x="248" y="996">10.</text>
<text x="304" y="996">Iterative</text>
<text x="376" y="996">queries</text>
<text x="268" y="1012">retrieve</text>
<text x="324" y="1012">SVCB</text>
<text x="368" y="1012">RRset</text>
<text x="48" y="1060">11.</text>
<text x="100" y="1060">Response</text>
<text x="148" y="1060">to</text>
<text x="184" y="1060">agent</text>
<text x="44" y="1076">as</text>
<text x="68" y="1076">in</text>
<text x="100" y="1076">step</text>
<text x="132" y="1076">3.</text>
<text x="48" y="1124">12.</text>
<text x="88" y="1124">Cert.</text>
<text x="156" y="1124">validation</text>
<text x="44" y="1140">as</text>
<text x="68" y="1140">in</text>
<text x="104" y="1140">steps</text>
<text x="140" y="1140">3.</text>
<text x="164" y="1140">to</text>
<text x="188" y="1140">7.</text>
<text x="48" y="1172">13.</text>
<text x="88" y="1172">Agent</text>
<text x="168" y="1172">communication</text>
<text x="60" y="1188">begins</text>
<text x="112" y="1188">using</text>
<text x="168" y="1188">service</text>
<text x="64" y="1204">binding</text>
<text x="140" y="1204">parameters</text>
<text x="224" y="1236">|</text>
<text x="416" y="1236">|</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
AI Agent Client:
  - trusts the example.com organization
  - wants to discover available agents and services for a capability
  - queries _index._agents.example.com (well-known entry point)

Agent                  Resolver              Authoritative     Agent or
                         Cache                    DNS           Gateway
  |                        |                       |               |
  | 1. SVCB Query          |                       |               |
  | _index._agents         |                       |               |
  |----------------------->|                       |               |
  |                        |                       |               |
  |                        | 2. Iterative Queries  |               |
  |                        | retrieve SVCB RRset   |               |
  |                        |<--------------------->|               |
  |                        |                       |               |
  | 3. Response to agent   |                       |               |
  | (cached+validated)     |                       |               |
  | Response includes:     |                       |               |
  | - TargetName           |                       |               |
  | - ALPN protocol        |                       |               |
  | - Port number          |                       |               |
  | - IPv4/IPv6 hints      |                       |               |
  | - DNSSEC signatures    |                       |               |
  | - Capabilities         |                       |               |
  |<-----------------------|                       |               |
  |                        |                       |               |
  | 4. TLSA Query for      |                       |               |
  | TargetName.            |                       |               |
  |----------------------->|                       |               |
  |                        |                       |               |
  |                        | 5. Iterative Queries  |               |
  |                        | retrieve TLSA RRset   |               |
  |                        |<--------------------->|               |
  |                        |                       |               |
  | 6. TLSA Response       |                       |               |
  | (validated+cached)     |                       |               |
  |<-----------------------|                       |               |
  |                        |                       |               |
  | 7. Agent validates     |                       |               |
  | certificate            |                       |               |
  |                        |                       |               |
  | 8. Agent-to-agent      |                       |               |
  | communication          |                       |               |
  | Agent retrieves        |                       |               |
  | index via e.g. via     |                       |               |
  | https, a2a, etc.       |                       |               |
  |--------------------------------------------------------------->|
  |                        |                       |               |
  | 9. Agent makes         |                       |               |
  | semantic search        |                       |               |
  | selection based on     |                       |               |
  | index data, caching    |                       |               |
  | agent details e.g.     |                       |               |
  | name, capability, etc. |                       |               |
  |                        |                       |               |
  | 10. Query for target   |                       |               |
  | agent SVCB RRset       |                       |               |
  |----------------------->|                       |               |
  |                        |                       |               |
  |                        | 10. Iterative queries |               |
  |                        | retrieve SVCB RRset   |               |
  |                        |<--------------------->|               |
  |                        |                       |               |
  | 11. Response to agent  |                       |               |
  | as in step 3.          |                       |               |
  |<-----------------------|                       |               |
  |                        |                       |               |
  | 12. Cert. validation   |                       |               |
  | as in steps 3. to 7.   |                       |               |
  |                        |                       |               |
  | 13. Agent communication|                       |               |
  | begins using service   |                       |               |
  | binding parameters     |                       |               |
  |--------------------------------------------------------------->|
  |                        |                       |               |
]]></artwork></artset></figure>

</section>
<section anchor="use-case-known-capability"><name>Known Capability</name>

<t>This section covers the use case where the requestor knows the required capability, but not the organization or agent.</t>

<t>This is a <em>search</em> based process and is out of the scope for DNS-AID. Directory services that aggregate records across organizations could be derived from <xref target="use-case-known-organization"/> by querying <spanx style="verb">_index._agents.{domain}</spanx> and using that data for a search service.</t>

</section>
</section>
<section anchor="TXT-fallback"><name>Use of TXT Records as a Fallback From SVCB Records</name>

<t>TXT records could be used as a fallback for a lack of SVCB record support, likely by authoritative DNS management portals and services, as DNS server software has widespread support for this record type. Instead of using SVCB SvcParamKeys and values these could added to TXT record RDATA. This is not considered desirable as SVCB records are specifically design for service discovery, see <xref target="RFC9460"/>. One notable difference in using TXT records would be the lack of a TargetName that could be different from the domain name, allowing organizations to host services within a different domain, such as a service provider.</t>

</section>
<section anchor="FutureWork"><name>Future Work and Experimental Mechanisms</name>

<t>This section collects mechanisms that have been prototyped against the DNS-AID record set but that are not yet ready for normative specification in this document. Implementations <bcp14>MAY</bcp14> experiment with them; future revisions or separate documents are expected to standardize the ones that prove out. The headings below replace the briefer "Future Work &amp; Unaddressed Portions" section in earlier revisions and consolidate the open questions raised there.</t>

<section anchor="experimental-use-of-bap"><name>Bulk Agent Protocol</name>

<t>The <spanx style="verb">bap</spanx> parameter may be used experimentally to signal which version of agentic protocol to use, e.g. <spanx style="verb">mcp=1.0, a2a=1.1</spanx>. Pending hackathon attempts if it is a useful signal to include for efficient communications or additional noise / RDATA bloat.</t>

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

<t>DNS-AID anticipates that agents and directories will sometimes need to prove that the publisher of an agent record controls the DNS zone in which it is published. The procedure in <xref target="I-D.draft-ietf-dnsop-domain-verification-techniques"/> is one candidate mechanism: the challenger issues a short-lived token that the claimant publishes at <spanx style="verb">_agents-challenge.{domain}</spanx> as TXT, and the challenger reads it back over a DNSSEC-validated path. A binding parameter such as <spanx style="verb">bnd-req=svc:&lt;agent&gt;@&lt;issuer&gt;</spanx> can scope a token to a specific agent leaf and issuer to prevent cross-challenger reuse.</t>

<t>A representative TXT record body and ABNF:</t>

<figure><sourcecode type="abnf"><![CDATA[
challenge   = token-attr 1*(SP attr)
token-attr  = "token=" 1*VCHAR
attr        = domain-attr / bnd-attr / expiry-attr
domain-attr = "domain=" 1*VCHAR
bnd-attr    = "bnd-req=svc:" 1*VCHAR "@" 1*VCHAR
expiry-attr = "expiry=" date-time   ; RFC 3339
]]></sourcecode></figure>

<figure><artwork><![CDATA[
_agents-challenge.acme.example. 60 IN TXT (
    "token=gjdqocfk4vhiq2bn" "domain=acme.example"
    "bnd-req=svc:api@acme.example" "expiry=2026-05-13T23:00:00Z" )
]]></artwork></figure>

<t>Open questions that should be answered before this is made normative: how a verifier scopes the number of records consulted for one verification, how <spanx style="verb">expiry</spanx> semantics interact with DNSSEC validity windows, and whether DCV results should be cached past their <spanx style="verb">expiry</spanx>. Consideration will also need to be given to the risk of this being used as an attack vector.</t>

</section>
<section anchor="svcb-indicating-tlsa-support"><name>SVCB Indicating TLSA Support</name>

<t>An SvcParamKey in the agent SVCB record could be used to indicate TLSA support for the agent. As the SVCB query is the first one queried this might improve efficiency. Although the discovering agent may simply send both an SVCB and TLSA query simultaneously and infer support from the query responses, indicating the presence of a TLSA record would be more deterministic.</t>

</section>
<section anchor="edns0-discovery-hints"><name>EDNS(0) Discovery Hints</name>

<t>A separate experimental mechanism allows a requestor to attach selector and metering hints to a DNS-AID query as an EDNS(0) option <xref target="RFC6891"/>. Substrate selectors (realm, transport, jurisdiction, minimum trust level) can influence the returned RRset and participate in cache keys; metering hints (intent class, freshness budget, parallelism) are advisory and do not fragment caches. A reference implementation and wire format are tracked in <spanx style="verb">dns-aid-core</spanx> (see <spanx style="verb">docs/experimental/edns-signaling.md</spanx> and the accompanying ABNF). No IANA option-code reservation is requested in this revision; the option uses the private-use code range.</t>

</section>
<section anchor="consolidated-registry-and-cross-domain-search"><name>Consolidated Registry and Cross-Domain Search</name>

<t>DNSAID-01 left open how a consolidated registry would operate -- whether it would scrape DNS-AID records published by individual organizations, or require attestation and verification from each publisher. The same question covers cross-domain <em>search</em>, i.e. locating agents whose origin domain the requestor does not know. This document treats both as upper-layer work; see <xref target="I-D.draft-narajala-courtney-ansv2"/> for one complementary proposal.</t>

</section>
<section anchor="operator-and-service-metadata-svcparamkeys"><name>Operator and Service Metadata SvcParamKeys</name>

<t>The <spanx style="verb">policy</spanx> and <spanx style="verb">realm</spanx> SvcParamKeys are reserved for operator-controlled and service-controlled metadata that does not affect basic discovery: multi-tenant scoping, jurisdictional and compliance hints, and commercial signaling such as cost-per-unit-of-input, unit-of-input definitions, billing tiers, or rate-limit hints. The exact syntax of these payloads, the registry policy for any sub-keys that emerge, and the interaction between these parameters and the trust profile described in the Security Considerations section are open questions. Implementations are encouraged to experiment with concrete payloads in the private-use space and to report back so that a future revision can specify a common subset.</t>

</section>
<section anchor="connection-extensions-as-svcparamkeys"><name>Connection Extensions as SvcParamKeys</name>

<t>Using <spanx style="verb">connect-class</spanx> and <spanx style="verb">connect-meta</spanx> provides a mechanism to signal which transport models to use, and with which pieces of metadata. Class may indicate fields like <em>direct</em> <xref target="RFC9460"/> for hostname+port semantics and <em>lattice</em> for integration with a vendor tools and services. Test implementations can use the Private Use parameter range and be moved to registered SvcParamKeys if they have wide spread applicability.</t>

</section>
<section anchor="zero-trust-extension-svcparamkeys"><name>Zero Trust Extension SvcParamKeys</name>

<t>Adding a capability like <spanx style="verb">enroll-uri</spanx> may be relevant for mediated zero-trust overlay connections where a caller/service must first complete enrollment/authentication prior to invocation of any skills. This can be added via an SvcParamKey.</t>

</section>
<section anchor="json-encoded-organization-index"><name>JSON-Encoded Organization Index</name>

<t>The TXT record-based form of <spanx style="verb">_index._agents.{domain}</spanx> may be suitable for small organizations and could be machine-parseable. A JSON-bodied variant, among others, has been discussed for larger inventories where TXT record chunking and multi-record assembly becomes complex and more subject to error. The encoding, signing, and validity-window rules for such a variant are open questions deferred to a future revision. It is anticipated that other standards will address organizational agent registries and the protocols to access them..</t>

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

<t>This section discusses the security properties of DNS-AID itself; the security of the agent protocols in agent-to-agent communication is out of scope. The threat models in <xref target="RFC4033"/> (DNSSEC), <xref target="RFC9460"/>, Section 10 (SVCB), and <xref target="RFC6698"/> (DANE) apply unchanged.</t>

<section anchor="authenticity-integrity-and-trust"><name>Authenticity, Integrity, and Trust</name>

<t>DNS-AID inherits authenticity from DNSSEC: a consumer that follows a validated chain of trust to a signed SVCB and TLSA record set has cryptographic evidence that those records were placed by an entity controlling the zone in which they were signed. DNS-AID does not, and cannot, assert that the agent reached through those records behaves benevolently. Authentic records may point at a malicious or compromised agent, and the capability descriptor referenced by the <spanx style="verb">well-known</spanx> parameter may itself contain instructions hostile to a consumer that interprets it (e.g. prompt-injection attacks against language-model agents). Consumers <bcp14>MUST</bcp14> treat the records published in DNS-AID as a verifiable transport for metadata, not as a trust signal in their own right; trust judgments <bcp14>MUST</bcp14> be made out of band by combining DNS-AID records with reputation, attestation, or organizational policy systems.</t>

<t>The <spanx style="verb">cap-sha256</spanx> SvcParamKey provides integrity for the capability descriptor: a consumer that fetches the descriptor from the URI carried in <spanx style="verb">well-known</spanx> and finds that its SHA-256 digest does not match the value in <spanx style="verb">cap-sha256</spanx> <bcp14>MUST</bcp14> refuse to use it. <spanx style="verb">cap-sha256</spanx> is an integrity check, not a trust signal.</t>

</section>
<section anchor="tls-endpoint-authentication"><name>TLS Endpoint Authentication</name>

<t>DNS-AID consumers <bcp14>SHOULD</bcp14> authenticate the TLS endpoint advertised by an SVCB record using DANE TLSA records <xref target="RFC6698"/> <xref target="RFC7671"/> at the conventional <spanx style="verb">_443._tcp.&lt;owner&gt;</spanx> name. Three operational postures are common:</t>

<dl>
  <dt>permissive (default for general-internet consumers)</dt>
  <dd>
    <t>TLSA is queried; if a matching record is present and matches the presented certificate, the connection is pinned to it. If no TLSA record is present, the consumer falls back to WebPKI validation.</t>
  </dd>
  <dt>preferred</dt>
  <dd>
    <t>As permissive, but the absence of a TLSA record is noted in the consumer's audit log.</t>
  </dd>
  <dt>strict</dt>
  <dd>
    <t>A connection is refused unless a TLSA record is present and matches.</t>
  </dd>
</dl>

<t>This document does not mandate any one posture. Strict-by-default is not appropriate for the general Internet today given current DANE adoption; permissive-with-fallback matches the implementation experience of <xref target="DNS-AID-CORE"/>.</t>

</section>
<section anchor="downgrade-resistance"><name>Downgrade Resistance</name>

<t>A publisher that requires a consumer to honor a particular SvcParamKey <bcp14>SHOULD</bcp14> list that key in the SVCB <spanx style="verb">mandatory=</spanx> parameter per <xref target="RFC9460"/>, Section 8. A consumer that does not implement a key listed in <spanx style="verb">mandatory=</spanx> <bcp14>MUST</bcp14> skip the record. This prevents an attacker on the path from substituting an older subset of parameters without breaking discovery for old consumers.</t>

</section>
<section anchor="dnssec-dependency-and-operational-pitfalls"><name>DNSSEC Dependency and Operational Pitfalls</name>

<t>DNS-AID is deployable without DNSSEC, but the authenticity guarantees it offers depend on a validated path from the root to the zone of interest. Consumers <bcp14>SHOULD</bcp14> validate DNSSEC and <bcp14>SHOULD</bcp14> refuse to act on bogus or unverifiable records. Zone operators <bcp14>SHOULD</bcp14> follow the operational guidance in <xref target="RFC6781"/> and <bcp14>SHOULD</bcp14> avoid signing algorithms or key sizes that resolvers in the target ecosystem are likely to ignore.</t>

<t>The <spanx style="verb">mandatory=</spanx> mechanism and DNSSEC validation interact: an unsigned record substituted in transit may cause a consumer to fall back to a less safe code path. Consumers <bcp14>MUST NOT</bcp14> relax DNSSEC validation requirements based on the apparent absence of <spanx style="verb">mandatory=</spanx> keys.</t>

</section>
<section anchor="threat-model-cross-references"><name>Threat-Model Cross-References</name>

<t>The threat catalogs maintained by the OWASP Multi-Agentic System Threat Modeling work <xref target="OWASP-MAESTRO"/> cover many agent-layer concerns that DNS-AID does not address directly. The substrate-level threats that DNS-AID does address (transport-identity spoofing, capability poisoning, downgrade) map roughly onto MAESTRO threats T47 / T7.1 / T9 (rogue server, agent impersonation), BV-2 (tool-description poisoning), and T7.6 (transport fallback downgrade). DNS-AID does not address workload-level MAESTRO threats; consumers <bcp14>SHOULD</bcp14> treat DNS-AID as one layer in defense in depth.</t>

</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>The names queried during DNS-AID discovery are visible to recursive resolvers and to any on-path observer of unencrypted DNS traffic. Consumers <bcp14>SHOULD</bcp14> use DNS over TLS <xref target="RFC7858"/> or DNS over HTTPS <xref target="RFC8484"/> where available. EDNS Client Subnet <xref target="RFC7871"/> <bcp14>SHOULD NOT</bcp14> be sent on DNS-AID queries that would disclose user-identifying agent names; operators <bcp14>SHOULD</bcp14> set ECS scope to zero where DNS-AID is the only consumer of a zone.</t>

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

<t>This document requests several IANA registrations to support DNS-AID. Final selection of code points, names, and registration policies depends on the outcome of working-group discussion and IESG review. The templates below follow the conventions used by <xref target="RFC9460"/> (SVCB), <xref target="RFC8552"/> (underscored DNS node names), and <xref target="RFC7301"/> (ALPN).</t>

<section anchor="dns-service-parameter-keys"><name>DNS Service Parameter Keys</name>

<t>IANA is requested to register the following entries in the "Service Parameter Keys (SvcParamKeys)" registry established by <xref target="RFC9460"/>, Section 14.3.2. The numeric SvcParamKey values are deferred to IANA assignment; the names below are the strings carried in zonefile presentation form per <xref target="RFC9460"/>, Section 2.1.</t>

<texttable>
      <ttcol align='left'>SvcParamKey</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">cap</spanx></c>
      <c>capability descriptor locator or inline identifier  (e.g., a URN or compact JSON-Ref)</c>
      <c>this document</c>
      <c><spanx style="verb">cap-sha256</spanx></c>
      <c>capability base64url-encoded SHA-256 digest of the canonical capability descriptor</c>
      <c>this document</c>
      <c><spanx style="verb">policy</spanx></c>
      <c>URI of an associated policy bundle</c>
      <c>this document</c>
      <c><spanx style="verb">realm</spanx></c>
      <c>opaque token for multi-tenant scoping or authz realm selection during protocol bootstrapping</c>
      <c>this document</c>
      <c><spanx style="verb">well-known</spanx></c>
      <c>Well-Known Uniform Resource Identifiers <xref target="RFC8615"/> where the .well-known can be assumed, so the value of this key could be <spanx style="verb">agent-card.json</spanx></c>
      <c>this document</c>
      <c><spanx style="verb">bap</spanx></c>
      <c>Bulk agent protocols supported at this endpoint</c>
      <c>this document</c>
</texttable>

<t>For each entry, the change controller is "IETF" and the status is "permanent". The intended registration policy is Standards Action per <xref target="RFC9460"/>, Section 14.3.2. The syntactic format for each value is described inline with the parameter in the Introduction; a separate Customization section may be added in a future revision once values stabilize.</t>

</section>
<section anchor="underscored-dns-node-names"><name>Underscored DNS Node Names</name>

<t>IANA is requested to register the following entries in the "Underscored and Globally Scoped DNS Node Names" registry established by <xref target="RFC8552"/>, Section 4.</t>

<texttable>
      <ttcol align='left'>RR Type</ttcol>
      <ttcol align='left'>_NODE NAME</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>SVCB</c>
      <c><spanx style="verb">_agents</spanx></c>
      <c>this document</c>
      <c>SVCB</c>
      <c><spanx style="verb">_index</spanx></c>
      <c>this document</c>
      <c>TXT</c>
      <c><spanx style="verb">_agents-challenge</spanx></c>
      <c>this document (experimental; see <xref target="DCV"/>)</c>
</texttable>

<t>The <spanx style="verb">_agents-challenge</spanx> registration is requested but tied to an experimental mechanism (see <xref target="DCV"/>); a future revision is expected to confirm or relinquish it.</t>

</section>
<section anchor="application-layer-protocol-negotiation-alpn-protocol-ids"><name>Application-Layer Protocol Negotiation (ALPN) Protocol IDs</name>

<t>If publishers choose to advertise agent protocols directly in the <spanx style="verb">alpn</spanx> SvcParamKey (an option permitted when only one protocol suite is supported), IANA is requested to register the following entries in the "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry per <xref target="RFC7301"/>:</t>

<texttable>
      <ttcol align='left'>Protocol</ttcol>
      <ttcol align='left'>Identification Sequence</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>Model Context Protocol</c>
      <c><spanx style="verb">mcp</spanx></c>
      <c>this Document</c>
      <c>Agent-to-Agent</c>
      <c><spanx style="verb">a2a</spanx></c>
      <c>this Document</c>
</texttable>

<t>The exact spelling of each identifier is to be confirmed with the maintainers of the respective protocols; the entries above are placeholders. ALPN registration policy is Specification Required per <xref target="RFC7301"/>.</t>

</section>
</section>


  </middle>

  <back>


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

    <references title='Normative References' anchor="sec-normative-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="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="RFC9364">
  <front>
    <title>DNS Security Extensions (DNSSEC)</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="February" year="2023"/>
    <abstract>
      <t>This document describes the DNS Security Extensions (commonly called "DNSSEC") that are specified in RFCs 4033, 4034, and 4035, as well as a handful of others. One purpose is to introduce all of the RFCs in one place so that the reader can understand the many aspects of DNSSEC. This document does not update any of those RFCs. A second purpose is to state that using DNSSEC for origin authentication of DNS data is the best current practice. A third purpose is to provide a single reference for other documents that want to refer to DNSSEC.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="237"/>
  <seriesInfo name="RFC" value="9364"/>
  <seriesInfo name="DOI" value="10.17487/RFC9364"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="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="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="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>
<reference anchor="RFC7301">
  <front>
    <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
    <author fullname="S. Friedl" initials="S." surname="Friedl"/>
    <author fullname="A. Popov" initials="A." surname="Popov"/>
    <author fullname="A. Langley" initials="A." surname="Langley"/>
    <author fullname="E. Stephan" initials="E." surname="Stephan"/>
    <date month="July" year="2014"/>
    <abstract>
      <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7301"/>
  <seriesInfo name="DOI" value="10.17487/RFC7301"/>
</reference>



    </references>

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

<reference anchor="DNS-AID-CORE" target="https://github.com/infobloxopen/dns-aid-core">
  <front>
    <title>dns-aid-core: Reference implementation of DNS-AID</title>
    <author >
      <organization>Infoblox, Inc. (contribution to Linux Foundation pending)</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="OWASP-MAESTRO" target="https://genai.owasp.org/resource/multi-agentic-system-threat-modeling-guide-v1-0/">
  <front>
    <title>Multi-Agentic System Threat Modeling Guide v1.0</title>
    <author >
      <organization>OWASP GenAI Security Project</organization>
    </author>
    <date year="2025" month="April"/>
  </front>
</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="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</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="2" month="March" 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-12"/>
   
</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="I-D.draft-narajala-courtney-ansv2">
   <front>
      <title>Agent Name Service v2 (ANS): A Domain-Anchored Trust Layer for Autonomous AI Agent Identity</title>
      <author fullname="Scott Courtney" initials="S." surname="Courtney">
         <organization>GoDaddy</organization>
      </author>
      <author fullname="Vineeth Sai Narajala" initials="V. S." surname="Narajala">
         <organization>OWASP</organization>
      </author>
      <author fullname="Ken Huang" initials="K." surname="Huang">
         <organization>DistributedApps.ai</organization>
      </author>
      <author fullname="Idan Habler" initials="I." surname="Habler">
         <organization>OWASP</organization>
      </author>
      <author fullname="Akram Sheriff" initials="A." surname="Sheriff">
         <organization>Cisco Systems</organization>
      </author>
      <date day="13" month="April" year="2026"/>
      <abstract>
	 <t>   Autonomous AI agents execute transactions across organizational
   boundaries.  No single agent platform provides the trust
   infrastructure they need.  This document defines the Agent Name
   Service (ANS) v2 protocol, which anchors every agent identity to a
   DNS domain name.  A Registration Authority (RA) verifies domain
   ownership via ACME, issues dual certificates (a Server Certificate
   from a public CA and an Identity Certificate from a private CA
   binding a version-specific ANSName), and seals every lifecycle event
   into an append-only Transparency Log aligned with IETF SCITT.  Three
   verification tiers -- Bronze (PKI), Silver (PKI + DANE), and Gold
   (PKI + DANE + Transparency Log) -- let clients choose assurance
   levels appropriate to transaction risk.  The architecture decouples
   identity from discovery: the RA publishes sealed events; independent
   Discovery Services build competitive indexes.  A three-layer trust
   framework separates foundational identity (Layer 1, this protocol),
   operational maturity (Layer 2, third-party attestors), and behavioral
   reputation (Layer 3, real-time scoring).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-narajala-courtney-ansv2-01"/>
   
</reference>
<reference anchor="RFC6781">
  <front>
    <title>DNSSEC Operational Practices, Version 2</title>
    <author fullname="O. Kolkman" initials="O." surname="Kolkman"/>
    <author fullname="W. Mekking" initials="W." surname="Mekking"/>
    <author fullname="R. Gieben" initials="R." surname="Gieben"/>
    <date month="December" year="2012"/>
    <abstract>
      <t>This document describes a set of practices for operating the DNS with security extensions (DNSSEC). The target audience is zone administrators deploying DNSSEC.</t>
      <t>The document discusses operational aspects of using keys and signatures in the DNS. It discusses issues of key generation, key storage, signature generation, key rollover, and related policies.</t>
      <t>This document obsoletes RFC 4641, as it covers more operational ground and gives more up-to-date requirements with respect to key sizes and the DNSSEC operations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6781"/>
  <seriesInfo name="DOI" value="10.17487/RFC6781"/>
</reference>
<reference anchor="RFC7858">
  <front>
    <title>Specification for DNS over Transport Layer Security (TLS)</title>
    <author fullname="Z. Hu" initials="Z." surname="Hu"/>
    <author fullname="L. Zhu" initials="L." surname="Zhu"/>
    <author fullname="J. Heidemann" initials="J." surname="Heidemann"/>
    <author fullname="A. Mankin" initials="A." surname="Mankin"/>
    <author fullname="D. Wessels" initials="D." surname="Wessels"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="May" year="2016"/>
    <abstract>
      <t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS. Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626. In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
      <t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7858"/>
  <seriesInfo name="DOI" value="10.17487/RFC7858"/>
</reference>
<reference anchor="RFC8484">
  <front>
    <title>DNS Queries over HTTPS (DoH)</title>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <author fullname="P. McManus" initials="P." surname="McManus"/>
    <date month="October" year="2018"/>
    <abstract>
      <t>This document defines a protocol for sending DNS queries and getting DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP exchange.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8484"/>
  <seriesInfo name="DOI" value="10.17487/RFC8484"/>
</reference>
<reference anchor="RFC7871">
  <front>
    <title>Client Subnet in DNS Queries</title>
    <author fullname="C. Contavalli" initials="C." surname="Contavalli"/>
    <author fullname="W. van der Gaast" initials="W." surname="van der Gaast"/>
    <author fullname="D. Lawrence" initials="D." surname="Lawrence"/>
    <author fullname="W. Kumari" initials="W." surname="Kumari"/>
    <date month="May" year="2016"/>
    <abstract>
      <t>This document describes an Extension Mechanisms for DNS (EDNS0) option that is in active use to carry information about the network that originated a DNS query and the network for which the subsequent response can be cached. Since it has some known operational and privacy shortcomings, a revision will be worked through the IETF for improvement.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7871"/>
  <seriesInfo name="DOI" value="10.17487/RFC7871"/>
</reference>



    </references>

</references>


<?line 555?>

<section numbered="false" anchor="contributors"><name>Contributors</name>

<t>The authors thank the following people for their substantial input to this document: Scott Courtney (GoDaddy), Ralf Weber (Akamai), and John Zinky (Akamai).</t>

<!-- Pending confirmation before inclusion: Donovan O'Hara (Cisco), Vinny Parla (Cisco), Junjie Bu (Google). -->

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

<t>The authors also would like to thank Connor Snitker (GoDaddy), Chungwei Yen (GoDaddy), Patrick Mevzek (GoDaddy), Jim Gilbert (Akamai), Hema Seshadri (Akamai), Aaron Parecki (Okta), Ihab Shraim (CSC), Vincent DAngelo (CSC), and Nick Sullivan for their feedback and discussion.</t>

<!-- Pending confirmation before inclusion: Eric Osterweil (Verisign), Burt Kaliski (Verisign), Ramakant Pandrangi (Verisign). -->

</section>


  </back>

<!-- ##markdown-source:
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
0RdnsLorNO9PYWosRIu/5v37Lw7AYXNclwAA

-->

</rfc>

