DNSのRFC


基本的なDNSの仕様(Standards)

RFC 1034「ドメイン名−概念と機能」(日本語訳)
RFC 1035「ドメイン名−実装と仕様書」(日本語訳)
DNSといえば、この2つが標準になります。
DNSができる前のインターネットでは、ネットワーク情報センター(NIC)で管理していたHOST.TXTファイルに、 ホスト名とIPアドレスの対応を書いて、これを各ホストに配っていました。 このやり方は配布に時間がかかるなど、いろいろ問題がありました。 この解決のため、様々な方法の提案と実装されました (RFC 799, RFC 810, RFC 811, RFC 819, RFC 830, RFC 882, RFC 883, RFC 953など)。 最終的に決まったドメインネームシステムの内容を記述したのがこの2つのDNS仕様書になります。
DNSの考え方、DNSでよく使われるSOA、NS、A、PTR、MXレコードや、 in-addr.arpaドメインの定義や、DNSメッセージフォーマットや、 ネームサーバやリゾルバの動作が規定されています。

基本的なDNSの仕様(Proposed Standards)

RFC 1123 「インターネットホストへの要求条件--アプリケーションとサポート」(日本語訳)
このRFCの6.1章はインターネットホストのDNSの実装に関する要求が述べられています。

RFC 1982「シリアル番号演算」(日本語訳)
SOAレコードのシリアル番号で使われる「循環式連続空間演算」は、普通、直感的にどのようなものかわかりますが、 これをわざわざ定義しているRFCです。

RFC 2181「DNS仕様書の解釈」(日本語訳)
RFC 1034とRFC 1035は記述に誤りがあったり、 説明の省略が多くわかりにくかったりしていたため、 細かな修正や解説をしています。

RFC 1995「DNS逐次的ゾーン転送」(日本語訳)
RFC 1996「ゾーン変更の迅速な通知のためのメカニズム」 (日本語訳)
この2つは、DNSのデータを変更した際に、 プライマリサーバからセカンダリサーバへ素早くデータを転送するための方法を規定しています。 RFC 1995は、プライマリサーバからセカンダリサーバへのデータ転送の際に、 ゾーン全体を送るのではなく、差分転送を可能にしています。 RFC 1996はゾーンデータが変わった際に、プライマリサーバからセカンダリサーバへ通知する方法を規定しています。
BINDは当然の様に対応していますが、ゾーン転送その考えが異なるDNS実装は、必ずしも対応していない様です。

RFC 2136「ドメインネームシステムのダイナミック更新(DNS更新)」(日本語訳)
マスターファイル(テキストデータ)でDNSデータを設定するのではなく、 信号によって変更する方法(ダイナミック更新)を規定しています。
Windowsクライアントマシンがデフォルトでこれを行うようです。アドレスがよくかわるADSLユーザが自宅サーバを公開するためにも利用しているようです。

RFC 2671「DNS用拡張メカニズム(EDNS0)」 (日本語訳)
様々なDNSの拡張によりヘッダに余裕がなくなったため、拡張方法を提案しています。
RFC 2672「非終端DNS名リダイレクション」 (日本語訳)
CNAMEはホストの別名を定義しますが、 このRFCで定義するDNAMEはドメイン全体に対する別名を作れるようにしています。
RFC 2673「ドメイン名システム中のバイナリラベル」(日本語訳)
このRFCでは通常のASCII文字のドメイン名に加えて、 ビット列表現のドメイン名をDNSで使えるようにしています (だからといって、バイナリ表記のメールアドレスが使えるわけではありません)。

RFC 2671-RFC 2673を規定した直接の要因は、IPv6アドレスのリナンバリング (ある組織のIPアドレス全体を別のアドレスに変更する事)を簡単にしたいとの考え、 それを実現する際の道具として使おうとしての様です。リナンバリングやバイナリラベルは問題くヤメになったみたいです。

RFC 2308「DNS問合せのネガティブキャッシュ」(日本語訳)
DNS問合せの失敗時にそれを記録する(ネガティブキャッシュ)仕様を、 RFC 1034とRFC 1035の規定から変更しています。

RFC 3597「未知のDNS資源レコード(RR)タイプの取り扱い」(日本語訳)
このRFCはDNSの拡張を容易にするために、テキスト表現など、実装ソフトが未知のDNSレコードをどう扱うか規定しています。 特に新規のDNSレコードで、大文字小文字の変換と、ドメイン名圧縮を禁止しています。

DNS資源レコードタイプや特殊ドメインの追加

RFC 1886「IPバージョン6をサポートするためのDNS拡張」 (日本語訳)
RFC 2874 「IPv6アドレス集約サポートとリナンバリングへのDNS拡張」(日本語訳)
IPv6アドレスのサポートのためのRFCです。 RFC 1886はIPv6のアドレスのためのAAAAレコードと、 IPv6の逆引きドメインIP6.ARPAが規定されています。 RFC 2874ではアドレスリナンバリングに適したA6レコードが規定されています。

RFC 3363「インターネットプロトコルバージョン6(IPv6) アドレスのドメインネームシステム(DNS)での表現」(日本語訳)
RFC 3364「インターネットプロトコルバージョン6(IPv6) に対するドメインネームシステム(DNS)サポートでのトレードオフ」(日本語訳)
RFC 3363とRFC 3364でA6レコードの使用を否定し実験的扱いにしています。

RFC 3152「IP6.ARPAの委任」(日本語訳)
RFC 3172「アドレスとルーティングパラメータエリアドメイン("arpa")のための 管理ガイドライン&操作上の必要条件」(日本語訳)
RFC 3152は逆引き用のドメインをIP6.INTからIP6.ARPAに変更しています。 RFC 3172は.ARPAを一般的に特殊な用途に使うと宣言しています。

RFC 2915「名前権威ポインタ(NAPTR)DNS資源レコード」
RFC 2916「E.164番号とDNS」(日本語訳)
RFC 2915で規定するNAPTRは文字列に正規表現を適用するためのレコードです(多分)。これはRFC 3401〜RFC 3405で規定するDDDSの中に取り込まれて、RFC 2915そのものは失効しました。
RFC 2916で一般電話からIP電話への接続をサポートするためのDNSの使い方が出ていますが、 ここでNAPTRが使われています。 というより、このためにNAPTRを規定したのでしょう。

RFC 2052「サービスの場所を指定するDNS資源レコード」
RFC 2782「サービスの場所を指定するDNS資源レコード」(日本語訳)
SRVはサービス全般に使えるレコードで、サービスに対するTCPやUDPポートを 優先順位付き指定するものです(多分)。 最初はRFC 2052で定義され、RFC 2782に改版されました。実際に使ってるかどうかはわかりません。

RFC 1664「RFC 1327メールアドレスマッピングテーブルを配るために インターネットDNSの利用」
RFC 2163「グローバルアドレス変換適合MIXERの配布のための インターネットDNSの使用」
PXはITU-T X.400など他のメールシステムへのゲートウェイを定義するレコードです(多分)。 最初はRFC 1664で定義され、 RFC 2163に改版されました。 実際に使ってるかどうかはわかりません。

RFC 3454「国際化文字列の準備("文字列準備")」(日本語訳)
RFC 3490「プニコード:アプリケーションの国際化ドメイン名(IDNA)のためのユニコードブースティングコーディング」(日本語訳)
RFC 3491「名前前処理:国際化のドメイン名のための文字列前処理プロフィール(IDN)」(日本語訳)
RFC 3492「アプリケーションのドメイン名国際化(IDNA)」(日本語訳)
RFC 3454はユニコード文字列の比較の際の取り扱いを書いています。一般論ですが、特にDNSの国際化をターゲットに書かれています。 RFC 3490〜RFC 3492はDNSの国際化、ドメイン名でユニコードを使用する方法、を記述しています。 既存のDNSとの互換性を計るために、ユニコード文字列をプニコードと呼ばれるascii文字列に変換してDNSで使用します。

