DNSキャッシュとは?反映されない原因と対処法

DNSキャッシュとは?反映されない原因と対処法

DNSレコードを変更したのに「自分のパソコンだけ古いサイトが表示される」「新しく追加したサブドメインが見つからない」といった状態になることがあります。原因の1つがDNSキャッシュです。

DNSキャッシュは表示を速くし、DNSサーバーへの問い合わせを減らすために必要な仕組みです。一方で、DNS設定を変更した直後には、古い情報が一時的に残る原因にもなります。

30秒でわかる結論

30秒でわかる結論

  • DNSキャッシュは、一度調べたDNS情報を一定時間保存して再利用する仕組み
  • 古いDNS情報が残る時間にはTTLが関係する
  • DNS設定を正しく変更しても、キャッシュが残っている間は旧IPアドレスなどが返る場合がある
  • 存在しないドメイン名やレコードという結果も「ネガティブキャッシュ」として保存されることがある
  • 反映されないときは、設定を何度も変更する前に「権威DNS」「キャッシュDNS」「端末」のどこに古い情報が残っているかを切り分ける
  • WindowsではDNSクライアントキャッシュを確認・削除できるが、端末側を消しても外部DNSリゾルバのキャッシュまでは消えない

DNSキャッシュとは?

DNSキャッシュとは、ドメイン名をIPアドレスなどへ変換するために一度取得したDNS情報を、一定時間保存しておく仕組みです。

たとえば「example.comのAレコードは192.0.2.10」という結果を毎回ゼロから調べるのではなく、以前に調べた結果がまだ有効なら、その情報を再利用します。

1.利用者がexample.comへアクセス
2.DNSリゾルバがDNS情報を調べる
3.取得したAレコードなどを一定時間キャッシュ
4.同じ問い合わせにはキャッシュした情報を再利用
問い合わせ回数を減らし、名前解決を効率化

DNSキャッシュは異常ではない

DNSキャッシュは、DNS全体の問い合わせ負荷を減らし、名前解決を効率化するための正常な仕組みです。「キャッシュがある=設定ミス」ではありません。

DNSキャッシュはどこに残る?

初心者が混乱しやすい点は、DNSキャッシュが1か所だけにあるわけではないことです。

場所 役割・特徴 利用者が対処できるか
パソコンなどの端末 最近取得した名前解決結果を保存する場合がある できる場合がある
家庭・社内ネットワーク ルーターや社内DNS環境などが名前解決に関与する場合がある 環境による
ISP・パブリックDNSなどのキャッシュDNS 利用者の代わりにDNSを調べ、結果を一定時間保存する 通常は利用者が自由に全削除できない
権威DNS そのドメインの正式なDNSレコードを回答する ドメイン管理者が設定を修正する

最初に覚える違い

権威DNSは正式な情報を持つ側、キャッシュDNSはその情報を調べて一時保存する側です。DNS変更が反映されないときは、この2つを分けて考えると原因を見つけやすくなります。

TTLとDNSキャッシュの関係

DNSレコードにはTTL(Time To Live)という値が設定されます。TTLは、そのDNS情報をキャッシュしてよい時間の目安を秒数で示す値です。

TTL 時間に換算
300秒5分
1,800秒30分
3,600秒1時間
21,600秒6時間
86,400秒24時間

3,600秒 ÷ 60 = 60分

たとえば変更前のAレコードがTTL 3,600秒でキャッシュされていれば、変更後もしばらく旧IPアドレスが返る可能性があります。

TTL=サイト全体の完全反映時間ではない

TTLはキャッシュ保持時間に関係する値ですが、「TTLが3,600秒なら世界中で必ず1時間以内に完全反映する」という意味ではありません。どのDNS情報がどこにキャッシュされているかで見え方が変わります。

存在しないという結果もキャッシュされる

DNSでは「Aレコードが存在する」といった正常な回答だけでなく、その名前が存在しないというNXDOMAINや、指定した種類のレコードが存在しないという結果も一定時間キャッシュされることがあります。

この仕組みは一般にネガティブキャッシュと呼ばれます。

よくある例

  1. まだ作成していない「shop.example.com」へアクセスする
  2. DNSから「存在しない」という回答が返る
  3. その結果がキャッシュされる
  4. 直後にshop.example.comのDNSレコードを追加する
  5. 権威DNSでは追加済みでも、一部環境ではしばらく「存在しない」と表示される

そのため、「新しいレコードを追加したのに見つからない」という場合は、古いIPアドレスのキャッシュだけでなく、ネガティブキャッシュも候補に入れます。

DNSを変更したのに反映されない主な原因

1.以前のDNSレコードがキャッシュされている

