Enterprise Playbook

Roll out DNS-AID across the enterprise.

A playbook for the platform architects and engineering leads who have to greenlight the work. It splits internal and external agents, slots under the gateways and frameworks your teams already run, and treats policy as six layers that have to agree.

Who this is for

Two readers in one document. Use the table of contents on the right to jump to whichever track matches your job today.

Evaluating

Engineering lead scoping cost and risk

You're asking whether DNS-AID is worth the effort, who needs to be involved, and what could go wrong. Skim the architecture in §5–7 if you want; the budget, governance, and risk content is what you came for.

Read § 3 · 4 · 8 · 10 · 11 · 12
Architecting

Platform / DNS architect designing the rollout

You're going to draw the zone topology, pick the identity story, and integrate with the mesh and gateway you already operate. Phases and RACI matter; depth is here.

Read § 5 · 6 · 7 · 9

Prerequisites

Honest preconditions. If you don't have one of these, the alternative line tells you the smaller starting point.

Authoritative DNS for the target zones

Existing BIND, PowerDNS, Knot, Infoblox NIOS, Route 53, Azure DNS, or Cloud DNS is fine. DNS-AID is a publishing convention on top of standard records. No new server software to install.

If teams currently publish endpoints via a homegrown registry or pinned Slack messages, see §12 for the shadow-publish migration pattern.

DNSSEC on those zones

Most managed DNS providers enable DNSSEC with a few clicks. For self-run BIND or PowerDNS it's a 1–3 day exercise. Treat it as a small prerequisite, not a multi-month project.

If a specific internal zone genuinely cannot be DNSSEC-signed (legacy resolver, regulatory carve-out), substitute TSIG plus network segmentation plus application-layer mTLS as the trust anchor. See the DNSSEC chapter in Learn More.

An enterprise IdP

An OAuth2/OIDC issuer of some kind: Okta, Microsoft Entra ID, Auth0, Ping, or Keycloak. For service-to-service traffic, also a workload identity layer (SPIFFE/SPIRE, AWS IRSA, Azure Workload Identity, GCP Workload Identity Federation).

If you do not yet have an org IdP, start with one Keycloak instance for the pilot. Don't pilot without any identity — there's nothing useful to enforce against.

A merge-gated DNS change process

Pull-request-based zone updates with CI hooks. The whole guide assumes a publish change is reviewable, lintable, and revertable like any other code change.

If DNS changes are still email-to-NetOps tickets, your §10 phase order has to flex. The platform team owns getting to PR-based zones before agent teams can self-serve.

The 30-day shape of a rollout

Three phases. Each one has a scope, exit criteria, and a Looking Glass check before you move on.

Phase 1

Pilot

Weeks 1–2

One team, one agent, internal zone only. One framework integration wired up. LangChain middleware is the easiest first pick.

  • Exit: agent discoverable via dns-aid.org/looking-glass
  • Exit: one caller integrates end-to-end
  • Owner: app team + platform engineer
Phase 2

Canary

Weeks 3–6

3–5 agents across 2 teams. Policy URIs wired at all six §6 enforcement points. IdP integration live. CI lint blocks bad publishes.

  • Exit: agent deprecation exercised end-to-end
  • Exit: policy update propagates within one TTL
  • Owner: platform team + security
Phase 3

Production

Week 7+

Platform team owns the parent zone; teams self-serve via delegated sub-zones. SLOs from §9.4 in place. SIEM and drift detection live. Threat model from §11 signed off.

  • Exit: org-wide capability vocabulary published
  • Exit: partner onboarding playbook tested (§8.6)
  • Owner: platform team + AI governance

Architecture

Three parts: zones, identity, and what runs on top.

5a. Zone architecture & split-horizon

The first decision: one shared _agents zone, per-team delegations, or per-environment? The recommended pattern is split-horizon delegation: a parent zone owned by the platform team, with per-team and per-environment sub-zones delegated via NS records. Internal resolvers see internal zones (corp.acme); external partners see only the public zone (acme.com). Internal agents never resolve externally.

