DNSとは?名前解決の仕組み・サーバー・レコードを初心者向けに図解

当ページのリンクには広告が含まれています。
ネットワーク初級編 21/全32記事

この記事は、 「ネットワーク初級編|通信の仕組みをゼロから学ぶ」 の第21回です。

第4章では、DNS、DHCP、NAT、HTTPなど、普段のネットワーク利用を支える身近なサービスを学びます。

DNSとは?名前解決の仕組み・サーバー・レコードを初心者向けに図解

Webサイトへアクセスするとき、私たちはIPアドレスではなく、覚えやすいドメイン名を入力します。 この記事では、ドメイン名からIPアドレスを調べるDNSの役割、名前解決の流れ、キャッシュとTTL、主なDNSレコード、障害時の確認方法を図解します。

対象レベル Level 1・初級
想定読了時間 約20分
身につく成果 DNSの名前解決を順番に説明できる
前提知識 IPアドレス・Web通信の基礎
演習環境 Windowsまたはブラウザのみ

ブラウザへ https://www.example.com/ と入力しただけで、なぜ目的のWebサーバーへ接続できるのでしょうか。

ネットワーク通信で実際に宛先として使われるのはIPアドレスです。 そのため、通信を始める前に、ドメイン名に対応するIPアドレスを調べる処理が必要です。 この役割を担うのがDNSです。

この記事を読み終えるとできること

  • DNSの役割を自分の言葉で説明できる
  • 名前解決の問い合わせ順序を説明できる
  • DNSキャッシュとTTLの意味を説明できる
  • A・AAAA・CNAMEなどの主なレコードを区別できる
  • DNS障害が疑われる状況を判断できる
  • nslookupを使って名前解決を確認できる

DNSとは何か

最初に覚える定義

DNSとは、ドメイン名とIPアドレスなどの情報を対応付け、 必要な情報を問い合わせによって取得できるようにした仕組みです。

DNSは Domain Name System の略です。 初心者向けには、よく「インターネットの電話帳」と説明されます。

電話帳では人の名前から電話番号を調べます。 DNSでは、Webサイトなどの名前から、通信先を示すIPアドレスを調べます。

人が扱いやすい情報 機器が通信に使う情報
www.example.com 192.0.2.10 などのIPアドレス

DNSは、Webサイト専用の仕組みではありません。

メールの配送先、利用するDNSサーバー、サービスの所在確認、IPアドレスから名前を調べる逆引きなど、さまざまな用途で使われます。

なぜDNSが必要なのか

DNSがなくても、IPアドレスを直接入力すれば通信できる場合があります。 しかし、すべてのWebサイトやサーバーのIPアドレスを人が覚えるのは現実的ではありません。

1

人が覚えやすい

数字のIPアドレスより、意味のあるドメイン名の方が覚えやすく、入力もしやすくなります。

2

IPアドレスを変更しやすい

サーバーのIPアドレスが変わっても、DNSの登録を変更すれば、利用者は同じ名前でアクセスできます。

3

複数のサーバーを使える

1つの名前に複数のIPアドレスを登録し、複数サーバーへ通信を分散させる構成も作れます。

4

役割ごとの情報を管理できる

Web接続先だけでなく、メール配送先や権威DNSサーバーなどもDNSレコードとして管理できます。

DNSがある場合のWebアクセス

💻 利用者のPC www.example.comを入力
📖 DNS IPアドレスを回答
🗄️ Webサーバー IPアドレスを使って接続
名前を調べる処理と、Webページを取得する通信は別の処理です。

ドメイン名は階層構造になっている

DNSは、世界中の名前情報を1台のサーバーで管理しているわけではありません。 ドメイン名を階層に分け、それぞれの範囲を分担して管理しています。

たとえば www.example.com. という名前は、右側から次のように分けられます。

ルート .
トップレベルドメイン com
第2レベルドメイン example
ホスト名など www

右側ほど上位の階層

ドメイン名は、右側から左側へ向かうほど具体的になります。 com の管理者が、その下にあるすべてのWebサーバーのIPアドレスを直接管理しているわけではありません。

