【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.」へ委譲している。
.png)
.png)
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」であると定義されている。
.png)
上記の3つのホスト名は、全て同じIPアドレスである「192.168.0.10」を指しているので、下記の設定と全く同じになる。
.png)
この例で、サーバーのIPアドレスを192.168.0.10から192.168.0.100へ変更しなければならない場合を考える。
その場合、Aレコードで定義していた場合、以下の様にそれらの資源レコードを全て変更する必要がある。
.png)
しかし、CNAMEレコードで定義していた場合、以下の様に「www.example.co.jp」のIPアドレスだけを変更すれば
良いので、作業を簡易化できる。
.png)
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」へ配送
される。
このように、メールは通常は最もプリファレンス値が小さなメールサーバーに配信され、トラブルなどが発生した
場合には、次にプリファレンス値が小さいメールサーバーに配送されるというしくみになっている。
.png)
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、ゾーン転送に関する設定値等、様々な値を指定する。

この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.」へ委譲している。
.png)
.png)
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」であると定義されている。
.png)
上記の3つのホスト名は、全て同じIPアドレスである「192.168.0.10」を指しているので、下記の設定と全く同じになる。
.png)
この例で、サーバーのIPアドレスを192.168.0.10から192.168.0.100へ変更しなければならない場合を考える。
その場合、Aレコードで定義していた場合、以下の様にそれらの資源レコードを全て変更する必要がある。
.png)
しかし、CNAMEレコードで定義していた場合、以下の様に「www.example.co.jp」のIPアドレスだけを変更すれば
良いので、作業を簡易化できる。
.png)
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」へ配送
される。
このように、メールは通常は最もプリファレンス値が小さなメールサーバーに配信され、トラブルなどが発生した
場合には、次にプリファレンス値が小さいメールサーバーに配送されるというしくみになっている。
.png)
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、ゾーン転送に関する設定値等、様々な値を指定する。
