什么是 DNS
DNS(Domain Name System,域名系统) 是互联网的一项核心服务,它作为将域名和 IP 地址相互映射的分布式数据库,使得用户可以通过易于记忆的域名(如 www.example.com)访问网站,而无需记住复杂的数字 IP 地址(如 192.0.2.1)。
DNS 的工作原理
DNS 解析过程通常包含以下步骤:
1. 浏览器缓存检查
- 浏览器首先检查自身缓存中是否有该域名的解析记录
- 如果有且未过期,直接返回 IP 地址
2. 操作系统缓存检查
- 浏览器缓存未命中时,检查操作系统缓存(如 Windows 的 hosts 文件)
- Linux 系统会检查
/etc/hosts文件
3. 本地 DNS 服务器查询
- 向配置的本地 DNS 服务器(通常是 ISP 提供或公司内部的 DNS 服务器)发起查询
- 本地 DNS 服务器会检查自身缓存
4. 递归查询过程
如果本地 DNS 服务器没有缓存记录,会进行递归查询:
步骤 A:根域名服务器查询
- 本地 DNS 向根域名服务器(Root Name Server)查询
- 根服务器返回负责该顶级域(TLD)的服务器地址
步骤 B:顶级域服务器查询
- 本地 DNS 向 TLD 服务器(如 .com、.org 服务器)查询
- TLD 服务器返回该域名的权威 DNS 服务器地址
步骤 C:权威 DNS 服务器查询
- 本地 DNS 向权威 DNS 服务器查询
- 权威服务器返回最终的 IP 地址记录
5. 结果返回与缓存
- 本地 DNS 将结果返回给客户端
- 客户端和本地 DNS 都会根据 TTL(生存时间)缓存该记录
DNS 查询类型
| 查询类型 | 说明 |
|---|---|
| 递归查询 | DNS 服务器代替客户端完成全部查询工作 |
| 迭代查询 | DNS 服务器返回最佳答案,客户端继续查询 |
| 反向查询 | 通过 IP 地址查询对应的域名 |
关键概念
- A 记录:将域名映射到 IPv4 地址
- AAAA 记录:将域名映射到 IPv6 地址
- CNAME 记录:域名别名记录
- MX 记录:邮件交换记录
- NS 记录:域名服务器记录
- TTL:生存时间,决定缓存有效期