DNSとは? 名前解決の仕組みと、名前解決できない時の確認方法

公開: 2026年6月(2026年10月更新) カテゴリ: ネットワーク入門

※この記事にはプロモーション(広告)が含まれます。広告表記の方針

Webサイトを開くとき、私たちは infravis.dev のようなドメイン名を入力します。でも、コンピュータが通信するのに必要なのはIPアドレスです。この2つを橋渡しするのが DNS。この記事では、DNSの役割・名前解決の流れ・キャッシュ・レコードの種類までを、図解でやさしく解説します。

DNSとは — インターネットの「電話帳」

DNS(Domain Name System)は、ドメイン名とIPアドレスを対応づける仕組みです。人間は「infravis.dev」のような覚えやすい名前を使い、コンピュータは「104.21.x.x」のような数字で通信します。その変換(名前解決)を担うのがDNSで、いわばインターネット全体の電話帳です。電話帳で「名前」から「電話番号」を引くように、DNSで「ドメイン名」から「IPアドレス」を引きます。

名前解決は「たらい回し」で行われる

世界中のドメインを1台のサーバーで管理するのは不可能です。そこでDNSは階層構造で役割を分担しています。名前解決は、あなたのブラウザがリゾルバ(ISPや 8.8.8.8 などの問い合わせ代行サーバー)に頼み、リゾルバが上から順に「たらい回し」で聞いていく形で進みます。

上から順に読む:infravis.dev のIPを引くまで リゾルバが階層をたどる(②〜⑦) 💻ブラウザ 🔎リゾルバ 🌐ルート 🏷️.dev TLD 🗄️権威DNS ① infravis.dev のIPは? ② .dev はどのサーバー? ③ TLDサーバーはここ ④ infravis.dev はどこ? ⑤ 権威サーバーはここ ⑥ IPアドレスは? ⑦ 104.21.x.x です ⑧ IPを返す(+保存) 青=質問 / 緑=回答 | IPを実際に返すのは最後の「権威DNS」だけ
図1: 上から時間順のシーケンス図。①⑧はブラウザ⇔リゾルバ、②〜⑦でリゾルバがルート→TLD→権威と順にたどる

登場するサーバーの役割

名前役割
フルサービスリゾルバ利用者の代わりに各サーバーへ順に問い合わせ、答えをまとめて返す(ISPや 8.8.8.8 など)
ルートDNSサーバー「.dev / .com / .jp」などTLDの担当サーバーを案内する
TLD DNSサーバーそのドメインの権威サーバーを案内する
権威DNSサーバーそのドメインの実際のIPアドレスを回答する(=正式な答え)

キャッシュとTTL — 2回目は速い

毎回ルートからたどると時間がかかります。そこでリゾルバは、一度引いた結果を一定時間おぼえておきます(キャッシュ)。次に同じドメインを引くときは、たらい回しをせずにすぐ答えを返せます。この「おぼえておく時間」を決めるのが TTL(Time To Live)です。ブラウザやOSにも小さなキャッシュがあり、まずそこを確認してから外へ問い合わせます。

逆に、この仕組みがあるために「ドメインの設定を変えてもすぐ反映されない」ことがあります。世界中のリゾルバに古い情報が残っているためで、TTLの時間が過ぎるまで待つ必要があります(俗に「DNSの浸透待ち」と呼ばれます)。

2回目は「たらい回し」をしない — キャッシュの効果 1回目 💻 ブラウザ 🔎 リゾルバ 🌐 ルート → 🏷️ TLD → 🗄️ 権威まで往復 → 階層を順にたどるので遅い 2回目 💻 ブラウザ 🔎 リゾルバ 📌 キャッシュから即答 外部へは問い合わせない → 速い おぼえておく時間 = TTL。TTLが切れると、また1回目のように階層をたどり直す
図2: 一度引いた結果はリゾルバがキャッシュ。2回目は階層をたどらず即答するので速い(おぼえておく時間がTTL)

🔎 名前解決の流れを動かして見るなら:当サイトのDNS名前解決の可視化で、ブラウザ→リゾルバ→ルート→TLD→権威サーバーへ問い合わせが進む様子を、1ステップずつ確認できます。質問と回答が色分けされて動くので、「たらい回し」のイメージがつかめます。

DNSレコードの種類(頻出)

DNSサーバーには、ドメインに関するさまざまな情報がレコードとして登録されています。代表的なものは次のとおりです。

