«前の日記(2007-01-27) 最新 次の日記(2007-02-09)» 編集

yasunori's tedious diary

検索キーワード:

2007-01-28

コンピュータ UPnP 対応

わが家のルータは FreeBSD 5.4RELEASE を入れた PC をルータにしています。 今までは ppp (with NAT) + ipfw で NAT ルータ機能を実現していましたが、 これだと PS3 を繋いだときに NAT Type3 と言われてしまいます。 NAT Type3 だと AV チャットや通信ゲームで制限がでてしまうということ で(実際、通信対戦で問題が出ているので) UPnP 対応することにしました。

もちろん FreeBSD で実現する方向です。といってもすでに機能は実装されているので、利用するだけです。FreeBSD で UPnP をつかうためには

1) ppp with NAT + ipfw から ppp without NAT + ipf + ipnat に移行

2) upnpd, linuxigd のプログラムをいれる

が必要です。

1) はパケットフィルタのルールを ipfw から ipf 用に書き直すのが少々面倒なのですが、仕方ありません。

コンピュータ設定備忘録

1-1) カーネルの再構築

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_FORWARD
options         IPFIREWALL_VERBOSE_LIMIT=0

を抜いて、

options IPFILTER
options IPFILTER_DEFAULT_BLOCK
options IPFILTER_LOG

を追加し、再構築。

1-2) ipf.rules, ipnat.rules を作成 (詳細は割愛)

注意点として デフォルト DENY のルールで運用している場合には、UPnP 自身で用いるポートを開けておくことを忘れないように。(ここではまった)

UDP 1900
TCP 2869
TCP 5000

1-3) /etc/rc.conf の修正

ppp_nat="YES" -> ppp_nat="NO"
ipfilter_enable="YES"
ipfilter_rules="/etc/ipf.rules"
ipfilter_flags=""
ipmon_enable="YES"
ipmon_flags="-D /var/log/ipflog"
ipnat_enable="YES"
ipnat_flags=""
ipnat_rules="/etc/ipnat.rules"
static_routes="upnp"
route_upnp="239.0.0.0/8 -interface bge0"

を追加

1-4) rc.local の修正

/sbin/ipnat -CF -f /etc/ipnat.rules

*注: ipnat は rc.conf にかかれているので起動時に設定されるのですが、わが家の環境では起動タイミングが早いらしく、rc.conf の設定から呼び出されるタイミングでは NAT がうまく動きませんでした。そのため、ipnat を遅延させて呼び出すために rc.local に追加しています。

2-1) upnpd のインストール

# cd /usr/ports/devel/upnp
# make  
# make install

2-2) linuxigd のインストール

# cd /usr/ports/net/linuxigd
# make 
# make install

2-3) 起動スクリプトの修正

# cd /usr/local/etc/rc.d
# cp linuxigd.sh.sample linuxigd.sh
# chmod +x linuigd.sh
(スクリプトの修正。EXT_IF, INT_IF の変数を適切に設定)

これで無事、PS3 のネットワーク接続テストで UPnP あり、NAT Type2 として認識されました。めでたし。

本日のコメント(全17件) [コメントを入れる]
     (2008-02-11 23:20)

あのな、パソコンのUPnPですかね?それは関係ないんですがね。僕はps3のUPnpがやばいんですがね、どうすればいいんですかね、教えていただけたら光栄です。やばいんじゃないのかな?やばいんじゃないのかな?やばいんじゃないのかな?やばいんじゃないのかな?やばいんじゃないのかな?やばいんじゃないのかな?やばいんじゃないのかな?

     (2008-02-11 23:21)

すいません、ps3のことでしたか・・・WW<br>さっきは頭にきて、ついつい言ってしまいました・・・<br>申し訳ありません・・・・

yasunori (2008-02-12 10:24)

ななしさん、PS3 で UPnP 使う場合、ルータ経由でインターネットに繋いでいるなら、ルータの UPnP を ON にして、適切なポートを開けておけば、PS3 側の設定は UPnP ありにしておくだけです。<br>うちみたいに PC ルータではなく、最近のブロードバンドルータを使っているなら大概 UPnP はサポートしているので、あまり敷居は高くないと思います。

     (2008-02-13 21:37)

