SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

TMG / ISA の DNS キャッシュについて

leave a comment

DNS キャッシュと言えば [ipconfig /displaydns] で DNS リゾルバーキャッシュを見る方法が有名かと思います。
image

TMG や ISA では独自に DNS キャッシュを保持する機構を持っていますので、今回はこれについてみていきたいと思います。
技術情報としては以下の情報があります。
[ISA]DNS キャッシュの仕組みとキャッシュ期間の変更方法
スクリプトを使用して、ISA Server 2004 コンピューターで DNS キャッシュの属性を設定する方法

 

■TMG の DNS キャッシュを確認してみる


TMG の DNS キャッシュを確認するためには、[DNS Cache Tool] を使用します。
TMG 2010 用の DNS Cache Tool は以下からダウンロードできます。
Microsoft® Forefront Threat Management Gateway (TMG) 2010 Tools & Software Development Kit

このサイトからダウンロードできる、[DNSToolsPack.exe] が TMG の DNS キャッシュを確認するためのツールとなります。

ISA 用も提供されており、ISA 用は以下からダウンロードができます。
Microsoft ISA Server 2006 ツール
DNS Cache Tool for ISA Server 2006
Microsoft ISA Server 2004 ツール
DNS Cache Tool for ISA Server 2004

 

DNSToolPack.exe を実行するとインストーラーが起動します。
# 実際にはファイルが展開されるだけですが。

  1. [Next] をクリックします。
    image
  2. [I accept the terms in the license agreement] を選択して、[Next] をクリックします。
    image
  3. [Next] をクリックします。
    image
  4. [Finish] をクリックします。
    image

指定したディレクトリに DNSTools.exe が展開されますがこの状態で実行をしてもエラーとなります。
image

TMG 2010 Tools のツールは [Program FilesMicrosoft Forefront Threat Management Gateway] に配置して実行する必要がありますのでファイルをコピーしで移動させます。
# 同梱の .doc ファイルに記載されています。

この EXE はコンソールアプリケーションになりますのでコマンドプロンプトから実行をします。
image

私が使っているのは、[/D] と [/C] になります。
[/D] を使用することで TMG として保持しているキャッシュの状態を確認することができます。
image

この内容ですが、[ipconfig /displaydns] の内容とは独立して管理されています。
そのため、[ipconfig /flushdns] で DNS リゾルバーキャッシュをクリアしても TMG として保持しているキャッシュはクリアされません。

また、TMG の DNS 参照は hosts ファイルも使用することができるのですが、一度 hosts ファイルからエントリをキャッシュした場合、TTL が有効な期間 (6 時間) はhosts ファイルを変更しても値が更新されないので注意が必要かと思います。

このような場合は、[DNSTools /c] を実行して一度キャッシュをクリアすると hosts ファイルの内容を読み込むことができます。

 

■パフォーマンスモニタで DNS キャッシュの状態を確認


TMG のパフォーマンスモニターの [Forefront TMG Firewall Service] の以下のカウンターでも DNS キャッシュの状態を確認できます。

  • DNS Cache Entries
  • DNS Cache Flushes
  • DNS Cache Hits
  • DNS Cache Hits %
  • DNS Retrievals

image

細かな内容は見れませんが、どれくらいキャッシュしているかを確認するのであればここから見てしまっても良いかもしれないですね。

■DNS キャッシュ関連の設定


TMG の設定は AD LDS がマスターとなりレジストリに伝搬されるため、設定を変更する場合は AD LDS の項目を変更する必要があります。
AD LDS の設定箇所に関しては、ISA 2004 と同じ設定がつかえるとおもいますので、 スクリプトを使用して、ISA Server 2004 コンピューターで DNS キャッシュの属性を設定する方 のスクリプトを利用できると思います。

設定としては、

  • msFPCDnsCacheNegativeTtl
  • msFPCDnsCacheRecordMaxKB
  • msFPCDnsCacheSize

の設定が変更できるようです。
TMG 2010 では、msFPCDnsCacheNegativeTtl も LowLevelSettings の属性になっていそうですね。
# ADSI エディターで localhost:2171 の CN=FPC2 に接続することで確認しました。
image

ISA 2000 の時は、msFPCDnsCacheTtl という設定があったようですが、2006 / 2010 ではスキーマパーティションを確認したところ、この属性は存在していませんでした。
image

通常の TTL 値に関しては変更できなさそうですね。

TMG の DNS キャッシュはルールで使用されますので、DNS レコードを変更 / hosts に書いた内容が反映されないということがありましたら、DNSTools でキャッシュの内容を確認し、必要に応じてキャッシュのクリアをすると解決するかと思います。

Written by masayuki.ozawa

1月 16th, 2011 at 10:23 pm

Posted in ISA,TMG

Tagged with ,

Leave a Reply

*