DNS 知识地图
DNS 全体系知识入口,从名字空间、解析参与者、记录与缓存、加密传输、解析差异,到浏览器/代理冲突与系统化排障的系统性阅读路径。
#type / moc
#status / growing
#tech / network
#protocol / dns
🌐 DNS 知识地图
DNS 不只是「域名 → IP」的电话簿。它同时是一套全球分层命名系统、一个分布式数据库、一套授权委派体系、一种查询—响应协议,也是 CDN、流量调度、安全策略与服务发现的控制平面。本 MOC 是 2026 年 DNS 全体系笔记的索引与阅读顺序。
🎯 推荐阅读路径
1. 建立模型:DNS 多角色模型 → 域名树 → Domain/Zone
2. 看清参与者:Stub / 递归 / Forwarder / 权威 / 根与 TLD
3. 跟一次解析:完整递归解析 → QNAME 最小化 → RR/RRset → A/AAAA/CNAME/HTTPS
4. 理解缓存:缓存链 → TTL → 负缓存/失败缓存 → Serve Stale
5. 传输与加密:UDP/TCP/EDNS → DoT/DoH/DoQ/ODoH → DNSSEC
6. 解释差异:GeoDNS/ECS/Split DNS/CDN 调度/Anycast → 过滤劫持污染
7. 跟上 2026:DDR/DNR → RESINFO → ECH
8. 代理冲突:代理只改出口 → SOCKS5 本地/远程 → Secure DNS → fake-ip → Bootstrap
9. 实战排障:为什么不同 IP → 10 层诊断 → 错误 IP 致 TLS 失败
📍 零、快速概览
🧭 一、心智模型与名字空间
- DNS 不只是电话簿 — DNS 的五种角色与「只负责决定连接谁、如何连接」
- 域名树与 FQDN — 根域、label、从右往左扩大的层级、63/255 字节限制
- Domain 与 Zone 的区别 — 逻辑名字范围 vs 管理区域,Zone Cut 委派边界
- 注册局/注册商/DNS 服务商 — Registry/Registrar/DNS Provider/Hosting/CDN 职责分离
🔧 二、系统参与者
- Stub Resolver — 设备本地轻量客户端,把请求交给递归解析器
- 递归 DNS 解析器 — 替客户端完成整条递归 + 缓存的核心角色
- DNS Forwarder — 不直接查根、继续转交上游的转发器
- 权威 DNS 服务器 — 保存 Zone 正式数据、设置 AA 标志
- 根与顶级域服务器 — 13 个逻辑标识 + Anycast 物理实例、只做委派
🔄 三、解析流程与数据模型
- 一次完整的递归解析 — 本地检查 → 根 → TLD → 权威 → 返回
- QNAME 最小化 — 每跳只发送完成委派所需的最小名称,减少信息暴露
- 资源记录 RR 与 RRset — Owner/TTL/Class/Type/Data,相同名称类型的一组记录
- A 与 AAAA 记录 — IPv4/IPv6;只查 A 不足以判断可达性
- CNAME 别名 — 把一个名称指向另一个名称,解析链最终仍需 A/AAAA
- HTTPS / SVCB 记录 — 服务绑定:ALPN、端口、目标、ECH 配置
💾 四、缓存系统
- DNS 缓存链 — 浏览器/系统/代理/路由/递归的多层缓存
- TTL — 可缓存时长,不等于「所有缓存同时过期」
- 负缓存与失败缓存 — NXDOMAIN/NODATA/SERVFAIL 的短暂缓存
- Serve Stale — 权威不可用时继续提供过期数据(RFC 8767)
🔐 五、传输与加密
- 经典 DNS 传输 — UDP 53 / TCP 53 / EDNS(0)
- DoT — DNS over TLS,TCP 853,系统级加密 DNS
- DoH — DNS over HTTPS,443,应用级、难区分
- DoQ — DNS over QUIC,低延迟加密
- ODoH — 通过中继让单方可不知「身份 + 查询内容」
- DNSSEC — 用 RRSIG/DNSKEY/DS 验证数据来源真实性与完整性
🌍 六、为什么同一域名返回不同 IP
- GeoDNS — 按查询来源拓扑返回不同答案
- ECS — 递归解析器向权威携带部分客户端网段
- Split DNS — 同名称按来源返回意义不同的答案
- CDN DNS 调度 — 按地理/运营商/负载等选边缘节点
- Anycast 与 GeoDNS 的区别 — 路由层选择 vs 答案层选择
- DNS 过滤/劫持/污染 — 透明重定向、策略 DNS、中间设备
🚀 七、2026 年 DNS 新发展
⚔️ 八、浏览器、代理与 DNS 冲突
- 代理只改出口不改解析决策 — 连接出口 ≠ 解析决策位置(synthesis)
- SOCKS5 本地解析 vs 远程解析 — socks5:// vs socks5h://
- 浏览器安全 DNS — Chrome/Firefox Secure DNS 可能绕过系统路径
- Mihomo redir-host vs fake-ip — 先拿真实 IP 还是先按域名路由
- DNS Bootstrap 鸡蛋问题 — 用 DoH 前先要解析 DoH 域名
🛠️ 九、综合与排障
- 为什么同一域名返回不同 IP — 汇总所有差异来源(synthesis)
- 系统化 DNS 诊断流程 — 10 层从本地到权威的定位方法(howto)
- 解析到错误 IP 导致 TLS 握手失败 — anyrouter.top 实战案例(debug)
🔗 相邻地图
- 父 MOC:计算机网络 MOC
- 相关:tcp / udp / https / what-happens-after-entering-url
- 代理体系:forward-proxy-and-reverse-proxy / proxy-protocols / mihomo-config-and-usage / clash
- TLS 排障:tls-handshake-failure-debugging