あと、パソコンの古さとかって、関係あるんですか??<br>教えてください><

     (2008-02-13 21:44)

僕が言っていることは、最近出た、ロストプラネット(オンラインゲーム)で、部屋に入る接続率が悪いんです。<br>エラーになったり、サインアウトしてしまったりと、異常が起きてるんです・・・。そして、接続テストしてみたんですが、UPnPは、無しになっていて、タイプは3でした。<br>それが原因なんでしょうか?。それとも、やっぱりパソコンの古さですかね?。しかも、PSストアに入るときの接続率も悪いんです。サインインにも時間がかかるんです・・<br>因みに、回線は、光ファイバーです、回線には異常はないと思いますが・・・・。新しいパソコンとか必要なんでしょうか?もしそうだったら、お勧めできるパソコンを教えてください><。

質勺漆偲耳漆 (2008-02-13 22:27)

有難うございます。やってみます。参考になりました><

名無しさん (2008-02-16 19:26)

やっぱ無理です、それってPC変えろって言う意味なんですかね?無理なんだけどね、お金ないんだけどねw<br>お願いがあるんですけど・・、UPnPに対応できて一万円くらいの安いPC教えてください、あったら連絡してください<br>お願いします><

名無しさん (2008-02-16 21:24)

そんなに安いパソコンあるはずないですよね、せめて4.5万円くらいのパソコンが良いですね。指定してすいません・・・・・・・。

名無しさん (2008-02-17 10:39)

ThinkCentre M シリーズ←こんなパソコンを見つけたんですが、見ていただけますか?ThinkCentre M シリーズ←検索してみてください。色々でるんですが、UPnPに対応できるかどうかは僕じゃ分かりませんので。<br>yasun\noriさんの知識をお貸しください><

名無しさん (2008-02-17 21:54)

最近メール来ませんねえ、どうしたんですかねえ、メールしてほしいんですがねえ、教えて欲しいんですがねえ。教えてくれないかな?裏切ったんですかね?

名無しさん (2008-02-17 21:56)

メールしてほしいんですがねえ←これは、返信してほしいんですがねえ、に修正w

HOME (2008-02-17 21:59)

僕も、名無しさんと同じ異常が出てます。回線は光なんですが、UPnPが有になっていません(PS3)で・・・。<br>どうしてでしょうか?ルータのUPnPONにしてるんですが・・・・、なぜだかオンラインの接続率悪すぎ><<br>僕もパソコン古いんですがねw

HOME (2008-02-17 21:59)

ですがね、ですがねうぇうぇww

HOME (2008-02-17 22:00)

↑すいません、ふざけてしまって・・・・

yasunori (2008-02-18 21:16)

PS3 をブロードバンドルータ経由でインターネットにつないでいるなら、PC を経由しないで、ブロードバンドルータとPS3 だけでつなぐ方が良いです。PC のことは忘れてください(PC のスペックと NAT type2 にならないことは関係ないです)。<br><br>その上で、ルータが UPnP ON になっているならポートの解放ができているかチェックしてみるのが良いでしょう。<br><br>http://www.armoredcore-wiki.net/index.php?%A5%CD%A5%C3%A5%C8%A5%EF%A1%BC%A5%AF%C0%DF%C4%EA<br>も参考になると思います。

ロック★ (2008-02-23 16:02)

ロック★と言います。僕はUPnPがなしになっていて、タイプも3になっています。ポート開放すればいいのですが・・。<br>でも、ポート開放の仕方が分かりません><<br>教えてくれませんか?。御願いします

yasunori (2008-02-23 21:08)

ななしさん、ポートの解放の方法はご自分のもっているルータの説明書をみてください。バッファロー、IODATA、コレガのルータなら、上のコメントにのせた URL からポート解放の方法がたどれます。これ以上は環境がわからないので回答できません。