本連載の第4回で、arpキャッシュの話をしました。Windowsはarpキャッシュ以外に、IPアドレスとFQDNホスト名のキャッシュを持っています。
これはWindowsで管理しているIPアドレスとFQDN名の対応表で、「DNSリゾルバーキャッシュ」と言います。DNSサーバーに問い合わせた結果をWindowsシステムの内部に保持しておいて、外部のDNSサーバーへの問い合わせをなるべく減らす仕組みになっています。
一度通信した相手のIPアドレスとFQDN名が対応付けされ、キャッシュに格納されます。通信する際、まずDNSリゾルバーキャッシュを参照し、FQDN名に対応するIPアドレスがあるかどうかを確認します。一致するFQDN名があれば、それに対応するIPアドレスを使って通信を開始します。
DNSリゾルバーキャッシュ内に保持する有効時間は、デフォルトで86400秒(1日)です。この時間を過ぎれば、キャッシュから破棄されます。また、OSを再起動した場合にもキャッシュのデータはクリアされます。
通信できないときはキャッシュ内容を確認
変更前の古いIPアドレスで通信すると失敗します。その場合、コマンドプロンプトで以下のように実行し、DNSリゾルバーキャッシュの内容を表示して確認してみましょう(写真1)。
ipconfig /displaydns
IPアドレスとFQDN名の対応付けが間違っている場合は、コマンドプロンプトで以下のようにし、古くなった情報を削除します(写真2)。
ipconfig /flushdns
その後FQDN名でアクセスを行うと、DNSサーバーへ問い合わせを行い、正しいIPアドレスを取得してキャッシュに保持します。これで正しく通信できるようになります。
トライポッドワークス ソリューション開発本部
セキュリティ製品統括部 シニアマネジャー
