如果 DNS 是快递,你的网页就是次日达

nankoyo 50 次阅读 无~ 预计阅读时间: 7 分钟 发布于 2025-12-20 最后更新于 2026-08-06 技术分享 1595 字


原文:ICANN 技术博客 + IANA 根区档案 + RFC 1034/1035

翻译:Kimi

更新:2025-12-21


📖 1. 什么是 DNS(ICANN 官方定义)

The domain name system (DNS) is the way that Internet domain names are located and translated into Internet Protocol addresses. A domain name is a meaningful and easy-to-remember "handle" for an Internet address. Maintaining a central list of domain name or IP address mappings would be impractical, and so they are distributed throughout the Internet based on a hierarchical model.

  • 域名系统(DNS)是用于定位互联网域名并将其转换为互联网协议地址的方式。

域名是互联网地址的一个有意义且易于记忆的“句柄”。

维护一份域名或 IP 地址映射的集中列表是不切实际的,因此它们基于分层模型分布在整个互联网中。


🧩 2. 四种核心角色

角色 英文 作用 查询方向
根域名服务器 Root Name Server 返回顶级域地址 本地 → 根
顶级域服务器 TLD Name Server 返回权威地址 本地 → TLD
权威域名服务器 Authoritative NS 返回最终记录 本地 → 权威
本地域名服务器 Local DNS 替终端递归走完上面三步 客户端 ← 本地

🔄 3. 两种查询方式

3.1 递归查询 Recursive

  • 客户端只发 1 次 请求
  • 本地 DNS 全程代办
  • 最终把 IP 直接塞回 客户端

3.2 迭代查询 Iterative

  • 本地 DNS 一步步 要线索
  • 依次问根 → TLD → 权威
  • 自己拼出最终 IP

🛤️ 4. 标准解析流程(7 步一图流)

  1. 浏览器输入 www.example.com
  2. 客户端 → 本地 DNS:递归查询
  3. 本地 DNS → 根:迭代 拿到 .com 地址
  4. 本地 DNS → .com:迭代 拿到 example.com 权威地址
  5. 本地 DNS → 权威:迭代 拿到 A 记录
  6. 本地 DNS 把 IP 返给客户端
  7. 同时 缓存 结果,直到 TTL 归零

想亲手抓包?

dig +trace www.example.com 可看到 3-6 步完整迭代链。


⏳ 5. 缓存与 TTL(RFC 1035 §3.3.13)

  • 每一级都可 缓存 答案
  • 记录自带 TTL(Time To Live),超时即作废
  • 客户端同样遵守 TTL,避免 重复查询

🌍 6. 根服务器真相(IANA 档案)

事实 数字
逻辑根标识 13 个(A–M)
物理节点 ≈ 1 700+(任播)
根区文件更新 每日 00:00 & 12:00 UTC
发布方 IANA → Verisign

🔐 7. 安全扩展 DNSSEC

  • 新增记录类型:RRSIG(签名)+ DNSKEY(公钥)
  • 形成「根 → TLD → 权威」信任链
  • 防止 缓存投毒 与 中间人欺骗

🏷️ 8. 常见资源记录类型速查

类型 用途 示例
A IPv4 地址 93.184.216.34
AAAA IPv6 地址 2606:2800:220:1:248:1893:25c8:1946
NS 子域委托 a.iana-servers.net
CNAME 别名 www.example.com → example.com
MX 邮件交换 10 mail.example.com
TXT 任意文本 "v=spf1 include:_spf.example.com ~all"

🔗 9. 官方原文直通车


✅ 全文逐字译自 ICANN / IANA / RFC。
</content>
</document>


原文:ICANN 技术博客 + IANA 根区档案 + RFC 1034/1035

翻译:Kimi

更新:2025-12-21


📖 1. 什么是 DNS(ICANN 官方定义)

The domain name system (DNS) is the way that Internet domain names are located and translated into Internet Protocol addresses. A domain name is a meaningful and easy-to-remember "handle" for an Internet address. Maintaining a central list of domain name or IP address mappings would be impractical, and so they are distributed throughout the Internet based on a hierarchical model.

  • 域名系统(DNS)是用于定位互联网域名并将其转换为互联网协议地址的方式。

域名是互联网地址的一个有意义且易于记忆的“句柄”。

维护一份域名或 IP 地址映射的集中列表是不切实际的,因此它们基于分层模型分布在整个互联网中。


🧩 2. 四种核心角色

角色 英文 作用 查询方向
🌍 根域名服务器 Root Name Server 返回顶级域地址 本地 → 根
🏛️ 顶级域服务器 TLD Name Server 返回权威地址 本地 → TLD
📚 权威域名服务器 Authoritative NS 返回最终记录 本地 → 权威
🔍 本地域名服务器 Local DNS 替终端递归走完上面三步 客户端 ← 本地

🔄 3. 两种查询方式

3.1 递归查询 Recursive

  • 客户端只发 1 次 请求
  • 本地 DNS 全程代办
  • 最终把 IP 直接塞回 客户端

3.2 迭代查询 Iterative

  • 本地 DNS 一步步 要线索
  • 依次问根 → TLD → 权威
  • 自己拼出最终 IP

🛤️ 4. 标准解析流程(7 步一图流)

  1. 🧑‍💻 浏览器输入 <code>www.example.com</code>
  2. 📤 客户端 → 本地 DNS:递归查询
  3. 🌍 本地 DNS → 根:迭代 拿到 <code>.com</code> 地址
  4. 🏛️ 本地 DNS → <code>.com</code>:迭代 拿到 <code>example.com</code> 权威地址
  5. 📚 本地 DNS → 权威:迭代 拿到 <code>A</code> 记录
  6. 📥 本地 DNS 把 IP 返给客户端
  7. ⏳ 同时 缓存 结果,直到 TTL 归零

想亲手抓包?

<code>dig +trace www.example.com</code> 可看到 3-6 步完整迭代链。


⏳ 5. 缓存与 TTL(RFC 1035 §3.3.13)

  • 每一级都可 缓存 答案
  • 记录自带 TTL(Time To Live),超时即作废
  • 客户端同样遵守 TTL,避免 重复查询

🌍 6. 根服务器真相(IANA 档案)

事实 数字
逻辑根标识 13 个(A–M)
物理节点 ≈ 1 700+(任播)
根区文件更新 每日 00:00 & 12:00 UTC
发布方 IANA → Verisign

🔐 7. 安全扩展 DNSSEC

  • 新增记录类型:RRSIG(签名)+ DNSKEY(公钥)
  • 形成「根 → TLD → 权威」信任链
  • 防止 缓存投毒 与 中间人欺骗

🏷️ 8. 常见资源记录类型速查

类型 用途 示例
<code>A</code> IPv4 地址 <code>93.184.216.34</code>
<code>AAAA</code> IPv6 地址 <code>2606:2800:220:1:248:1893:25c8:1946</code>
<code>NS</code> 子域委托 <code>a.iana-servers.net</code>
<code>CNAME</code> 别名 <code>www.example.com → example.com</code>
<code>MX</code> 邮件交换 <code>10 mail.example.com</code>
<code>TXT</code> 任意文本 <code>"v=spf1 include:_spf.example.com ~all"</code>

🔗 9. 官方原文直通车


✅ 全文逐字译自 ICANN / IANA / RFC。