上位のDNSサーバーは、目的の情報そのものではなく、次にどのDNSサーバーへ問い合わせればよいかを案内します。

末尾のドットはルートを表します。通常のブラウザ入力では省略されるため、 www.example.com と書くことがほとんどです。

FQDNとは

階層上の位置を省略せずに表した完全な名前を、FQDN(Fully Qualified Domain Name)と呼びます。

たとえば www.example.com. はFQDNです。 現場では末尾のドットを省略し、www.example.com と記載することが一般的です。

DNSで使われる4つの役割

DNSの名前解決を理解するには、問い合わせに登場する役割を分けて考えることが重要です。

1.端末側のリゾルバー

パソコンやスマートフォンのOSにある機能です。 アプリケーションから名前解決の依頼を受け、設定されたDNSサーバーへ問い合わせます。

2.キャッシュDNSサーバー

端末の代わりに必要な情報を調べ、最終的な回答を返します。 過去の回答を一定時間保存するため、再問い合わせを高速化できます。

3.ルート・TLD DNSサーバー

目的のドメインを管理する権威DNSサーバーまで、次に問い合わせる場所を案内します。

4.権威DNSサーバー

担当するドメインについて正式な情報を保持し、Aレコードなどの回答を返します。

役割 主な仕事 持っている情報
端末側リゾルバー アプリケーションから依頼を受けてDNS問い合わせを行う 端末のキャッシュ、DNSサーバー設定など
キャッシュDNSサーバー 端末に代わって名前解決し、最終回答を返す 一時保存したDNS回答
ルート・TLD DNSサーバー 次に問い合わせる権威DNSサーバーを案内する 下位の管理先情報
権威DNSサーバー 担当ドメインの正式な情報を回答する A、AAAA、MX、NSなどのDNSレコード

初心者が混同しやすいポイント

キャッシュDNSサーバーは「代わりに調べるサーバー」、権威DNSサーバーは「担当範囲の正式な情報を持つサーバー」です。

DNSの名前解決はどのように進むのか

ここでは、利用者が www.example.com へアクセスする場合を例に、名前解決の流れを確認します。

  1. ブラウザが名前解決をOSへ依頼する ブラウザは、接続先ホスト名 www.example.com のIPアドレスを知る必要があります。
  2. 端末内の情報を確認する ブラウザやOSのキャッシュ、hostsファイルなどに利用できる情報があれば、その情報を使います。
  3. キャッシュDNSサーバーへ問い合わせる 端末に情報がなければ、設定されているDNSサーバーへ問い合わせます。
  4. キャッシュDNSサーバーがキャッシュを確認する 有効な回答が保存されていれば、外部へ問い合わせずに端末へ返します。
  5. ルートDNSサーバーへ問い合わせる キャッシュに情報がなければ、ルートDNSサーバーへ問い合わせ、com を担当するDNSサーバーの情報を得ます。
  6. comのTLD DNSサーバーへ問い合わせる TLD DNSサーバーから、example.com を担当する権威DNSサーバーの情報を得ます。
  7. 権威DNSサーバーへ問い合わせる 権威DNSサーバーから、www.example.com に対応するIPアドレスなどの正式な回答を受け取ります。
  8. 回答を端末へ返してキャッシュする キャッシュDNSサーバーは回答を一定時間保存し、端末へ返します。
  9. 取得したIPアドレスへ通信を始める 名前解決が完了した後、ブラウザは取得したIPアドレスを使ってWebサーバーとの通信を始めます。

キャッシュに情報がない場合の問い合わせイメージ

💻 端末 名前解決を依頼
🔎 キャッシュDNS 端末の代わりに調査
🌐 ルートDNS comの場所を案内
🧭 TLD DNS example.comの場所を案内
📚 権威DNS 正式なIP情報を回答
最終回答は、権威DNS → キャッシュDNS → 端末の順で返されます。

再帰問い合わせと反復問い合わせ

