Gentoo Linuxで作ったIPマスカレード・ルータに,UPnP機能を追加してVoIPアダプタをつなげたときのメモです. 必要なもの(使ったもの)†
linux-igdの以前のバージョンでは,iptablesのパスが,ハードコーディングされていたのですが,今は,設定ファイル(/etc/upnpd.conf)で設定できます. UPnP SDKとlinux-igdのインストール†まず,UPnP SDK 1.3.1 はGentooのパッケージに含まれていますので,単にemergeします. emerge upnp linux-igd は,0.92までしか含まれていない上に,0.92もMaskedなので,ソースからコンパイルしてインストールします. アーカイブを展開して, # cd linuxigd-0.95 # make # make install でインストールできます. # make HAVE_LIBIPTC=1 で,iptablesコマンドではなく,libiptc を使うようになるようですが,どうもそれをやると,upnpd のプロセスが増殖してしまうようなので,やめました. linux-igdの設定†設定は,/etc/upnpd.conf で行います. まず,iptablesコマンドの場所が違うので,設定します iptables_location = "/sbin/iptables" filterテーブルのFORWARDチェインのPOLICYがDROPになっているなど,ルールが無いとDROPされてしまう場合は,insert_forward_rulesをyesにします.(デフォルトでyesになってます) insert_forward_rules = yes linux-igdは,デフォルトで,natテーブルのPREROUTINGと,filterテーブルのFORWARDチェインにルールを追加するようになっています. forward_chain_name = upnp_fw prerouting_chain_name = upnp_prerouting あとは,FOWARDチェインと,PREROUTINGチェインから,このユーザ定義へ飛ぶようにしておきます. VoIPアダプタなどが,IGD(Internet Gateway Device)にDNATの設定を要求してきたとき,そのルールの持続時間を特に指定していなかった場合,適応する持続時間です. duration = 01:00 ここで,気を付けないといけないのは, duration = 1:00 とすると,1秒になってしまうということです. なお,VoIPアダプタは30分間隔でルールの再生をするので,それより長ければ問題ないはずです. 設定は以上です.他の設定はそのままでも問題ないはずです. 起動†/usr/sbin/upnpd ppp0 eth0 で,動きだします. 起動スクリプトを書くなら,こんな感じです. pppに依存しているので,need net.ppp0 とします. NICの名前は,固定ですがまあいいですよね. /etc/init.d/upnpd depend() { need net.ppp0 } start() { ebegin "Starting upnpd" start-stop-daemon --start --quiet --exec /usr/sbin/upnpd -- ppp0 eth0 eend $? "Failed to start upnpd" } stop() { ebegin "Stopping upnpd" start-stop-daemon --stop --quiet --exec /usr/sbin/upnpd eend $? } |
Last-modified: 2006-12-16 (土) 02:35:34
|