TECHNICAL NOTES

DNSとは?

公開日  更新日

そもそもどうやってWebサイトを表示するの?

普段見ているWebサイト、このサイトを皆さんが見ている今、その手元の機械で何が起きているのか考えた事がありますか? テレビのCMや町中の広告でも、ホームページのURLが

とても単純化して言えば、今あなたは「別のパソコンの中にあるファイルを読んでいる」のです。 このサイトはcloudflare社のコンピューター上に存在するファイルで、今それをお手元の端末で読んでいます

ドメインとIPアドレス

ドメイン名は、example.com のような名前です。WebサイトのURLやメールアドレスに使われます。www.example.com のように、その下に名前を追加したものをサブドメインと呼びます。

IPアドレスは、インターネット上で通信先を指定するための番号です。たとえば 192.0.2.10 のように表します。この番号は説明用で、実際の接続先ではありません。

Webブラウザで https://www.example.com/ を開く場合、通常は最初に www.example.com に対応するIPアドレスをDNSで調べます。名前から必要な情報を取得する処理を名前解決と呼びます。Cloudflareの解説

Webサイトを開くときの流れ

端末は、設定されたDNSリゾルバーというサーバーに問い合わせます。リゾルバーは、保存済みの情報がなければ、必要なDNSサーバーをたどって答えを調べます。

図 01DNSで接続先を調べてから、Webサーバーに接続する
1. 問い合わせ端末 → DNSリゾルバーwww.example.com の
IPアドレスを調べる
2. 応答IPアドレスを取得DNSリゾルバーから端末へ
192.0.2.10 を返す
3. 接続端末 → Webサーバー取得したIPアドレスへ接続し
Webページを取得する
DNSが返すのは接続先などの情報です。Webページそのものは、DNSではなくWebサーバーから取得します。キャッシュがあれば、問い合わせの一部は省略されます。

ドメインの設定情報を保持し、正式な回答を返すサーバーを権威DNSサーバーと呼びます。リゾルバーは必要に応じて、ルートDNS、.com などを担当するDNS、権威DNSの順に問い合わせ先をたどります。Google Cloudの解説

DNSレコードとは?

DNSで公開される情報の1件ずつをレコードと呼びます。名前と種類を指定して問い合わせると、その種類の情報を取得できます。

よく使われるレコードは、次のとおりです。Cloudflareのレコード一覧

図 02名前が同じでも、レコードの種類で取得する情報が変わる
A
A・AAAA IPアドレス

AはIPv4、AAAAはIPv6のアドレスを登録します。Webサイトなどの接続先を調べるときに使います。

C
CNAME 別のドメイン名への参照

ある名前を、別の名前の別名として登録します。IPアドレスではなく、参照先のドメイン名を指定します。

MX
MX メールの受信先

そのドメイン宛てのメールを受け取るメールサーバーの名前を登録します。

TXT
TXT テキスト形式の情報

ドメインの所有確認や、SPF・DMARCなどの設定を公開します。メール認証の仕組みは、この情報を読み取って判断します。

このほか、権威DNSサーバーを示すNSなどの種類があります。すべてを覚える必要はなく、何の情報を公開するレコードなのかを区別できれば十分です。

設定変更がすぐに反映されないのはなぜ?

DNSの回答は、毎回調べ直さずに済むよう、リゾルバーや端末に一定時間保存されます。これをキャッシュと呼びます。

レコードには**TTL(Time To Live)**という、キャッシュできる時間が指定されています。たとえばTTLが3,600秒なら、取得した回答を最大1時間キャッシュできます。設定を変更しても、古い回答のキャッシュが有効な間は、利用者によって結果が異なることがあります。Cloudflareの解説

DNSとDMARCはどう関係する?

DMARCはメール認証の仕組み、DNSはその設定を公開するための仕組みです。ドメイン所有者は、_dmarc.example.com という名前にTXTレコードを登録します。受信側はその情報をDNSで取得し、メールを処理する際に参照します。

ここまでの要点

ドメインは名前、DNSはその名前の情報を調べる仕組み、レコードは公開する情報です。DMARCでは、メール認証に失敗した場合の処理方針などをTXTレコードで公開します。

参考資料

← 技術資料の一覧へ