DNS 迭代查询 — 每次只返回"下一步该问谁"

1 主机向本地域名服务器:递归查询(不变)

用户主机
查询 y.abc.com
本地域名服务器
接受递归查询
① 递归查询

唯一使用递归的地方:主机 → 本地域名服务器。

从本地域名服务器开始,后面的所有查询都采用迭代查询

2 本地域名服务器 → 根域名服务器(迭代)

本地域名服务器
查询者(迭代)
根域名服务器
不直接解析
② 查询 y.abc.com
③ 返回:com 顶级域名服务器的 IP

根域名服务器不直接解析,而是返回"下一步该问谁"——即负责 `com` 的顶级域名服务器的 IP 地址。

这是迭代查询的关键:服务器只返回自己知道的信息,不代替查询者继续。

3 本地域名服务器 → com 顶级域名服务器(迭代)

本地域名服务器
查询者(继续迭代)
com 顶级域名服务器
管理 com 下二级域名
④ 查询 y.abc.com
⑤ 返回:abc.com 权限域名服务器的 IP

`com` 顶级域名服务器也不知道 `y.abc.com` 的具体 IP,它返回 `abc.com` 权限域名服务器的 IP 地址。

本地域名服务器仍然自己继续发起下一次查询。

4 本地域名服务器 → abc.com 权限域名服务器(迭代)

本地域名服务器
查询者(最后一步)
abc.com 权限域名服务器
存有 y.abc.com 的 IP
⑥ 查询 y.abc.com
⑦ 返回:y.abc.com = 1.2.3.4 ✅

权限域名服务器存有所查询域名的 IP 地址映射,返回最终答案

本地域名服务器将结果返回给主机(⑧),查询完成。

迭代查询总结:本地域名服务器是核心

迭代查询完整过程

① 主机 递归查询 → 本地域名服务器
② 本地域名服务器 迭代查询 → 根域名服务器
③ 根域名服务器 返回 com 顶级域名服务器 IP
④ 本地域名服务器 迭代查询 → com 顶级域名服务器
⑤ com 顶级域名服务器 返回 abc.com 权限域名服务器 IP
⑥ 本地域名服务器 迭代查询 → abc.com 权限域名服务器
⑦ abc.com 权限域名服务器 返回 y.abc.com = 1.2.3.4
⑧ 本地域名服务器 返回结果 → 主机

迭代 vs 递归

维度递归查询迭代查询
服务器负担重(替人查询)轻(只给线索)
查询者一次请求等结果多次请求,逐次推进
返回内容最终结果下一步该问谁,或最终结果

实际 DNS 采用:主机→本地为递归,本地→其余为迭代