Skylink HD と UPnP #minpos

Skylink HDのお話の続き。
と言うよりも、どちらかと言うとLinux絡み。

17163-630-291539

前回のエントリーで、

箱から出して、ブラウザ画面に、Skylink HDのGUIを表示させるまでは、確かに簡単です。
前提として、ネットワーク上でDHCPが動いていることがありますが、フツーにブロードバンドルータ経由でインターネット接続しているのなら、問題はないはずです。

[From Skylink HD が届いたよ #minpos | MonoFellows - Soukaku's HENA-CHOKO Blog]

とは書いていたのだけど、ウチの環境ではグローバル側とプライベート側を分けているLinuxサーバをUPnP対応にしないといけなかったというオチがあったので、その辺りのお話。


UPnP対応じゃないと、どうなるのか

前回のエントリーを書いた段階では、Macからのアクセスは問題なかったので、コレで大丈夫と思っていたのだけど、iPhoneのiShareing経由でアクセスしても、iPhoneからのデータアップロードが上手く出来なかったり、Skylink HDにおいた画像やムービーが見れないという状況だったのです。
なぜかなぁ〜、と思っていたところに「ルータがUPnP対応じゃないとダメなのかな?」ということに気がついた。

ウチでは、iPhoneもWi-Fi経由でのアクセスにはプロキシーを通しているので、UPnPが聞いていない状況で、写真のアップロードをしても、ありえないURLに対してフアイルアップロードを使用をしているログが残ってるし、

1355319183.754      0 172.16.0.252 TCP_MISS/503 4320 POST http://(null)/dav/home/Photos/Strike%20Eagle-0016.jpg? - DIRECT/(null) text/html
1355319183.999 0 172.16.0.252 TCP_MISS/503 4325 POST http://(null)/dav/home/Photos/Strike%20Eagle-0016.jpg? - DIRECT/(null) text/html
1355319184.046 0 172.16.0.252 TCP_MISS/503 4326 POST http://(null)/dav/home/Photos/Strike%20Eagle-0016.jpg? - DIRECT/(null) text/html
1355319184.095 0 172.16.0.252 TCP_MISS/503 4326 POST http://(null)/dav/home/Photos/Strike%20Eagle-0016.jpg? - DIRECT/(null) text/html
1355319184.138 0 172.16.0.252 TCP_MISS/503 4326 POST http://(null)/dav/home/Photos/Strike%20Eagle-0016.jpg? - DIRECT/(null) text/html
1355319184.180 0 172.16.0.252 TCP_MISS/503 4326 POST http://(null)/dav/home/Photos/Strike%20Eagle-0016.jpg? - DIRECT/(null) text/html
1355319184.221 0 172.16.0.252 TCP_MISS/503 4326 POST http://(null)/dav/home/Photos/Strike%20Eagle-0016.jpg? - DIRECT/(null) text/html
1355319184.268 0 172.16.0.252 TCP_MISS/503 4326 POST http://(null)/dav/home/Photos/Strike%20Eagle-0016.jpg? - DIRECT/(null) text/html

UPnPが有効じゃない時のマイサーバー画面

iSharingのマイサーバ画面に何も表示されない状態。

UPnPをLinuxで有効にする場合は、linux-igdというパッケージを入れれば良いということなので、それをインストールしてみた。
Debianなので、aptitudeで依存パッケージのインストールまで、らくらく完了。

nexus01:~# aptitude install linux-igd
以下の新規パッケージがインストールされます:
libupnp4{a} linux-igd
更新: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
アーカイブ 207 k バイト中 0 バイトを取得する必要があります。展開後に 655 k バイトのディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] y
バグレポートを取得しています... 完了
Found/Fixed 情報を解析しています... 完了
以前に未選択のパッケージ libupnp4 を選択しています。
(データベースを読み込んでいます ... 現在 129853 個のファイルとディレクトリがインストールされています。)
(.../libupnp4_1.8.0~svn20100507-1.1_amd64.deb から) libupnp4 を展開しています...
以前に未選択のパッケージ linux-igd を選択しています。
(.../linux-igd_1.0+cvs20070630-4_amd64.deb から) linux-igd を展開しています...
man-db のトリガを処理しています ...
libupnp4 (1.8.0~svn20100507-1.1) を設定しています ...
linux-igd (1.0+cvs20070630-4) を設定しています ...
Starting Linux IGD Daemon: Unknown config line: upnp_log_filename = "";
linux-igd.

あとは、/etc/default/linux-igdで、インターネット側と内部ネットワーク側、それぞれのネットワークインターフェースを指定して、

EXTIFACE=eth2

linux-igdの再起動をして、下のようにupnpdが起動していることを確認。

nexus01:~# ps axf | grep upnp
30588 pts/1 S+ 0:00 \_ grep upnp
17974 ? Sl 0:00 /usr/sbin/upnpd eth2 eth0

iptablesでマルチキャストを通すように設定したら、準備OK。

nexus01:~# iptables-save | grep 224.0.0.0
-A INPUT -d 224.0.0.0/4 -j ACCEPT
-A INPUT -s 224.0.0.0/4 -j ACCEPT

これで、iPhoneからもSkylink HDに写真をアップロードしたり、Skylink HD上のファイルにアクセスすることが出来るようになります。
おそらく、一般的なブロードバンドルータ使っていたら、こんな苦労しなくていいんだろうな〜、とは思いますが。
#きっと、チェックボックス1個、オンにするぐらいで、終わりなんじゃ無いかと…。

17163-630-291539

トラックバック(0)

コメントする