MailData

DNSをフラッシュするには?

DNSをフラッシュするには?

2023年1月26日
著者: Ahona Rudra
翻訳: 高峯 涼夏

この記事はPowerDMARCのブログ記事 How to flush DNS? の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


DNSをフラッシュする方法で最も重要なことは、いつDNSをフラッシュするべきかです。
DNSのフラッシュとは、キャッシュとリゾルバのキャッシュをクリアし、すべてのDNSレコードが最新であることを確認するプロセスです。

このプロセスの主な目的は、ネットワークのパフォーマンスを向上させ、より安定させることです。
また、ホスト名をIPアドレスに解決(名前解決)する際にも役立ちます。
この記事では、Windows、Google Chrome、Mac、Linuxなどの異なるオペレーティングシステム上でDNSをフラッシュする方法について説明します。

DNSをフラッシュするとは何か?

DNSはDomain Name Systemの略で、ホスト名をIPアドレスに変換するために使用されるプロトコルです。
ブラウザでWebサイト名を入力すると、コンピュータはDNSサーバに問い合わせて、そのドメインに対応するIPアドレスを調べます。
したがって、DNSのフラッシュとは、権威あるサーバから新しいデータを取得できるように、キャッシュ内のすべてのエントリをリセットすることを意味します。

※訳注:権威あるサーバとは、権威DNSサーバ(ホスト名に対応するIPアドレスについて、最新の情報を持つサーバ)のことです。
上記のDNSはDNSキャッシュサーバ(権威DNSサーバに、ホスト名に対応するIPアドレスを問い合わせて結果をキャッシュするサーバ)です。

DNSを手動でフラッシュするべきか?

DNSキャッシュとは、Webサイトを見つけるために関連する情報を保存する方法です。
これには、IPアドレス、ホスト名、およびその他のDNSレコードが含まれます。
ネットワークのDNSサーバは、これらのレコードをすべて記録し、必要時に更新されるようにします。

DNSキャッシュは、ユーザが何もしなくても、定期的に自身のメモリをクリアします。
キャッシュは、Webサイトの場所を特定するために必要なすべての情報を保存する以外に、Time-To-Live(生存期間…TTL)についての情報も含んでいます。

TTLは、エントリが期限切れになるまでDNSキャッシュに保存される期間です。
したがって、この期間内であれば、DNSサーバに問い合わせることなく、クエリの回答はローカルドメインのキャッシュから取得されます。
TTLの有効期限が切れると、そのレコードはキャッシュから消えます。

たとえば、あるWebサイトのTTLが3分に設定されている場合、TTLが切れた後の最初のリクエストは、ローカルキャッシュを経由せず、まずDNSサーバ経由で最新の情報を取得することになります。
したがって、DNSを手動でフラッシュすべきかは、特にPCに詳しい方であれば、その人自身の判断に委ねられます。

たとえば、インターネット接続に問題がある場合には、DNSキャッシュをフラッシュすることを検討するとよいでしょう。
これにより、Webサイトに関する古い情報が削除され、権威あるサーバからの新しいデータに置き換わることを確認できます。

DNSをフラッシュする方法(Windows 10、8、7、XP、およびVistaユーザ向け)

Windowsの最新バージョンおよび旧バージョンで、どのようにコンピュータのDNSキャッシュをクリアするかというと、以下の手順で行います。

  1. 画面の左下にあるWindowsアイコンまたはスタートボタンをクリックします。
  2. コマンドプロンプトをクリックするか、検索してください。
  3. コマンドプロンプトのコンソールを開くもう一つの方法は、Windows+RキーでRUNメニューを表示させ、cmdと入力することです。
  4. コマンドプロンプトによるコンピュータの変更を許可するかどうかを確認するポップアップウィンドウが表示された場合は、「はい」を選択します。
  5. この時点で管理者用のログイン情報を求められた場合は、システム管理者にお問い合わせください。
  6. コマンドプロンプトウィンドウで、
    ipconfig /flushdns
    と入力します。
  7. Enterキーを押します。
  8. DNSリゾルバのキャッシュがフラッシュされたことを確認するメッセージが表示されるはずです。

