リソース レコードでは、Domain Name System(DNS; ドメイン ネーム システム)のデータ タイプが定義されます。 RFC 1035 で指定されているリソース レコードは、DNS ソフトウェアが使用できるようにバイナリ形式で内部に保存されます。 ただし、ゾーン転送の実行中には、リソース レコードはテキスト形式でネットワークに送信されます。このドキュメントでは、リソース レコードのより重要なタイプの一部を説明しています。
注: 現在では積極的にサポートされなくなったその他の多くのレコード タイプが存在します。これには、mail destination(MD)、mail forwarder(MF)、mail group(MG)、mailbox or mail list information(MINFO)、mail rename(MR)、および NULL があります。DNS レコード タイプの完全なリストは、IANA DNS Parameters から入手できます。
このドキュメントに特有の要件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
ドキュメント表記の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。
ドメインのトップ レベルでは、ネーム データベースに Start of Authority(SOA)レコードが存在する必要があります。この SOA レコードによって、ドメイン内の何が最適なデータ情報源であるかが識別されます。このレコードには DNS データベースの現在のバージョンが示されており、さらに特定の DNS サーバの動作が定義される他のさまざまなパラメータが含まれています。
ネームサーバのドメイン(サブドメイン)ごとに、必ず 1 つの SOA レコードが存在しなければなりません。 これは、IN-ADDR.ARPA のサブドメイン(逆ドメイン)に適用します。個別の SOA があるネーム スペース領域は、ゾーンと呼ばれます。
この出力には、SOA レコードの形式が示されます。この SOA の時間間隔に示される値は、RFC 1537 での推奨値です。
DOMAIN.NAME. IN SOA Hostname.Domain.Name. Mailbox.Domain.Name. ( 1 ; serial number 86400 ; refresh in seconds (24 hours) 7200 ; retry in seconds (2 hours) 2592000 ; expire in seconds (30 days) 345600) ; TTL in seconds (4 days) The SOA record for the fictional foo.edu might look something like this: FOO.EDU. IN SOA FOO.EDU. Joe_Smith.Foo.EDU. ( 910612 ; serial number 28800 ; refresh in 8 hours 7200 ; retry in 2 hours 604800 ; expire in 7 days 86400 ) ; TTL is 1 day
次のリストでは、架空の SOA レコードのデータ フィールドについて説明しています。
DOMAIN.NAME.:SOA レコードが関係しているドメイン名。最後のドット(.)に注意してください。 これ以上、名前に追加するサフィクスがないことを示します。
IN:DNS レコードのクラス。IN は、「インターネット」の短縮形です。
SOA:DNS レコードのタイプ。この例では Start of Authority です。
Hostname.Domain.Name.:「起点フィールド」。このゾーンのプライマリ ネーム サーバのホスト名、および権限に関するデータが存在するホストが示されている必要があります。
Mailbox.Domain.Name.:このドメインの(ネーム サービス)用の各メールボックス。このフィールドを使用可能な電子メール アドレスに変換するには、最初のドット(.)を @(アットマーク)に変えます。 この例では、foo.edu に関する問題があれば、Joe_Smith@foo.edu に電子メールを送ります。
Serial number:このドメインの DNS データベースの現行バージョンのシリアル番号。このシリアル番号によって、他のネームサーバはデータベースがアップデートされたことを認識します。シリアル番号は 1 から始まり増加する整数である必要があります。シリアル番号に小数点を入れないでください。混乱や思わぬ結果を防ぐためです。DNS アドミニストレータによっては、YYMMDDHHMM の形式で最終更新日をシリアル番号に使用する場合もあれば、データベースをアップデートするたびに小さい番号から順番にシリアル番号を増やしていく場合もあります。serno の前に開きカッコを挿入して Time to Live(TTL; 存続可能時間)の後に閉じカッコを入れると、SOA を複数行にまたがって記述できます。
foo.edu ドメインのセカンダリ ネームサーバが、プライマリ ネームサーバにアクセスして、プライマリの DNS データベースに変更があったかどうか、およびセカンダリがゾーン転送を行う必要があるかどうかなどをチェックする場合は、自らのシリアル番号とプライマリ ネームサーバのシリアル番号とを比較します。
セカンダリ ネームサーバのシリアル番号がプライマリ サーバよりも大きければ、ゾーン転送は行われません。また、プライマリ ネームサーバのシリアル番号が大きければ、セカンダリ ネームサーバがゾーン転送を実行し、自らの DNS データベースをアップデートします。
その他の数字フィールドは、TTL フィールドと呼ばれます。TTL フィールドでは、更新情報を入手するために、ネームサーバが相互にポーリングする頻度を制御しています(たとえば、データがキャッシュされている時間など)。
Refresh:プライマリ ネームサーバをポーリングする頻度、およびシリアル番号の変更をチェックする頻度について、セカンダリ ネームサーバに指示します。この値によって、プライマリ ネームサーバに加えられた DNS の変更が、どのくらいの時間間隔で伝送されるのかが決まります。
Retry:セカンダリ ネームサーバが Refresh 間隔でプライマリ ネームサーバに接続できなかった場合に、再接続を試みる時間間隔(秒単位)。
Expire:セカンダリ ネームサーバがプライマリ ネームサーバとの再接続に失敗した後で、プライマリ ネームサーバのデータを「期限切れ」にするまでの秒数。
TTL:ネームサーバ上の DNS データベースの全レコードに適用するデフォルト値。各 DNS リソース レコードには、TTL 値を設定できます。SOA レコードのデフォルトの TTL が使われるのは、特定のリソース レコードに明示的な値が含まれない場合です。この値は、特定のゾーンのプライマリおよびセカンダリ ネームサーバなどの権限のあるネームサーバが DNS クエリーに応答するときに提供されます。
個別にネームサーバ処理されている各サブドメインには、対応するネーム サービス(NS)レコードを少なくとも 1 つ設定する必要があります。ネームサーバでは、NS レコードを使用して互いを見つけます。
次に、NS レコードの形式を示します。
DOMAIN.NAME. IN NS Hostname.Domain.Name.
あるドメインの NS レコード値は、そのドメインのネームサーバ名です。ドメインのプライマリまたはセカンダリ ネームサーバごとに NS レコードをリストする必要があります。
アドレス レコード(A レコード)は、ホスト名に対応する IPv4 アドレスを指定します。1 つのホスト名に対して複数の IP アドレスが存在する場合も、同じ IP アドレスに対して複数のホスト名が割り当てられている場合もあります。
次に、「A」レコードの形式を示します。
Host.domain.name. IN A xx.xx.xx.xx(IPv4 address)
Host.domain.name の DNS には、telnet host.domain.name などのコマンドを実行できるように、有効な「A」レコードが設定されている必要があります(または、有効な「A」レコードを持つホスト名を示す CNAME が存在する必要があります)。
注:IPv6アドレスをサポートするDNS拡張は、RFC 1886で取り扱われています 。
ホスト情報(HINFO)レコードは、各ホストのハードウェア タイプおよびオペレーティング システム(OS)情報を示すように設定できます。HINFO の設定はオプションですが、情報が利用できると役立ちます。
ホスト名ごとに 1 つの「HINFO」レコードしか設定できません。
次に、「HINFO」レコードの形式を示します。
Host.DOMAIN.NAME. IN HINFO "CPU type" "Operating System"
注: CPU のタイプと OS フィールドは必須です。このどちらかのフィールドを空白のままにしておく場合は、" "(空白スペースを二重引用符で囲む)と指定します。 空白を空けずに二重引用符だけを指定できません("")。
注: HINFOに必要な公式マシン名は、RFC 1700に記載されています 。RFC 1700 には、/etc/services の値、イーサネット製造元のハードウェア アドレス、および HINFO のデフォルト値などをはじめとする、役立つ情報が示されています。
テキスト(TXT)レコードを使用すると、任意のテキストをホスト名に関連付けられます。完全に標準な実装ではない bind コマンドによっては、「TXT」レコードはサポートされません。ただし、完全に標準な実装ではない bind コマンドでは、同様の処理をする「UINFO」と呼ばれる似たレコード タイプがサポートされます。Cisco では、「TXT」レコード タイプの使用だけを推奨しています。
1 つのホスト名に複数の「TXT」レコードを設定できます。
次に、「TXT」レコードの形式を示します。
Host.DOMAIN.NAME. IN TXT "system manager: melvin@host.domain.name" IN TXT "melasu"
ゾーンには、1 つ以上のメール交換(MX)レコードを設定できます。これらのレコードは、特定のホストの代わりにメール メッセージを受信するホストを示します。ホスト自身が「MX」になる場合もあります。MX レコードは、同じゾーン内のホストをポイントする必要はありません。
次に、「MX」レコードの形式を示します。
Host.domain.name. IN MX nn Otherhost.domain.name. IN MX nn Otherhost2.domain.name.
「MX」優先番号 nn(値 0 ~ 65535)は、メーラがホストにメールを配送する際に「MX」レコードを選択する順番を示します。「MX」番号が低いほど、ホストの優先順位が高くなります。
Canonical Name(CNAME)レコードを使用すると、ホスト名の別名を定義できます。
次に、CNAME レコードの形式を示します。
alias.domain.name. IN CNAME otherhost.domain.name.
ここでは、Canonical Name(標準名)が otherhost.domain.name であるホストの別名を alias.domain.name と定義しています。
注:CNAMEとして存在するホスト名に、他のDNSレコードを適用することはできません。たとえば、philosophy.arizona.edu ドメインが個別にネームサーバに処理されている(つまり、独自の SOA および NS レコードがある)場合は、philosophy.arizona.edu に CNAME レコードを割り当てられません。anyuser@philosophy.arizona.edu に電子メールを送信する場合は、MX や A レコードを使用する必要があります。
ポインタ レコードは A レコードの逆であり、ホスト名に IP アドレスをマッピングするために逆マッピング ゾーン ファイルで使用されます。他の SOA レコードとは異なり、ポインタ(PTR)レコードは逆のドメイン(IN-ADDR.ARPA)だけで使用されます。1 つのインターネット アドレスには必ず 1 つの PTR レコードが存在しなければなりません。たとえば、ホスト gadzooks.poetry.arizona.edu の IP アドレスが 128.196.47.55 だとすると、その IP アドレスに対応する PTR レコードが次の形式で設定されている必要があります。
55.47.196.128.IN-ADDR.ARPA. IN PTR gadzooks.poetry.arizona.edu.
逆ドメインには主に PTR レコードと、トップに SOA および NS のレコードが含まれます。
バークレイ r-utilities では、ホスト名の認証に PTR レコードの値を使います。DNS では、ホスト名の大文字小文字の区別をしませんが、OS によってはホスト名の大文字小文字を区別する場合があることに注意してください。