【DNSの機能(資源レコード)について】
   このHPはDNSの機能(資源レコード)についてまとめたものです。


1-1 ゾーンファイルと資源レコード

ゾーンファイは複数種類のリソースレコードで構成され、この中にゾーンの全てが詰まっている。
資源レコードは、「ゾーンファイル」というテキストファイルにまとめて格納されている。
権威サーバーは、ゾーンファイルの情報をもとに、反復クエリに応答する
ここでは、ゾーンファイルを構成するパラメータや資源レコードについて詳細を見ていく。



◆資源レコードとは

DNSを利用すると、ドメイン名、IPアドレス、DNSサーバー等に関する様々なデータを参照することができる。
そのデータは、
「レコード」という形で提供される。
レコードには、
「レコードタイプ」と呼ばれるいくつかの種類がある。その種類によって、提供されるデータが異なる。以降では、DNSを運営するうえで欠かせないレコードを紹介する。




2-1 NSレコード
NSレコードとは、ドメインを管理しているDNSサーバー、あるいは管理を委任しているDNSサーバー
記述された資源レコード。

そのドメインのゾーンを管理しているDNSサーバーを定義する。
一般的に
ゾーンを管理するDNSサーバーは、複数台の構成になるので、NSレコードも複数行必要。



■NSレコードの書式
NSレコードの書式は以下の通り。

ホスト名 TTL IN NS DNSサーバーのホスト名



■NSレコードの記述例

example.co.jp. 1D IN NS ns_1.example.co.jp.
example.co.jp. 1D IN NS ns_2.example.co.jp.

上記の例では、example.co.jpのゾーンを管理しているDNSサーバーは、「ns_1.example.co.jp.」及び
「ns_2.example.co.jp」であると定義している。
このNSレコードは、
サブドメインに対するゾーンの権威を委譲する場合に用いる。



以下の例の場合、example.co.jpのゾーン権威は、「ns_1.example.co.jp.」及び「ns_2.example.co.jp.」にあるが、
「abc.example.co.jp.」の権威に関しては、「ns.abc.co.jp.」、「ns2.abc.co.jp.」へ委譲している。
また
、「zzz.example.co.jp」のゾーン権威に関しては、「ns_1.zzz.example.co.jp.」及び「ns_2.zzz.example.co.jp.」へ委譲している。







example.co.jp.のゾーンの権威は、
jp.のゾーンの権威を持っている、jpドメインを管理しているDNSサーバーから委譲されるので、jpのゾーンファイルの中には、以下の2行のレコードが含まれていることになる。


example.co.jp 1D IN NS ns_1.example.co.jp.
example.co.jp 1D IN NS ns_2.example.co.jp.







2-2 Aレコード

資源レコードの中で、ホスト名とIPアドレスの結びつきを行う資源レコードが「Aレコード」。
資源レコードの中でも、最も頻繁に使用されるレコード。
このAレコード以外では、
値フィールドにIPアドレスは定義できない。


■Aレコードの書式

Aレコードの書式は以下の通り。
ホスト名 TTL IN A IPv4アドレス


■Aレコードの記述例

www.example.co.jp 1D IN A 192.168.0.10.

この例では、ホスト名に対し一つのIPアドレスが定義される。しかし、
以下の様に
複数のホスト名に対して一つのIPアドレスを定義する場合もある。

www.example.co.jp. 1D IN A 192.168.0.10
ftp.example.co.jp. 1D IN A 192.168.0.10
pop.example.co.jp. 1D IN A 192.168.0.10










2-3 AAAAレコード

AAAAは、ホストのIPアドレスとして、IPv6のIPアドレスを使用するときにAレコードの代わりに定義する資源レコード。


■AAAAレコードの書式
AAAAレコードの書式は以下の通り。

ホスト名 TTL IN AAAA IPv6アドレス



■AAAAレコードの記述例

例えば、ホスト名が「www.ipv6example.co.jp」のIPアドレスがIPv6で「2001:2405:2012:2354:
3014:ff6a:7bfe:6257」であった場合のAAAレコードは上記の様に記載する。

www.ipv6example.co.jp 1D IN AAAA 2001:2405:2012:2354:3014:ff6a:7bfe:6257.








2-4 CNAMEレコード

CNAMEレコードは、「別名レコード」とも言われ、ホスト名の別名を定義するレコード。
CNAMEレコードを使用することで、別名に対する正規名を指定することができる。


■CNAMEレコードの書式
別名ホスト名 TTL IN CNAME 正規名

■CNAMEレコードの記述例
pop.example.co.jp 1D IN CNAME www.example.co.jp.

CNAMEレコードを使用すると、Aレコードでつけたホスト名とは別の名前をホストに付けることができる。
正規名には、原則としてAレコードで定義されたホスト名を用いる。

以下の例では、「ftp.example.co.jp.」及び「pop.example.co.jp.」は「www.example.co.jp.」の
別名で、「www.example.co.jp」のIPアドレスは「192.168.0.10」であると定義されている。





上記の3つのホスト名は、
全て同じIPアドレスである「192.168.0.10」を指しているので、下記の設定と全く同じになる。







