2005/03/30

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

ここに詳細があります。
無線LAN を使い始めてからなのか、WindowsXP に乗り換えたからなのか、なぜか名前解決が時々おかしくなることがあって、nslookup では正しいIPアドレスが引けているのにping すると違うアドレスを引くことがあります。
なんでこんなことが起き得るかというと、グローバル側から引いたときとローカル側から引いたときで違うアドレスを割り当てている(もちろんグローバルアドレスとローカルアドレスにそれぞれ分けて。)から、どこかのタイミングでキャッシュが残ってしまうのでしょう。
コマンドプロンプトでipconfig /renew とかやったりするとしばらくして直るところまでは突き止めていたので、間違いなくキャッシュ関係だろうなとは思っていたのですが、ここに書いてあるnet stop dnscache をやったら確実に治ることが判明してすっきりしました。
それにしても、
-------------------------------------------------------
DNS Client サービスは、既に解決された名前をメモリに保存することにより、DNS 名前解決のパフォーマンスを最適化します。DNS Client サービスが無効になっている場合でも、コンピュータはネットワークの DNS サーバーを使用して DNS 名を解決することができます。
-------------------------------------------------------
というくらいなら、最初から"DNSキャッシュサービス"と命名して欲しいです。
命名が良ければ苦労しないで済みそうなことも多々あります。

それと、ここには、
-------------------------------------------------------
Ipconfig ツールを使用すると、DNS リゾルバ キャッシュを参照したり、消去することができます。DNS リゾルバ キャッシュを参照するには、コマンド プロンプトで ipconfig /displaydns と入力します。Ipconfig は、Hosts ファイルからあらかじめ読み込まれている DNS リソースレコードや最近システムによって解決された名前を含むDNS リゾルバキャッシュの内容を表示します。一定の時間が経過すると、リゾルバはキャッシュからレコードを廃棄します。その時間は、DNS リソースレコードに関連付けられた Time to Live (TTL) に指定します。また、キャッシュを手動で消去することもできます。キャッシュが消去されると、コンピュータはこれまでに解決したすべての DNS リソース レコードについて、もう一度 DNS サーバーに照会しなければなりません。DNS リゾルバキャッシュのエントリを消去するには、コマンド プロンプトで ipconfig /flushdns と入力します。
-------------------------------------------------------
と書いてありますが、ipconfig /flushdns ではどうしても治りませんでした。
一応、WINS 関係でキャッシュが残っているのかと思ってそれらのキャッシュをクリアするコマンドも試してみたのですが効果はありませんでした。

2005年3月30日追記
net stop dnscache
をやったあとmozilla を立ち上げなおさないといけないみたいでした。
結局ブラウザが持っている名前キャッシュとWindows の名前キャッシュが絡み合ってわかりにくい問題を引き起こしていたみたいです。
ということは、ipconfig /flushdns でmozilla 再起動でいけるのかも。

2005年3月30日14時45分追記
やっぱり
net stop dnscache
をやってmozilla を立ち上げなおさないとだめでした。

0 件のコメント: