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 采用:主机→本地为递归,本地→其余为迭代