注意:Windows XPおよびVistaでDNSキャッシュをフラッシュする手順は、最新のMicrosoftバージョンで使用されている手順とほぼ同じです。
ただし、最後に表示されるメッセージが異なる場合や、操作を行うには管理者権限が必要な場合があります。

DNSをフラッシュする方法(Macユーザ向け)

MacでDNSキャッシュをフラッシュするのは簡単ですが、正しいコマンドを使用できるように、使用しているOS Xのバージョンを知っておく必要があります。
MacでDNSをフラッシュする方法については、次の手順に従ってください。

  1. Finderを開きます。
  2. アプリケーションをクリックします。
  3. ユーティリティフォルダを開きます。
  4. ターミナルを開きます。
  5. また、Launchpadでターミナルアプリを検索することでも見つけることができます。
  6. ターミナルウィンドウで、お使いのソフトウェアのバージョンに応じて、以下のコマンドのいずれかを入力します。
    • 10.7-10.9, 10.11-10.14 (Lion, Mountain Lion, Mavericks, El Capitan, Sierra, High Sierra, Mojave):
      sudo killall -HUP mDNSResponder
    • 10.10 (Yosemite):
      sudo discoveryutil mdnsflushcache.
    • 10.5-10.6 (Leopard, Snow Leopard):
      sudo dscacheutil -flushcache
    • 10.4 (Tiger):
      lookupd -flushcache
  7. パスワードを入力してEnterキーを押してください。
  8. MacがDNSキャッシュをフラッシュしたことを確認するウィンドウが表示されるはずです。

Google ChromeのDNSをフラッシュする方法とは?

Google Chromeはなぜ独自のDNSキャッシュを持っているのか、不思議に思ったことはありませんか?
理由は簡単です。
その方が速いからです!

DNSキャッシュはブラウジング体験の速度を大幅に向上させることができるので、持っておくことをお勧めします。
しかしながら、Webサイトが読み込まれない、またはサイトの読み込みに時間がかかるという問題がある場合、ChromeのDNSキャッシュをクリアする必要があるかもしれません。
その方法は以下の通りです。

  1. Google Chromeを起動します。
  2. ブラウザのアドレスバーに、次のアドレスを入力します。
    chrome://net-internals/#dns
  3. ホストキャッシュのクリアのボタンをクリックします。

LinuxのDNSをフラッシュする方法は?

WindowsとMac OS XコンピュータはDNSキャッシュを内蔵していますが、Linuxは内蔵していません。
しかし、Linuxの各ディストリビューションは、DNSレコードの保存に異なるDNSサービスを使用している場合があります。
この変更を有効にするには、サービスを再起動する必要がある場合があります。

※訳注:Linuxにおけるディストリビューションとは、Linuxのカーネルとソフトウェアをひとつにまとめたパッケージのようなものです。

その方法は以下の通りです。

  1. Ctrl+Alt+Tキーでターミナルウィンドウを開きます。
  2. ターミナルウィンドウで、使用しているLinuxのバージョンに応じて、次のコマンドのいずれかを入力します。
    • NCSD:
      sudo /etc/init.d/nscd restart
    • Dnsmasq:
      sudo /etc/init.d/dnsmasq restart
    • BIND: 複数のコマンドを試す必要がある場合があります。
      • sudo /etc/init.d/named restart
      • sudo rndc restart
      • sudo rndc exec
  3. パスワードの入力を求められる場合があります。
  4. サービスが停止し、再起動してからキャッシュのフラッシュが正常に行われます。

なぜDNSをフラッシュするのか?

