首页/网络/协议速查/Zone 文件格式要点
DNS 与域名解析60 条

Zone 文件格式要点

BIND 风格的区域文件语法:$ORIGIN/$TTL 控制默认值,@ 代表当前区域,相对名自动补后缀,是最通用的 DNS 配置描述格式。

协议速查网络更新于 2026-10-13

区域文件格式

区域文件是 BIND 风格的文本配置,也是各类 DNS 系统之间通用的交换格式。它以指令开头设定默认区域名与默认生存时间,用 @ 代表当前区域,名字末尾不带点的会被自动补上区域后缀;某行以空白开头,表示沿用上一条记录的名字。云解析控制台虽然图形化,但导入导出仍然使用这个格式,会读会写能省下大量沟通成本。

基本信息

文件性质纯文本,可纳入版本管理与评审
常用指令设定区域名、默认生存时间、包含其他文件
缩写规则@ 代表区域名,不带点表示相对名字
默认类IN,通常可省略
缩进含义空白开头表示沿用上一条记录的名字
校验工具提交前用语法校验工具检查

完整小样

完整小样
$ORIGIN example.com.
$TTL 3600
@   IN  SOA ns1.example.com. hostmaster.example.com. (
        2026101201 ; serial 每次修改递增
        7200 3600 1209600 300 )   ; refresh retry expire minimum
@   IN  NS   ns1.example.com.
@   IN  NS   ns2.example.com.
www IN  A    203.0.113.10
@   IN  MX   10 mail.example.com.
mail        IN  A    203.0.113.20

语法要点

元素含义易错点
区域名指令设定后续相对名字的根末尾的点不能漏
默认生存时间未单独指定时使用的缓存时长改动会影响全区域
@ 符号代表当前区域名常被误用于邮箱格式
相对名字自动补区域后缀想写绝对名字必须带末尾点
行首空白沿用上一条记录的名字复制粘贴时缩进被吃掉会改变语义
括号续行长记录跨行书写括号内注释与换行需保持一致

典型使用场景

  • 迁移 DNS 服务商:导出区域文件后逐条比对,确认没有遗漏
  • 批量变更评审:把区域文件纳入版本管理,改动可追溯可回滚
  • 搭建自建权威:按模板生成标准区域文件并校验后加载
  • 故障复盘:对比变更前后的区域内容定位问题记录
  • 新人交接:用一份完整小样说明语法要点,降低误操作概率
提交前务必用语法校验工具检查一遍,它能发现名字缺末尾的点、括号不配对、记录类型写错这类问题。区域文件也不只是配置文件:把它纳入代码评审与版本管理,任何一次解析变更都能追溯到具体提交,这比在控制台里点几下更可控。

易错点

  • 相对名字忘了补末尾的点,记录被挂到意外的层级上,解析结果与预期完全不同
  • 复制粘贴时行首缩进丢失,原本沿用上一条名字的记录变成了新名字
  • 忘记递增序列号,主从同步不会触发,从服务器一直提供旧数据
  • 语法错误直接加载到生产权威,区域加载失败导致整个域名解析中断
  • 多条记录混用绝对名与相对名而无人复核,出现难以察觉的重复与冲突

数据来源与参考

  • RFC 1035 §5(主机文件格式)
  • BIND 9 ARM:Zone File 语法

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