Domain IP Lookup

TTLの実際の選び方

60-300s移行作業中、反映は速いがクエリ増加
3,600sほとんどの通常レコードに妥当な既定値
86,400sMXやNSなど、変更の少ないレコード
DNSの基礎

DNSキャッシュをフラッシュする方法

読了時間:4分

お使いのマシンは、リクエストのたびに再問い合わせをしなくて済むよう、DNSの答えを保存しています。レコードが変更されたあとも古い接続先が表示され続けるのは、この保存されたコピーが残っているためです。フラッシュするとそれが破棄され、新しい検索が強制されます。

ただし、何かをフラッシュする前に、古いキャッシュが本当に原因なのかを30秒かけて確認する価値があります。多くの場合、原因はキャッシュではないからです。

最初に、原因がキャッシュであることを確認する

自分と情報源との間にあるすべてのキャッシュを迂回して、権威ネームサーバーに直接問い合わせます。

キャッシュではなく、情報源に尋ねる
dig +short example.com @ns1.example.com
  • 権威サーバーは新しい値を返すのに、自分には古い値が見える場合は、キャッシュが原因です。フラッシュが効く可能性があります。
  • 権威サーバーも古い値を返す場合は、フラッシュしても何も変わりません。レコードが保存されていないか、ドメインが 委任されていない プロバイダーで編集してしまっています。

重要なポイント

フラッシュで消去できるのは、自分で管理しているマシンのキャッシュだけです。ISPのリゾルバーや他人のリゾルバーには手が届かず、それらはレコードのTTLに従って、それぞれのスケジュールで期限切れになります。

Windows

コマンドプロンプトまたはPowerShellを管理者として開き、次を実行します。

コマンドプロンプト(管理者)
ipconfig /flushdns

DNS リゾルバー キャッシュは正常にフラッシュされました。 と表示されるはずです。管理者権限がないと、権限エラーで失敗します。

消去する前にキャッシュの内容を確認する
ipconfig /displaydns

macOS

Big Sur以降のすべてのバージョンで、コマンドは1つです。パスワードの入力を求められます。

ターミナル
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

成功しても出力はありません。何も表示されなければ、成功したということです。両方のコマンドに意味があります。前半はディレクトリサービスのキャッシュを消去し、後半は残りを保持しているリゾルバーのデーモンを再起動します。

Linux

Linuxは、使われているリゾルバーのデーモンがディストリビューションによって異なるため、方法も異なります。まず、どれを使っているかを確認してください。

使用しているリゾルバーを特定する
systemctl is-active systemd-resolved
systemctl is-active nscd
systemctl is-active dnsmasq
systemd-resolved(Ubuntu 18.04以降、Fedora、最近のほとんどのディストリビューション)
sudo resolvectl flush-caches

# Confirm it worked:
resolvectl statistics
nscd
sudo systemctl restart nscd
dnsmasq
sudo systemctl restart dnsmasq

ブラウザー

ブラウザーは、オペレーティングシステムとは独立して、独自のDNSキャッシュを持っています。OSのキャッシュをフラッシュしても、これは消去されません。dig ではすでに新しいアドレスが表示されているのに、Chromeでは古いアドレスからサイトが読み込まれ続けることがあるのは、このためです。

ブラウザー消去方法
Chrome / Edge / Bravechrome://net-internals/#dns を開き、ホストキャッシュをクリアをクリックする
Firefoxabout:networking#dns を開き、DNSキャッシュをクリアをクリックする
SafarimacOSのキャッシュを使用するため、OSレベルでフラッシュする

ルーター

家庭用ルーターは、世帯全体のDNSをキャッシュしていることがよくあります。そのため、すべてのデバイスを1台ずつフラッシュしても、解決しない場合があります。ルーターを再起動するとキャッシュが消えます。荒っぽい方法ですが、効果的です。ファームウェアによっては、管理画面にDNSキャッシュのクリア機能が用意されています。

ネガティブキャッシュ:新しいレコードが見えない理由

通常の場所をいくらフラッシュしても直らない、意外なケースが1つあります。まったく新しいサブドメインを作成し、すぐに問い合わせると「存在しない」と返ってきます。そして、レコードは間違いなく有効になっているのに、しばらくの間その状態が続くのです。

