RFC 1035 - ドメイン名 - 実装と仕様
- ステータス: Internet Standard
- 発行日: November 1987
- ストリーム: Legacy
- 廃止: RFC882, RFC883, RFC973
- エラッタ: エラッタなし
概要
このRFCはドメインシステムとプロトコルの詳細を説明しており、読者が付属RFC「Domain Names - Concepts and Facilities (ドメイン名 - 概念と機能)」[RFC-1034]で議論されている概念に精通していることを前提としています。
ドメインシステムは、公式プロトコルである機能とデータ型、および実験的な機能とデータ型の混合です。ドメインシステムは意図的に拡張可能に設計されているため、公式プロトコルを超えるシステムの部分では、常に新しいデータ型と実験的動作が予想されるべきです。公式プロトコル部分には、標準クエリ (Query)、レスポンス (Response)、およびインターネットクラスRRデータ形式(例:ホストアドレス)が含まれます。
重要性
RFC 1035はRFC 1034と共にDNSの中核仕様を形成します:
- RFC 1034: 概念と機能 (理論とアーキテクチャ)
- RFC 1035: 実装と仕様 (プロトコルと形式)
このRFCはDNSを実装するために必要なすべての技術的詳細を提供します:
- 📦 メッセージ形式とエンコーディング
- 📋 リソースレコード定義
- 📁 ゾーンファイル形式
- 🖥️ ネームサーバー実装
- 🔍 リゾルバ実装
目次
1. Status (状態)
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 (参考文献)
Technical Guide (技術ガイド)
クイックリファレンス
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 | 値 | 説明 |
|---|---|---|
| A | 1 | ホストアドレス |
| NS | 2 | 権威ネームサーバー |
| CNAME | 5 | 正規名 (エイリアス) |
| SOA | 6 | 権威の開始 |
| PTR | 12 | ドメイン名ポインタ |
| MX | 15 | メール交換 |
| TXT | 16 | テキスト文字列 |
| AAAA | 28 | IPv6アドレス (RFC 3596) |
レスポンスコード (RCODE)
| 値 | 名前 | 説明 |
|---|---|---|
| 0 | NOERROR | エラーなし |
| 1 | FORMERR | フォーマットエラー |
| 2 | SERVFAIL | サーバー障害 |
| 3 | NXDOMAIN | 名前が存在しない |
| 4 | NOTIMP | 未実装 |
| 5 | REFUSED | 拒否 |
サイズ制限
| 項目 | 制限 | 説明 |
|---|---|---|
| ラベル | 63バイト | 単一ラベルの最大長 |
| ドメイン名 | 255バイト | 完全なドメイン名の最大長 |
| UDPメッセージ | 512バイト | デフォルトUDPメッセージサイズ |
| TCPメッセージ | 65535バイト | TCPメッセージの最大サイズ |
| TTL | 2^31-1秒 | 最大生存時間 |
RFC 1034との関係
| RFC 1034 | RFC 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 (序論)
参考文献
原文メモに記載されている参照文献および書誌の完全な一覧。
[Dyer 87] S. Dyer, F. Hsu, "Hesiod", Project Athena Technical Plan - Name Service, April 1987, version 1.9.
Hesiod ネームサービスの基礎を説明する。
[IEN-116] J. Postel, "Internet Name Server", IEN-116, USC/Information Sciences Institute, August 1979.
ドメインネームシステムに取って代わられたが、未だに
使用されているネームサービス。
[Quarterman 86] J. Quarterman, and J. Hoskins, "Notable Computer Networks", Communications of the ACM, October 1986, volume 29, number 10.
[RFC-742] K. Harrenstien, "NAME/FINGER", RFC-742, Network Information Center, SRI International, December 1977.
[RFC-768] J. Postel, "User Datagram Protocol", RFC-768, USC/Information Sciences Institute, August 1980.
[RFC-793] J. Postel, "Transmission Control Protocol", RFC-793, USC/Information Sciences Institute, September 1981.
[RFC-799] D. Mills, "Internet Name Domains", RFC-799, COMSAT, September 1981.
インターネット向けのフラットな名前空間の代わりに
階層構造の導入を提案する。
[RFC-805] J. Postel, "Computer Mail Meeting Notes", RFC-805, USC/Information Sciences Institute, February 1982.
[RFC-810] E. Feinler, K. Harrenstien, Z. Su, and V. White, "DOD Internet Host Table Specification", RFC-810, Network Information Center, SRI International, March 1982.
廃止。RFC-952 を参照。
[RFC-811] K. Harrenstien, V. White, and E. Feinler, "Hostnames Server", RFC-811, Network Information Center, SRI International, March 1982.
廃止。RFC-953 を参照。
[RFC-812] K. Harrenstien, and V. White, "NICNAME/WHOIS", RFC-812, Network Information Center, SRI International, March 1982.
[RFC-819] Z. Su, and J. Postel, "The Domain Naming Convention for Internet User Applications", RFC-819, Network Information Center, SRI International, August 1982.
ドメインシステム設計の初期の考え。現在の実装は
全く異なる。
[RFC-821] J. Postel, "Simple Mail Transfer Protocol", RFC-821, USC/Information Sciences Institute, August 1980.
[RFC-830] Z. Su, "A Distributed System for Internet Name Service", RFC-830, Network Information Center, SRI International, October 1982.
ドメインシステム設計の初期の考え。現在の実装は
全く異なる。
[RFC-882] P. Mockapetris, "Domain names - Concepts and Facilities," RFC-882, USC/Information Sciences Institute, November 1983.
本メモによって置き換えられた。
[RFC-883] P. Mockapetris, "Domain names - Implementation and Specification," RFC-883, USC/Information Sciences Institute, November 1983.
本メモによって置き換えられた。
[RFC-920] J. Postel and J. Reynolds, "Domain Requirements", RFC-920, USC/Information Sciences Institute, October 1984.
トップレベルドメインの命名方式を説明する。
[RFC-952] K. Harrenstien, M. Stahl, E. Feinler, "DoD Internet Host Table Specification", RFC-952, SRI, October 1985.
DNS に置き換えられたホスト/アドレステーブル
HOSTS.TXT のフォーマットを規定する。
[RFC-953] K. Harrenstien, M. Stahl, E. Feinler, "HOSTNAME Server", RFC-953, SRI, October 1985.
この RFC は DNS によって廃止されたホスト名サーバ
プロトコルの公式仕様を含む。この TCP ベースの
プロトコルは RFC-952 形式で格納された情報にアクセスし、
ホストテーブルのコピーを取得するために使用される。
[RFC-973] P. Mockapetris, "Domain System Changes and Observations", RFC-973, USC/Information Sciences Institute, January 1986.
RFC-882 および RFC-883 への変更とその理由を説明する。
[RFC-974] C. Partridge, "Mail routing and the domain system", RFC-974, CSNET CIC BBN Labs, January 1986.
HOSTS.TXT ベースのメールアドレッシングから、ドメイン
システムで使用されるより強力な MX システムへの移行を
説明する。
[RFC-1001] NetBIOS Working Group, "Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and Methods", RFC-1001, March 1987.
この RFC と RFC-1002 は、NetBIOS ネームサービスを
DNS 上に基づかせることを提案する TCP/IP 上の NETBIOS
に関する予備設計である。
[RFC-1002] NetBIOS Working Group, "Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed Specifications", RFC-1002, March 1987.
[RFC-1010] J. Reynolds, and J. Postel, "Assigned Numbers", RFC-1010, USC/Information Sciences Institute, May 1987.
ホスト名、オペレーティングシステムなどのソケット番号と
ニーモニックを含む。
[RFC-1031] W. Lazear, "MILNET Name Domain Transition", RFC-1031, November 1987.
MILNET を DNS に移行する計画を説明する。
[RFC-1032] M. Stahl, "Establishing a Domain - Guidelines for Administrators", RFC-1032, November 1987.
NIC がトップレベルドメインを管理しサブゾーンを委譲する
ために使用する登録ポリシーを説明する。
[RFC-1033] M. Lottor, "Domain Administrators Operations Guide", RFC-1033, November 1987.
ドメイン管理者のための実践的ガイド。
[Solomon 82] M. Solomon, L. Landweber, and D. Neuhengen, "The CSNET Name Server", Computer Networks, vol 6, nr 3, July 1982.
DNS から独立した CSNET 向けネームサービスと、CSNET
における DNS の利用を説明する。
[RFC-974]. MX およびメイルルーティングのセクションを参照。
[RFC-1034]. 同伴文書:DNS – 概念と設備、セクション 2 を参照。
[RFC-1034]. セクション 4 – 実装の詳細を参照。