01 阅读02 应用03 完成
先建立概念理解,再通过下一个活动进行检验。
记录、解析器与查找的顺序
解析器实际按什么顺序查询了什么,你会遇到哪些记录类型,以及为什么同一个名称在一台主机上能解析而在另一台却失败。
阅读约 10 分钟Services
你将能够做到
- 说出常见的记录类型及各自解答的问题
- 追踪一次查找经过缓存、hosts 文件和已配置解析器的过程
- 解释为什么两台主机会对同一个名称给出不同答案
预备知识:你需要《DNS——将名称转换为地址》中的基本概念,以及 DHCP 课程,因为主机使用的解析器通常来自其租约。
为什么重要:在我的机器上是好的几乎总是因为两台主机得到了不同的 DNS 答案——一条缓存的记录、一条 hosts 文件条目,或是不同作用域分发的不同解析器。了解查找顺序能把这从一个谜团变成三件可以逐一核查的事。
解析器不会直接去问 DNS 服务器。它按顺序查找一小组来源,找到第一个答案就停止。几乎所有令人困惑的 DNS 故障,实质上都是对“究竟哪个来源给出了答案”的分歧。
值得掌握的记录类型
| 类型 | 回答的问题 | 典型用途 |
|---|---|---|
| A | 名称对应的 IPv4 地址 | 最常见的查询 |
| AAAA | 名称对应的 IPv6 地址 | IPv6 中的同类查询 |
| CNAME | 名称对应的另一个名称 | 可随服务迁移调整的别名 |
| MX | 域对应的邮件主机 | 邮件应投递到哪里 |
| PTR | 地址对应的名称 | 反向查询、日志记录 |
| NS | 区域对应的服务器 | 区域之间的委派 |
查找的顺序
- 应用自身的缓存,如果它有缓存的话。
- 操作系统的解析器缓存——之前获取且尚未过期的答案。
- hosts 文件——它是本地的、静态的,优先于网络查询。
- 已配置的解析器,通常来自 DHCP 租约。
这四个来源中有两个保存着每台主机自己的状态。这就是一台机器能解析某个名称、旁边的机器却不能的原因——缓存仍存有旧答案,或者有人两年前在 hosts 文件中加了一行后忘了。
两台主机,一个名称,两种答案
库存系统按计划迁移到新地址,A 记录也已更新。从未查找过该名称的主机会立即取得新地址。 的机器在切换前一小时查过,记录的 TTL 是一天,因此当天剩余时间仍会使用旧地址。他报告库存系统宕机,而周围的人都在正常工作。
TTL 决定旧答案能保留多久
每条记录都有生存时间,规定解析器再次查询前可以保留答案多久。较长的 TTL 减少查询负载,却让变更生效更慢;较短的 TTL 则相反。在计划变更前提前降低 TTL,才能让切换在发生时迅速传播。
要点总结
- 解析器依次检查缓存、hosts 文件和已配置服务器,遇到第一个答案就停止。
- 前两个来源在每台主机上各自保存状态,因此主机之间可能给出不同答案。
- CNAME 返回名称而非地址;这种间接关系降低了服务切换的成本。
- TTL 决定旧答案能保留多久;应在计划变更之前降低,而不是变更时才降低。
准备好继续了吗?
创建免费账户,保存学习进度并进行知识检测。
