DNS 不只是电话簿

DNS 同时是分层命名系统、分布式数据库、授权委派体系、查询—响应协议与服务发现/流量调度控制平面;它只决定「连接谁、如何连接」,不负责传输网页。

#type / concept #status / growing #tech / network #protocol / dns

[!info] related notes

DNS 不只是电话簿

一句话定义

DNS(Domain Name System)不是简单的「域名 → IP 地址」对照表,而是一套全球分层的命名系统 + 分布式数据库 + 授权委派体系 + 查询—响应协议 + 服务调度控制平面

核心机制 / 工作原理

「电话簿」比喻只覆盖了最表面的一层。准确地说,DNS 至少同时承担五种角色:

  1. 分层命名系统:用树状名字空间给互联网资源命名(见 dns-name-space)。
  2. 分布式数据库:数据分散保存在各权威服务器,而非集中存储。
  3. 授权与委派体系:根 → 顶级域 → 注册域逐级把管理权委派下去(见 domain-vs-zone)。
  4. 查询—响应协议:客户端与解析器之间、解析器各层之间按固定报文格式交互。
  5. 控制平面:CDN 调度、流量工程、安全策略、服务发现都通过 DNS 记录表达。

因此,DNS 能表达的远不止 IP:

域名 → IP 地址          (A / AAAA)
域名 → 邮件服务器        (MX)
域名 → 其他域名          (CNAME / NS)
域名 → 服务端口          (SRV)
域名 → TLS/HTTP 参数     (HTTPS / SVCB)
域名 → DNSSEC 公钥与签名  (DNSKEY / DS / RRSIG)
域名 → ECH 配置          (HTTPS / SVCB)

基础架构仍建立在 RFC 1034 / RFC 1035(1987),但今天叠加了缓存、EDNS、DNSSEC、Anycast、DoH/DoT/DoQ、SVCB、ECH、浏览器内置解析器、VPN 与代理等许多层;权威术语由 RFC 9499 统一整理。

最关键的心智模型

DNS 只负责帮助客户端确定「连接谁、如何连接」;DNS 本身不负责传输网页。

访问一个网站的完整流程,DNS 只是其中一段:

输入 https://anyrouter.top
   ↓ 应用判断要查哪些记录
浏览器/系统缓存/hosts

Stub Resolver → 递归解析器 → 根/TLD/权威

获得 A/AAAA/HTTPS/CNAME 等

浏览器选择目标 IP

建立 TCP/QUIC → TLS 握手(发 SNI) → 发送 HTTP

DNS 查询在「获得记录」这一步就结束了,后续 TCP、QUIC、TLS、HTTP 都属于其他协议层

最小例子 / 最小场景

https://anyrouter.top 为例:DNS 决定浏览器去连 155.102.x.x 还是某个 CDN 边缘,并可能通过 HTTPS 记录提示「用 HTTP/3、尝试 ECH」。但网页内容是否返回、TLS 是否成功,取决于后续的 TCP/TLS/HTTP 层。

边界与易混淆点

  • DNS 成功 ≠ 网站一定能打开:拿到 IP 后连接/TLS/HTTP 仍可能失败。
  • DNS 返回错误 IP → TLS 就可能失败:目标地址错了,握手自然对不上证书。
  • TLS 失败 ≠ DNS 协议失败:TLS 是另一层,证书或 SNI 问题不归 DNS 管。
  • 使用代理 ≠ DNS 自动走代理:代理通常只改变「连接从哪发出」,不一定改变「最先解析到哪个 IP」(见 proxy-and-dns-separation)。
  • 不要因为「我挂了代理」就假设 DNS 也跟着代理出口走了——这是 most common 排障误区。
创建于 2026/7/31 更新于 2026/7/31