跳转至

DNS 解析全过程

一、DNS 是什么

DNS(Domain Name System)把域名翻译成 IP 地址。

二、查询流程

www.example.com 为例:

1. 浏览器缓存

浏览器先查自己的 DNS 缓存(Chrome 约 1 分钟)。

2. 操作系统缓存

查 hosts 文件、操作系统 DNS 缓存。

3. 本地 DNS 服务器(LDNS)

没命中,发往配置的 DNS(运营商 / 8.8.8.8 / 114.114.114.114)。

4. 递归查询 vs 迭代查询

  • 递归查询:客户端 → LDNS,LDNS 负责拿到结果返回。
  • 迭代查询:LDNS 依次问根域名服务器、顶级域服务器、权威服务器。

流程:

LDNS -> 根服务器(.): 问 .com 在哪
根   -> LDNS: 去问 .com 服务器
LDNS -> .com 服务器: 问 example.com 在哪
.com -> LDNS: 去问 example.com 权威服务器
LDNS -> example.com 权威服务器: 问 www.example.com
权威 -> LDNS: 203.0.113.10
LDNS -> 客户端: 203.0.113.10(并缓存)

三、DNS 记录类型

类型 作用
A 域名 → IPv4
AAAA 域名 → IPv6
CNAME 域名 → 另一个域名(别名)
MX 邮件服务器
NS 指定域名服务器
TXT 文本记录(SPF、验证)

四、TTL

每条 DNS 记录有 TTL(生存时间),过期后重新查。TTL 太长,改了 IP 生效慢;太短,DNS 压力大。

五、负载均衡

DNS 层负载均衡:一个域名配多个 A 记录,DNS 按策略返回不同 IP(轮询、就近)。这是最简单的负载均衡。

高频追问

  • 递归 vs 迭代:客户端到 LDNS 是递归,LDNS 到各级服务器是迭代。
  • CDN 利用 DNS 把用户调度到最近的节点。