レコード役割
Aドメイン名 → IPv4アドレス
AAAAドメイン名 → IPv6アドレス
CNAMEドメイン名 → 別のドメイン名(別名・エイリアス)
MXそのドメイン宛メールの配送先サーバー
NSそのドメインを管理する権威DNSサーバー
TXT任意の文字列(SPF・ドメイン認証などに利用)

「AレコードはIPv4、AAAAはIPv6」「メールの配送先はMX」——この対応は基本情報でも実務でもよく問われます。

名前解決をコマンドで確かめる(nslookup・Resolve-DnsName)

DNSはコマンドで簡単に確認できます。Windowsならコマンドプロンプトで nslookup を使います。

nslookup www.example.com
サーバー:  UnKnown
Address:  192.168.1.1

権限のない回答:
名前:    www.example.com
Addresses:  2001:db8::10
          203.0.113.10
表示意味
サーバー/Address実際に問い合わせたDNSサーバー。「UnKnown」は、そのDNSサーバー自身の名前が引けなかっただけで、問題ではないことが多い
権限のない回答権威サーバーではなく、キャッシュを持つDNSサーバーからの回答という意味。普段はこれで正常
Addresses引けたIPアドレス。IPv6(AAAA)とIPv4(A)の両方が出ることがある
*** ○○ が ×× を見つけられません: Non-existent domainその名前はDNSに存在しない(打ち間違い、登録がない)

よく使う指定のしかたです。

:: DNSサーバーを指定して問い合わせる(社内DNSと外部DNSで結果を比べるときに便利)
nslookup www.example.com 8.8.8.8

:: レコードの種類を指定する(MXならメールの配送先)
nslookup -type=mx example.com

PowerShellなら Resolve-DnsName が使えます。結果が表になり、TTLも見られます。

Resolve-DnsName www.example.com -Type A
Resolve-DnsName www.example.com -Server 8.8.8.8

# hostsファイルとキャッシュを使わず、DNSサーバーだけに聞く
Resolve-DnsName www.example.com -DnsOnly

Linux・Macでは dig www.example.com が定番です。同じ名前を続けて引くと2回目は速く返る——これがキャッシュの効果です。

注意:nslookupはhostsファイルもPCのキャッシュも使わず、DNSサーバーに直接聞きます。そのため「nslookupでは引けるのに、pingやブラウザでは違うIPになる(またはその逆)」ことがあります。この場合は、hostsファイルやキャッシュを疑います(後述)。

名前解決できない時の切り分け

「サイトが開かない」「サーバーにつながらない」とき、名前の問題かどうかを順に確かめます。

順番確認することコマンド
1IPアドレスなら届くか(名前の問題かどうかを切り分ける)ping 相手のIPアドレス(pingの見方)
2PCがどのDNSサーバーを使っているかipconfig /all の「DNS サーバー」、または Get-DnsClientServerAddress
3そのDNSサーバーで名前が引けるかnslookup 名前
4別のDNSサーバーなら引けるかnslookup 名前 8.8.8.8(社内の名前なら、別の社内DNSサーバーを指定)
5古い情報がPCに残っていないかipconfig /displaydns で確認、ipconfig /flushdns で削除
6hostsファイルに書かれていないかhostsファイルを開いて確認(後述)

手順2で注意したいのは、IPv4とIPv6で別々のDNSサーバーが設定されていることがある点です。家庭用ルーターでは、IPv6側のDNSサーバー(ルーター自身)が優先されることがよくあります。nslookup の「サーバー」欄で、実際にどこへ問い合わせたかを確かめてください。

症状別のよくある原因

症状よくある原因確認・対処
どの名前も引けない(IPアドレスなら通る)DNSサーバーに届かない、DNSサーバーの設定ミスipconfig /all のDNSサーバーにpingが通るか、設定が正しいか
社内の名前だけ引けない社内のDNSサーバーを使っていない、VPNが切れている、DNSサフィックスの設定DNSサーバーが社内のものか確認。短い名前は「サーバー名.社内ドメイン」の完全な名前で試す
インターネットの名前だけ引けない社内DNSサーバーから外部への転送(フォワーダー)の不具合、プロキシ環境外部DNSを指定した nslookup 名前 8.8.8.8 と比べる
DNSを変更したのに古いIPのままキャッシュ(TTLが切れるまで古い情報を使う)PCは ipconfig /flushdns。途中のDNSサーバーのキャッシュはTTLが切れるのを待つ
自分のPCだけ違うIPになるhostsファイルに書かれているhostsファイルを確認する
コマンドでは引けるのにブラウザだけ開けないブラウザのキャッシュ、プロキシ、ブラウザ独自のDNS設定(セキュアDNS)別のブラウザやシークレットウィンドウで試す。プロキシは Windowsのプロキシ3系統 を参照