これがネガティブキャッシュです。リゾルバーは、ある名前が存在しないと告げられると、実在する答えと同じように、その不在もキャッシュします。再度問い合わせても、キャッシュされた否定の答えが返るだけです。

その保持期間は、作成したばかりのレコードでは決まりません。ゾーンの SOA レコードの最後のフィールド、つまり最小TTLから決まります。値は300〜3600秒が一般的なので、新しく作成した名前が最大1時間も見えない状態になることがあります。

ローカルのキャッシュをフラッシュすることは、ここでも有効です。否定の答えも、ほかの答えと同様にすべての層で保存されているからです。しかし、ISPのリゾルバーは独自のコピーを保持しており、それは期限切れを待つしかありません。この保持期間がどこから来るのかは、TTL をご覧ください。

そもそもキャッシュがある理由

習慣的にフラッシュしたくなる衝動は、抑えるのが賢明です。DNSのキャッシュは、実際に大きな役割を果たしています。1回のページ読み込みでは、サイト自身、フォント、アクセス解析、画像の名前を解決します。キャッシュがなければ、それらのすべてで、1バイトも取得する前に新たな往復が必要になります。

キャッシュは、あなたを守ってもくれます。DNSプロバイダーに障害が起きても、期限切れになっていないレコードのコピーを持つリゾルバーはそれを返し続けるので、訪問者は何も気づきません。キャッシュを積極的に消去すると、この緩衝材がなくなります。フラッシュするのは、特定の古い答えを追いかけているときだけにして、日常的な衛生管理としては行わないでください。

全手順を順番に

  1. 権威サーバーのレコードを確認する

    新しい値が情報源で実際に有効になっていることを確かめます。そうでなければここで中止してください。これはキャッシュの問題ではありません。

  2. ブラウザーのキャッシュをフラッシュする

    最もよくある原因で、最も簡単に消去できます。プライベートウィンドウでテストするだけでも構いません。

  3. OSのキャッシュをフラッシュする

    上記の、お使いのプラットフォーム用のコマンドを使います。

  4. ルーターを再起動する

    同じネットワーク上のほかのデバイスでも古い値が表示される場合は、共有されている層が原因である可能性が高いです。

  5. 別のネットワークからテストする

    モバイルデータ通信は、まったく別のリゾルバーの経路を使います。そちらで正しく表示されるなら、残っている古いキャッシュはISPのものです。解消できるのは時間だけです。

すべてフラッシュしても古い答えが表示されるなら、自分では管理できないキャッシュが切れるのを待っている状態です。待ち時間が何で決まるのかは DNS伝播 で、次回その時間を短くする方法は TTL で説明しています。

ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。

よくある質問

関連記事

「伝播」の正体は、キャッシュの有効期限切れ

0分

変更を保存

0-5分

DNSホストが更新

TTLまで

古い回答がまだキャッシュ中

TTL後

全員に新しい回答が表示

どこにも何も送られず、各キャッシュがコピーの再利用をやめるだけ

DNSの基礎

DNS伝播とは?変更の反映に時間がかかる理由

実際には、何も伝播していません。待っている間に何が起きているかが分かれば、どのくらいかかるのか、どう短縮できるのかが正確に分かります。

読了時間:3分

TTLの実際の選び方

60-300s移行作業中、反映は速いがクエリ増加
3,600sほとんどの通常レコードに妥当な既定値
86,400sMXやNSなど、変更の少ないレコード
DNSの基礎

DNS TTLとは?最適な値の選び方

たった1つの数字が、変更が反映される速さと、発生するDNSトラフィックの量を左右します。意図して選ぶ方法を紹介します。

読了時間:2分

再帰的なDNS検索を1ホップずつ見る

ブラウザー

example.comを要求

リゾルバー

ISP / 1.1.1.1

ルート + TLD

.comの管理元は?

権威サーバー

正式な回答

この連鎖の各ホップはそれ自体がDNS検索で、結果はその後キャッシュされます

DNSの基礎

DNSの仕組み:ドメイン名からIPアドレスまで

インターネットの電話帳を、端から端まで追跡します。ドメインを入力してから最初のパケットがサーバーに届くまでの数ミリ秒に、何が起きているのかを解説します。

読了時間:3分