DNSキャッシュ
DNSによりFQDNのIPアドレスを問い合わせますが、回答を貰った後は暫く覚えておきます。本項ではDNSキャッシュについて説明します。
毎回問い合わせない
「IPアドレスの設定」の優先DNSサーバーの所でパソコンの代わりに優先DNSサーバーがIPアドレスの問い合わせをしてくれると書きました。
優先DNSサーバーにキャッシュ機能があった場合、一回IPアドレスを問い合わせると暫く覚えておき、同じ問い合わせがあった場合はルートサーバーに問い合わせる事なく回答します。この動作をDNSキャッシュと言い、サーバーをDNSキャッシュサーバーと言います。

又、パソコンでも同様の機能があり、キャッシュしています。このように、問い合わせを少なくして早く通信出来るようにしています。
覚えている時間は相手に決められる
DNSキャッシュには保持時間があり、この時間はttlと言います。設定しているのは例えばwww.yahoo.co.jpの場合はyahooを管理しているDNSサーバーです。
ttlを24時間にしていた場合は24時間はFQDNとIPアドレスの関係をキャッシュしていますが、24時間経つと忘れて、再度問い合わせを行います。
Windows系の場合、DNSはコマンドプロンプトでnslookupコマンドを実行して確認出来ます。「>」プロンプトになった後、確認したいドメイン名を入力するとIPアドレスが分かります。
場合によっては「権限のない回答」と出力されますが、これはDNSキャッシュを使って回答している事を示しています。
コマンドプロンプト |
---|
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コマンドで確認出来ます。
コマンドプロンプト |
---|
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コマンドを実行して削除出来ます。
コマンドプロンプト |
---|
C:\>ipconfig /flushdns Windows IP 構成 DNS リゾルバー キャッシュは正常にフラッシュされました。 |
削除すると一旦全てのDNSキャッシュがクリアされますが、通信する際は再度DNSサーバーと通信してキャッシュします。