PCのDNSキャッシュを確認・削除する

Windowsは、一度引いた名前をTTLの間だけ覚えています。DNSの登録を変えた直後や、引き先を切り替えたときは、PCに残った古い情報を消します。

:: いまPCが覚えている名前の一覧
ipconfig /displaydns

:: キャッシュを削除(管理者として実行)
ipconfig /flushdns

成功すると「DNS リゾルバー キャッシュは正常にフラッシュされました。」と表示されます。管理者として開いていないと「要求された操作には管理者特権が必要です。」と出るので、コマンドプロンプトを右クリックして「管理者として実行」で開き直してください。PowerShellなら Get-DnsClientCache(一覧)と Clear-DnsClientCache(削除)です。

hostsファイル — DNSより先に見られる「手書きの電話帳」

hostsファイルは、PCの中に置く名前とIPアドレスの対応表です。Windowsは名前を解決するとき、DNSサーバーに聞く前にhostsファイルを見ます。ここに書いた内容は、そのPCだけでDNSより優先されます。

OS場所
WindowsC:\Windows\System32\drivers\etc\hosts(拡張子なし)
Linux・Mac/etc/hosts

書き方は「IPアドレス、空白、名前」を1行に1つです。# から後ろはコメントになります。

# 検証用:本番切り替え前に、新しいサーバーへ向ける
203.0.113.20    www.example.com

基本情報技術者試験ではこう出る

「ドメイン名とIPアドレスを対応づけるのはどれか(→DNS)」「ルートDNS・権威DNSの役割」「再帰問い合わせと反復問い合わせの違い」などがよく問われます。レコードの種類(A・AAAA・MX・CNAME)を問う問題も頻出。名前解決は「階層をたどって、最後に権威サーバーが答える」という全体像を押さえるのが得点のコツです。

よくある質問

Q. 名前解決できない時、まず何を確認する?
A. IPアドレスでpingが通るかを確かめ、通るなら名前の問題です。次に ipconfig /all で使っているDNSサーバーを確認し、nslookup 名前 で引けるか、別のDNSサーバー(nslookup 名前 8.8.8.8)なら引けるかを比べます(切り分け手順)。

Q. DNSキャッシュをクリアするには?
A. Windowsでは、管理者として開いたコマンドプロンプトで ipconfig /flushdns を実行します。PowerShellなら Clear-DnsClientCache です。

Q. hostsファイルはどこにある?
A. Windowsは C:\Windows\System32\drivers\etc\hosts、Linux・Macは /etc/hosts です。編集には管理者権限が必要です。

Q. 8.8.8.8 とは何ですか?
A. Googleが提供するパブリックDNS(フルサービスリゾルバ)のIPアドレスです。プロバイダのDNSの代わりに使えて、高速・安定していることで知られます。1.1.1.1(Cloudflare)も同様のサービスです。

Q. DNSが使えないとどうなりますか?
A. ドメイン名からIPアドレスを引けなくなり、「サイトにアクセスできない」状態になります。IPアドレスを直接入力すれば通信自体は可能なことが多く、これは「DNSだけが不調」なのか「回線全体が不調」なのかの切り分けに使えます。

Q. DNSでセキュリティは大丈夫?
A. 従来のDNSは通信が平文で、なりすまし(DNSキャッシュポイズニング)のリスクがありました。近年は通信を暗号化する DoH(DNS over HTTPS) や DoT(DNS over TLS)、応答の正当性を検証する DNSSEC が普及しつつあります。

まとめ

DNSは「ドメイン名 ↔ IPアドレス」を変換するインターネットの電話帳。名前解決はリゾルバがルート→TLD→権威と階層をたどって答えを得る仕組みで、キャッシュ(TTL)で2回目以降を高速化しています。レコードの種類(A・AAAA・MX・CNAME)も合わせて押さえれば、試験も実務もカバーできます。

関連ページ: DNSの可視化 / IPアドレスの仕組み / グローバルIP確認 / OSI参照モデル / 記事一覧