DNSをフラッシュすることは、ネットワークで問題を引き起こしている可能性があるキャッシュ情報を消去するのに適した方法です。
特に、Webサイトやその他のオンラインサービスへのアクセスに問題がある場合、状況を正常に戻すのに役立ちます。
DNSのフラッシュ処理により、サーバのキャッシュが更新され、古い情報に基づいて誤った応答が行われるのを防ぐことで、パフォーマンスを向上させることもできます。

ここでは、DNSのフラッシュをお勧めする理由をさらに詳しく説明します。

1.DNSなりすましを防止するために

DNSなりすましやDNSキャッシュポイズニングとは、攻撃者がDNSキャッシュにアクセスして特定のドメイン名を誤って解決するように細工し、フィッシング、中間者攻撃、マルウェア配布などの不正な目的でDNSリクエストを自身のWebサイトに誘導することをいいます。

これは、DNSキャッシュをフラッシュすることによって防ぐことができます。
上記によって、代わりにキャッシュされた新しいバージョンのDNSレコードをシステムが強制的に使用するためです。
そうすることで、攻撃者によって追加された可能性のある不正なエントリがシステムのキャッシュに組み込まれることを防ぎます。

2.404エラーを修正するため

Webサイトが新しいドメインやサーバに移動した場合、コンピュータに保存されているDNS情報が更新されないことがあります。
すると、そのサイトにアクセスしようとすると404エラーが表示されるようになります。
そのページの本当のアドレスを表示するには、DNSキャッシュをフラッシュ(またはクリア)する必要があります。

3.Webサイトが読み込まれない問題を解決する

Webサイトが正しく読み込まれない場合に、DNSをフラッシュする必要性が生じます。
これは、IPアドレスに問題があるか、DNSサーバの設定が変更されたことが原因である可能性があります。
このような状況では、DNSフラッシュによって、ブラウザはDNSリゾルバを再読み込みし、WebサイトのIPアドレスを再度検索するように求められます。

4.閲覧履歴を隠す

あるWebサイトにアクセスすると、コンピュータはそのサイトに何回アクセスしたかを示すエントリをキャッシュに作成します。
このようにして、データ収集家やハッカーがDNSキャッシュを入手した場合、この情報を使って、いつ、どのWebサイトにアクセスしたかを特定することができるのです。

DNSフラッシュを行うと、キャッシュが消去され、この情報に他の人がアクセスできなくなります。
これにより、閲覧履歴の流出を防ぐことができ、ハッカーやデータ収集家から身を守ることが可能になります。

5.セキュリティの向上

DNSフラッシュは、データ収集家やハッカーから身を守るために使用できますが、コンピュータシステムのセキュリティを向上させるのにも有効です。
これは、キャッシュの情報をすべて削除すると、コンピュータが必要に応じてWebサイトを再ダウンロードするようになるため、その中に埋め込まれた悪意のあるコードが自動的に実行されなくなるからです。

まとめ

ほとんどのWebサーバは、IPアドレスのLookupを保存するためにDNSキャッシュを使用しています。
この技術の目的は、インターネットプロトコル(IP)アドレスシステムで繰り返しLookupを行わないようにして時間を節約することです。
その結果、サイトがユーザに応答する速度が向上します。

しかし、この技術が問題を引き起こすこともあります。
たとえば、IPアドレスが変更されてもDNSキャッシュが更新されない場合、サイト訪問者はシステムに残っているキャッシュされた結果を経由して、古いIPアドレスに誘導されます。
また、DNSキャッシュが適切に管理されていないと、データが外部に流出する可能性があります。

したがって、DNSをフラッシュすることは、セキュリティ上、重要なステップです。
これにより、DNSレコードに最新の情報が含まれるようになり、同時に、古いキャッシュ情報が排除されます。
その結果、機密データが流出したり、不正なIPアドレスに誘導されたりするリスクを低減することができます。

関連記事

  1. DNSレコードとは?| DNSレコードの主な8つの種類
  2. Detecting Dangling DNS Records
  3. DNSのAレコードとは?