この例で、サーバーのIPアドレスを192.168.0.10から192.168.0.100へ変更しなければならない場合を考える。
その場合、
Aレコードで定義していた場合、以下の様にそれらの資源レコードを全て変更する必要がある。




しかし、CNAMEレコードで定義していた場合、以下の様に
「www.example.co.jp」のIPアドレスだけを変更すれば
良いので、作業を簡易化できる。












2-5 MXレコード

MXレコードは、メールアドレスに利用するドメイン名を定義するレコード。
メールの配信先ホストを「プリファレンス値」とともに定義する。
これは、
メールサーバーの優先順位を表す値で、この値が小さいほど優先順位が
高くなる。
また、設定したドメイン名のメールを受け取れるようにするための情報も、その
ゾーンの権威サーバーに設定する。

具体的には、そのドメイン名を宛先とするメールの配送先のメールサーバーのホスト名の
一覧を、優先順位を付けて設定する。
そのために使われるのが「MXレコード」。
メールサーバーのIPアドレス(A/AAAAレコード)も併せて設定する。


■MXレコードの記述例

メールアドレス用ドメイン TTL IN MX プリファレンス値 メールサーバーのホスト名


■MXレコードの記述例

example.co.jp.  1D IN MX 10 mail01.example.co.jp.
mail01.example.co.jp. 1D IN A 192.168.0.10

上記の例では、example.co.jpのメール配信先のホストは、「mail01.example.co.jp」である
定義されているので、
mail01.example.co.jp宛てのメール(メールアドレスが****@example.co.jp)である
メールは全て、mail01.example.co.jpへ配信される。
mail01.example.co.jpのAレコードは、「192.168.0.10」であると、別のレコードで定義されているので、
「192.168.0.10」のメールサーバーへは配信される。
この場合、MXレコードは1行しか定義されていないので、優先順位を表すプレファレンス値はかかわって
いないが、この様な場合でも、必ずプリファレンス値は必要








◆プレファレンス値について
プレファレンス値は、メールサーバーが1台のみの時は意味を持たない。
メールサーバーが複数台あるときに、プレファレンス値が意味を持つ。
MXレコードによって、example.co.jpに対応するメールサーバーが「mail01.example.co.jp」と
「mail02.example.co.jp」の2つが指定され、
プリファレンス値として「mail01.example.co.jp」に
「10」、「mail02.example.co.jp」に「20」が設定されていたとする。

この場合、「・・・@example.co.jp」宛てのメールは、まずプリファレンス値の小さい(優先度が高い)
メールサーバーである「mail01.example.co.jp」の方へ配送される。
ここで、正しく配送された場合はこれで終了になるが、トラブル等によって「mail01.example.co.jp」への
配送がうまくいかなかった場合、
優先順位が次に高いメールサーバーである「mail02.example.co.jp」へ配送
される。

このように、メールは通常は最もプリファレンス値が小さなメールサーバーに配信され、トラブルなどが発生した
場合には、次にプリファレンス値が小さいメールサーバーに配送されるというしくみになっている。













2-6 PTRレコード


PTRレコードは、逆引き専用のレコード。逆引き専用のドメインを、そのホストのホスト名と結びつけるためのレコードがPTRレコードで、IPアドレスからホスト名を参照する参照する資源レコード。


■PTRレコードの書式

逆引きドメイン TTL IN PTR ホスト名


■PTRレコードの記述例

10.0.168.192.in-addr.arpa.         1D   IN   PTR   www.example.co.jp
20.0.168.192.in-addr.arpa.         1D   IN   PTR   ftp.example.co.jp.
30.0.168.192.in-addr.arpa.         1D   IN   PTR   pop.example.co.jp.


上記の例では、192.168.0.10のホスト名は、「www.example.co.jp」、
192.168.0.20のホスト名は「ftp.example.co.jp」、192.168.0.30のホスト名は
「pop.example.co.jp.」であることが定義されている。
名前フィールドには、
IPアドレスではなく、arpaドメイン名を記述する。



■IPV6のPTRレコード

IPv6の逆引きにもPTRレコードを利用する。ただし、「in-addr.arpa.」ではなく、「ip6.arpa.」
で終わる逆引きドメイン名を利用する。


■IPv6のPTRレコードの記述例

6.3.1.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.4.4.0.0.1.2.1.0.b.b.f.f. ip6.arpa.  1D    IN PTR    www.example.co.jp









2-7 SOAレコード

SOAレコードは、ゾーンファイルの中で用いられるレコード。SOAレコードはそのゾーンファイルが管理するゾーンの情報を持っている。(管理者のメールアドレス、リフレッシュサーバーの時間枠、ドメインの更新履歴など)。
また、DNSのSOAレコードは、プライマリサーバーからセカンダリサーバーに送信するゾーン転送を成功させるために必要。

SOAレコードには、そのゾーンの権威をもっているDNSサーバ(マスターサーバ)の情報などが記述される。
SOAレコードには、マスターサーバのFQDN、ゾーン転送に関する設定値等、様々な値を指定する。