Naming convention: _<agent>._<protocol>._agents.<env>.<scope>.<domain>. For example:

  • _orders._a2a._agents.prod.corp.acme — internal production A2A agent
  • _support._mcp._agents.prod.acme.com — external production MCP agent
  • _search._a2a._agents.dev.team-discovery.corp.acme — team-delegated dev agent

Multi-cloud and hybrid topology

DNS-AID fits multi-cloud naturally, because DNS already crosses cloud boundaries by design. The pattern: each cloud publishes its own sub-zone on the cloud's native DNS service. _agents.aws.corp.acme on Route 53, _agents.azure.corp.acme on Azure DNS, _agents.gcp.corp.acme on Cloud DNS, _agents.dc1.corp.acme on Infoblox or BIND on-prem. The parent zone, owned by the platform team, delegates to each sub-zone via NS records.

Cloud-to-cloud trust is then native. An agent in AWS resolves an agent in Azure through normal DNS recursion, and the DNSSEC chain validates across the cloud boundary. No per-cloud registry federation, no shared control plane, no synchronization job. This is where DNS-AID quietly wins over a central registry. A multi-cloud, hybrid, or post-M&A federated estate can establish trust between agent fleets just by signing zones. There's no registry to negotiate access to, and no plumbing to maintain between clouds.

Decision

Flat zone vs. per-team delegation vs. per-cloud sub-zones

Default

Platform team owns _agents.corp.acme; delegates per cloud (aws, azure, gcp, dc1) and per team within each. Three to four levels of delegation, never more.

When to deviate

Single-cloud orgs with fewer than five teams: a single flat zone is fine. Heavily regulated orgs may want a separate parent zone per BU rather than a single parent.

5b. Identity & auth

DNS-AID publishes where an agent lives and what it claims to do. The agent itself enforces who can call it, with the gateway in front doing the same check. Identity is the load-bearing architectural decision in any rollout.

Human-to-agent vs. agent-to-agent

These are distinct identity flows. Human-to-agent uses interactive OIDC with PKCE, MFA, and conditional access. Agent-to-agent is M2M: short-lived tokens, no interactive consent, audience-bound to the called agent's realm. Mixing the two flows is the most common identity-design mistake in agent rollouts. Decide which one your IdP token represents and bind enforcement to it.

Workload identity is the foundation for M2M

SPIFFE/SPIRE is the mesh-native, vendor-neutral standard. The cloud-native equivalents (AWS IAM Roles for Service Accounts on EKS, Azure Workload Identity on AKS, GCP Workload Identity Federation) are the right starting points if you live entirely in one cloud. Either way the agent's runtime identity becomes the SPIFFE ID or cloud-IAM principal, and the IdP issues short-lived tokens bound to that identity. No long-lived secrets in code or config.

Realm parameter as audience scope

The realm SvcParamKey in the SVCB record (e.g. realm="prod") is the audience scope the agent will accept tokens for. Tokens issued for one realm must not be replayable against another. Treat realm as the token aud claim and validate it at the gateway and at the agent.

DANE/TLSA cert pinning

Where DNSSEC is in place, DANE/TLSA binds the agent's TLS certificate to DNS. That gives you cheap cert pinning with no separate PKI to operate. Where DNSSEC isn't available, fall back to a private CA plus SPIFFE X.509 SVIDs.

IdP outage behavior

What happens when Okta or Entra is down? Decide per-agent. Fail-closed is the default: the gateway returns 503 to callers when token validation can't complete. Fail-open with a tightly-scoped token cache may be acceptable for low-risk, high-availability agents. agentgateway exposes this as an ext_authz policy choice; make it deliberate, not accidental.

Token caching and revocation

Short token TTL (5–15 minutes), plus a revocation list propagated to the gateway. Don't let the SDK cache tokens past their TTL "for performance"; that turns a revocation event into a multi-hour incident.

Decision

SPIFFE-everywhere vs. cloud-native workload identity per cloud

Default

Single-cloud, single-mesh org: use the cloud's native workload identity (IRSA, AWI, GCP WIF). Less moving parts, deep platform integration, no extra control plane.

When to deviate