問い合わせ 意味 代表的な場面
再帰問い合わせ 最終的な答え、または答えが得られない結果まで返してもらう 端末からキャッシュDNSサーバーへの問い合わせ
反復問い合わせ 分かる範囲の回答、または次に問い合わせる先を教えてもらう キャッシュDNSサーバーがルート・TLD・権威DNSへたどる処理

実際には、ルートやTLDへの問い合わせが毎回発生するわけではありません。 キャッシュDNSサーバーが必要な情報を保存していれば、途中の問い合わせを省略できます。

DNSキャッシュとTTL

DNSの問い合わせを毎回ルートからやり直すと、応答に時間がかかり、各DNSサーバーの負荷も高くなります。 そこで、問い合わせ結果を一時保存するキャッシュが使われます。

キャッシュがある場合

2回目以降の名前解決

💻 端末 www.example.comを質問
キャッシュDNS 保存済みの回答を返す
回答完了 外部問い合わせを省略

TTLとは

キャッシュをいつまでも使い続けると、DNSの登録が変更された後も古い情報が残ってしまいます。 そこで、DNSレコードにはキャッシュしてよい時間を示すTTL(Time To Live)が設定されます。

TTLの状態 動作
TTLが残っている 保存済みの回答を利用できる
TTLが0になる キャッシュを期限切れとして扱い、必要に応じて再問い合わせする

DNS変更がすぐに全利用者へ反映されるとは限りません。

権威DNSの設定を変更しても、利用者側やキャッシュDNSサーバーに以前の回答が残っている間は、古いIPアドレスが使われることがあります。

「DNSの浸透待ち」とは何か

DNS変更後に「浸透するまで待つ」と表現されることがあります。 実際には、変更情報がインターネット全体へ一斉に配送されているわけではありません。

多くの場合は、各場所に残っている古いキャッシュのTTLが切れ、新しい情報が再取得されるのを待っています。

主なDNSレコード

DNSに登録される情報をリソースレコード、またはDNSレコードと呼びます。 名前からIPアドレスを調べるAレコード以外にも、目的に応じて複数の種類があります。

レコード 主な役割
A 名前とIPv4アドレスを対応付ける www.example.com → 192.0.2.10
AAAA 名前とIPv6アドレスを対応付ける www.example.com → 2001:db8::10
CNAME ある名前を別の正式名へ対応付ける shop.example.com → web.example.net
MX メールを受け取るサーバーを指定する example.com → mail.example.com
NS そのドメインを担当する権威DNSサーバーを示す example.com → ns1.example.net
TXT 文字列情報を登録する メール認証やドメイン所有確認など
PTR IPアドレスから名前を調べる逆引きに使う 192.0.2.10 → www.example.com

AレコードとCNAMEレコードの違い

レコード 回答先
A IPv4アドレス
CNAME 別のドメイン名

CNAMEで別名が返された場合、最終的なIPアドレスを得るために、その名前についてさらにAレコードやAAAAレコードを調べます。

正引きと逆引き

種類 調べる方向 主なレコード
正引き 名前からIPアドレスを調べる A、AAAA
逆引き IPアドレスから名前を調べる PTR

正引きで得た名前と、逆引きで得た名前が必ず同じになるとは限りません。 正引きと逆引きは別々の情報として管理されます。

DNSが使うポート番号

DNSは、一般的にポート番号53を使用します。 通信にはUDPとTCPの両方が使われます。

通信方式 代表的な用途
UDP 53 通常の名前解決で広く使われる
TCP 53 応答が大きい場合の再問い合わせやDNSサーバー間の一部通信などで使われる

ファイアウォールでUDP 53だけを許可すれば十分とは限りません。 DNSを正常に利用するには、構成や用途に応じてTCP 53も考慮する必要があります。

少し先の知識:暗号化DNS

通常のDNS問い合わせは、問い合わせ内容自体を暗号化しない形で送られることがあります。 DNS over HTTPS(DoH)やDNS over TLS(DoT)は、DNS問い合わせを暗号化して送るための方式です。 初級段階では「DNSには従来の53番ポート以外を使う方式もある」と知っておけば十分です。

DNSとURLの関係

