avahi-daemonのエラーメッセージ

ふとdaemon.logを見てるとやたらとavahi-daemon

Dec  6 09:36:36 sawshark avahi-daemon[874]: Invalid query packet.
Dec  6 09:36:36 sawshark avahi-daemon[874]: Invalid query packet.
Dec  6 09:36:37 sawshark avahi-daemon[874]: Invalid query packet.
Dec  6 09:54:39 sawshark avahi-daemon[874]: Withdrawing address record for 2001:xxxx:1160 on eth0.
Dec  6 09:54:39 sawshark avahi-daemon[874]: Registering new address record for fe80::xxx:1160 on eth0.*.
Dec  6 09:55:29 sawshark avahi-daemon[874]: Registering new address record for 2001:xxx:1160 on eth0.*.
Dec  6 09:55:29 sawshark avahi-daemon[874]: Withdrawing address record for fe80::xxxx:1160 on eth0.

とかいうのを連呼しているのに気がついて、気になったので調べてみた。、という 2009/12 の下書き(!)が残っていたので落穂ひろいしてみました*1

avahi-daemonとは?

manしてみるまでよく知らなかったのですが*2、Zeroconfのオープンソースの実装だそうです。AppleのBounjour(旧名Rendezvous) としての方が知られてるかも。
manによると

Avahi mDNS/DNS-SDデーモンはAppleのZeroconf("Rendezvous"または"Bonjour"としても知られています)を実装しています。
このデーモンはローカルのIPアドレスを登録し, mDNS/DNS-SDを使った静的サービス 2つのIPC APIをローカルプログラム
mDNSレコードキャッシュ
simple protocol
avahi-dnsconfd(ユニキャストを処理)
nss-mdns(mDNSによる名前解決を行うlibc NSS プラグイン)。
D-Bus対応アプリへのオブジェクト指向I/Fも提供。

DNS-SDのSDはService Discoveryとな。wikipediaによると

Avahi は、特定の構成情報のないローカルネットワーク上のサービスホストの発行と発見を可能とする。
例えば、ネットワークに接続したとき、即座にプリンタを検出し、ファイルを探し出し、他者と会話で
きるようにする。GNU Lesser General Public License (LGPL) の条件でライセンス提供される。
Avahi はBonjourのZeroconf仕様の実装であり、マルチキャストDNS、DNS-SD、RFC 3927/IPv4LL を実装
している。各種言語バインディングを提供しており(Python、Monoなど)、多くの Linux や BSD 系の
ディストリビューションに付随して出荷されている。モジュール化されているため、Avahi は GNOMEの
GNOME VFSやKDEのKIOなどに組み込まれている。

とのこと。他にもPulseAudio(sound server)やbazaarにもプラグインとして入ってるっぽいです。
でもZeroconfってなんとなくしか知らないので、少し勉強してみようかと。。。。

Zeroconfとは?

  1. ネットワークI/Fの自動設定
  2. マルチキャストの自動割り当て
  3. サービスの通知
  4. 名前引き(アドレス変換・逆変換)

ふむ。件のavahi-daemonはこのうち一番最後の名前のresolvに関係しているっぽいですね!
multicast を224.0.0.251宛に投げて、返事を待つ、というスタイルらしいです。

で、お試しには avahi-resolv, avahi-browserとかを使うと簡単。
来年やってみようかな

*1:今年の汚れ、今年のう・・・

*2:何気によく理解せずになんとなくhostname.localは使ってたり・・・