| name | dns-outage-response |
| enabled | true |
| description | Use when performing dns outage response — dNS-specific incident response
playbook covering DNS resolution failures, propagation issues, DNSSEC
validation errors, DNS provider outages, and misconfiguration recovery.
Provides diagnostic commands, TTL-aware recovery timelines, failover
procedures, and DNS health verification steps.
|
| required_connections | [{"prefix":"slack","label":"Slack (for incident coordination)"}] |
| config_fields | [{"key":"affected_domain","label":"Affected Domain","required":true,"placeholder":"e.g., api.example.com, *.example.com"},{"key":"dns_provider","label":"DNS Provider","required":false,"placeholder":"e.g., Route53, Cloudflare, NS1"},{"key":"symptom","label":"Symptom Description","required":true,"placeholder":"e.g., NXDOMAIN for api.example.com, slow DNS resolution"}] |
| features | ["INCIDENT"] |
DNS Outage Response Playbook
Domain: {{ affected_domain }}
Provider: {{ dns_provider }}
Symptom: {{ symptom }}
Why DNS Outages Are Critical
DNS failures are often perceived as "the internet is down" because they affect ALL services behind the domain. DNS issues are also tricky because:
- Changes propagate based on TTL (not instantly)
- Caching at multiple layers makes debugging difficult
- Impact can be regional or resolver-specific
- Recovery takes TTL time even after the fix is applied
Phase 1 — Diagnosis (0-10 min)
Immediate Diagnostic Commands
dig {{ affected_domain }} @8.8.8.8
dig {{ affected_domain }} @1.1.1.1
dig {{ affected_domain }} @9.9.9.9
dig {{ affected_domain }} @208.67.222.222
dig NS {{ affected_domain }}
dig {{ affected_domain }} @<authoritative-ns>
dig {{ affected_domain }} +dnssec +cd
delv {{ affected_domain }}
dig SOA {{ affected_domain }}
dig +trace {{ affected_domain }}
dig A {{ affected_domain }}
dig AAAA {{ affected_domain }}
dig CNAME {{ affected_domain }}
dig MX {{ affected_domain }}
Common DNS Failure Modes
| Symptom | Likely Cause | Verification |
|---|
| NXDOMAIN | Domain/record deleted, zone misconfiguration | Check zone file / DNS dashboard |
| SERVFAIL | DNSSEC validation failure, NS unreachable | dig +dnssec, check NS health |
| Timeout | DNS provider outage, firewall blocking | Check provider status, test from multiple locations |
| Wrong IP | Record changed, DNS hijacking | Compare with expected value, check audit logs |
| Slow resolution | Provider degradation, high TTL stale cache | Time queries, check provider metrics |
| Partial failure | Regional DNS issues, anycast routing | Test from multiple geographic locations |
Provider Status Check
Phase 2 — Containment and Mitigation
If DNS Provider Is Down
If Records Are Misconfigured
If DNSSEC Is Broken
TTL-Aware Recovery Timeline
Current TTL: _____ seconds
Fix applied at: _____
Expected full propagation: _____ (fix time + TTL)
Important: Even after fixing DNS, cached stale records persist until TTL expires. Users with cached bad records will continue to experience issues.
Phase 3 — Verification
Verify Resolution Is Working
for ns in 8.8.8.8 1.1.1.1 9.9.9.9; do
echo "=== Resolver: $ns ==="
dig +short {{ affected_domain }} @$ns
done
dig {{ affected_domain }} +short
Verification Checklist
Phase 4 — Prevention
DNS Resilience Measures
Counter-Rationalizations
| Shortcut | Counter | Why |
|---|
| "We can skip some steps for this case" | Adapt the workflow steps, don't skip them | Skipped steps are where incidents and oversights originate |
| "The user seems to already know what to do" | Complete all workflow phases with the user | The workflow catches blind spots that experience alone misses |
| "This is a minor case, full process is overkill" | Scale the process down, don't turn it off | Minor cases become major when unstructured; the process scales, not disappears |
| "I'll fill in the details later" | Complete each section before moving on | Deferred details are forgotten; real-time capture is more accurate |
| "The template output isn't necessary" | Always produce the structured output format | Structured output enables comparison, audit trails, and handoff to other teams |