DNSは、ブラウザに入力したURL全体をIPアドレスへ変換するわけではありません。 URLの中にあるホスト名の部分を名前解決します。

https://www.example.com/products/item1 └─方式─┘ └────ホスト名────┘ └──パス──┘
部分 DNSとの関係
スキーム https どの通信方式を使うかを示す
ホスト名 www.example.com DNSでIPアドレスなどを調べる
パス /products/item1 Webサーバーへ接続した後、HTTPリクエストで指定する

DNSで分かるのは、主に「どこへ接続するか」です。 「Webサーバーのどのページを取得するか」は、DNSではなくHTTPやHTTPSの処理で指定します。

DNS障害はどのように見分けるのか

DNSに問題があると、ネットワーク自体は使えるのに、ドメイン名を使った通信だけ失敗することがあります。

IPアドレスでは通信できる

IPアドレスを直接指定すると到達できるのに、名前では到達できない場合、DNSの名前解決が疑われます。

すべての名前解決が失敗する

端末に設定されたDNSサーバー、DNSサーバーへの経路、ファイアウォール、キャッシュDNSサーバーの障害などを確認します。

特定の名前だけ失敗する

対象ドメインの権威DNS設定、レコード登録、委任、期限切れキャッシュなどが原因候補です。

古いIPアドレスが返る

端末やキャッシュDNSサーバーに、TTLが残った古い回答が保存されている可能性があります。

代表的なDNSエラー

表示例 意味のイメージ 主な確認先
NXDOMAIN 問い合わせた名前が存在しないという回答 入力ミス、レコード未登録、対象ドメイン
SERVFAIL DNSサーバーが正常な回答を返せなかった 権威DNS、委任、DNSSEC、上位問い合わせ
Timeout 一定時間内に回答を受け取れなかった DNSサーバーへの経路、FW、DNSサーバー状態
古い回答 変更前の情報がキャッシュされている TTL、端末キャッシュ、キャッシュDNS

初心者向けの確認順序

  1. 入力したドメイン名に誤りがないか確認する 文字の打ち間違いや、存在しない名前への問い合わせではないかを確認します。
  2. 端末のDNSサーバー設定を確認する DNSサーバーのIPアドレスが正しく設定されているか確認します。
  3. DNSサーバーへ到達できるか確認する 経路や通信制御に問題がないか確認します。
  4. nslookupなどで名前解決を試す どのDNSサーバーが回答したか、どのIPアドレスが返ったかを確認します。
  5. 別の名前でも同じ症状か確認する すべての名前で失敗するのか、特定のドメインだけ失敗するのかを分けます。
  6. キャッシュの影響を確認する 古い回答が残っていないか、TTLや端末キャッシュを確認します。

IPアドレスを直接指定してWebサイトへ接続する確認には注意が必要です。

HTTPSの証明書や、1つのIPアドレスで複数サイトを提供する構成などにより、IPアドレスを直接入力しても正常表示されない場合があります。 「IP指定で表示できない=ネットワーク障害」とは限りません。

nslookupでDNSを確認する

Windowsでは、nslookup コマンドを使ってDNSの名前解決を確認できます。

nslookup example.com

実行結果では、主に次の項目を確認します。

  • 問い合わせに使用したDNSサーバー
  • 回答された名前
  • 回答されたIPv4またはIPv6アドレス
  • エラーやタイムアウトの有無
Server: dns.example.local Address: 192.0.2.53 Name: example.com Address: 192.0.2.10

上の例では、端末が 192.0.2.53 のDNSサーバーへ問い合わせ、 example.com に対応するIPアドレスとして 192.0.2.10 を得ています。

問い合わせ先DNSサーバーを指定する

nslookup example.com 192.0.2.53

DNSサーバーを明示すると、通常利用しているDNSサーバーと別のDNSサーバーで回答が異なるかを比較できます。

Windowsでキャッシュを確認・削除する

ipconfig /displaydns ipconfig /flushdns
  • ipconfig /displaydns:端末のDNSキャッシュを表示する
  • ipconfig /flushdns:端末のDNSキャッシュを削除する

