図解でわかるDNSシリーズ ~第2回:DNSレコードを図解で理解する~

ネットワーク

1_DNSとは何か(第1回の振り返り)

DNS(Domain Name System)とは、インターネット上の住所であるIPアドレスと、人間が覚えやすいドメイン名を結び付けてくれるシステムになります。私たちのPCは、Webサイトにアクセスする前にURL(ドメイン名)をDNSサーバに問い合わせることで、WebサイトのIPアドレスを取得し通信を行っております。

DNS 名前解決の流れ:ブラウザ → IP を返し Web サーバへ接続
図解1_DNSを利用して通信を実施する流れ

2_DNSレコードとは?

DNSレコードとは、「ドメインにどんな情報を紐づけるか」を記載した設定情報のことです。本サイトであれば「simple-viz.com」というドメインに関する様々な情報をまとめた表のようなものです。
これまで説明してきた、ドメイン名とIPアドレスを紐づける基本的なレコード(=Aレコード)以外にも、該当のドメインに対してメールを送信したい場合に参照するレコード(=MXレコード)など様々な種類があります。

代表的な DNS レコード一覧と役割:A, AAAA, CNAME, MX, PTR,
図解2_DNSレコード一覧

では、実際に各レコードの概要をみていきましょう

2-1_A/AAAAレコード(ドメイン名 → IPアドレス)

使用する場面:Webサイトにアクセスする時

∞-CPU
∞-CPU

DNSレコードで代表的なものが、このAレコード及びAAAAレコードになります。こちらは、これまで説明したURL(ドメイン名)をIPアドレスに変換するレコードになります。 AレコードはIPv4に対応しており、AAAAレコードはIPv6に対応しております。

2-2_PTRレコード(IPアドレス → ドメイン名)

使用する場面:ログ解析でIPアドレスからドメイン名(ホスト名)を知りたいとき

∞-CPU
∞-CPU

Aレコードとは逆にIPアドレスからドメイン名(ホスト名)を知ることが出来ます。

バグ太郎
バグ太郎

どんな場面で利用されるのかがいまいちイメージが付きません・・・

∞-CPU
∞-CPU

例として社内システムを提供しているシステムサーバを取り上げますが、通常システムサーバは、アクセスログが残っておりアクセスしてきたPC等の情報が記録されています。ただし、このログは通常IPアドレスで取得しているため、社内PCに何かしらの識別子(機器番号等)が振られていたとしても、アクセス元を特定することが出来ません。そのようなケースで、このPTRレコードを活用し、IPアドレスからホスト名を取得することで、アクセス元の機器を特定できます。

逆引き(PTR)による IP→ホスト名の照合の流れとログ解析での利用例
図解3_PTRレコードの使用例

2-3_CNAMEレコード(別名の仕組み)

使用場面 : 外部サービスを自分のドメインで使いたいとき

CNAMEレコードは、別名(あだ名)を本名に結びつけるレコードになります。
イメージとしては、「simple-viz.com」に「alias.simple-viz.com」という別名をつけ、レコードとしては、「alias.simple-viz.com → simple-viz.com」の行が存在します。

バグ太郎
バグ太郎

友達ならあだ名で呼ぶ理由も分かりますが、ドメイン名(ホスト名)に別名をつける意味はあるのですか?

∞-CPU
∞-CPU

例えば、「simple-viz.com」という本サイトのドメインを利用して別のブログサービスを使用するとなった時も、「alias.simple-viz.com」のようにサブドメイン(aliasを追加)を利用することで、「simple-viz.com」のブランドを利用できます。この辺は、イメージが難しいので下記図を見ていきましょう。

CNAME の別名→本名の仕組み:alias.simple-viz.com が simple-viz.com に向く流れ
図解4_CNAMEレコードの利用の流れ

2-4_MXレコード(メール配送の流れ)

使用場面 : 該当ドメインのメールアドレスにメールを送る時

「simple-viz.com」というドメインに対してメールを送信したい場合にどこに送ったらよいか(どのメールサーバに送信したらよいか)を返してくれるレコードになります。

メール配送の流れ:送信側  が MX を問い合わせ → メールサーバ名を取得 → 配信
図解5_MXレコードを利用する流れ
バグ太郎
バグ太郎

CNAMEもMXレコードも、 最終的にAレコードを要求しているのですね

∞-CPU
∞-CPU

CNAMEもMAレコードも、それぞれ本名のホスト名及びメールサーバのホスト名を返すだけなので、それだけでは通信に必要なIPアドレスが分かりません
そのため最終的には返ってきたホスト名に対してAレコードを要求してIPアドレスを取得する必要があります

3_まとめ

バグ太郎
バグ太郎

DNSって、IPアドレスを返しているだけだと思っていたのですが、色々な情報を返しているのですね・・・

∞-CPU
∞-CPU

今回、紹介したA/AAAAレコード、PTRレコード、CNAMEレコード、MXレコード以外にも、TXTレコード、SRVレコードなど種類がありますので、気になった人は調べてみてくださいね

(参考)よくある質問

Q1
AレコードとCNAMEレコードはどう使い分ければいいの?
A1

Aレコードは「本体の住所(IPアドレス)」を直接書くときに使います。 一方、CNAMEレコードは「別名(あだ名)を本名に結びつける」ためのレコードです。

  • 本体のサーバを指したい → Aレコード
  • 別名で呼びたい/外部サービスに向けたい → CNAMEレコード

という使い分けになります。

Q2
PTRレコードは普段のWebアクセスでは使われないの?
A2

はい、普段のWeb閲覧では使われません。 PTRレコードは IPアドレス → ホスト名 を調べるための“逆引きDNS”で、 主に以下のような場面で使われます。

  • アクセスログから「どのPCがアクセスしたか」を特定したいとき
  • メールサーバが送信元の正当性を確認するとき

一般ユーザーがWebサイトを見るときには使われません。

Q3
 CNAMEを使うとURLが変わらないのはなぜ?
A3

CNAMEは「別名 → 本名」の仕組みなので、 ユーザーが入力するURL(別名)はそのまま使われます。

裏側では本名のサーバに案内されますが、 ユーザーが見るURLは変わりません。

そのため、

  • 外部サービスを自分のドメインで使いたい
  • URLを統一してブランドを保ちたい
  • CDNの裏側の変更に自動で追従したい

といった場面で非常に便利です。

コメント

タイトルとURLをコピーしました