A・AAAA・CNAMEなどの変更前の情報がキャッシュDNSや端末に残っているケースです。設定変更自体は正しくても、TTLが切れるまで旧値が返る場合があります。

2.「存在しない」という回答がキャッシュされている

新規サブドメインや新しく追加したレコードで起こりやすい原因です。設定前に問い合わせた結果がネガティブキャッシュとして残っている可能性があります。

3.権威DNS側の設定が間違っている

キャッシュではなく、正式なDNS情報そのものが誤っているケースです。AレコードのIPアドレス間違い、CNAMEの接続先間違い、編集するDNS管理画面を取り違えている場合などがあります。

4.別のネームサーバーを参照している

ドメインに設定されているネームサーバーと、自分が編集しているDNSサービスが一致していなければ、いくらレコードを書き換えても実際の回答は変わりません。

5.自分の端末やネットワークだけ古い

スマートフォン回線では新サイトが表示されるのに自宅Wi-Fiでは旧サイトが表示される場合、利用しているDNSリゾルバや端末側キャッシュの違いが疑われます。

6.DNS以外のキャッシュをDNSと勘違いしている

DNSが新しいIPアドレスを返していても、ブラウザキャッシュ、CDN、WordPressキャッシュ、サーバーキャッシュなどに古いページが残ることがあります。

「古いページが表示される=DNSキャッシュ」とは限らない

まずDNSの回答IPアドレスが旧サーバーか新サーバーかを確認します。DNSが新IPを返しているなら、Web側のキャッシュを別に調べる必要があります。

反映されないときの確認手順

STEP 1.現在使っているネームサーバーを確認する
STEP 2.権威DNSの正式な回答が新しい値か確認する
STEP 3.普段使うDNSリゾルバの回答と比較する
STEP 4.別回線・別DNSでも確認する
STEP 5.端末側キャッシュを必要に応じて削除する
STEP 6.DNSが新値ならブラウザ・CDN・サーバー側を確認する
「設定ミス」か「キャッシュ待ち」かを切り分ける

権威DNSが新しい値を返すか確認する

最も重要なのは、正式なDNS情報を持つ権威DNSが正しい値を返しているかです。ここが古いままなら、端末のキャッシュを消しても根本解決になりません。

複数のDNSリゾルバで結果を比べる

利用しているDNSリゾルバによって、古いキャッシュが残っている時間に差が出ることがあります。自宅Wi-Fiとスマートフォン回線など、異なる環境で比較すると切り分けやすくなります。

確認するときのチェック項目

  • 現在のネームサーバーは意図したものか
  • 権威DNSのA・AAAA・CNAMEなどは正しいか
  • 変更前のTTLはいくつだったか
  • 別のDNSリゾルバでも同じ回答になるか
  • 別回線でも同じ症状が出るか
  • DNSは新IPなのに古いページだけ表示されていないか

DNSキャッシュを削除すれば直る?

端末側に古いDNS情報が残っている場合は改善することがあります。ただし、キャッシュ削除で直せる範囲には限界があります。

原因 端末のDNSキャッシュ削除
Windows端末内の古いキャッシュ 改善する可能性がある
外部DNSリゾルバの古いキャッシュ 基本的に消せない
権威DNSの設定ミス 直らない
ブラウザ・CDN・WordPressキャッシュ DNSキャッシュ削除だけでは直らない

Windowsの場合

Windowsでは、コマンドプロンプトでDNSクライアントキャッシュの内容を確認したり、削除したりできます。

確認と削除

確認:ipconfig /displaydns

削除:ipconfig /flushdns

ただし、この操作で削除されるのは自分のWindows端末側のDNSクライアントキャッシュです。ISPやパブリックDNSなど、外部のDNSリゾルバが保持しているキャッシュまで一括削除するものではありません。

Google Public DNSで古い情報が残る場合

Google Public DNSには、特定ドメインのキャッシュ更新を依頼できる公式のFlush Cacheツールがあります。ただし、すべてのDNSサービスに同じ仕組みがあるわけではありません。

何度もDNS設定を変更しない

「まだ反映されない」と焦ってAレコード、ネームサーバー、TTLなどを何度も変更すると、どの設定が正しい状態なのか分からなくなりやすくなります。

変更前に確認する

  • 現在のDNS設定を保存する
  • 変更するレコード名・種類・値を確認する
  • 変更前のTTLを確認する
  • 保存後は権威DNSの回答を確認する
  • 正しいなら不要な再変更を避ける

特にサーバー移転では、DNSキャッシュによって旧サーバーへ接続する利用者が一時的に残ることを前提に、旧環境をすぐ停止しない方が安全です。

