【ネットワーク基礎】DNSの主要なレコード種類まとめ
はじめに
DNS(Domain Name System)は、インターネット上でドメイン名とIPアドレスを対応付ける仕組みです。DNSレコードは、この対応情報やその他の関連情報を保持するデータの単位です。
本記事では、DNSでよく使われる主要なレコード種類についてまとめていきます。
DNSの主要なレコード種類
DNSレコードは、ドメイン名に関する「住所録」や「設定メモ」のようなものです。
例えば、誰かが「example.comにアクセスしたい」と言ったとき、DNSサーバーがこの住所録を見て、
・どこにあるか(Aレコード)
・メールはどこに届くか(MXレコード)
・サブドメインは何を指すか(CNAME)
・認証情報(TXT)
などを教えてくれます。
つまり、DNSレコードとは、ドメイン名に関する「設定情報」のことを指します。言い換えれば、クライアントからの問い合わせに対して“答えるための情報そのもの”を表します。
※「どこに問い合わせればいいか?」はDNSの仕組み(階層構造の検索手順)で解決され、DNSレコードは、最終的な“回答データ”としてそこに格納されています。
以下で各レコードを見ていきましょう。
Aレコード(Address Record)
https://bytebytego.com/guides/dns-record-types-you-should-know/ より
ドメイン名をIPv4アドレスに変換するレコードです。
ウェブサイトやサーバーのIPアドレスを指定するために使用されます。
複数のAレコードを登録し、負荷分散や冗長化に活用することが可能
1つのドメインに対して、複数のIPアドレスを登録できます。
こうすることで、負荷分散や冗長化につなげることができます。
負荷分散(Load Balancing)
アクセスが集中したときに、複数のサーバーにばらけて接続されます。
これによって、各サーバーの負担が軽くなります。
ただし、これはDNSラウンドロビンと呼ばれる仕組みで、アクセス負荷の割合を細かく調整できないため、あくまでシンプルな負荷分散です。
冗長化(Redundancy)
もし (例)192.0.2.1 のサーバーが落ちても、DNSが他のアドレス(192.0.2.2 など)を返せば、
サービスが止まらずに済みます。
冗長化とは、万が一のトラブルに備えて、同じ機能を持つものを“予備”として複数用意しておくことを指します。
AAAAレコード(IPv6 Address Record)
※https://bytebytego.com/guides/dns-record-types-you-should-know/ より
ドメイン名をIPv6アドレスに変換するレコードです。
IPv6対応サイトで使用されます。
IPv4のAレコードと役割は同じです。
CNAMEレコード(Canonical Name Record)
※https://bytebytego.com/guides/dns-record-types-you-should-know/ より
あるドメイン名(エイリアス)を 別のドメイン名(正しい名前、本名)に丸ごと任せるレコードです。
サブドメインを本体のドメインにまとめたい時などに使用されます。
例えば、www.example.com
を example.com
に紐付けるときに使用します。
この場合、DNSに問い合わせが来ると、「www.example.com
は example.com
と同じため、そちらのIPを見てください」と回答します。
ブラウザなどはこの指示に従い、example.com
のIPアドレスにアクセスします。
つまり、www.example.com
の情報は一切DNSに持たず、すべて example.com
のDNS情報を参照するようになります。CNAMEのドメイン自身はDNS情報を持たず、別のドメインの情報を参照するということです。
CNAMEの対象にはAレコードやAAAAレコードが必要です。
CNAMEレコードは「別の名前」を指し示します。その「別の名前」は、最終的にIPアドレスを返す必要があります。
つまり、CNAMEが指す先のドメインには Aレコード(IPv4のIPアドレス) や AAAAレコード(IPv6のIPアドレス) が登録されていなければなりません。
その他、DNSのルールとして、同じ名前(例:www.example.com
)にCNAMEレコードと他のタイプのレコード(AやMXなど)を混在させてはいけません。
理由は、CNAMEは「その名前はすべて別の名前に委譲している」という意味であり、同じ名前で他の情報も持つと矛盾が生じてしまうためです。
CNAMEは「この名前は全部別の名前に任せます」という役割だけに専念しています。「丸投げ係」で他のことはしないとも言えます。
MXレコード(Mail Exchange Record)
※https://bytebytego.com/guides/dns-record-types-you-should-know/ より
メールサーバーのホスト名を指定するレコードです。
メールの配送先を決定するために使用されます。
数字は優先度を表し、値が小さいほど優先度が高いことを意味します。
TXTレコード(Text Record)
※https://bytebytego.com/guides/dns-record-types-you-should-know/ より
任意のテキスト情報を格納できるレコードです。
SPFやDKIM、DMARCなどのメール認証情報やドメイン所有権の証明に使用されます。
メールセキュリティ対策で多用されています。
NSレコード(Name Server Record)
※https://bytebytego.com/guides/dns-record-types-you-should-know/ より
ドメインのDNSサーバーを指定するレコードです。ドメインの権威DNSを示します。
ドメインの管理に必須で、複数設定して冗長化するのが一般的です。
PTRレコード(Pointer Record)
※https://bytebytego.com/guides/dns-record-types-you-should-know/ より
IPアドレスから対応するドメイン名を調べるためのDNSレコードです。
普通のDNS(AレコードやAAAAレコード)は「ドメイン名 → IPアドレス」を教えますが、PTRはその逆で「IPアドレス → ドメイン名」を教えます。これを逆引きDNS(Reverse DNS)と言います。
メールサーバーの送信元確認(スパム対策)などでよく使用されます。
まとめ
DNSレコードは、インターネット上の「住所録」や「連絡帳」のような役割を持ち、ドメイン名とさまざまな情報を結びつける重要な仕組みです。
それぞれのレコードは、用途や目的に応じて使い分ける必要があります。基本的な仕組みを理解しておきましょう。
最後までお読みいただき、ありがとうございました。
参考・画像引用元URL
Discussion