[ISA]DNS キャッシュの仕組みとキャッシュ期間の変更方法

概要

この資料は、ISA Server の DNS キャッシュの仕組みと、DNS キャッシュを更新する方法について記述したものです。

問題

ISA Server は、クライアントから要求されたサイトや上位プロキシサーバーの名前の解決を行うと、解決されたサイト名と IP アドレスをデフォルトでは 6 時間 DNS キャッシュに保存します。キャッシュされているサイトが要求された場合、ISA Server は新たに名前解決を行う必要がないため、リクエストを処理するパフォーマンスが向上します。 しかし、サーバーの IP アドレスが頻繁に更新される場合など、場合によっては、管理者が ISA Server の DNS キャッシュ時間を調整したり、手動でキャッシュをクリアしなければならないことがあります。 以下では、ISA Server の DNS キャッシュの動作の仕組みと、DNS キャッシュを更新する方法について説明します。

詳細

ISA Server の DNS キャッシュ期間は、Standard Edition では以下のレジストリで変更することが可能です。Enterprise Edition では、Windows 2000 Server のサポートツールに含まれている ADSI Edit を使用して Active Directory 内の同様のオブジェクトを変更します。

HKEY_LOCAL_MACHINE
\Software
\Microsoft
\FPC
\Arrays
\<アレイの GUID>
\ArrayPolicy
\WebProxy (Firewall サービスの場合は "ProxyWSP")
値の名前 : msFPCDnsCacheTtl
データタイプ : REG_DWORD
デフォルト値 : 21600 (秒) (6 時間)
ISA Server はサイトの名前解決を実行すると、解決されたサイト名と IP アドレスを ISA Server 独自の DNS キャッシュに保存します。キャッシュに保存されてから msFPCDnsCacheTtl で指定された期間が過ぎると、ISA Server は DNS キャッシュからそのサイトのエントリを削除します。ただし Keep-Alive などによって、そのサイトに対するセッションが確立中の場合は、タイマーはカウントされません。セッションが切断されてからタイマーのカウントが開始されます。 ISA Server の DNS キャッシュにないサイトが要求されると、ISA Server は Winsock API の gethostbyname を使用して名前解決を行います。名前解決は、Windows 2000 の DNS リゾルバまたは NetBIOS リゾルバによって行われます。これらのサービスも独自のキャッシュを持つため、キャッシュに保存されている場合には、新たな名前解決を行わずに、キャッシュされた IP アドレスを ISA Server に返します。キャッシュに保存されていない場合には、これらのサービスによって、新たな名前解決が行われます。名前解決された IP アドレスは、利用したサービスによって、再び DNS リゾルバのキャッシュか NetBIOS リゾルバのキャッシュに保存されます。ISA Server は、これらのサービスが新たに名前解決を行ったかキャッシュを返したかどうかにかかわらず、これらのサービスによって返された IP アドレスを、ISA Server の DNS キャッシュに保存し、このサイト名に対する DNS キャッシュのタイマーを 0 にセットします。 Windows 2000 の DNS リゾルバのキャッシュ期間は、以下のレジストリで変更することが可能です。

HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\Dnscache
\Parameters
値の名前 : MaxCacheEntryTtlLimit
データタイプ : REG_DWORD
デフォルト値 : 86400 (秒) (24 時間)
Windows 2000 の NetBIOS リゾルバのキャッシュ期間は、以下のレジストリで変更することが可能です。

HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\NetBT
\Parameters
値の名前 : CacheTimeout
データタイプ : REG_DWORD
デフォルト値 : 600000 (ミリ秒) (10 分)
以上のように、ISA Server の DNS キャッシュ期間は 6 時間ですが、ISA Server の DNS キャッシュが切れても、Windows 2000 の DNS や NetBIOS のキャッシュから IP アドレスが返される場合があるため、ISA Server の DNS キャッシュ期間を変更する場合は、必要に応じて、これらのサービスのキャッシュ期間も変更します。

名前解決のキャッシュを手動でクリアする方法

すべての DNS キャッシュの期間を短くするのではなく、特定のサイトの IP アドレスの変更を即座に反映することが目的の場合は、管理者が手動でキャッシュをクリアすることをお勧めします。 Windows 2000 の DNS リゾルバキャッシュをクリアするには、コマンドプロンプトから次のコマンドを実行します。

ipconfig /flushdns
Windows 2000 の NetBIOS リゾルバキャッシュをクリアするには、コマンドプロンプトから次のコマンドを実行します。

nbtstat -R
ISA Server の DNS キャッシュをクリアするには、Web Proxy または Firewall サービスを再起動します。 補足:
Windows 2000 や ISA Server には、キャッシュ内の情報を強制的に更新する機能はありません。キャッシュから IP アドレスが返されないようにするには、キャッシュの内容すべてを手動でクリアするか、キャッシュ期間を必要に応じて短く設定する必要があります。

関連情報


Article ID : 245437
Title : How to Disable Client-Side DNS Caching in Windows 2000
Article ID : 120642
Title : TCP/IP & NBT Configuration Parameters for WinNT & Win2000
プロパティ

文書番号:417326 - 最終更新日: 2001/05/15 - リビジョン: 1

フィードバック