Avahi 備忘録

Apple
Photo by hyt.

Avahi の備忘録です.

Zeroconf 備忘録
Zeroconf についての備忘録です.きちんと現資料等あたっていないし,ざっと調べただけなので,ところどころ間違っている可能性大です.お気を付けください.Zeroconf って何?Wikipedia によると, ネットワークデバイスへのネ...

の続きですね.

avahi-browse

まずは,自分のネットワークがどのようになっているのかを調べます.その為に使えるコマンドは,avahi-browse の様です.今回は Raspbian Jessie 環境で試してみます.

avahi-browse を使うには,Raspbian Jessie だと avahi-utils を追加インストールしなければなりません.

$ sudo apt-get install avahi-utils

avahi-browse -a が全てのサービスを問い合わせるコマンドみたい.私のネットワークだと(もちろんそのままじゃありません.色々改変しています)以下のような感じ.

$ avahi-browse -a -t
+   eth0 IPv6 jessie [00:00:00:00:00:00]                    Workstation          local
+   eth0 IPv4 jessie [00:00:00:00:00:00]                    Workstation          local
+   eth0 IPv4 volumio [00:00:00:00:00:00]                   Workstation          local
+   eth0 IPv6 5555555555555555                              iPod Touch Music Library local
+   eth0 IPv4 5555555555555555                              iPod Touch Music Library local
+   eth0 IPv6 A44444444444@Apple TV                         AirTunes Remote Audio local
+   eth0 IPv4 A44444444444@Apple TV                         AirTunes Remote Audio local
+   eth0 IPv4 BBBBBBBBBBBB@volumio                          AirTunes Remote Audio local
+   eth0 IPv6 Apple TV                                      _airplay._tcp        local
+   eth0 IPv4 Apple TV                                      _airplay._tcp        local
+   eth0 IPv6 00-00-00-00.1 Apple TV                        _sleep-proxy._udp    local
+   eth0 IPv4 00-00-00-00.1 Apple TV                        _sleep-proxy._udp    local
+   eth0 IPv6 Brother MFC-9340CDW                           Web Site             local
+   eth0 IPv4 Brother MFC-9340CDW                           Web Site             local
+   eth0 IPv6 Brother MFC-9340CDW                           _scanner._tcp        local
+   eth0 IPv4 Brother MFC-9340CDW                           _scanner._tcp        local
+   eth0 IPv6 Brother MFC-9340CDW                           Internet Printer     local
+   eth0 IPv4 Brother MFC-9340CDW                           Internet Printer     local
+   eth0 IPv6 Brother MFC-9340CDW                           UNIX Printer         local
+   eth0 IPv4 Brother MFC-9340CDW                           UNIX Printer         local
+   eth0 IPv6 Brother MFC-9340CDW                           PDL Printer          local
+   eth0 IPv4 Brother MFC-9340CDW                           PDL Printer          local
+   eth0 IPv4 amzn.dmgr:D4444444444444444444444444444444444444:QQQQQqQqq4:278352 _amzn-wplay._tcp     local
+   eth0 IPv4 pulse@volumio                                 PulseAudio Sound Server local
+   eth0 IPv4 pulse@volumio: bcm2835 ALSA Analog Stereo     PulseAudio Sound Sink local
+   eth0 IPv4 volumio                                       _Volumio._tcp        local

それぞれの意味は次の通りみたい.

  • 最初の eth0 はどうも avahi-browse -a を実行した機器(今回だと Raspbian Jessie)のネットワークインターフェース名みたい.要するに,eth0 が所属しているネットワークの情報であることを意味している.
  • 次の IPv4 と IPv6 はそのまま v4 のサービスなのか v6 のサービスなのかの区分け.
  • 3番目が名前なのかな???
  • 4番目がサービス名なのかな?
  • 最後がドメイン名(この場合は local ですね)

私のネットワークだと,local ドメインしか無くて,

