Skip to main content

RFC 1035 - 域名系统 - 实现和规范

状态: 互联网标准 (STD 13)
废弃: RFC 882, 883, 973
作者: Paul Mockapetris (ISI)
发布日期: 1987年11月

摘要

本RFC描述了域名系统和协议的详细信息,假设读者熟悉配套RFC "Domain Names - Concepts and Facilities" [RFC-1034] 中讨论的概念。

域名系统是功能和数据类型的混合体,其中一些是官方协议,一些仍处于实验阶段。由于域名系统有意设计为可扩展的,因此在官方协议之外的系统部分应始终期待新的数据类型和实验性行为。官方协议部分包括标准查询、响应和Internet类RR数据格式 (例如,主机地址)。

重要性

RFC 1035与RFC 1034共同构成了DNS的核心规范:

  • RFC 1034: 概念和设施 (理论和架构)
  • RFC 1035: 实现和规范 (协议和格式)

本RFC提供了实现DNS所需的所有技术细节,包括:

  • 📦 消息格式和编码
  • 📋 资源记录定义
  • 📁 区域文件格式
  • 🖥️ 名称服务器实现
  • 🔍 解析器实现

目录

2. Introduction (简介)

  • 2.1 概述
  • 2.2 常见配置
  • 2.3 约定
    • 2.3.1 首选名称语法
    • 2.3.2 数据传输顺序
    • 2.3.3 字符大小写
    • 2.3.4 大小限制

3. Domain Name Space and RR Definitions (域名空间和RR定义)

  • 3.1 名称空间定义
  • 3.2 RR定义
    • 3.2.1 格式
    • 3.2.2 TYPE值
    • 3.2.3 QTYPE值
    • 3.2.4 CLASS值
    • 3.2.5 QCLASS值
  • 3.3 标准RR
    • 3.3.1 CNAME RDATA格式
    • 3.3.2 HINFO RDATA格式
    • 3.3.3 MB RDATA格式 (实验性)
    • 3.3.4 MD RDATA格式 (废弃)
    • 3.3.5 MF RDATA格式 (废弃)
    • 3.3.6 MG RDATA格式 (实验性)
    • 3.3.7 MINFO RDATA格式 (实验性)
    • 3.3.8 MR RDATA格式 (实验性)
    • 3.3.9 MX RDATA格式
    • 3.3.10 NULL RDATA格式 (实验性)
    • 3.3.11 NS RDATA格式
    • 3.3.12 PTR RDATA格式
    • 3.3.13 SOA RDATA格式
    • 3.3.14 TXT RDATA格式
  • 3.4 Internet特定RR
    • 3.4.1 A RDATA格式
    • 3.4.2 WKS RDATA格式
  • 3.5 IN-ADDR.ARPA域
  • 3.6 定义新类型、类和特殊名称空间

4. Messages (消息)

  • 4.1 格式
    • 4.1.1 头部部分格式
    • 4.1.2 问题部分格式
    • 4.1.3 资源记录格式
    • 4.1.4 消息压缩
  • 4.2 传输
    • 4.2.1 UDP使用
    • 4.2.2 TCP使用

5. Master Files (主文件)

  • 5.1 格式
  • 5.2 使用主文件定义区域
  • 5.3 主文件示例

6. Name Server Implementation (名称服务器实现)

  • 6.1 架构
    • 6.1.1 控制
    • 6.1.2 数据库
    • 6.1.3 时间
  • 6.2 标准查询处理
  • 6.3 区域刷新和重新加载处理
  • 6.4 反向查询 (可选)
  • 6.5 完成查询和响应

7. Resolver Implementation (解析器实现)

  • 7.1 转换为搜索规范
  • 7.2 使用缓存
  • 7.3 使用多个名称服务器
  • 7.4 使用本地配置信息

Glossary (术语表)

References (参考文献)

快速参考

DNS消息格式

    +---------------------+
| Header | 12 bytes
+---------------------+
| Question | 变长
+---------------------+
| Answer | 变长
+---------------------+
| Authority | 变长
+---------------------+
| Additional | 变长
+---------------------+

DNS头部格式 (12字节)

                                    1  1  1  1  1  1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z | RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

常见RR类型

TYPE说明
A1主机地址
NS2权威名称服务器
CNAME5规范名称 (别名)
SOA6授权起始
PTR12域名指针
MX15邮件交换
TXT16文本字符串
AAAA28IPv6地址 (RFC 3596)

响应代码 (RCODE)

名称说明
0NOERROR无错误
1FORMERR格式错误
2SERVFAIL服务器失败
3NXDOMAIN名称不存在
4NOTIMP未实现
5REFUSED拒绝

大小限制

项目限制说明
标签63字节单个标签最大长度
域名255字节完整域名最大长度
UDP消息512字节默认UDP消息大小
TCP消息65535字节TCP消息最大大小
TTL2^31-1秒最大生存时间

与RFC 1034的关系

RFC 1034RFC 1035
概念和理论实现和协议
域名空间结构消息格式
名称服务器功能名称服务器实现
解析器概念解析器实现
区域管理区域文件格式

实现要点

必须实现 (MUST)

  • ✅ 标准查询和响应
  • ✅ A, NS, CNAME, SOA, PTR, MX记录
  • ✅ UDP传输 (512字节)
  • ✅ 消息压缩
  • ✅ 大小写不敏感比较

应该实现 (SHOULD)

  • ✅ TCP传输 (用于大响应)
  • ✅ 区域传输 (AXFR)
  • ✅ 缓存和TTL处理
  • ✅ 递归查询支持

可选实现 (MAY)

  • 反向查询
  • 实验性RR类型
  • 动态更新

相关RFC

  • RFC 1034: DNS概念和设施 (配套文档)
  • RFC 2181: DNS规范澄清
  • RFC 2308: DNS查询的负缓存
  • RFC 3596: IPv6的DNS扩展
  • RFC 4033-4035: DNSSEC
  • RFC 6891: EDNS(0)
  • RFC 8499: DNS术语

在线资源


配套文档: RFC 1034 - DNS概念和设施

下一章: 2. Introduction (简介)