Multi-cloud or hybrid: SPIFFE/SPIRE gives you a single SVID format across clouds and on-prem. Worth the operational complexity when agents cross cloud boundaries.

5c. Upstream services that build on DNS-AID

If DNS-AID is the discovery substrate, what runs on top of it in your stack? Four categories.

A · Frameworks

Agent framework integrations

Pre-built middleware and tools so application teams don't write DNS code. The DNS-AID project ships integrations for the major frameworks:

  • langchain-dns-aid — middleware with before_agent auto-publish and after_agent auto-unpublish (prevents stale records).
  • crewai-dns-aid + crewai-mcp-bridge — tools for CrewAI agents to discover each other.
  • autogen-ext-dns-aid, google-adk-dns-aid, haystack-dns-aid, llama-index-tools-dns-aid, mastra-dns-aid, openai-agents-dns-aid, semantic-kernel-dns-aid, agno-dns-aid, and a DSPy example.
Enterprise angle: standardize one middleware per framework. Bake auto_publish=True and the team's policy URI into the org's golden Python / TypeScript template.
B · Naming / PKI overlay

OWASP Agent Name Service (ANS)

ANS is a DNS-inspired registry from the OWASP GenAI Security Project that layers structured naming (protocol://capability.provider.v<version>), PKI identity, ZKP capability validation, and protocol adapters on top of a discovery substrate. DNS-AID is the natural transport: ANS names resolve to DNS-AID SVCB records, and ANS PKI bindings sit alongside DANE/TLSA.

When ANS becomes a hard requirement:

  • A security audit cites OWASP GenAI controls and you need direct mapping evidence.
  • Multiple protocol adapters across the enterprise (MCP + A2A + ACP) under one naming scheme.
  • Partner federation where PKI identity beyond DNSSEC/DANE is contractually required.
Coexistence: DNS-AID is the resolution substrate, and ANS resolvers sit in front for clients that need richer naming. Adding ANS later doesn't require re-publishing zones; migration is non-destructive.
C · Gateways & mesh

Runtime brokers and proxies

The obvious fit: agentgateway (Linux Foundation project, originated at Solo.io; contributors include Microsoft, AWS, Cisco, Adobe, Huawei, and Apple). It's an AI-native proxy for MCP, A2A, and LLM traffic with session-aware routing, tool federation, OAuth, and observability. Instead of static MCP/A2A target lists in its config, agentgateway resolves _<agent>._<mcp|a2a>._agents.<env>.<domain> and routes dynamically.

agentgateway and your existing mesh coexist; they don't compete. Most enterprises run Istio or Linkerd for L4/L7 service traffic. The real architectural question is where the boundary sits. Two patterns:

  • Mesh-in-front: Istio terminates at the agentgateway pod. Mesh handles mTLS and observability for cluster-internal traffic; agentgateway handles MCP/A2A session semantics and policy from there. Best for internal-agent traffic.
  • Gateway-in-front: agentgateway terminates external MCP/A2A and forwards to mesh-resident agents. Best for partner-facing edge.
Don't pick agentgateway or the mesh. Pick where to draw the line. Sidecar policy enforcers (OPA, Cedar) wire into agentgateway via ext_authz.
D · Catalogs & observability

Inventory, SIEM, drift

  • Internal developer portals (Backstage, Cortex, Port) populated by walking the org's _agents zone. No manual catalog maintenance; the zone walk produces an authoritative, current inventory. See §8.5 — this is your AI-BoM.
  • SIEM (Splunk, Panther, Sentinel) subscribed to zone-change events. Alerts on unauthorized publishes, policy-URI removal, capability scope creep.
  • Drift detectors compare current policy URI contents against an approved baseline; alert on out-of-band edits.
Enterprise angle: the zone walk is the single source of truth. Don't build a parallel agent registry that will go stale.

Policy enforcement — six layers of defense in depth

Policy is not a single hook. It is six layers, advertised at publish time and enforced at every checkpoint between the caller's keyboard and the agent's RPC handler. Where the layers disagree, the most restrictive wins. The risk this guide is built to prevent is what happens when they disagree silently: policy drift.

1

Publish-time

Declarative policy= URI in SVCB.

Advertise
2

CI lint

Block bad publishes before merge.

Fail-closed
3

Caller SDK

Local enforcement before the call leaves the host.

Fail-closed
4

Server-side

Target agent enforces regardless of caller.

Fail-closed
5

Network / gateway

agentgateway / mesh / sidecar.

Fail-closed
6

Observability

Telemetry + SIEM drift alerts.

Detect

6.1 Publish-time / declarative

The publishing team encodes policy=https://... and realm=... in the SVCB record. This is an advertisement, not enforcement. It tells the world what the agent expects and gives every later layer a single URL to fetch.

6.2 CI / pre-publish lint

A CI job blocks the DNS PR if: the policy= URI is missing, the URI isn't reachable, the schema is invalid, or the capability isn't in the approved vocabulary. Looking Glass is the verification gate at this layer.

6.3 Caller-side SDK

Before any HTTP or MCP call, the SDK fetches the policy doc and enforces locally, raising PolicyViolationError before bytes leave the host. See the existing pattern in Learn More. Stops bad calls cheaply.

6.4 Target-agent / server-side

The target agent enforces auth, scope, and rate limits regardless of what the caller did. Treats the published policy as a promise, not a guarantee. Last line of defense against malicious or buggy callers.

6.5 Network / sidecar / gateway

agentgateway for MCP/A2A, Envoy + OPA, service mesh, or API gateway enforce independent of agent code. Defense-in-depth so a CVE in one agent's SDK doesn't burn the whole org. See §5c for the broader stack picture.

6.6 Observability & continuous control

Telemetry on policy decisions: allow/deny counts, fetch errors, schema-version mismatches. SIEM alerts on drift between what's advertised in DNS and what's enforced downstream.

Why all six must align

The failure mode is policy drift

The published URI says one thing, the server enforces another, the gateway a third. The mitigation is structural: one policy document per agent, fetched (with TTL) by every enforcement layer. Don't let teams hand-translate the same rules into Rego, into the SDK, and into agentgateway config. See §7's CEL-to-OPA lowering pattern.

Integration points by enforcement layer

For each of the six layers, the systems you can plug in. Everything listed is something you can install today.

Layer Open-source / standards Commercial / managed
§6.1 Publish-time BIND9, PowerDNS, Knot DNS with SVCB support; the dns-aid-integrations framework middleware Infoblox NIOS, NS1, Akamai Edge DNS, Route 53 (TXT fallback for private SvcParamKeys), Azure DNS, Cloud DNS
§6.2 CI lint OPA conftest against policy bundle schema, dns-aid verify, GitHub Actions / GitLab CI, manual Looking Glass gate Drata, Vanta, Secureframe for auto-evidence collection on every approved publish
§6.3 Caller SDK CEL (DNS-AID policy bundle), dns-aid SDK, per-framework middleware, SPIFFE/SPIRE SVID for caller identity Okta FGA, Auth0 FGA, Permit.io for fine-grained authorization layered on the SDK
§6.4 Server-side OPA / Rego, Cedar, OPAL bundle distribution, AuthZed / SpiceDB for ReBAC, FastAPI / Express middlewares, SPIFFE SVIDs AWS Verified Permissions (Cedar managed), Microsoft Entra ID + Conditional Access, Auth0 RBAC
§6.5 Gateway / mesh agentgateway, Envoy ext_authz → OPA, Istio AuthorizationPolicy, Linkerd ServerAuthorization, Kong + OPA Solo.io Gloo (commercial agentgateway), AWS App Mesh, Tetrate Service Bridge, Kong Konnect, Cloudflare Access
§6.6 Observability / SIEM OpenTelemetry policy-decision spans, Falco, Prometheus alertmanager, Loki Splunk, Panther, Microsoft Sentinel, Datadog Cloud SIEM, Chronicle

Four patterns worth lifting wholesale

CEL → OPA lowering

The DNS-AID policy bundle's CEL rules can be transpiled to Rego, so the same policy document drives §6.3 (caller SDK) and §6.4/§6.5 (OPA-based server or gateway enforcement). Eliminates the worst form of drift: divergent rule languages saying almost-but-not-quite-the-same thing.

agentgateway + ext_authz + OPA chain

Reference architecture for §6.5: agentgateway terminates MCP/A2A, calls ext_authz against OPA, which evaluates the policy bundle fetched (with TTL) from the policy= URI in DNS. One bundle, two enforcement points, no extra config plane.

Internal policy registry pattern

The policy= URI should point into the org's central policy catalog (typically Backstage TechDocs or a homegrown portal) instead of being a one-off URL per agent. Security gets one place to audit and version policies, and §6.2 CI lint validates that the URI matches the registry's approved list.

DLP / PII scrubbing as a §6.5 plugin

For agents that handle regulated data, slot Microsoft Purview, AWS Macie, or Nightfall into the agentgateway pipeline as a payload-transform step. Policy as transform, not as binary allow/deny.

Governance & compliance

Who owns what, who approves what, and how the audit trail maps to the regulations your auditors actually ask about.

8.1 Ownership model

The platform / DNS team owns the parent _agents zone and the policy framework. Security owns the approved capability vocabulary and the IdP integration. Application teams own their delegated sub-zone and their per-agent policy URIs.

Decision

Federated vs. central governance

Default (central)

One CISO-owned framework, one capability vocabulary, one policy registry. Works for orgs up to a few hundred agents.

When to deviate (federated)

Multi-BU enterprises or post-M&A integrations: each BU owns its capability vocabulary and policy registry; the parent zone enforces shared minimums.

8.2 Onboarding & approval flow

A new agent published in a delegated zone passes through:

  1. Capability declared from the approved vocabulary.
  2. Policy URI present, CI-validated, and pointing into the org's internal policy registry — not a one-off URL.
  3. Security review for cross-team callability.
  4. Looking Glass shows green at dns-aid.org/looking-glass.

Same flow for new capabilities entering the shared vocabulary, gated by an architecture review.

8.3 Change management & versioning

Policy URIs are versioned (/policy/orders/v3.json); the SVCB record advertises the current version; TTLs are tuned so policy changes propagate within a known window; rollback is "revert the URI in the SVCB record." Same discipline for capability vocabularies.

8.4 Compliance mapping

This is a starting map for architects, not a sign-off. Consult your CISO and DPO for jurisdiction-specific evidence requirements. The DNS-AID artifacts below give compliance teams something concrete to point at.

Regulation DNS-AID artifact / control Evidence owner
SOC 2 CC6 Logical accessCaller SDK + server-side enforcement; IdP token auditSecurity
ISO 27001 A.9 Access controlSame as SOC 2; capability vocabulary review trailSecurity
GDPR Art. 30 Records of processingPer-agent policy URI documents data flows + lawful basisDPO
GDPR Art. 17 Right to erasureAgent decommissioning trail (§8.7) + SIEM retentionDPO
EU AI Act Annex IV Tech documentationDNS-AID zone walk = AI-BoM (§8.5); capability= taxonomy maps to risk classificationAI governance / Legal
EU AI Act Art. 12 Logging§6.6 policy-decision telemetry, retained per Art. 19Security + AI gov
NIST AI RMF Map-1.5 InventoryDNS-AID zone walk = live system inventoryAI governance
NIST AI RMF Govern-1.6 Roles§8.1 ownership + §10 RACIAI governance
HIPAA §164.312 Access controls§6.3 + §6.4 + §6.5; DANE/TLSA for transportCompliance
PCI DSS 7 Access by need-to-knowRealm scoping + caller SDK enforcementCompliance

8.5 The DNS-AID zone as your AI Bill of Materials

Walk the org's _agents zone and you get a live inventory of every AI agent in operation: what it does (capability), where it runs (endpoint), what protocol (alpn), who governs it (policy URI), what realm it serves. This is the AI-BoM that EU AI Act Annex IV technical documentation and NIST AI RMF Map-1.5 ask for.

Rather than maintain a parallel spreadsheet that goes stale the day after it's filed, point compliance audit at the live zone walk. The zone is signed, versioned, and timestamped; it cannot diverge from reality the way an audit spreadsheet does.

Decision

Live zone walk vs. snapshotted evidence

Default

Snapshot the zone walk into versioned compliance evidence on a fixed schedule, quarterly at minimum. Auditors get a frozen artifact; the zone keeps moving.

When to deviate

Continuous-audit shops (FedRAMP, banking) want the live zone as the artifact, with SIEM-retained change events as the audit trail.

8.6 Cross-organization governance & partner onboarding

Federation across organizations is the hardest governance problem in agent ecosystems. DNS-AID's substrate makes it tractable; the contract work still has to happen. Onboarding sequence:

  1. Trust anchor exchange. Partner shares their DNSSEC DS record (or zone trust anchor); your resolver chain validates them. If both orgs have public domains with DNSSEC, the public DNS root handles this implicitly.
  2. Identity binding. DANE/TLSA pinning of partner agent certs in the partner zone; optional ANS PKI binding if both sides run ANS overlays. Document which certificate authorities each side accepts.
  3. Capability vocabulary alignment. Agree on which capabilities cross the boundary. Best practice: a small shared subset, not the union of both vocabularies.
  4. Policy contract. Out-of-band signed agreement (DPA, MSA addendum) referencing the specific policy URIs both sides advertise. Pin the URI versions in the contract.
  5. Realm mapping. Decide which realms each side will issue and accept tokens for. Typically partners get a dedicated realm (realm="partner-acme") so blast radius is bounded.
  6. Revocation procedure. Documented break-glass: zone owner unpublishes, callers see NXDOMAIN within TTL. Partner notification SLA. Joint tabletop exercise before going live.
  7. Joint observability. Agreement on what telemetry crosses the boundary (typically: nothing payload, only allow/deny counts and aggregated latency).

This is one of the genuinely open areas of agent federation; the §11 threat model calls out residual risks. The level of detail above is what architects need to hand to legal. Anything thinner gets bounced from the contract review.

8.7 Decommissioning & audit trail

An agent's full lifecycle (publish, version bumps, deprecation, unpublish) leaves a DNS-zone audit trail; SIEM retains it. Stale-record hunters run weekly via a Looking Glass diff. Required for GDPR Art. 17 and SOC 2 CC6.7.

Operations

Publishing mechanics, scale, verification, and the SLOs you can copy into your runbook.

9.1 Publishing

The DNS provider question: Route 53 and Cloudflare reject private SvcParamKeys today, so DNS-AID's richer metadata can't ride in their SVCB records. Recommendation: Infoblox NIOS, BIND9, PowerDNS, or NS1 for internal zones where you want full SVCB expressiveness; _agentmeta TXT-record fallback for external public zones hosted on providers that don't yet accept the private keys. The fallback pattern is documented in Learn More.

9.2 Scale and resilience

DNS has been the internet's lookup system for forty years. It is distributed by design, decentralized by design, and has had every conceivable failure mode shaken out of it. Caching at the resolver, OS, and SDK layers means a hot lookup is typically sub-millisecond. There is no central control plane to bottleneck on, no synchronization job to fall behind.

Recommended TTLs: 300 seconds for capability and policy SVCB records (fast change), 3600 seconds for stable endpoint records. The agentgateway-to-DNS dependency is no more concerning than any service's dependency on DNS. Which is to say, not concerning. This is one of the rare places in the agent stack where the boring, well-understood substrate happens to be the right answer.

9.3 Verification with Looking Glass

Verify with the existing Looking Glass page at dns-aid.org/looking-glass. At each rollout phase, run the target domain through Looking Glass and confirm: agent record discovered, DNSSEC valid, DANE/TLSA valid where used, policy URI reachable, no WARN or ERROR findings.

There's no programmatic CI integration for Looking Glass today. Verification is a human checkpoint on a published URL. Teams that want CI-grade automation should pair manual Looking Glass spot-checks with dig or delv scripts and the dns-aid verify CLI run from CI.

9.4 Example SLOs

Starting targets architects can adopt or adjust. Calibrate against your own resolver and gateway baseline.

SLO Target Measured how
DNS-AID resolution P99 latency< 50 ms warm, < 200 ms coldOTel span on SDK resolve call
Policy URI fetch availability99.9% monthlySynthetic probe from gateway
Policy URI fetch P99 latency< 250 msOTel span on policy fetch
agentgateway authorization decision P99< 20 msOTel span on ext_authz
Time from policy URI change to enforcement< 2× TTL (typically < 10 min)Drift-detector dashboard
Stale-agent detection latency< 7 daysWeekly Looking Glass diff
DNSSEC validation success rate> 99.99%Resolver telemetry

Phased rollout & RACI

Phase detail expands §4. Each phase has prerequisites (from §3), scope, exit criteria, and rollback. The RACI then sets ownership across the lifecycle.

10.1 Phase detail

Pilot — weeks 1–2

Prerequisites: §3.1–3.4 met for one team. Scope: one agent, internal zone only, one framework middleware wired up. Exit: agent discoverable via Looking Glass; one caller integrates end-to-end. Rollback: remove the SVCB record; revert framework middleware to no-op.

Canary — weeks 3–6

Prerequisites: pilot exit met; capability vocabulary v0.1 published; CI lint deployed. Scope: 3–5 agents across 2 teams; policy URIs wired at all six §6 layers; IdP integration live for caller SDK and target agents; agentgateway deployed for inter-team calls. Exit: deprecation exercise (publish v2 of an agent, drain v1, unpublish); policy update propagation verified within one TTL. Rollback: mesh routes bypass agentgateway; SDK falls back to discovery-only mode without enforcement.

Production — week 7+

Prerequisites: canary exit met; threat model (§11) reviewed and signed off; SLOs (§9.4) instrumented. Scope: platform team owns parent zone; teams self-serve via delegated sub-zones; SIEM and drift detection live; AI-BoM snapshotting on schedule (§8.5). Exit: partner onboarding playbook (§8.6) tested in tabletop; quarterly AI-BoM snapshot delivered. Rollback: per-team, not org-wide. Freeze new publishes in the affected sub-zone, fall back to canary-phase agentgateway routing.

10.2 RACI

R = Responsible (does the work) · A = Accountable (owns the outcome) · C = Consulted · I = Informed.

Activity Platform / DNS Security App teams SRE / ops AI governance
Zone delegationR / ACIII
DNSSEC enablementR / ACIII
Agent publishingCIR / AII
Policy authoringICR / AIC
Policy URI lint (CI)RACII
Capability vocabularyCR / ACIC
agentgateway / mesh integrationRCIAI
IdP & workload identityCR / AICI
Monitoring & drift detectionCCIR / AI
Threat-model reviewCR / ACCC
Partner onboarding (§8.6)RACCC
Incident responseRACRI
DecommissioningRCAII
AI-BoM snapshottingRCIIA

Threat model

A signpost threat model, not an exhaustive one. Run a full STRIDE or LINDDUN exercise during the canary phase with Security and AI Governance. The table below covers the threats this guide is designed to mitigate, and what residual risk remains.

Threat Mitigation layer Residual risk
Spoofed agent identity — rogue agent publishes under your zone DNSSEC chain + DANE/TLSA + §6.4 server-side IdP check Compromised zone-signing key — mitigated by §3 prerequisite hygiene
Zone / registry poisoning on upstream resolver DNSSEC validation at SDK and gateway Resolver bypass via injected static config — caught by §6.2 lint
Policy bypass via direct connection (caller skips the gateway) §6.4 server-side enforcement; network policy restricting direct ingress Insider with cluster access — mitigated by mesh + audit
Stale-record exploitation — deprecated agent still resolvable §8.7 decommissioning + Looking Glass diff Window between unpublish and TTL expiry
Supply-chain attack via framework middleware (poisoned langchain-dns-aid) Pinned package versions + SBOM scan + §6.2 lint Zero-day in upstream package; defense via §6.4 + §6.5
Cross-tenant leak in shared zone Per-team delegation (§5a); realm scoping (§5b) Misconfigured delegation — caught by §6.2 lint
Downgrade attack — DNSSEC-validated → opportunistic Strict-validation mode at SDK and gateway Resolver misconfig in transit network
Partner-org trust compromise §8.6 revocation procedure; TTL bounds blast radius Partner zone-key compromise undetected until §6.6 telemetry catches anomaly

Cost & migration

Directional budget input plus the playbook for moving off an existing service registry.

12.1 Cost — directional estimates

Commercial pricing varies by negotiation; these are open-source-leaning ballparks for budget input. The DNS-AID protocol itself is free.

Cost line Open-source path Commercial / managed path
Authoritative DNS$0 (existing BIND / PowerDNS)$0.50/zone/mo + ~$0.40 per million queries (Route 53 ballpark); Infoblox NIOS is capacity-based at six figures annually at enterprise scale
DNSSEC$0 (operational time)Bundled with most managed DNS
Workload identity$0 (SPIFFE/SPIRE, cloud-native IRSA / Azure WI / GCP WIF)Bundled with IdP
IdP$0 (Keycloak self-hosted)Per-user (Okta, Entra ID, Auth0) — almost always already a sunk enterprise cost
agentgateway$0 (OSS, Linux Foundation)Solo Gloo commercial support — quote-based
Policy engine$0 (OPA + OPAL + Cedar)AWS Verified Permissions per-request pricing
SIEM ingestVaries (Loki cheap; volume drives cost)Splunk / Sentinel — typically largest line item; budget per-GB ingest
Catalog / portal$0 (Backstage)Cortex, Port subscription
DNS-AID protocol$0$0

Headcount is usually the dominant cost. Estimate 0.5 FTE platform engineer ongoing for zone + policy registry + drift monitoring, plus 0.25 FTE Security for capability vocabulary + audit. The pilot phase fits inside existing platform-team capacity at most enterprises.

12.2 Migration & coexistence

Greenfield is rare. Most enterprises start with some mix of hand-rolled service registries, MCP server URLs pinned in a Slack channel, and hardcoded endpoints in agent config. The shadow-publish migration pattern moves teams off the legacy without breakage.

  1. Inventory. Catalog current agent endpoints (often spread across Slack, Confluence, hardcoded configs, internal portals). Bonus: this inventory exercise alone usually surfaces stale agents nobody remembered.
  2. Shadow-publish. Publish DNS-AID records in parallel with the existing registry. Same endpoints, dual source of truth, no consumers switched yet.
  3. Dual-resolve in the SDK. Update SDK or framework middleware to resolve from both sources, preferring DNS-AID, falling back to legacy. Log mismatches.
  4. Cutover per team. Once a team's agents are shadow-published and validated via Looking Glass, switch their callers to DNS-AID-only. Telemetry should show zero fallback hits before declaring the team done.
  5. Deprecate legacy. Freeze new entries to the old registry; set a sunset date; remove read paths once SLOs hold for one quarter.
  6. Decommission. Old registry goes read-only, then offline. SIEM retains its records per audit policy.
Decision

Big-bang vs. team-by-team cutover

Default

Team-by-team. Lower risk, fits in existing release trains, makes mismatch hunting tractable. Recommended for all but the smallest orgs.

When to deviate

Very small orgs (<10 agents) with a single platform team can big-bang in a maintenance window. Don't try this at scale.

Verification checklist & next steps

A short list to keep on the wall, and where to read next.

Verification checklist

  • Target zones are DNSSEC-signed; resolver chain validates from root.
  • Authoritative DNS supports private SvcParamKeys, or the _agentmeta TXT fallback is in place.
  • Enterprise IdP issues short-lived tokens audience-bound to the agent's realm.
  • Workload identity (SPIFFE or cloud-native) is the foundation for M2M tokens.
  • Policy URI is reachable, schema-valid, and points into the internal policy registry.
  • CI lint blocks bad publishes before merge.
  • agentgateway or mesh enforces independent of agent SDK; ext_authz chain wired to the policy bundle.
  • SIEM subscribed to zone-change events; drift detector running against approved baselines.
  • Looking Glass green at dns-aid.org/looking-glass for every published agent.
  • Threat model reviewed; partner onboarding playbook tested in tabletop.

Next steps

Run a pilot in two weeks.

One team, one agent, internal zone. The rest of the rollout reads from the same playbook.