Windowsでクライアント側のDNSキャッシュを無効にする方法

by majamarko


WindowsマシンでDNSキャッシュを無効にする方法が、わからなかったので調べた。
ここにメモを残して一旦忘れる。

DNS Client サービスは、既に解決された名前をメモリに保存することにより、DNS 名前解決のパフォーマンスを最適化します。DNS Client サービスが無効になっている場合でも、コンピュータはネットワークの DNS サーバーを使用して DNS 名を解決することができます。

DNSキャッシュ内のエントリを削除

> ipconfig /flushdns

DNSキャッシュ内のエントリを表示

> ipconfig /displaydns

DNSキャッシュサービスの停止

> net stop dnscache

クライアントキャッシュ時間を制御

クライアント コンピュータでキャッシュ時間を設定するには、次の手順を実行します。

1. レジストリ エディタ (Regedit.exe) を起動します。

2. 次のレジストリ キーを探して、クリックします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters

3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックして、次のレジストリ値を追加します。

値の名前 : MaxCacheTtl
データの種類 : REG_DWORD
デフォルト値 : 86,400 秒
値のデータ : クライアントの DNS キャッシュの TTL の最大値を 1 秒に下げると、クライアント側の DNS キャッシュが無効になっているように見えます。

値の名前 :MaxNegativeCacheTtl
データの種類 : REG_DWORD
デフォルト値 : 900 秒
値の名前 : 否定応答をキャッシュしたくない場合は、この値を 0 に設定します。

4. 設定する値を入力し、[OK] をクリックします。

5. レジストリ エディタを終了します。

参考(優先順位付け)

Windows XP の DNS リゾルバはサブネットの優先順位付け機能も使用しています。リゾルバが DNS サーバーから複数の IP アドレス マッピング (A リソース レコード) を受信し、そのレコードの中にコンピュータが直接接続しているネットワークの IP アドレスが含まれている場合、リゾルバは、それらのリソース レコードを先頭に配置します。この動作は、コンピュータがより近いネットワークリソースに接続するよう強制することにより、サブネット間のネットワーク トラフィックを削減します。