キャッシュ削除は、古い情報が端末に残っている場合に有効です。 ただし、権威DNSの設定ミスやキャッシュDNSサーバー側の問題は、端末のキャッシュ削除だけでは解決しません。

Linuxでよく使われる確認コマンド

dig example.com host example.com resolvectl query example.com

Linuxでは環境によって使用できるコマンドが異なります。 中級編では、dig の出力から応答コード、TTL、権威情報などを読み取る方法を詳しく扱います。

DNSに関するよくある勘違い

DNSサーバーは世界に1台だけある

DNSは階層化・分散された仕組みです。ルート、TLD、各ドメインの権威DNS、キャッシュDNSなど、多数のサーバーが役割を分担しています。

DNSはURL全体をIPアドレスに変換する

DNSが名前解決するのは、URL内のホスト名です。ページのパスは、Webサーバーへ接続した後のHTTP通信で指定します。

DNSレコードを変更すれば全利用者へ即時反映される

以前の回答がキャッシュされている場合、TTLが切れるまで古い情報が使われることがあります。

DNSは必ずUDPだけを使う

通常の問い合わせではUDPが広く使われますが、応答が大きい場合などにはTCPも使われます。

pingで名前が解決できればWebサイトも必ず表示できる

名前解決に成功しても、TCP・QUIC、HTTPS、Webサーバー、ファイアウォールなど別の場所に問題があれば、Webサイトは表示できません。

DNSはWeb通信を始める前の重要な準備処理

ドメイン名で接続する場合、まず名前解決によって接続先IPアドレスなどを取得し、その後に実際の通信を開始します。

理解度チェック

記事の内容を確認するため、次の6問に答えてください。 解答を見る前に、一度自分で考えてみましょう。

問題1.DNSの主な役割として最も適切なものはどれですか。

  1. LANケーブルの断線を検出する
  2. ドメイン名とIPアドレスなどの情報を対応付ける
  3. Webページの内容を暗号化する
  4. 端末へIPアドレスを自動配布する
解答を見る
正解:B

DNSは、ドメイン名からIPアドレスなどの情報を調べるための仕組みです。 IPアドレスの自動配布は、次の記事で扱うDHCPの役割です。

問題2.端末の代わりにルートDNSや権威DNSへ問い合わせ、最終回答を返す役割はどれですか。

  1. キャッシュDNSサーバー
  2. Webサーバー
  3. DHCPサーバー
  4. デフォルトゲートウェイ
解答を見る
正解:A

キャッシュDNSサーバーは、端末の代わりに名前解決を行い、取得した回答を端末へ返します。

問題3.名前とIPv4アドレスを対応付けるDNSレコードはどれですか。

  1. MX
  2. PTR
  3. A
  4. NS
解答を見る
正解:C

Aレコードは名前とIPv4アドレスを対応付けます。IPv6アドレスにはAAAAレコードを使います。

問題4.DNSキャッシュを利用できる時間を示す値は何ですか。

解答を見る
正解:TTL

TTLはTime To Liveの略で、DNS回答をキャッシュとして保持できる時間の目安です。

問題5.DNSで一般的に使われるポート番号は何番ですか。また、UDPとTCPのどちらが使われますか。

解答を見る
正解:53番。UDPとTCPの両方が使われます。

通常の問い合わせではUDPが広く使われますが、応答が大きい場合などにはTCPも使用されます。

問題6.IPアドレスでは通信できるのに、ドメイン名では通信できません。最初に疑うべき仕組みは何ですか。

解答を見る
正解:DNSの名前解決

IP通信そのものはできていても、名前からIPアドレスを得られなければ、ドメイン名を使った通信は開始できません。

実践演習:DNS障害を切り分けよう

次の状況を読み、どこに問題がありそうか考えてください。

演習用ネットワーク

💻 PC DNS:192.168.1.53
📘 DNSサーバー 192.168.1.53
☁️ インターネット 外部DNS・Webサーバー

確認結果

