DNSキャッシングとそれがインターネットをより良くする方法

DNSキャッシュ(DNS リゾルバキャッシュとも呼ばれる)は、コンピュータのオペレーティングシステムによって管理される一時的なデータベースで、最近のすべての訪問の記録と、ウェブサイトやその他のインターネットドメインへのアクセスの試みを含んでいます。

言い換えれば、DNSキャッシュは最近のDNS検索のメモリに過ぎず、Webサイトを読み込む方法を見つけようとしているときにコンピュータがすぐに参照できるようになっています。

ほとんどの人は、インターネット接続の問題を解決するためにDNSキャッシュをフラッシュ/クリアすることを指すときには、「DNSキャッシュ」というフレーズだけを聞きます。 このページの下部にはさらに詳しい情報があります。

DNSキャッシュの目的

インターネットは、すべての公開ウェブサイトとそれに対応するIPアドレスのインデックスを維持するためにドメインネームシステム(DNS)に依存しています 。 あなたは電話帳のように考えることができます。

電話帳では、すべての電話番号を覚える必要はありません。これは、電話機が通信できる唯一の方法です。番号を使用します。 同様に、DNSが使用されるので、ネットワーク機器がウェブサイトと通信できる唯一の方法であるすべてのウェブサイトのIPアドレスを覚える必要がありません。

これはあなたのウェブブラウザにウェブサイトをロードするように頼んだときにカーテンの後ろで起こることです...

あなたは次のようなURLを入力します WebブラウザがルーターにIPアドレスを要求します。 ルータにはDNSサーバアドレスが格納されているため、DNSサーバにそのホスト名の IPアドレスを尋ねます。 DNSサーバーは、所属するIPアドレスを検出します あなたが求めているウェブサイトを理解することができます。その後、ブラウザは適切なページを読み込みます。

これは訪問したいすべてのウェブサイトで発生します。 ユーザがホスト名でウェブサイトを訪問するたびに、ウェブブラウザはインターネットへのリクエストを開始するが、このリクエストは、サイトの名前がIPアドレスに「変換」されるまで完了できない。

問題は、あなたのネットワークが変換/解決プロセスのスピードアップを試みるために使用できるパブリックDNSサーバーが数多くあるにもかかわらず、DNSキャッシュが入っている「電話帳」のローカルコピーを持つ方が速いことです遊びます。

DNSキャッシュは、要求がインターネットに送信される前に、最近訪問したアドレスの名前解決を処理することによって、プロセスをさらに高速化しようとします。

注:最終的にコンピュータにウェブサイトをロードさせる「ルックアップ」プロセスの各階層には、実際にDNSキャッシュがあります。 コンピュータはあなたのISPに接続するルータに到達します。これは別のISPを襲って「ルートDNSサーバ」と呼ばれるものになります。 プロセス内のそれらの各ポイントには、同じ理由でDNSキャッシュがあります。これは、名前解決プロセスを高速化することです。

DNSキャッシュの仕組み

ブラウザが要求を外部ネットワークに発行する前に、コンピュータはそれぞれを傍受し、DNSキャッシュデータベース内のドメイン名を検索します。 データベースには、最近アクセスしたすべてのドメイン名のリストと、要求が初めて行われたときにDNSによって計算されたアドレスが含まれています。

ローカルDNSキャッシュの内容は、Windowsでipconfig / displaydns コマンドを使用して表示できます。結果は次のようになります。

docs.google.com
-------------------------------------
レコード名。 。 。 。 。 :docs.google.com
レコードタイプ。 。 。 。 。 :1
有効期間 。 。 。 。 :21
データ長。 。 。 。 。 :4
セクション 。 。 。 。 。 。 。 :回答
A(ホスト)レコード。 。 。 :172.217.6.174

DNSでは、 "A"レコードは、指定されたホスト名のIPアドレスを含むDNSエントリの部分です。 DNSキャッシュには、このアドレス、要求されたWebサイト名、およびホストDNSエントリの他のいくつかのパラメータが格納されます。

DNSキャッシュポイズニングとは

権限のないドメイン名やIPアドレスがDNSキャッシュに挿入されると、DNSキャッシュは汚染さ たり汚染されたりします。

技術的な不具合や管理事故によりキャッシュが壊れることがありますが、DNSキャッシュポイズニングは通常、無効なDNSエントリをキャッシュに挿入するコンピュータウイルスやその他のネットワーク攻撃に関連しています

中毒は、クライアント要求が間違った宛先(通常は悪意のあるWebサイトや広告でいっぱいのページ)にリダイレクトされるようにします。

たとえば、上記のdocs.google.comレコードに異なる「A」レコードがある場合、ウェブブラウザにdocs.google.comを入力すると、別の場所に移動することになります。

これは人気のあるウェブサイトで大きな問題となっています。 攻撃者がGmail.comのリクエストを、たとえばGmailのように見えるが、そうでないウェブサイトにリダイレクトすると、 捕鯨のようなフィッシング攻撃に苦しむ可能性があります。

DNSのフラッシュ:それは何を行い、それを行う方法

キャッシュポイズニングやその他のインターネット接続の問題をトラブルシューティングする際に、コンピュータ管理者はDNSキャッシュをフラッシュ (つまり、クリア、リセット、または消去)したい場合があります。

DNSキャッシュをクリアするとすべてのエントリが削除されるため、無効なレコードも削除され、次回にこれらのWebサイトにアクセスしようとしたときにコンピュータがそれらのアドレスに再投入されます。 これらの新しいアドレスは、使用するネットワークが設定されているDNSサーバーから取得されます。

したがって、上記の例を使用するには、 Gmail.comレコードが被害を受け、あなたを奇妙なウェブサイトにリダイレクトする場合は、DNSを消去することが、通常のGmail.comを再び利用するための最初のステップです。

Microsoft Windowsでは、 コマンドプロンプトipconfig / flushdnsコマンドを使用してローカルDNSキャッシュをフラッシュできます。 WindowsのIP設定がDNSリゾルバキャッシュを 正常にフラッシュしたこと、またはDNSリゾルバキャッシュメッセージを正常にフラッシュしたことを確認したときに動作することはわかっています。

コマンド端末を通して、macOSユーザはdscacheutil -flushcacheを使うべきですが、実行後に "成功"というメッセージがないことを知っています。 Linuxユーザーは/etc/rc.d/init.d/nscd restartコマンドを入力する必要があります。

ルータにもDNSキャッシュがあることがあります。そのため、ルータを再起動するとトラブルシューティングが必要になることがよくあります 。 コンピュータのDNSキャッシュをフラッシュするのと同じ理由で、ルータを再起動して一時メモリに保存されているDNSエントリをクリアすることができます。