DNSセキュリティ

DNSセキュリティはデータの正当性を検証するための認証で、 DNSレコードがゾーンの正しいレコードか確認するためのDNSレコードへの署名と、 DNSメッセージが改ざんされていないか確認するためのメッセージ署名からなります。
RFC 4033「DNS安全の紹介と必要条件」(日本語訳)
RFC 4034「DNSセキュリティ拡張のための資源レコード」(日本語訳)
RFC 4035「DNSセキュリティ拡張のためのプロトコル修正」(日本語訳) はDNSのレコード署名の基本仕様となります。 基本仕様はRFC 2065で提案され、RFC 2535に改版され、いくもの修正がされていったものを、 全て改版し直したのがこの3つのRFCです。 これにより RFC 2535, RFC 3008, RFC 3090, RFC 3445, RFC 3655, RFC 3658, RFC 3755, RFC 3757, RFC 3845 が時代遅れになり、
RFC 3225「DNSSECリゾルバサポート表示」(日本語訳)が改版されています。

一方、メッセージ署名としてTSIGやSIG(0)があります。
RFC 2845「DNSのための秘密鍵処理認証(TSIG)」 (日本語訳)
RFC 2930「DNS(TKEY資源レコード)のための秘密鍵確立」(日本語訳)
RFC 2931「DNS問合せと処理署名(SIG(0))」 (日本語訳)
RFC 3645「DNSのための秘密鍵取引認証のための一般的なセキュリティサービスアルゴリズム(GSS−TSIG)」(日本語訳)
SIG(0)は公開鍵ベースで署名をしているのですが、スタブリゾルバ−再帰サーバ間や、 ダイナミック更新メッセージなど、1対1での通信が多い場所に適用するため、 共通鍵による署名がTSIGで規定されています。

RFC 2536「ドメインネームシステムのDSA鍵と署名」(日本語訳)
RFC 2537「ドメインネームシステムのRSA/MD5鍵と署名」(日本語訳)
RFC 2539「ドメインネームシステムでのDiffie-Hellman鍵の保管」(日本語訳)
RFC 3110「ドメインネームシステムのRSA/SHA-1署名とRSA鍵」(日本語訳)
これらのRFCはDNSSECで実際に使う個々のデジタル署名アルゴリズムの使い方は を規定しています。RFC 2537は暗号強度が弱いためRFC 3110で非推薦となっています。

RFC 2538「ドメインネームシステム(DNS)での証明書の保管」(日本語訳)
DNSに署名の証明書を登録する方法がこのRFCで定義されています。

RFC 2137「安全なドメインネームシステムダイナミック更新」
RFC 3007「安全なドメインネームシステム(DNS)ダイナミック更新」(日本語訳)
DNSセキュリティをダイナミック更新で使う方法が 最初はRFC 2137で規定されRFC3007に改版されました。

RFC 2230「DNSの鍵交換委任レコード」

RFC 2541「DNSセキュリティ運用上の考察」(日本語訳)
鍵のサイズなど、DNSSECの運用に関する記述が行われています。

DNS運用

RFC 2219「ネットワークサービスでのDNS別名の用途」(日本語訳)
www.hoge.comなど、ドメイン名とサービスを関連付けについて追認提案しています。

RFC 2317「クラスレス環境におけるIN-ADDR.ARPAの権限委譲」(日本語訳)
256個未満のIPv4アドレスを他組織に付与した場合の、逆引きドメインの委任方法を提案しています。

RFC 3172 「アドレスとルーティングパラメータエリアドメイン("arpa") のための管理ガイドライン&操作上の必要条件」(日本語訳)
アドレスの逆引き等で使うARPAドメインについて、あらためてその様な用途に使うと宣言しています。