DNSキャッシュとブラウザキャッシュの違い

項目 DNSキャッシュ ブラウザキャッシュ
保存するもの ドメイン名とIPアドレスなどの名前解決情報 HTML・CSS・画像などのWebデータ
主な症状 旧サーバーへ接続する、名前解決できない 古いデザインや画像が表示される
主な確認 DNS回答・IPアドレス 再読み込み・開発者ツールなど

切り分けのコツ

DNSが新サーバーのIPアドレスを返しているのにページ内容だけ古いなら、DNSキャッシュよりブラウザ・CDN・サーバー側キャッシュを疑います。

どんな場合にDNSキャッシュを意識すべき?

新規サイト公開 意識度 ★★★☆☆

公開直後に環境によって表示差がある場合は、DNS設定とキャッシュを確認します。

サーバー移転 意識度 ★★★★★

旧IPと新IPが混在しやすいため、変更前TTLと旧サーバーの並行稼働が重要です。

新規サブドメイン追加 意識度 ★★★★☆

追加前のNXDOMAINがキャッシュされている可能性も考えます。

通常のWordPress更新 意識度 ★☆☆☆☆

記事や画像を更新しただけなら通常はDNSキャッシュではなく、Web側キャッシュを確認します。

注意点

  • DNSキャッシュを原因と決めつけず、まず権威DNSの設定を確認する
  • 変更前のTTLを確認せず「○時間待てば必ず直る」と判断しない
  • 端末キャッシュを消しても、外部DNSリゾルバのキャッシュは残る場合がある
  • DNSが新しい値なら、ブラウザ・CDN・WordPress・サーバーキャッシュを別に確認する
  • サーバー移転中は旧サーバーを早急に停止しない
  • 会社サイトやメール運用中のドメインでは、AレコードだけでなくMX・TXTなどへの影響も確認する

教科書判定

教科書判定

「反映されない=待つ」ではなく、権威DNSとキャッシュDNSを分けて確認する

初心者は、DNSキャッシュを手当たり次第に削除するより、①権威DNSの正式な値が正しいか、②普段使うDNSリゾルバが古い値を返しているか、③端末だけ古いかの順で確認してください。

権威DNSが正しく、別のDNSでは新しい値が返るなら、キャッシュ待ちの可能性が高くなります。一方、権威DNS自体が誤っているなら待っても直りません。通常のWordPress記事更新ではDNSを触る必要はなく、DNS設定を変更したときだけ強く意識すれば十分です。

よくある質問

Q.DNSキャッシュは何時間で消えますか?

固定時間ではありません。対象レコードのTTL、変更前にどの値でキャッシュされたか、利用しているDNSリゾルバなどで変わります。たとえばTTL 3,600秒なら1時間が1つの目安ですが、サイト全体の完全反映時間を保証する数字ではありません。

Q.パソコンを再起動すればDNSキャッシュは消えますか?

端末側の状態が変わることはありますが、外部DNSリゾルバのキャッシュまで消えるわけではありません。再起動だけを反映確認方法にせず、DNSの回答そのものを確認してください。

Q.DNSキャッシュを削除しても古いサイトが出ます

権威DNSの設定が古い、外部DNSリゾルバに古い情報が残っている、またはDNS以外のブラウザ・CDN・サーバーキャッシュが残っている可能性があります。まず現在返っているIPアドレスを確認します。

Q.存在しなかったサブドメインを追加したのに開けません

追加前に問い合わせた「存在しない」という回答がネガティブキャッシュとして残っている可能性があります。権威DNSでレコードが正しく登録されていることを確認し、そのうえでキャッシュの期限を考えます。

Q.DNSキャッシュとWordPressキャッシュは同じですか?

違います。DNSキャッシュはドメイン名の名前解決情報を保存する仕組み、WordPressなどのWebキャッシュは生成済みページやデータを再利用する仕組みです。DNSが新IPを返しているなら、WordPress側のキャッシュを別に確認します。

まとめ

この記事の結論

  • DNSキャッシュは名前解決結果を一定時間保存して再利用する仕組み
  • 変更前のDNS情報が残る時間にはTTLが関係する
  • NXDOMAINなど「存在しない」という回答もキャッシュされることがある
  • 反映されないときは、権威DNS→キャッシュDNS→端末の順で切り分ける
  • 端末のキャッシュ削除だけですべてのDNSキャッシュが消えるわけではない
  • DNSが新しいIPを返しているなら、ブラウザ・CDN・WordPressなどWeb側キャッシュを確認する
  • 正しい設定を確認せずにDNSを何度も変更しない
次に読む

「TTLとは?DNS反映時間との関係をわかりやすく解説」もあわせて確認してください。