Domain IP Lookup

几乎每个 DNS 区域都会遇到的记录

A主机名指向 IPv4 地址
AAAA主机名指向 IPv6 地址
CNAME主机名指向另一个主机名
MX域名指向其邮件服务器,按优先级排序
TXT域名对应任意文本,如 SPF、DKIM、验证信息
NS域名指向负责应答的域名服务器
DNS 基础

DNS 区域文件详解:记录、名称与 TTL

4 分钟阅读

DNS 区域文件是某个区域(例如 example.com)内 DNS 记录的文本形式,描述了各个名称以及与之关联的数据,包括地址、别名、邮件交换服务器、域名服务器和文本策略。许多托管服务商把原始文件隐藏在网页界面背后,但导出与导入依然沿用区域文件的概念。在服务商迁移、审计和故障排查时,理解这种格式很有价值:一条记录可能语法完全正确,却挂在了错误的名称下,或者按意料之外的默认值被解释。认真的审查既要看每条记录的内容,也要看它所处的区域上下文。

资源记录的组成部分

一条资源记录通常包括所有者名称、可选的 TTL、类(通常是表示互联网数据的 IN)、记录类型,以及与类型相关的数据。A 记录的那一行包含一个 IPv4 地址;MX 行包含优先级和邮件交换服务器的主机名;CNAME 行包含规范目标名称。区域文件可以使用相对名称,即所有者名称相对于区域原点来解释,并用 @ 之类的特殊符号表示区域顶点。末尾的点可以标明这是一个完全限定名称。导入数据时,如果混淆了相对名称和绝对名称,就可能无意中产生重复的域名后缀。

概念审查区域时的含义
所有者名称记录所属的 DNS 名称
TTL解析器可以将数据缓存多长时间
类型该记录所回答的查询类别
RDATA该记录类型特有的一个或多个取值
原点相对名称所依据的区域上下文

区域顶点指不带前缀的区域名称,如 example.com,在区域文件中常用 @ 表示。区域的 SOA 和 NS 记录就位于这里。顶点上的 A 和 AAAA 记录发布地址,而 www 或 mail 等子域名所有者则是各自独立的名称。有的服务商会提供 ALIAS 或扁平化功能,看起来像是在顶点上放了一个地址,实际上在后台跟随的是某个主机名;这些属于服务商特有的行为,并不是根域名上普通的 CNAME 记录。迁移时,请先弄清目标服务商如何映射这类功能,再决定能否原样照搬。

把区域当作完整的服务地图来审查

不要把 DNS 导出文件仅仅当作网站配置。邮件投递可能依赖 MX 加上 SPF、DKIM 和 DMARC 的 TXT 记录;分析工具、搜索服务、证书系统和 SaaS 平台的所有权验证,可能依赖 TXT 或 CNAME 记录;服务发现可能使用 SRV,被委派的子域名也可能有自己的 NS 记录。一条看起来陌生的旧记录,可能仍在支撑某个生产依赖。删除任何内容之前,先弄清它的所有者和用途。如果来源不明,请对照应用文档,并询问相关团队,而不要想当然地认为一个看似闲置的主机名可以安全删除。

  • 在服务商迁移或清理之前,先导出完整的区域。
  • 仔细检查顶点和子域名,包括相对名称的规则。
  • 保留邮件、验证和被委派子域名相关的记录。
  • 检查 TTL,以及服务商特有的扁平化或代理功能。
  • 导入之后,查询权威域名服务器,并比对关键记录。

安全地导入与验证

区域文件的导入可能因记录类型不受支持、格式差异、所有者重复或服务商特有的扩展而失败。切换之前请先校验导出文件,并检查服务商的导入报告,看是否有被跳过的记录。如果更换了 DNS 服务商,务必先把新区域填充完整,再去更新注册商处的委派。委派变更完成后,检查 NS 记录并直接查询关键记录。把线上应答与原来的导出文件对照,再对网站和邮件做针对性的服务检查。导入在语法上成功,并不等于迁移已经验证通过,它只能证明工具接受了这个文件。

有关最常见记录含义的说明,请参阅 DNS 记录类型详解。迁移中涉及域名服务器的部分,请阅读 NS 记录的作用。区域文件是一份精简的配置清单,当团队在原始行之外同时保留上下文时,它的价值最大。请补充说明为何存在特殊记录、归谁所有、哪些服务依赖它们。这点少量的文档,就能避免日后的清理悄悄删掉重要的东西。

保留意图,而不仅仅是导出的那些行

原始的区域导出是一份有用的备份,但它很少说明一条记录为何存在,或哪个团队依赖它。请在文件旁边附上一份清单,写明应用负责人、供应商、续期或复查日期,以及某个值是否可以安全修改。这些上下文对 TXT 记录尤其重要,它们看起来像随意的令牌,却可能用来证明域名所有权或授权邮件系统。审计时,要区分仍在使用的记录,和已经过时但为过渡而保留的记录。导入新服务商之后,既要比对数据,也要比对行为:服务商特有的代理开关、扁平化和验证设置,可能并不会以普通区域文件行的形式体现。区域是运行中的配置,保留它的意图,能让之后的变更更加安全。

需要查看某个域名的公网 DNS 地址?使用 Domain IP Lookup 工具。