RFC 1591「ドメインネームシステムの構造と権限の委任」(日本語訳)
RFC 2240「ドメイン名割当ての正しい基礎」
RFC 2352「ドメイン名の正しい名前の取り決め」
RFC 3071「RFC 1591のDNSの考え、ドメインのカテゴリー」 ドメインの委任やドメイン名の命名に関する事が書いてあります

RFC 2010「ルートネームサーバーの運用基準」(日本語訳)
RFC 2870 ルートネームサーバー運用条件」(日本語訳)
ルートネームサーバの運用条件が、最初はRFC 2010で記述されRFC 2870に改版されました。

RFC 1535「セキュリティ問題と広く実装されてるDNSソフトウェアの修正の提案」(日本語訳)
RFC 1536「よくあるDNS実装エラーと修正提案された修理」(日本語訳)
RFC 1537「よくあるDNSデータファイル設定誤り」(日本語訳)
RFC 1912「DNSの運用と設定においてよくある間違い」(日本語訳)

DNSの実験など

RFC 1464「任意の文字列属性を登録するドメインネームシステムの使い方」(日本語訳)
DNSの仕様書で使い方がはっきりしていない TXTレコードに使い方の提案が試みられています。

RFC 1183「新しいDNS資源レコードの定義」
RFC 1348「DNSのNSAP資源レコード」(日本語訳)
RFC 1637「DNSのNSAP資源レコード」
RFC 1706「DNSのNSAP資源レコード」
DNSに電話番号を入れる試みがされています(多分)。

RFC 1712「地理的な場所のDNSコーディング」
RFC 1876「ドメインネームシステムで場所情報表現する手段」
DNSに地理情報を入れる試みがされています(多分)。

RFC 1794「DNSでの負荷分散のサポート」
RFC 2168「ドメインネームシステムを使う一様リソース識別子の解決」
RFC 2345「ドメイン名と会社名検索」
RFC 3123「アドレスプレフィックスリストのためのDNS資源レコードタイプ(APL RR)」

主なDNS資源レコードタイプ

レコードタイプ名 命名由来(多分) 関連RFC
A host Address RFC 1034、RFC 1035
A6 ipv6 Address RFC 2874
AAAA IPv6アドレスの長さがIPv4の4倍だから RFC 1886
AXFR All zone transFeR RFC 1034、RFC 1035
CNAME Canonical NAME for an alias RFC 1034、RFC 1035
DNAME Domain NAME RFC 2672
DNSKEY そのまんま RFC 3755
DS Delegation Signer RFC 3658
HINFO Host INFOrmation RFC 1034、RFC 1035
IXFR Incremental zone transFeR RFC 1995
KEY そのまんま (RFC 2065)、RFC 2535、RFC 3445
MX Mail eXchange RFC 1034、RFC 1035
NAPTR Naming Authority PoinTeR RFC 2915、RFC 2916
NS authoritative Name Server RFC 1034、RFC 1035
NSEC Next SECure RFC 3755
NXT NeXT (RFC 2065)、RFC 2535
OPT OPTion RFC 2671
PTR domain name PoinTeR RFC 1034、RFC 1035
RRSIG Resource Record SIGnature RFC 3755
SIG SIGnature (RFC 2065)、RFC 2535
SOA Start Of a zone of Authority RFC 1034、RFC 1035、RFC 2181、RFC 1982
SRV location of SeRVices (RFC 2052)、RFC 2782
TKEY Transaction KEY RFC 2930
TSIG Transaction SIGnature RFC 2845
TXT TeXT strings RFC 1034、RFC 1035、RFC 1464

各レコードの最新情報は IANAのDNSパラメータ情報を参照してください。

ホームへ戻る
戻る戻る 記述内容について一切保障しません。リンクは自由に行ってかまいません。
Since 2002/4/30, Final update 2005/8/17