DNS キャッシュのフラッシュは、ローカルキャッシュの安全性を保ち、DNS のエラーや接続エラーのトラブルシューティングを行うための、簡単かつ効果的な方法です。
DNS キャッシュとは何ですか?どのような仕組みになっているのですか?
ユーザーがウェブブラウザのアドレスバーに URL を入力すると、その都度 DNS 検索プロセスが開始されます。再帰的リゾルバ(通常インターネットサービスプロバイダによって割り当てられます)は、ルートネームサーバーや、TLD ネームサーバー、権威ネームサーバーに IP アドレスを問い合わせる前に、必要な情報がキャッシュ内にないかどうかを確認します。
DNS キャッシュには、最近アクセスしたすべてのサイトのリソースレコード(RR)が、そのドメインの DNS レコードの TTL が切れるまで保存されます。TTL が期限切れになった後、次に同じサイトにアクセスする場合は、DNS 検索プロセスをもう一度行う必要があります。
DNS キャッシュをフラッシュする理由
DNS キャッシュによって DNS 検索プロセスが効率化され、ウェブページをより速く読み込めるようになりますが、定期的にキャッシュをクリアすると、DNS のエラーのトラブルシューティングが促されるとともに、ローカルキャッシュ上の RR が最新の状態となり、DNS キャッシュポイズニングや DNS スプーフィングを防ぐことができるので、セキュリティとパフォーマンスの両方を高めることができます。
DNS レコードの伝播
DNS レコードの更新が世界中の全サーバーに伝わるまでには 24~48 時間を要するため、キャッシュ内の情報は古くなっている可能性があります。すると、一部のサイトやアプリケーションで誤動作が起きたり、ウェブサイトが間違って表示されたり、古い画像やテキストが表示されたりする可能性があります。ウェブブラウザのキャッシュをクリアすることで解決できる場合もありますが、それだけでは必ずしも十分とは言えません。
DNS キャッシュポイズニング
なりすましの一種である DNS キャッシュポイズニングは、サイバー犯罪者が個人情報や機密情報を収集するために作成した偽サイトにユーザーが誘導されることによって起こります。DNS キャッシュはハッカーに傍受される可能性があり、傍受したハッカーはキャッシュを書き換えたり偽サイトの IP アドレスを追加したりします。キャッシュをフラッシュすれば、DNS キャッシュポイズニングを防ぐことができます。キャッシュをフラッシュすると、次にユーザーがウェブサイトにアクセスしようとしたとき、再帰的リゾルバは信頼できる回答を取得しなければならなくなりますので、偽サイトへのアクセスが回避され、攻撃を未然に防ぐことができるのです。
DNS キャッシュのクリアはどのように行うのですか?
DNS キャッシュをクリアするための手順は、使用している OS によって異なります。
Windows で DNS サーバーキャッシュをフラッシュする方法
Windows で DNS キャッシュをフラッシュするには、コマンドプロンプトまたは PowerShell を使用します。
Windows のコマンドプロンプトを使用するには、「Windows」キー+「R」キーを押し、実行コマンドを表示します。「cmd」と入力し、「OK」をクリックします。
または、タスクバーで検索アイコンをクリックし、「コマンドプロンプト」または「cmd」と入力します。検索ウィンドウの「最も一致する検索結果」の一番上にアプリが表示されます。
現在の DNS キャッシュを確認する
DNS キャッシュをクリアする前に、現在の状態を確認したい場合もあるでしょう。以下のコマンドを使うと確認できます。
コマンドプロンプト:
Windows のプロンプトから DNS キャッシュの内容を確認するには、次の手順に従います。
- CMD を開く
- コマンドラインで次のように入力:ipconfig /displaydns
- 「Enter」キーを押す
すると、現在の DNS キャッシュの内容が表示されます。
PowerShell
PowerShell で DNS キャッシュの内容を確認するには、次の手順に従います。
- PowerShell を開く
- コマンドラインで次のように入力:Get-DnsClientCache
- 「Enter」キーを押す
コマンドプロンプトで DNS キャッシュをクリアする
- CMD を開く
- コマンドラインで次のように入力:ipconfig /flushdns
- 「Enter」キーを押す
- プロセスが成功すれば、コマンドプロンプトのコンソールに確認メッセージが表示されます。
これにより、クライアント側の DNS キャッシュ(ローカルキャッシュ)をクリアすることができます。
PowerShell で DN Sキャッシュをクリアする
- PowerShell を開く
- コマンドラインで次のように入力:Clear-DnsClientCache
- 「Enter」キーを押す
Mac で DNS サーバーキャッシュをフラッシュする方法
- Spotlight 検索を利用するか、Command+スペースバーを押し、「Terminal」と入力します。
- ターミナルアプリケーションのアイコンをダブルクリックします。
- 次のように入力します:sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder
- Macのパスワードを求められた場合はパスワードを入力します。
- 「Enter」キーを押します。
DNS キャッシュのクリアはどれくらいの頻度で行えばいいですか?
DNS キャッシュのフラッシュにかかる時間は 15 分ほどで、マイナスの影響は何もありません。したがって、好きな頻度で行うことができます。エラーへの対処として必要に応じて DNS キャッシュのフラッシュを行うだけでなく、脆弱性を緩和して最適なパフォーマンスを維持するため、自分の都合に合わせて定期的にフラッシュを行うことをお勧めします。