Domain IP Lookup

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

0分

変更を保存

0-5分

DNSホストが更新

TTLまで

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

TTL後

全員に新しい回答が表示

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

トラブルシューティング

DNSの変更が反映されないときの対処法

読了時間:3分

DNSの変更が反映されないように見える状況は、日々のインフラ作業で最も多いストレスの原因の1つです。その背景にある仕組み(レコードごとに有効期限を持つ分散キャッシュ)は、意識して調べない限り目に見えないためです。

故障を疑う前に順番に確認する

  1. 変更が権威側で実際に保存されたことを確認します。一般のパブリックリゾルバーではなく、ドメイン自身の権威ネームサーバーに直接問い合わせて、保存が黙って失敗していないか、プロバイダー自身のインフラ内でまだ同期されていないかを切り分けます。
  2. そのレコードの以前のTTLを確認します。たとえば86400秒(24時間)に設定されていた場合、変更の数分前に古い答えをキャッシュしたリゾルバーは、最長で丸1日、再び問い合わせてきません。
  3. ブラウザーやOSレベルのDNSキャッシュの可能性を除外します。これらは設定したリゾルバーよりも手元に近く、リゾルバーとは独立して答えを保持できます。
  4. 変更したレコードが、意図したレコードであることを確認します。ステージング用や本番以外のDNSゾーンを誤って更新してしまうミスは、意外とよくあります。
  5. 複数の観測地点から確認します。1つのリゾルバーが古い答えを示していても、ほかの場所に変更が伝播したかどうかは分かりません。

見落としやすい原因:遅れているセカンダリ(スレーブ)ネームサーバー

規模の大きなDNS構成では、実際に変更を行うプライマリ(「マスター」)ネームサーバーと、ゾーン転送によってそこから定期的にゾーンをコピーする、1台以上のセカンダリ(「スレーブ」)ネームサーバーを運用することがよくあります。転送スケジュールの設定ミス、プライマリとセカンダリ間のネットワークの問題、あるいは単に転送間隔が経過していないといった理由で、セカンダリが最新の転送をまだ取り込んでいない場合、そのセカンダリにたまたま問い合わせたリゾルバーは、プライマリが完全に最新で、すべてのリゾルバーのTTLによるキャッシュが失効していても、古い答えを受け取り続けます。単純なキャッシュに比べるとまれな原因ですが、パブリックリゾルバー同士が食い違うときだけでなく、同じドメインの権威ネームサーバー同士が食い違うときには、特に確認する価値があります。

事前に計画すれば、ほとんど避けられる

移行、プロバイダーの切り替え、切り替え作業といった計画的な変更では、1~2日前にTTLを下げておくことが、最も効果の大きい対策です。クエリ量がわずかに増える代わりに、変更が最悪で丸1日かかるところ、数分で伝播するようになります。TTLを下げ、元のTTLの期間が完全に過ぎるのを待ち、変更を行い、すべて問題ないことを確認してからTTLを元に戻します。

手元のローカルキャッシュが本当に原因のとき、それをクリアする

権威ネームサーバーと、確認したすべてのパブリックリゾルバーがすでに新しい答えで一致しているのに、特定の1台のマシンだけが古い答えを示す場合、残る容疑者はそのマシン自身のローカルキャッシュです。

プラットフォームコマンドクリアされるもの
Windowsipconfig /flushdnsOSレベルのDNSキャッシュ
macOSsudo dscacheutil -flushcacheOSレベルのDNSキャッシュ
Linux(systemd-resolved)sudo resolvectl flush-cachesOSレベルのDNSキャッシュ
Chromechrome://net-internals/#dnsブラウザー独自の別のキャッシュ

これらを試すのは、権威側がすでに正しいことを確認した後にしてください。実際のレコードがまだ更新されていないのにローカルキャッシュを消去しても、同じ古い答えの新しいコピーが得られるだけで、消去に失敗したのと見分けがつきません。

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

関連記事

検索にかかる時間の目安

1-10 msキャッシュ済み、同一ネットワーク。通常の状態
20-80 msキャッシュなし、近くのエニーキャストリゾルバー。問題なし
500 ms+常にこれほど遅いなら、何かがおかしい
トラブルシューティング

DNSの名前解決が遅いときの対処法

サイトの表示が遅い原因が、実は遅いDNS検索であることがあります。見分け方と、よくある原因、切り分けの手順を解説します。

読了時間:3分

同じドメインでも応答が変わる3つの理由

ジオルーティング

地域ごとに別のエッジサーバー

キャッシュ

TTLもキャッシュも個別

スプリットホライズン

意図的に異なる回答

トラブルシューティング

ネットワークごとにドメインの解決結果が違う理由

自宅とオフィス、スマートフォンのモバイル回線で、違うIPが返ってくることは、必ずしも不具合ではありません。実際に何が起きているのかを解説します。

読了時間:3分

4つの結果と、それぞれ異なる次の対応

NXDOMAIN名前が存在しない。再試行は無意味
TIMEOUT時間内に応答なし。一時的なことが多い
SERVFAILサーバーが処理できなかった。一時的な場合もある
REFUSEDポリシーにより拒否。障害や一時的な問題であることは稀
トラブルシューティング

DNSタイムアウトとSERVFAILの違い

どちらも名前解決の失敗に見えますが、タイムアウトとSERVFAILは原因が異なり、次に取るべき対応も変わります。両者の違いと見分け方を解説します。

読了時間:3分