一些关于DNS的知识
- 2026-06-03 21:56:00
- 丁国栋
- 原创 6
说在前面的话:如果不断的重复某项事情记忆就会变得牢固,当重复到了足够的次数,想忘掉也不是一件容易的事情了。反过来,如果一件事或者一个知识你没有重复足够多的次数或者无法推理、触发出来就大概不会记得它了。所以有些东西还是要写下来,整理出来,才能长久保存。有些知识点可能学到了但很长时间用不上,但一旦想找它想起来它那可真的不容易。
DNS 这里面的知识很多是有用的,但有些也是平常用不到,但关键时候还是能用到的。
一、 基础概念与架构(地基)
这部分决定了你对DNS的理解是停留在“改个IP”还是“懂原理”。
| 知识点 | 必会程度 | 说明 |
|---|---|---|
| DNS 本质 | ⭐⭐⭐⭐⭐ | 域名 -> IP 的分布式数据库,主要基于 UDP 53 端口(TCP 用于区域传输和大包)。 |
| 递归查询 vs 迭代查询 | ⭐⭐⭐⭐⭐ | 递归:客户端只问一次,等着拿结果(通常是Local DNS);迭代:服务器返回下一个该去哪问(Root -> TLD -> Authoritative)。 |
| DNS 层级结构 | ⭐⭐⭐⭐ | 根域 (.) -> 顶级域 (TLD, .com/.cn) -> 二级域 (google.com) -> 子域 (<www.google.com)。理解这是树状结构。> |
| Resolver (解析器) | ⭐⭐⭐⭐ | 你电脑上配置的 8.8.8.8 或 114.114.114.114,它的职责是帮你去递归查询。 |
二、 核心记录类型(Records)
这是最常用的部分,不仅要背名字,要知道具体场景。
| 记录类型 | 全称 | 必会场景 | 备注 |
|---|---|---|---|
| A | Address | IPv4地址映射 | 最最最常用的记录。 |
| AAAA | IPv6 Address | IPv6地址映射 | 随着IPv6普及,重要性上升。 |
| CNAME | Canonical Name | 别名(CDN、SaaS服务) | 不能在根域名(@)设置;优先级高于A记录。 |
| MX | Mail Exchange | 邮件服务器 | 必须有优先级(Preference),数字越小越优先。 |
| TXT | Text | SPF、域名验证、防钓鱼 | 现在常用于证明“这个域名是你的”。 |
| NS | Name Server | 委派子域管理权 | 告诉别人这个子域由谁来管理。 |
| PTR | Pointer | IP反查域名 | 用于邮件服务器反垃圾,极难配置,属于冷知识区。 |
| SOA | Start of Authority | 区域权威信息 | 包含主DNS服务器、管理员邮箱、序列号(Serial)。 |
| SRV | Service | 服务定位(端口+主机) | 常用于VoIP、LDAP、GitLab等特定服务。 |
三、 解析流程与缓存(实战核心)
很多时候出问题不是因为配错了,而是因为缓存。
| 知识点 | 必会程度 | 说明 |
|---|---|---|
| 本地 Hosts 文件 | ⭐⭐⭐⭐⭐ | 解析顺序:本地缓存 -> Hosts -> DNS服务器。排错第一招:ping 不通先查 Hosts。 |
| TTL (Time To Live) | ⭐⭐⭐⭐⭐ | 缓存存活时间。改解析前务必调低TTL,生效后再调高。 |
| Negative TTL | ⭐⭐⭐ | 当查询结果为 NXDOMAIN(不存在)时,这个“不存在”的结果也会被缓存。 |
| DNS Propagation | ⭐⭐⭐⭐ | 全球生效延迟。不同地区、不同ISP的Local DNS刷新时间不同。 |
四、 运维与排错命令(肌肉记忆)
这些命令必须在脑子里形成反射。
| 命令 | 用途 | 关键参数/示例 |
|---|---|---|
| dig | 专业查询(首选) | dig +trace example.com (追踪完整路径)dig @8.8.8.8 example.com (指定DNS) |
| nslookup | 简单查询(Windows友好) | nslookup -type=mx example.com |
| host | 简洁查询 | host example.com |
| whois | 查注册信息 | 查域名所有者、到期时间。 |
| tcpdump | 抓包分析 | tcpdump -i eth0 port 53 (看有没有发出请求)。 |
五、 高级与安全(关键时刻救命)
这些平时看不见,出事就是大事。
| 知识点 | 说明 |
|---|---|
| DNSSEC | 给DNS数据加签名,防止DNS劫持/污染。现在是很多合规要求的一部分。 |
| Anycast DNS | 同一个IP地址在全球多地广播。这是 CDN 和 8.8.8.8 高可用的核心技术。 |
| Split Horizon (分智能解析) | 内外网解析分离。内网访问解析到内网IP,外网访问解析到公网IP。 |
| CAA 记录 | 指定哪些CA机构可以为你的域名颁发证书,防止恶意申请SSL证书。 |
| Public Suffix List | 浏览器用来判断什么是“根域名”(如 .com 和 .github.io 的区别),影响Cookie安全。 |
六、 常见故障场景速查(记忆锚点)
为了帮你记住上面这些,可以对应以下场景:
- “网站打不开,但IP能访问” → 查 A记录、Local DNS、Hosts。
- “换了解析半天没生效” → 查 TTL、ISP缓存、Serial Number 是否递增。
- “邮件发不出去” → 查 MX记录、PTR反向解析(SPF/DKIM通常也属于DNS范畴)。
- “CDN回源错误” → 查 CNAME 是否指向正确,是否存在循环CNAME。
- “部分地区访问异常” → 查 GSLB/智能解析 策略,是否有地区屏蔽。
总结:必背的“最小知识集”
- UDP 53 端口。
- A 记录是 IPv4,AAAA 是 IPv6。
- CNAME 是别名,不能和 A 记录共存于根域名。
- MX 记录决定邮件去哪。
- TTL 决定缓存多久。
- 解析顺序:缓存 > Hosts > DNS。
dig是最好用的诊断工具。- SOA 里的 Serial 号不涨,从服务器不更新。
- PTR 是用来做 IP 反解的。
- 修改前 一定要降低 TTL。
发表评论