真实面经题目 · 原创解析

DNS 解析过程是什么?

DNS 解析是把域名转换为 IP 地址的过程。通常会先查浏览器、系统、hosts 和本地递归解析器缓存;未命中时,递归解析器依次查询根域、顶级域和权威域名服务器,拿到 A 或 AAAA 等记录后按 TTL 缓存并返回。

出现于:字节跳动 · 测开

60 秒回答模板

可以按一次用户访问域名的链路回答。浏览器先查自身缓存,再查操作系统缓存和 hosts;如果没有命中,就把查询交给配置的本地 DNS 或公共 DNS 递归解析器。递归解析器如果也没有缓存,会先问根域名服务器,根返回对应顶级域服务器地址;再问顶级域服务器,得到权威域名服务器地址;最后问权威服务器,获得目标域名的 A、AAAA 或 CNAME 结果。若有 CNAME,需要继续解析别名直到得到可连接地址。解析结果会根据 TTL 缓存在递归解析器、系统或应用中。拿到 IP 后,客户端才会继续建立 TCP 或 QUIC 连接。测试时要关注缓存失效、TTL、IPv4/IPv6、CNAME 链、CDN 调度、失败降级、污染劫持和不同网络运营商差异。

考点 递归与迭代
难度 真实面经高频题
回答目标 讲清机制、边界和追问

深入解析

01

本地缓存优先

DNS 查询不会每次都从根服务器开始。浏览器可能有 DNS 缓存,操作系统也可能缓存结果,hosts 文件还能直接覆盖域名映射。缓存能降低延迟和权威服务器压力,但也会带来变更不立即生效、灰度不一致和故障恢复滞后的问题。

02

递归解析器接管

本地未命中后,客户端通常把请求交给运营商 DNS、企业 DNS 或公共 DNS。这个解析器对客户端提供递归服务,也就是替客户端完成后续多级查询。递归解析器自身会缓存结果,并可能参与访问控制、内容过滤或 CDN 地域调度。

03

根和顶级域查询

递归解析器不知道答案时,会先查询根域名服务器。根服务器不直接返回业务域名 IP,而是告诉它应该去哪个顶级域服务器,例如 .com、.cn 或其他后缀。顶级域服务器再返回该域名所属的权威域名服务器地址。

04

权威服务器返回记录

权威域名服务器保存域名的真实解析配置,会返回 A、AAAA、CNAME、MX、TXT 等记录。访问网站通常关注 A 和 AAAA;如果返回 CNAME,解析器还要继续解析别名。CDN 场景下,权威服务器可能根据来源、线路和健康状态返回不同地址。

05

缓存与连接后续

解析结果带有 TTL,表示缓存可使用的时间。客户端拿到 IP 后,才会进入 TCP 三次握手、TLS 握手或 QUIC 建连。DNS 只解决名字到地址的发现问题,不保证后续端口可达、证书正确或应用服务健康。

易错点

  • 认为 DNS 查询每次都从根服务器开始,忽略浏览器、系统和递归解析器缓存。
  • 把本地 DNS 说成只转发请求,不知道它通常会递归查询并缓存结果。
  • 只知道 A 记录,忽略 AAAA、CNAME、MX、TXT 等记录类型和业务差异。
  • 把 DNS 成功等同于网站可用,没有区分解析、连接、TLS 和应用响应。

面试官追问

递归查询和迭代查询有什么区别?

递归查询是客户端把问题交给解析器并等待最终答案。迭代查询是解析器逐级询问其他服务器,对方可能只返回下一跳服务器地址。实际链路中两者通常同时存在于不同角色之间。

TTL 设置过长或过短分别有什么问题?

TTL 过长会让变更和故障切换生效慢,过短会增加解析流量和延迟,并提高权威服务器压力。生产配置要在稳定性、切换速度和解析成本之间平衡。

DNS 解析成功是否说明网站一定能访问?

不说明。DNS 只返回地址。后续还可能因为端口不可达、TCP 或 QUIC 建连失败、TLS 证书不匹配、HTTP 路由错误、服务过载或防火墙策略导致访问失败。

CNAME 解析会带来什么测试点?

需要验证别名链是否正确、是否存在循环、TTL 是否合理、最终 A 或 AAAA 是否可达,以及 CDN 或第三方服务切换时是否影响证书、回源和缓存策略。