普通应用程序会询问操作系统的存根解析器;存根解析器先查询本地名称服务策略,再向已配置的解析器发送递归查询。只有在仍然有效的缓存无法回答问题时,递归解析器才会遍历 DNS 层级。
DNS · 第 3 课
DNS 解析过程
了解存根解析器和递归解析器如何利用缓存、转介、粘合记录与权威来回答 DNS 查询。
从本地策略和缓存开始
系统解析器可以按照配置的顺序查询 /etc/hosts、DNS 和其他来源。搜索后缀可能把一个短名称转换成多个候选名称。递归解析器随后会先检查正面和否定缓存条目,再决定是否发送上游流量。
为什么递归解析器可能完全不联系任何权威服务器?
查询根服务器
缓存未命中时,递归解析器可以查询根服务器。DNS 根拥有 A 到 M 共 13 个具名服务器标识,并通过任播等弹性部署技术由许多物理实例提供服务。其响应通常会把解析器转介给相关顶级域的权威服务器,而不是直接返回最终主机地址。
对于未缓存的 www.example.com 查询,根服务器通常会返回什么?
跟随顶级域与权威转介
解析器询问 com 权威服务器,后者返回 example.com 受委派的权威名称服务器。如果需要访问名称位于受委派子区域内的服务器,转介中可以包含粘合地址记录。随后,解析器向一台权威服务器查询所请求的记录。
DNS 粘合记录帮助解决什么问题?
跟随别名与记录类型
回答中可能包含需要再次查询名称的 CNAME 别名,也可能包含会引发更多查询的应用专用记录。查询 A 只会返回 IPv4 地址记录及相关链路数据;必须另行查询 AAAA 才能获取 IPv6 地址。最终响应会带有 NOERROR、NXDOMAIN 或 SERVFAIL 等状态,而这些状态各有不同含义。
NXDOMAIN 表示什么?
验证、缓存与应用程序使用
执行验证的递归解析器可以使用 DNSSEC 签名和信任链,验证经认证的否定回答或记录完整性。DNSSEC 不会加密查询,也无法证明返回地址上的应用程序值得信任。
解析器按照 TTL 规则缓存结果并将其返回给存根解析器。应用程序随后选择一个地址,并尝试自己的网络协议与安全协议。
DNSSEC 验证不提供什么?
课程已完成
你已完成 DNS 解析过程
现在,你可以追踪一次递归 DNS 查询从本地策略到缓存最终响应的全过程。
先检查本地来源和解析器缓存。
跟随根与顶级域的转介。
使用粘合记录访问适当的受委派服务器。
区分别名、无数据回答和名称不存在。
将 DNSSEC 完整性与传输机密性区分开来。