Skip to content

DNS 解析的过程是什么

DNS 解析过程

DNS(Domain Name System)解析是将域名(如 www.example.com)转换为 IP 地址的过程,主要步骤如下: 1. 浏览器缓存:检查本地缓存。 2. 操作系统缓存:查询 hosts 文件和系统缓存。 3. 本地 DNS 服务器:向本地解析器发送请求。 4. 递归查询: - 根域名服务器 → 顶级域名服务器 → 权威域名服务器。 5. 返回结果:获取 IP 并缓存。

核心点

  • 分布式查询,最终返回 IP。

1. 详细过程分解

(1) 浏览器缓存

  • 做什么
  • 浏览器检查自身缓存,是否有域名对应的 IP。
  • 示例
  • www.example.com93.184.216.34(缓存命中)。
  • 结果
  • 命中则直接使用,未命中进入下一步。

(2) 操作系统缓存

  • 做什么
  • 检查本地 hosts 文件和操作系统 DNS 缓存。
  • 路径
  • Linux:/etc/hosts
  • Windows:C:\Windows\System32\drivers\etc\hosts
  • 示例
  • hosts 文件:127.0.0.1 www.example.com
  • 结果
  • 命中返回,未命中请求本地 DNS。

(3) 本地 DNS 服务器

  • 做什么
  • 客户端向配置的本地 DNS 服务器(通常由 ISP 提供)发送查询。
  • 示例
  • 查询:nslookup www.example.com 8.8.8.8(Google DNS)。
  • 缓存
  • 本地 DNS 若有缓存,直接返回。

(4) 递归查询

  • 做什么
  • 本地 DNS 服务器通过递归或迭代方式查询全局 DNS 系统。
  • 步骤
  • 根域名服务器(Root Server)
    • 返回顶级域名(如 .com)服务器地址。
    • 全球 13 组根服务器(a.root-servers.net 等)。
  • 顶级域名服务器(TLD Server)
    • 返回权威域名服务器(如 example.com)。
  • 权威域名服务器(Authoritative Server)
    • 返回具体域名(如 www.example.com)的 IP。
  • 示例
  • 查询 www.example.com
    • 根:.com → TLD。
    • TLD:example.com → 权威。
    • 权威:www.example.com93.184.216.34

(5) 返回结果

  • 做什么
  • 本地 DNS 服务器获取 IP,返回给客户端。
  • 缓存
  • 浏览器、操作系统、本地 DNS 缓存结果(TTL 控制)。
  • 示例
  • 返回:93.184.216.34,客户端发起连接。

2. 流程图示

输入 URL --> 浏览器缓存 --> OS 缓存 --> 本地 DNS
          --> 根服务器 --> TLD 服务器 --> 权威服务器 --> 返回 IP

3. 类型解析

  • A 记录:域名 → IPv4。
  • AAAA 记录:域名 → IPv6。
  • CNAME:别名解析(如 wwwexample.com)。
  • MX:邮件服务器。

4. 优化与细节

  • 缓存
  • TTL(Time To Live)控制缓存时间。
  • 预解析
  • <link rel="dns-prefetch" href="//example.com">
  • 异常
  • 域名不存在:NXDOMAIN
  • 超时:DNS 服务器不可达。

5. 延伸与面试角度

  • 与 CDN
  • DNS 返回 CDN 节点 IP。
  • 实际应用
  • 访问 google.com,解析全球负载均衡。
  • 工具
  • dig www.example.com 查看解析。
  • 面试点
  • 问“过程”时,提五步。
  • 问“优化”时,提缓存和预解析。

总结

DNS 解析从浏览器到权威服务器,层层查询域名对应的 IP,依赖缓存和分布式系统加速。面试时,可提递归流程或画查询图,展示理解深度。