トップ回答者
DNSキャッシュの消失について

質問
-
yukishikawaと申します。どうぞよろしくお願い申し上げます。
Windows7の端末にて、約1時間毎にクライアントのDNSキャッシュが消える現象が発生しています。
※OSバージョン情報: Microsoft Windows 7 Professional 6.1.7601 ServicePack ビルド7601
▼環境(値は例です)
SV1(192.168.1.1)、SV2(192.168.1.2)、SV3(192.168.1.3)という3台のサーバがあります。
DNSサーバには以下の様に3レコードを登録してDNSラウンドロビンを使用しています。
sv.local HOST(A) 192.168.1.1
sv.local HOST(A) 192.168.1.2
sv.local HOST(A) 192.168.1.3
クライアントはsv.local を指定してサーバのアプリケーションにアクセスしています。
▼現象
クライアント側に約1時間ごとにIISタイムアウトが発生し、アプリケーションの再ログオンが必要な状況になります。
現象発生前は192.168.1.1にアクセスしていたクライアントが上記事象発生直後は192.168.1.2での接続に 代わっています。
(現象発生前に、sv.local に対してpingを発行し確認)
現象発生後のクライアントで“ipconfig /displaydns”で確認したところ、キャッシュが消えていました。
流れとして、初めのアクセスは sv.local でアクセスし、DNSサーバにて名前解決され、192.168.1.1に接続されていると思われます。
その後のアクセスについては、クライアントのキャッシュに問い合わせるため同じ192.168.1.1に接続されています。
約1時間経過すると、クライアントのキャッシュが何らかの理由で消えるため、DNSに問い合わせ、ラウンドロビンされて 192.168.1.2に
接続しようとしてIISタイムアウトが発生していると思われます。
暫定処置として、クライアントからサーバに接続する際に FQDN を使用せず、192.168.1.1 をURLに直接指定して アクセスすると
現象は発生しません。
DNSサーバの管理者の話では、「クライアントのキャッシュを1時間でクリアする設定は特にしていない」とのことで、 キャッシュが
消失してしまう原因が判りません。
本件につきまして、原因と回避策についてご教授いただきたく、お願い申し上げます。
2012年11月15日 8:57
回答
-
これは正常な動作では?
DNSキャッシュはDNSに登録されたレコードのTTL時間存在します。WindowsのDNSレコードを作成する際のデフォルトTTLは1時間なのでクライアント側でクライアントキャッシュが存在できる期間は1時間になります。
また、ラウンドロビンを使用しているということなので別のレコードになるのも正しい動作になります。
何が問題なのでしょうか?もし、特定のサーバーのみにアクセスさせたいのであればラウンドロビンを止めてしまうのがいいのではないでしょうか?
以上、参考になれば幸いです。
MVP:Virtual Machine Blog:MCTの憂鬱
- 回答としてマーク 星 睦美 2012年11月27日 7:18
2012年11月16日 0:05
すべての返信
-
これは正常な動作では?
DNSキャッシュはDNSに登録されたレコードのTTL時間存在します。WindowsのDNSレコードを作成する際のデフォルトTTLは1時間なのでクライアント側でクライアントキャッシュが存在できる期間は1時間になります。
また、ラウンドロビンを使用しているということなので別のレコードになるのも正しい動作になります。
何が問題なのでしょうか?もし、特定のサーバーのみにアクセスさせたいのであればラウンドロビンを止めてしまうのがいいのではないでしょうか?
以上、参考になれば幸いです。
MVP:Virtual Machine Blog:MCTの憂鬱
- 回答としてマーク 星 睦美 2012年11月27日 7:18
2012年11月16日 0:05 -
ABE NAOKIさん
ご回答ありがとうございます。
追加質問で恐縮ですが、以下についてご見解をいただければ幸いです。
今回の対象APはこれまでWindows XP Professional SP3 環境で正常動作していたものを
新端末(Windows 7)に移行しています。
ちなみにDNSのTTL値は、『23:59:59』に設定されているとのことです。
今まで Windows XP で正常動作していた(元の質問で言うところの『DNSキャッシュは保持している』)ものが、
Windows 7 に移行しただけで動作が違っているので、その原因、対処方法があれば、是非ご教授いただきたく、
お願い申し上げます。
- 編集済み yukishikawa 2012年11月19日 11:11
2012年11月19日 11:08 -
まず、現状確認から行う必要があると思います。
- DNSサーバーで目的のAレコードを参照し、TTL値を確認する。
- クライアントで「ipconfig /displaydns」コマンドを実行し、TTL値を確認する。
これらの値が期待したものかを確認してみるといいのではないでしょうか?
以上、参考になれば幸いです。
MVP:Virtual Machine Blog:MCTの憂鬱
2012年11月20日 0:22