C:\> ping 192.0.2.10 Reply from 192.0.2.10: bytes=32 time=20ms TTL=54 C:\> nslookup www.example.com DNS request timed out. timeout was 2 seconds. Server: UnKnown Address: 192.168.1.53

課題1.どの機能に問題がありそうですか

ここに自分の回答を書いてみましょう。
課題1の解答例を見る

DNSの名前解決に問題がある可能性が高いです。

IPアドレス 192.0.2.10 への通信は成功しているため、端末から外部までのIP通信はできています。 一方、DNSサーバー 192.168.1.53 から回答を受け取れていません。

課題2.次に確認する項目を3つ挙げてください

1.________________ 2.________________ 3.________________
課題2の解答例を見る
  • PCからDNSサーバー 192.168.1.53 へ到達できるか
  • DNSサーバーのサービスが起動しているか
  • UDP 53およびTCP 53がファイアウォールで遮断されていないか
  • PCに設定されたDNSサーバーのIPアドレスが正しいか
  • 別のDNSサーバーを指定した場合に名前解決できるか

課題3.名前解決の順番を並べ替えてください

次の項目を、キャッシュに情報がない場合の順番に並べてください。

  1. 権威DNSサーバーへ問い合わせる
  2. 端末がキャッシュDNSサーバーへ問い合わせる
  3. TLD DNSサーバーへ問い合わせる
  4. ルートDNSサーバーへ問い合わせる
  5. 取得した回答を端末へ返す
正しい順番:__ → __ → __ → __ → __
課題3の解答を見る

正解:B → D → C → A → E

端末から依頼を受けたキャッシュDNSサーバーが、ルート、TLD、権威DNSの順に問い合わせ、取得した回答を端末へ返します。

自分の言葉で説明する課題

最後に、次の質問へ自分の言葉で答えてください。

「DNSは何をしている仕組みですか?」とITを知らない人から質問されました。 30秒程度で説明してください。

DNSとは、________________________________。
説明例を見る

DNSとは、人が覚えやすいWebサイトなどの名前から、コンピューターが通信に使うIPアドレスを調べる仕組みです。 端末から問い合わせを受けたDNSサーバーは、必要に応じて複数のDNSサーバーをたどり、最終的な接続先情報を返します。

模範解答と同じ言葉でなくても問題ありません。

「名前からIPアドレスを調べる」「DNSサーバーが分担して回答する」「回答はキャッシュされる」 という要素を説明できれば、この記事の目標は達成です。

まとめ

  • DNSは、ドメイン名とIPアドレスなどの情報を対応付ける仕組み
  • ドメイン名は、ルートを頂点とする階層構造で管理される
  • 端末は通常、キャッシュDNSサーバーへ名前解決を依頼する
  • キャッシュに情報がない場合、ルート、TLD、権威DNSの順に情報をたどる
  • 権威DNSサーバーは、担当ドメインの正式なDNSレコードを保持する
  • DNS回答はキャッシュされ、TTLが切れるまで再利用される
  • AはIPv4、AAAAはIPv6、CNAMEは別名、MXはメール配送先を表す
  • DNSは通常ポート53を使い、UDPとTCPの両方が利用される
  • IPアドレスでは通信でき、名前では失敗する場合はDNS障害が疑われる
  • Windowsではnslookupやipconfigを使って名前解決とキャッシュを確認できる

DNSは、利用者が覚えやすい名前と、機器が通信に使うIPアドレスをつなぐ重要な仕組みです。 名前解決の順番を理解すると、Webサイトが表示できないときの切り分け範囲を広げられます。

次の記事:DHCPの仕組み

今回は、ドメイン名からIPアドレスを調べるDNSの仕組みを学びました。

次の記事では、パソコンやスマートフォンへIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーなどの設定を自動配布するDHCPを解説します。

DHCPのDORAと呼ばれる4段階のやり取りと、IPアドレスを一定期間貸し出すリースの考え方を理解できるようになります。

ネットワーク初級編 21/全32記事

第4章では、DNS、DHCP、NAT・NAPT、HTTP・HTTPS、有線LAN・無線LAN、サーバーのIPアドレスを順番に学びます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次