snbhsmt_log

ネットワークとコンピュータ、その他いろいろ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

mt-daapd を動かしてみたけど

mt-daapd を動かす前に、いろいろ分らない用語を調べたので、 自分なりに理解したつもりのことをメモ。その後 mDNSResponder と mt-daapd の設定をして起動。だけど iTunes が mt-daapd をうまく 見つけられない様で、マルチキャスト通信について色々調べてみたけど、 今のところ解決できてない。

iTune は Bonjour で相手を探して、見つかった相手と DAAP で通信する。
Bonjour は Zeroconf の Apple による実装で、以前は Rendezvous という名前だった。
Zeroconf は設定不要のネットワークを実現する技術。 同様のものに UPnP や Jini がある。

Zeroconf の基本 3 技術:

  • Addressing (AutoIP) : ノードにアドレスを割り当てる
  • Naming (Multicast DNS) : ノードに名前を割り当てる
    ホストはノードと呼ばれる
    ノード名.サービス名.プロトコル名.ドメイン名 (example._http._tcp.local.)
  • Browsing : サービスを探す

avahi、howl は Zeroconf のオープンな実装。
howl の開発は止まっていて、最近のディストリビューションでは avahi が利用される。

mt-daapd が howl を要求するので今回は howl を利用する。
howl に含まれる 3 つのデーモン。

  • mDNSResponder
  • autoipd
  • nifd

mDNSResponder は Multicast DNS によるサービスの問い合わせに応答するデーモン。 iTunes からの _daap._tcp 問い合わせに対して mt-daapd のポートを答える為に必要。 ただし今の mt-daapd は Rendezvous の機能を内蔵しているので無くても良いらしい。

autoipd は Zeroconf の仕組みで NIC にアドレスを設定するデーモン。 今回の NIC は固定アドレスを設定していて、自動設定は必要ないので不要。

nifd は NIC の変化を監視するデーモン。 今回の NIC は固定 IP なので変化しないから不要。

という事で、必要ないらしいけど mDNSResponder を動かす。
設定ファイル /etc/howl/mDNSResponder.conf に以下を記述。

delany-daap  _daap._tcp.  local.  3689
起動スクリプト /etc/rc.d/init.d/mDNSResponder が $OTHER_MDNSRD_OPTS を 定義しているとエラーに成るので修正。
- runuser -s /bin/bash - nobody -c mDNSResponder $OTHER_MDNSRD_OPTS > /dev/null
+ runuser -s /bin/bash - nobody -c "mDNSResponder $OTHER_MDNSRD_OPTS" > /dev/null

続いて mt-daapd を動かす。
設定ファイル /etc/mt-daapd.conf を書く。

web_root ウェブ・インターフェース用の HTML 等をインストールしたディレクトリ。
port ウェブ・インターフェースとストリーム出力用のポート番号。
admin_pw ウェブ・インターフェースの BASIC 認証パスワード ?
db_dir mp3 情報のデータベースが作成されるディレクトリ。
mp3_dir mp3 が置かれているベース・ディレクトリ。
servername 共有名
runas mt-daapd の実効ユーザ。このアカウントで mp3_dir 等が読める必要がある。
playlist Playlist の設定ファイル。
password クライアントが mp3 を取得する為に必要なパスワード。
extensions 曲ファイルの拡張子。
logfile ログファイルのパス。
art_filename ?
rescan_interval mt-daapd が mp3_dir に変化が無いかチェックする間隔。
always_scan ?
process_m3u ?
scan_type ?
compress ?
ウェブ・インターフェースから設定する場合、設定ファイルに書き込み権限が必要。

動かしてみたらマルチキャストのパケットが通らなかったので iptables の設定を変更。

Apr 13 18:58:32 delany kernel: iptables drop: IN=eth0 OUT= MAC=
 SRC=192.168.0.11 DST=224.0.0.251 LEN=173 TOS=0x00 PREC=0x00 TTL=255 ID=0 DF
 PROTO=UDP SPT=5353 DPT=5353 LEN=153
iptables -A INPUT -p udp --dport 5353 -j ACCEPT        # mDNS
iptables -A INPUT -p tcp --dport 3689 -m state --state NEW -j ACCEPT     # DAAP

で、いろいろやっているのだけど iTunes が mt-daapd を見つけられたり 見つけられなかったりする。 マルチキャストの通信がうまくいってないのかと思い試した。 今も試行錯誤中なので、以下まとまってない情報を置いておく。

マルチキャストのアドレッシング
http://www.infraexpert.com/study/multicast2.htm

マルチキャスト・アドレス
224.0.0.0/4
224.0.0.0/24 リンクローカルアドレス

マルチキャストのルーティング
http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.multicast.html
ip route add 224.0.0.0/4 dev eth0
ip route add multicast 224.0.0.0/4 dev eth0
echo 1 > /proc/sys/net/ipv4/ip_forward

http://flowernet.jp/blog/jado//?date=20051018
netstat -gn
mDNSResolve
mDNSBrowse

cat /proc/net/igmp

DNS の拡張仕様、SRV レコードと ENUM
http://www.atmarkit.co.jp/flinux/rensai/bind914/bind914a.html
_daap._tcp.local. の意味

玄箱 による iTunes Music Box (DAAP サーバ) その後
http://hatotech.org/kumatch/archives/000391.html ifconfig eth0 promisc
ifconfig eth0 allmulti
tcpdump -n [-i eth0] ether multicast
スポンサーサイト

« マルチキャスト通信のテスト|Top|mt-daapd をインストール »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://snbhsmt.blog110.fc2.com/tb.php/94-c015728e

Top

HOME

snbhsmt

Author:snbhsmt
Google Profiles

http://www.ksky.ne.jp/~snbhsmt/

全ての記事を表示する

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。