2013年6月2日日曜日

FreeBSDからUPnP IGDのポートマッピングを設定する(with miniupnpc)



以下を参考にちょっとしたノウハウの追加


http://d.hatena.ne.jp/konbunori/20110328/1301250660


説明を足したい


NAT設定の説明は-eオプションで足せます



upnpc -u ${ROOT_RUL} -e "my main server ssh " -a 192.168.1.3 22 8022



動作が遅い


ルータを探すのに2秒ほど待つので遅いです。



upnpc -l



とやってdesc:で始まる行がルータのURLなのでソレをメモしておけば高速に実行できます。


シェルスクリプトなんかではこんな風にするといいんじゃないでしょうか?



ROOT_URL=`upnpc -l | grep "desc:" | head -n 1 | sed -E 's/ +desc: +//'`


upnpc -u ${ROOT_URL} -e "my main server ssh " -a 192.168.1.3 22 8022






簡単な実運用方法


同じ設定を何度やっても特段弊害はなさそうです(試したルータはPR-400KI)。


なんで単純にこんなスクリプトをcronで回しまくれば大丈夫です(多分)



#!/bin/sh


ROOT_URL=`upnpc -l | grep "desc:" | head -n 1 | sed -E 's/ +desc: +//'`


upnpc -u ${ROOT_URL} -e "my main server ssh " -a 192.168.1.3 22 8022 tcp >/dev/null


upnpc -u ${ROOT_URL} -e "my main server ssh " -a 192.168.1.3 22 8023 tcp >/dev/null



なんでこんな事しらべたの?


多くのFreeBSD使いは、実家だとか知り合いのマシンのリモートメンテしてたりする事が多いかと思うんです。そんなとき「ルータの設定飛んじゃった」とか困りますよね。


ルータ故障に関しては、インターネットが繋がるって所までは電話屋呼びつけて修理させればOK。ただ、田舎のNTT系列会社にNATが理解できるとは思えない。最近はUPnPデフォルトONみたいなんで、これで設定しとけばとりあえず安心だよね~という事で。。。


変なソフトに先に取られちゃうリスクはあるので、静的に設定しとくのも大切っちゃ大切なんですが。





0 件のコメント:

コメントを投稿