递归查询的核心过程
递归查询采用「全权代理」模式,整个过程由本地DNS服务器主导完成:
客户端发起请求:用户终端(如浏览器)向本地DNS服务器发送域名解析请求。
服务器责任链:本地DNS服务器依次查询根DNS→顶级域DNS→权威DNS,形成三级查询链路。
结果传递机制:权威DNS将解析结果逐级返回,本地DNS服务器最终将IP地址提供给客户端。
缓存更新机制:本地DNS服务器缓存解析记录,默认保留时长根据TTL值确定。整个查询过程如下图所示:

图1 递归查询过程图示
迭代查询的运作原理
迭代查询采用「线索指引」模式,客户端需要主动参与查询过程:
初始查询请求:客户端向本地DNS请求解析www.example.com。
根服务器指引:本地DNS返回根DNS服务器地址列表(如a.root-servers.net)。
分级查询流程:
客户端向根DNS查询,获得.com域名服务器地址。
客户端向.com服务器查询,获得example.com权威服务器地址。
客户端最终从权威服务器获取目标IP。
自主缓存管理:客户端自行缓存各层级DNS服务器地址及解析结果。图示如下:

图2 迭代查询过程图示
核心差异对比
责任主体差异:
递归查询中本地DNS承担全部解析工作。
迭代查询要求客户端自主完成多级查询。
网络负载分布:
递归模式导致本地DNS服务器负载较高。
迭代模式将查询压力分散到客户端。
响应时间构成:
递归查询总延迟=服务器间多重往返时间。
迭代查询延迟=客户端多层级查询累计时间。
因此,递归查询广泛用于客户端与ISP的DNS交互。迭代查询常见于DNS服务器之间的协作。一般来说,企业或单位自建的DNS服务器也是采用递归模式查询。
明确了DNS解析的工作原理,我们就很好理解,为什么大单位要自建DNS,因为他们一般都有自己的私有域名,而且内部的各种办公系统(如Mail、OA、ERP等)都有自己的二级域名(如mail.example.com).公共DNS服务器只负责解析互联网上公开注册的域名,它们完全不知道也无法解析这些仅在内部网络中有效的私有域名。
自建DNS服务器(通常是内网DNS)负责将这些内部域名正确解析为对应的内网IP地址,确保内部用户和系统能够无缝访问这些资源。没有内网DNS,内部网络的基本功能将瘫痪。
另外,自建DNS服务器在单位内部即可完成域名解析,无需经过根服务器以及域名服务器递归解析,也可以大大加快解析的速度,提高访问应用系统的使用体验。
同时,自建DNS可以主动拦截并阻止解析已知的恶意域名(如钓鱼网站、恶意软件C&C服务器、间谍软件域名)、非法内容网站或与工作/学习无关的网站(如社交媒体、游戏)。这是实施网络安全策略的重要手段。