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