ホスト サービス
jessie, volumio Workstation
5555555555555555 iPod Touch Music Library ???
Apple TV, volumio Airplay
Apple TV Bonjour Sleep Proxy
Brother MFC-9340CDW Web Site, _scanner._tcp, Internet Printer, UNIX Printer, PDL Printer
amzn.dmgr:D4444… _amzn-wplay._tcp
volumio PulseAudio Sound Server, PulseAudio Sound Sink
volumio _Volumio._tcp

ってなってるみたい.Apple TV は文字通り Apple TV で,amzn.dmgr は Amazon Stick TV で,Raspbian jessie, volumio もそのまんま,Brother MFC-9340CDW は,

Brother MFC-9340CDW 雑感とプリンタ考 (1) 購入の動機
Brother のカラーレーザー複合機 MFC-9340CDW の雑感です.驚くほど多機能なプリンタですので,何回かに分けて紹介します. Brother MFC-9340CDW 雑感とプリンタ考 (1) 購入の動機 Brother MFC-...

でどれも身に覚えのある機器なのですが,唯一,5555555555555555 ってのが分からない.これが何かを調べる方法は,

$ avahi-browse -r _touch-able._tcp
+   eth0 IPv6 5555555555555555                              iPod Touch Music Library local
+   eth0 IPv4 5555555555555555                              iPod Touch Music Library local
=   eth0 IPv4 5555555555555555                              iPod Touch Music Library local
   hostname = [Apple-TV.local]
   address = [192.168.0.***]
   port = [3689]
   txt = ["Ver=******" "atCV=******" "DvSv=****" "DvTy=AppleTV" "CtlN=Apple TV" "DbId=***************" "atSV=******" "txtvers=1"]
=   eth0 IPv6 5150E34A5C5B96C0                              iPod Touch Music Library local
   hostname = [Apple-TV.local]
   address = [192.168.0.***]
   port = [3689]
   txt = ["Ver=******" "atCV=******" "DvSv=****" "DvTy=AppleTV" "CtlN=Apple TV" "DbId=***************" "atSV=******" "txtvers=1"]

のように,iPod Touch Music Library サービスで逆引きすることなので,今回は無事,Apple TV のサービスの一つであることが分かったのですが,これは,_touch-able._tcp が iPod Touch Music Library の正式なサービス名だと分かってないと引けない.

私の場合は,これを調べるために Avahi のソースコードを見たんですが,これ以外の方法で調べる方法があるのかどうかは不明です.なお,別名のリストは,

$ avahi-browse -b
PostgreSQL Server
Apple AirPort
iChat Presence
Gobby Collaborative Editor Session
IMAP Mail Access
PulseAudio Sound Source
iTunes Remote Control
RealPlayer Shared Favorites
OLPC Presence
SubEthaEdit Collaborative Text Editor
Apple TimeMachine
...

のようにすれば分かるのですが,逆は出来ない.う~ん.何故なんだろうという感じです.

avahi-resolve

avahi でコンピュータのホスト名を解決するのに使うコマンドですね.逆引きもあります.使い方は

$ avahi-resolve -4 -n Apple-TV.local
Apple-TV.local  192.168.0.***

$ avahi-resolve -6 -n Apple-TV.local
Apple-TV.local  fe80::****:****:****:****

$ avahi-resolve -a 192.168.0.***
192.168.0.*** Apple-TV.local

$ avahi-resolve -a fe80::****:****:****:****
fe80::****:****:****:****        Apple-TV.local

のような感じ.使うときには必ずドメイン名(.local) をつけないとダメなことに注意しないといけません.なお,

$ avahi-resolve-host-name Apple-TV.local
Apple-TV.local  fe80::****:****:****:****

$ avahi-resolve-address 192.168.0.***
192.168.0.*** Apple-TV.local

でも良いみたいですね.

ここで良く分からないのが,avahi-browse で表示される名前(5555555555555555とか)です.これはホスト名じゃない.この名前でアドレス等を引こうとしても引けないので,なんのためのものなのかよく分からない.

ということで,よく使うコマンド2つについては,まぁ,内容は把握できたのですが,細かなところが色々未だに不明です.これらについてはボチボチ調べて,追記していきたいと思います.

タイトルとURLをコピーしました