メインコンテンツまでスキップ

RFC 1035 - ドメイン名 - 実装と仕様

ステータス: インターネット標準 (STD 13)
廃止: RFC 882, 883, 973
著者: Paul Mockapetris (ISI)
発行日: 1987年11月

概要

このRFCはドメインシステムとプロトコルの詳細を説明しており、読者が付属RFC「Domain Names - Concepts and Facilities (ドメイン名 - 概念と機能)」[RFC-1034]で議論されている概念に精通していることを前提としています。

ドメインシステムは、公式プロトコルである機能とデータ型、および実験的な機能とデータ型の混合です。ドメインシステムは意図的に拡張可能に設計されているため、公式プロトコルを超えるシステムの部分では、常に新しいデータ型と実験的動作が予想されるべきです。公式プロトコル部分には、標準クエリ (Query)、レスポンス (Response)、およびインターネットクラス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 インターネット固有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バイト
+---------------------+
| 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 (序論)