Analog 5.91beta1: DNS 検索まず、Analog の DNS検索は、プラットフォームに依存しない標準的なコードを使っているので、特別のプラットフォームに最適化されたものよりも遅くなっています。(特に、以下に述べる DNSTIMEOUT コマンドが使えないプラットフォームでは顕著です。)従って、常時DNS検索を行なう場合には、helper application のページにある DNS検索に特化したプログラムを使った方が良いでしょう。
DNSFILE dnscacheこのファイルを使うためには、以下で説明するコマンドのいずれかを併用することが必要です。DNSFILE コマンドで指定されたファイル名にディレクトリ名が含まれていない場合、 Analog は、特定の場所 (この場所はコンパイル時のオプションです) にあるファイルを読み込もうとします。 例えば、 Windows 版の場合、これは Analog の実行ファイルと同じフォルダになります。
DNS 検索には4つのモードがあります。DNS NONEと指定すると、IP アドレスはホスト名に変換されません。DNS READと指定すると、Analog は以前の検索結果を参照するために DNS ファイルを読み込みますが、新しい検索でファイルを更新はしません。このモードは、インターネットに接続されていない環境に適しています。3つ目のモードは、 DNS WRITE です。 このモードでは、古いファイルの読み込みと同時に、新しいアドレスの検索と検索結果のファイルへの書き込みも行なわれます。(最初に DNS WRITE を使うときには、Analog が指定されたファイルの読み込みに失敗して、ファイルがないという警告が出力されることがありますが、次回実行時にはファイルが作成されていますので、警告は出力されません。)最後のモードは DNS LOOKUP です。このモードでは、Analog は指定されたファイルを読み込むと同時に、新しいアドレス検索も行ないますが、その結果をファイルに保存しません。そのため、次回実行時に、それらのアドレスは保存されていません。このモードを指定する人はいないと思いますが、DNS WRITE の指定をした際に、何らかの理由でファイルへの書き込みに失敗すると、Analog はこのモードになってしまいます。
HOSTEXCLUDE コマンドを使っている場合、名前解決が行なえないものについてはIPアドレスで、名前解決が行なえるものについてはホスト名で記述を行なう必要があります。つまりホストレポートで表示される形式で指定を行なう必要があるということです。
DNSLOCKFILE filenameもちろん、すべての Analog 、少なくとも同じ DNS ファイルを共有する Analog が同じロックファイルを使うように気をつけなければなりません。 繰返しになりますが、DNSLOCKFILE コマンドで指定されたファイル名にディレクトリ名が含まれていない場合、Analog は、コンパイル時に指定された場所にあるファイルを読み込もうとします。
Analog がクラッシュした時は、ロックファイルが残ってしまい、自分で削除しないといけない場合があるかも知れません。(Disclaimer: on some systems, race conditions may occasionally thwart this mechanism, but this is very unlikely.)
Analog は DNSファイルからエントリを削除するようなことはしません。DNSファイルは大きくなるばかりで、非常に大きくなることもあり得ます。そのため、ファイルの先頭部分を時々削除することが必要です。helper applications ページには、この作業を自動的に実行するためのプログラムが幾つか掲載されています。
古い検索結果をどの位の期間信用するかを 設定するために、二つのコマンドが用意されています。
DNSGOODHOURS 672と記述すると、成功した検索も 672 時間(4週間)ごとに再確認されます。DNSBADHOURS を設定して、失敗した検索をある一定時間後に再検索させることもできます。デフォルトでは、DNSBADHOURS は、336(2週間)になっています。また、DNSGOODHOURS は、非常に大きな値になっています(そのため、成功した検索結果は、DNS ファイルに残っている限り再確認されることはありません)。
プラットフォーム(おそらく UNIX 系のみ)によっては 、DNSTIMEOUT というパラメータを設定することもできます。DNSサーバがここで設定した時間内に応答を返さなければ、DNSの検索は中止されます。
DNSTIMEOUT 0にすると、この処理を抑止します。
最後に、デバッグ のためのコマンドも用意されています。 DEBUG +D とすることで、Analog が行なうすべての DNS 検索が表示されます。
timestamp IP_address nametimestamp はグリニッジ標準時で 1970 年から何分経過しているかの数字(つまり「UNIX 時間」を60で割ったもの)になります。name はホスト名を表しますが、名前が解決できなかった場合は、* が入ります。
Stephen Turner
Analog についての質問はanalog-help メーリングリスト をお使いください。 (訳注: 日本では analog-jp メーリングリスト をご利用ください)