DNSリゾルバ・キャッシュ(windows)を知ろう!

http://www.atmarkit.co.jp/fwin2k/win2ktips/259dnsresolver/dnsresolver.html
↑発見。読んでみる。

Windows 2000やXPのDNSクライアントには、DNSサーバに問い合わせた結果をシステムの内部にキャッシュしておいて、外部のDNSサーバへの問い合わせをなるべく抑制するという機能が含まれている。
>これを「DNSゾルバ・キャッシュ」といい、実際には「DNS Client」サービスが担当している。
>「リゾルバ(resolver)」とは、名前解決(name resolution)を行うための機能やサービスのことを指す(一般的にはネーム・リゾルバと呼ばれる)。


windowsは内部にキャッシュするらしい。


>クライアントがDNSによる名前解決を希望した場合、実際のDNSサーバに問い合わせる前に、まずDNSのリゾルバ・キャッシュの内容を調査する。この中にすでにキャッシュされたDNSのレコードがある場合、その内容をクライアントへ返す。
>キャッシュにヒットしなかった場合は、実際のDNSサーバへクエリーを発行し、その結果のDNSレコードをクライアントへ返すとともに、DNSキャッシュへも格納する。
>キャッシュに保持される時間には限度がある。DNSサーバから返された結果のレコード(SOAリソース・レコード)には必ずTTL(Time To Live。生存時間)が指定されているので、その時間になるまではDNSサーバに対する再クエリーは行われない(キャッシュされる)。ただしこの有効時間は(デフォルトでは)最大で1日(8万6400秒)に制限されており、1日以上経過すれば、元のDNSレコードのTTLにかかわらず、キャッシュから破棄される。否定応答の場合は、最大300秒キャッシュされ、その後キャッシュから破棄される。
>リゾルバ・キャッシュの内容は、システムを再起動したり、「DNS Client」サービスを再起動したりするとすべてフラッシュされ、初期値として、hostsファイルの内容や、システム内で最近解決されたFQDN名などがロードされる。
DNSによる名前解決の状態を調べるためにnlsookup.exeコマンドを使うこともあるだろう(こちらの方が多いだろうが)。だがこのコマンドを使うと、DNSゾルバ・キャッシュの内容とは関係なく、DNSサーバに直接問い合わせが行われ、その結果が表示される。


なるほど。

DNSゾルバ・キャッシュの内容の表示

ipconfig /displaydns

使ってみる。

色々でる。


DNSゾルバ・キャッシュの内容をフラッシュ(破棄)するには、コマンド・プロンプト上で「ipcnofig /flushdns」コマンドを実行すればよい。


DNSゾルバ・キャッシュの内容のフラッシュ

ipconfig /flushdns

やってみる。

Windows IP Configuration

Successfully flushed the DNS Resolver Cache.


ふむ。
これで、もう一度。


DNSゾルバ・キャッシュの内容の表示

ipconfig /displaydns


内容が変わる。


なるほどなー。