DNS Deep Knowledge
Review Checklist
- SPF record exists and is valid (one record, <10 lookups)
- DKIM configured for all sending services
- DMARC policy set (at least
p=nonefor monitoring) - MX records point to correct mail provider
- TTL appropriate (3600 stable, 60-300 during changes)
- No conflicting CNAME records
- CAA record restricts certificate issuance
Record Types
| Type | Maps | Example | Notes |
|---|---|---|---|
| A | domain → IPv4 | 76.76.21.21 |
Vercel's IP |
| AAAA | domain → IPv6 | ||
| CNAME | domain → domain | cname.vercel-dns.com |
Can't coexist with other types on same name |
| MX | domain → mail server | 10 mx1.google.com |
Priority + hostname |
| TXT | domain → text | SPF, DKIM, DMARC, verification | |
| NS | domain → nameserver | ns1.cloudflare.com |
|
| CAA | domain → allowed CAs | 0 issue "letsencrypt.org" |
Email DNS (Critical for OUTBOUND)
SPF
v=spf1 include:_spf.google.com include:sendgrid.net -all
- Authorizes which servers can send for your domain
- ONE SPF record per domain (multiple = both fail)
-all(hard fail) in production,~all(soft fail) during testing- Max 10 DNS lookups — each
include:costs 1-2 - Exceeding 10 lookups = SPF broken silently
DKIM
selector._domainkey.yourdomain.com TXT "v=DKIM1; k=rsa; p=<public_key>"
- Cryptographic signature proving email wasn't modified
- 2048-bit minimum key
- Rotate every 6-12 months
- Generated by email provider
DMARC
_dmarc.yourdomain.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com"
p=none→ monitor only (start here)p=quarantine→ spam folderp=reject→ block entirely (goal)rua→ aggregate reports destination
DNS for Vercel
Root domain: A → 76.76.21.21
www subdomain: CNAME → cname.vercel-dns.com
api subdomain: CNAME → cname.vercel-dns.com
SSL auto-provisioned by Vercel via Let's Encrypt.
Cold Email Domains (OUTBOUND)
- Separate from web/transactional domains
- Each needs: A, MX, SPF, DKIM, DMARC, tracking CNAME
- 301 redirect all outbound domains to primary domain
- If blacklisted, doesn't affect password resets or web
TTL Strategy
| Situation | TTL | Why |
|---|---|---|
| Stable records | 3600 (1h) | Reduce DNS queries |
| Before DNS change | 60 (1min) | Fast propagation |
| After change verified | 3600 | Back to normal |
| MX records | 3600 | Stability for email |
| DKIM/SPF | 3600 | Rarely changes |
Sources
- Cloudflare DNS documentation
- Google Workspace MX setup guide
- DMARC.org specification
- Vercel custom domains documentation
Changelog
- 2026-03-21: Initial skill — DNS deep knowledge