一些关于DNS的知识

2026-06-03 21:56:00
丁国栋
原创 9
摘要:本文记录和整理一些关于DNS的知识,便于回顾和取用。

说在前面的话:如果不断的重复某项事情记忆就会变得牢固,当重复到了足够的次数,想忘掉也不是一件容易的事情了。反过来,如果一件事或者一个知识你没有重复足够多的次数或者无法推理、触发出来就大概不会记得它了。所以有些东西还是要写下来,整理出来,才能长久保存。有些知识点可能学到了但很长时间用不上,但一旦想找它想起来它那可真的不容易。

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.8114.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地址在全球多地广播。这是 CDN8.8.8.8 高可用的核心技术。
Split Horizon (分智能解析) 内外网解析分离。内网访问解析到内网IP,外网访问解析到公网IP。
CAA 记录 指定哪些CA机构可以为你的域名颁发证书,防止恶意申请SSL证书。
Public Suffix List 浏览器用来判断什么是“根域名”(如 .com.github.io 的区别),影响Cookie安全。

六、 常见故障场景速查(记忆锚点)

为了帮你记住上面这些,可以对应以下场景:

  1. “网站打不开,但IP能访问” → 查 A记录Local DNSHosts
  2. “换了解析半天没生效” → 查 TTLISP缓存Serial Number 是否递增。
  3. “邮件发不出去” → 查 MX记录PTR反向解析(SPF/DKIM通常也属于DNS范畴)。
  4. “CDN回源错误” → 查 CNAME 是否指向正确,是否存在循环CNAME。
  5. “部分地区访问异常” → 查 GSLB/智能解析 策略,是否有地区屏蔽。

总结:必背的“最小知识集”

  1. UDP 53 端口。
  2. A 记录是 IPv4,AAAA 是 IPv6。
  3. CNAME 是别名,不能和 A 记录共存于根域名。
  4. MX 记录决定邮件去哪。
  5. TTL 决定缓存多久。
  6. 解析顺序:缓存 > Hosts > DNS。
  7. dig 是最好用的诊断工具。
  8. SOA 里的 Serial 号不涨,从服务器不更新。
  9. PTR 是用来做 IP 反解的。
  10. 修改前 一定要降低 TTL
发表评论
博客分类