Linux ルータで、UPnP
久しぶりに、Linux ルータで、upnpが出来ないかgoogleで、検索してみました。
Google:linux upnp iptables
あります、あります。出来るようになっているようですね。
LinuxルーターでUPnP
に、行き当たりました。
apt-cache で、確認しましたが、パッケージ化されていなさそうなので、ソースをダウンロードして構築しました。
必要なファイルを取って来て、
$ wget http://twtelecom.dl.sourceforge.net/sourceforge/upnp/upnpsdk-1.0.4.tar.gz
$ wget http://umn.dl.sourceforge.net/sourceforge/linux-igd/gateway-0.91.tgz 2003/02/14 変更
$ wget http://umn.dl.sourceforge.net/sourceforge/linux-igd/linuxigd-0.92.tgz
$ mkdir src
$ cd src
$ tar zxvf ../upnpsdk-1.0.4.tar.gz
$ tar zxvf ../gateway-0.91.tgz
$ tar zxvf ../linuxigd-0.92.tgz
$ cd upnpsdk-1.0.4
ルータとして、使用する為に
$ vi src/ssdp/ssdplib.c
406行目を
SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP);
↓
SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);
に変更
# make DEBUG=1 WEB=1
エラーになってしまいました。
uuid/uuid.hが無いと怒られたので、
http://www.jp.debian.org/distrib/packages で、パッケージ内容を検索としてみると
devel/uuid-dev にあることが解かり、dpkg -l uuid-dev してみると、インストールされていませんでした。apt-get install uuid-dev で、インストール後に再度 make
# make install
gatewaylinuxigdの中で、iptables をフルパスで、呼んでいるので
# ln -s /sbin/iptables /usr/sbin/iptables
# cd ~/src/gateway-0.91
# cd ~/src/linux-igd
# make
# make install
# vi /etc/network/interfaces
にマルチキャストルーティングを追加
/sbin/route add -net 239.0.0.0 netmask 255.0.0.0 eth0
pppoeで、つながった時に、upnpを有効にしたいので、
# vi /etc/ppp/ip-up.d/01upnp
#!/bin/sh
if [ $PPP_IPPARAM == "ZOOT" ]; then
/usr/bin/upnpd $PPP_IFACE eth0
fi
を作成
コメントをどうぞ!