2013-08-22 22 views
6

私はavahiコマンドラインツール(バージョン0.6.31)でFedora 18を使用していますAvahiホスト名解決:どこかにキャッシュされていますか?

avahi-resolve-host-nameを使用して、開発中のテスト目的でサブネット上のユニットのIPアドレスを検出します。私はWiresharkで要求と応答を監視します。 1つの要求と応答が成功すると、Wiresharkにそれ以上のリクエストは表示されませんが、ツールは引き続きIPアドレスを返します。それはコンピュータ/ avahiデーモン/他の何かが結果を「キャッシュする」ことが可能ですか?

質問:avahi-resolve-host-nameのEVERY CALLでリクエストパケットを送信したいと思います。これは可能ですか?

理由:私は話すために「偽陽性」を得ています。私は 'test1.local'を解決しようとしていますが、IPを取得していますが、ユニットはもはやこのIPにはありません。毎回リクエストを送信して、間違ったIPアドレスのユニットを見ることを避けることができます。

答えて

2

あなたの質問には少し遅れていますが、他の誰かがこの問題を抱えた場合に備えて、一般的な回答を残すつもりです。

私の回答はavahi-0.6.32_rcに基づいています。


それは、コンピュータ/のavahi他のデーモン/何かが 'キャッシュ' の結果であることは可能ですか?

はい、avahi-daemonは検索結果をキャッシュしています。これは明示的、機能に記載されているように見えるわけではありませんがavahi-daemon(8) manページのヒントそれ:

デーモンは[...]のmDNS・レコード・キャッシュavahi-を利用するローカル番組用の2つのIPCのAPIを提供デーモンは維持します。


私は、のavahi-解決ホスト名のすべての呼び出しで要求パケットを送信したいです。これは可能ですか?

はい、あります。関連するオプションは、(avahi-daemon.conf(5)から)cache-entries-maxです:

cache-entries-max=は、多くのリソースレコードは、インターフェイスごとにキャッシュされる方法を指定する符号なし整数をとります。値が大きいほどmDNSは大規模LANで正常に動作しますが、メモリ消費量も増加します。

所望の効果を達成するために、あなたは簡単に設定できます。

cache-entries-max=0 

これは完全にキャッシュを無効にし、すべての要求にMDNSパケットを再発行するのavahi-デーモンを強制する、したがって、あなたのためにそれが可能になるだろうそれらを監視する。

しかし、私はここでもavahiは通常の使用にはほとんど役に立たないことに注意してください。 avahi-daemonはルックアップパケットを発行しますが、結果を保存することはできず、avahi-resolve-host-name(他のコマンドラインツール、nss-mdns、D-Bus APIなど)のすべての呼び出しは失敗します。

関連する問題