DNSキャッシュ

DNSによりFQDNのIPアドレスを問い合わせますが、回答を貰った後は暫く覚えておきます。本項ではDNSキャッシュについて説明します。

毎回問い合わせない

 「IPアドレスの設定」の優先DNSサーバーの所でパソコンの代わりに優先DNSサーバーがIPアドレスの問い合わせをしてくれると書きました。

 優先DNSサーバーにキャッシュ機能があった場合、一回IPアドレスを問い合わせると暫く覚えておき、同じ問い合わせがあった場合はルートサーバーに問い合わせる事なく回答します。この動作をDNSキャッシュと言い、サーバーをDNSキャッシュサーバーと言います。

DNSキャッシュ1

 又、パソコンでも同様の機能があり、キャッシュしています。このように、問い合わせを少なくして早く通信出来るようにしています。

覚えている時間は相手に決められる

 DNSキャッシュには保持時間があり、この時間はttlと言います。設定しているのは例えばwww.yahoo.co.jpの場合はyahooを管理しているDNSサーバーです。

 ttlを24時間にしていた場合は24時間はFQDNとIPアドレスの関係をキャッシュしていますが、24時間経つと忘れて、再度問い合わせを行います。

 Windows系の場合、DNSはコマンドプロンプトでnslookupコマンドを実行して確認出来ます。「>」プロンプトになった後、確認したいドメイン名を入力するとIPアドレスが分かります。

 場合によっては「権限のない回答」と出力されますが、これはDNSキャッシュを使って回答している事を示しています。

【nslookup実行例】
コマンドプロンプト
C:\>nslookup

既定のサーバー:  xxx.yyy.zzz
Address:  192.168.1.1

> www.aaa.bbb
サーバー:  xxx.yyy.zzz
Address:  192.168.1.1

権限のない回答:
名前:    www.aaa.bbb
Address:  10.1.1.1

 又、set debugと入力した後、確認したいFQDNを入力すると様々な情報が得られますが、ttlと記載されている部分がキャッシュの保持時間になります。

 Windows系の場合、DNSキャッシュはコマンドプロンプトでipconfig /displaydnsコマンドで確認出来ます。

【ipconfig /displaydns実行例】
コマンドプロンプト
C:\>ipconfig /displaydns

Windows IP 構成

    www.aaa.bbb
    ----------------------------------------
    レコード名 . . . . . : www.aaa.bbb
    レコードの種類 . . . : 1
    Time To Live  . . . .: 3600
    データの長さ . . . . : 4
    セクション . . . . . . . : 回答
    A (ホスト) レコード. . . : 192.168.1.1

 Windows系の場合、DNSキャッシュはコマンドプロンプトでipconfig /flushdnsコマンドを実行して削除出来ます。

【ipconfig /flushdns実行例】
コマンドプロンプト
C:\>ipconfig /flushdns

Windows IP 構成

DNS リゾルバー キャッシュは正常にフラッシュされました。

 削除すると一旦全てのDNSキャッシュがクリアされますが、通信する際は再度DNSサーバーと通信してキャッシュします。

サイト関連1

基本編「DNSの確認
トラブル対応「DNS
トラブル対応「nslookup

キーマンズネット1

初級ネットワーク講座「13番目のMルート?“DNS”の仕組み徹底解説
  • このエントリーをはてなブックマークに追加