| ドリームキャストの |
| インターネット通信ゲームを |
| フレッツISDNでやろう! |
| ちまたではいろいろと言われてしまっているドリームキャストですが、そんなことには関係なくドリームキャストのゲームは熱い! とくかく熱い!(^^;) ゲーム好きの人たちの心をくすぐるゲームがいっぱいです。 熱いゲームが集まったドリームキャストでも、特に熱いのがインターネットによる通信ゲームですね。 楽しくて時間がたつのも忘れてしまうような通信ゲームですが、忘れてはいけないのが通信のための接続代。電話代とプロバイダの両方の代金を含めると、うっかり遊びすぎるととんでもない値段になりかねません。 プロバイダの方は月々2000円程度の定額のところが増えてきたのでまだよいのですが、問題なのが電話代です。一番安上がりなのはテレホーダイでしょうが、夜は11時以降しか使えません。ゲームを楽しむためには睡眠不足になるし、サーバは混んでるしで、できればもっと早い時間帯や休日の昼間に遊びたいところです。 パソコンでインターネットを使っている人は、ADSLやCATVで接続していたり、ISDNの定額接続であるフレッツISDNを使っていたりすると思います。この便利で快適なシステムもドリームキャストでは、そうそう恩恵を受けることができません。ドリームキャストには標準ではアナログモデムしか付いていないからです。 「せっかく定額制に加入してんのに、なんでドリキャスのために別に金払わなあかんねん!」と思うのが人情というもの。 別売りオプションとして「ブロードバンドアダプタ(BbA)」なるもの(いわゆるイーサネットインターフェース)があるので、これで接続するという手もあるのですが、ADSLやISDNはルーターを通した接続となってしまい、このせいでうまく遊べないゲームがあります。 かくいう私もフレッツISDNを使っており、なんとかドリームキャストの通信ゲームがフレッツISDNでできないか模索していました。 通信ゲームとはいえ、インターネットを使っている限りIPプロトコルのはず。「ならば工夫次第でなんとかなるはずだ!」の固い信念で検討を続けました。ここではその苦難を乗り越えて訪れたバラ色の生活とその方法についてご紹介いたします。[01/02/28初版記] <ご覧になっているみなさまへ> このページを最初に作成してから2年あまりの月日が流れました。 この間に、ADSLによるブロードバンド常時接続が急速に普及し、FTTHも徐々にではありますが、広がりつつあります。我が家のインターネット環境も、フレッツISDNからk-optiの100M光ファイバーへと切り替わりました。 ドリームキャストは製造中止になってしまいましたが、いろいろなプラットフォームでネットゲームのタイトルも徐々に増えつつあります。XBOXではブロードバンド専用のゲーム環境であるXBOX Liveのもとで、数多くのオンラインゲームが生まれようとしています。 ネットワークゲームは、設定の難しいマニアックなものではなく、ごく一般的なものへと変化してきています。このページで語られているような努力は、もう必要のないものとなる日がくるでしょう。 しかしながら、過去にはこんな困難なこともあった、という懐古的読み物として、このページを残しておきたいと思います。[03/01/06記] [01/03/03追記] ブロードバンドアダプタを使用したときの設定も記載しました [01/03/05追記] 本ページの最後に参考用のコラムを記載しました [03/01/06修正] WindowsXP ProfessionalでもWindows2000 Professionalと同じように使えることが確認されました 注釈・備考を追加し、コラムの文章を修正しました |
| フレッツISDNとダイヤルアップルータとWin2kでなんとか… | ||||||||||||||||||||||||||||||
| 私は自宅に常時稼働のサーバを立てています。OSには「Windows2000Professional」を入れており、ファイルサーバの他にwwwサーバとして使っています。なぜUNIX系にしなかったかというと、クライアントとしても使いたいと思っていたからです。 さて、我が家にはこのサーバの他にクライアントのPCが3台あり、それらすべてがLANで接続されています。そしてインターネットとの接続にはダイヤルアップルータを使い、どのパソコンからもインターネットを利用することができるようになっているのです。 従ってこのLANにドリームキャストを参加させることができれば、ドリームキャストからもインターネットが使えることになります。 そこで次のような接続による方法を考えました。 [環境と機材] ・フレッツISDN ・ダイアルアップルータYAMAHA RTA50i ・Windows2000Professional入りのPC(modem/LAN付き) ・ドリームキャスト(モデムのみ) [接続図]
TEL1 +-----------+
電話機 -----------------| ダイアル |
TEL2 | アップ |
ドリキャス -->---->---->---->--| ルータ |--------ISDN回線
TEL3 | RTA50i |
PC(モデム)<----<----<----<--| |
| +-----------+
| LAN |
+---->----->----->----->----->---+
|
|
他のパソコン
接続の要点は、 ・ドリキャスがルータのTEL2ポートにつながっていること ・PCのモデムがルータのTEL3ポートにつながっていること ・PCのLANインターフェースがルータにつながっていること の3点です。 これをどう使っているかを簡単に説明します。 まず、ドリキャスのモデムからルータの内線通話機能を使ってPCのモデムにダイヤルします。 ダイアルアップが成功すると、PCのWindows2000がドリキャスをクライアントとして扱ってくれ、Windows2000のRAS機能によって、LANとドリキャスが接続されます。 つまり、ドリキャスでインターネットにつなごうとすると、
通常の使用ならば(たとえばWeb閲覧とかメール送受信とか)これで問題ないはずです。 しかしながら、インターネット通信ゲームは少し事情が違います。試したところ、
しかしながら、次のソフトは駄目でした。
そこで、ダイアルアップルータに静的IPマスカレードを設定してやれば回避できるのではないかと考えました。要は対戦サーバから見て、さもドリームキャストがグローバルIPアドレスを持っているかのように見せてやればよいわけです。 さて、静的に割り当てるポート番号が問題です。すべてを割り当ててしまうという手もあるのですが、それでは他のパソコン(特にサーバ)でインターネットが使えなくなってしまいます。ゲームで使用しているポートだけを選択的して静的に割り当てるのが理想です。 というわけで、駄目だったソフト2本が使っているポート番号を調べました。
このうち、TCPはドリキャスからの接続のみで、かつ始点ポートは任意でいいようなので、静的に割り当てなくても問題ありません。 UDPは静的IPマスカレードする必要があるようです(RTA50iの場合、フィルタの追加だけでも大丈夫なようですが念のため)。 ICMPは何のために使っているのかわかりませんが、一応、フィルタだけ設定して通しておいた方がいいでしょう。 | ||||||||||||||||||||||||||||||
|
[03/01/06追記] ★「ファンタシースターオンライン」について のちの調査で、「ファンタシースターオンライン」には、UDPを使用する場合と使用しない場合があることが分かりました。ドリームキャスト版Ver.2、PC版、ゲームキューブ版には、UDP使用の設定があります。ただしUDPを使用する設定にしても、必ずしもUDPが使われるわけでは有りません。以下にその条件を記します。なお、Ver.1はUDPの設定ができませんが、常にAUTO扱いとなります。
従って、UDPを使う条件がそろっているのに、ルータのIPマスカレードなどの理由によって各プレイヤーの機器間でUDPパケットの交換が出来ない場合、チームメンバーがお互い止まって見えるなどの不具合が発生します。これは、ルータに、使われているポートを静的IPマスカレードの設定することで解決します。使っているポートについてはセガのホームページで公開されていますので、そちらをご覧ください。 なお、同じ「ファンタシースターオンライン」でも、XBOX版は別のしくみを使っているようで、根本的にこの話とは無関係です。 | ||||||||||||||||||||||||||||||
| エアロダンシングが遊べた! しかし…… |
さて、静的IPマスカレードの設定の結果はというと……。
どうやらもうあと一歩のように思えます。何かまだ見落としているプロトコルがあるのでしょう。 さて、それから目を皿のようにしてルータに流れるプロトコルを調べましたが、どうもリジェクトされているパケットが見つかりません。(流れるプロトコルの調査方法はここをご覧ください。目から鱗が落ちますよ) ここで考えられることは、
まず、Windows2000を疑いました。 ドリームキャストの代わりに別のPCをつなぎ、ダイアルしていろいろなパケットを流してみましたが、どうもここで詰まっている様子はありません。 では、対戦サーバからパケットが届いていない、という問題です。 プロバイダの方でパケットが落ちているかもしれないので、プロバイダを変えて、かつフレッツでない普通のISDNのアクセスポイントにつないでみました。しかしやはり結果は同じでした。 この時点でまったく手詰まりになってしまいました。いったいどうなっているのでしょう? まったく未知のプロトコルが使われているのでしょうか? さんざん悩んだ末、初心に返ることにしました。 まず、エアロダンシングiのホームページを見返すことにしました。そこにはブロードバンドアダプタを使ったときの制限としていくつかかかれていますが、暗に言おうとしていることを推測すると、 ドリームキャストにグローバルアドレスが割り当たってないと駄目だよ! ということのようです。 しかしどうも納得がいきません。なぜグローバルアドレスでないと駄目なんでしょう? ダイアルアップルーターには静的IPマスカレードの設定をしていますから、サーバから見ればダイアルアップルータがドリームキャストに見えているはずです。 何か新しい情報がないかと、再び教科書を読みにいきました。 するとあるページにルータを使用することが困難な場合の例が次のように! IPアドレス情報をデータの中に埋め込んでいたり……! ガーン! まさにその通りのようです。どうやらドリームキャストからサーバに送られるパケットのデータの中に、ドリームキャスト自身のIPアドレスが埋め込まれている、と……。そして対戦サーバはそのデータに埋め込まれているIPアドレスに向かってパケットを送ろうとする……。 私のシステムだとドリームキャストはプライベートアドレスが割り当たっていますから、対戦サーバはプライベートアドレスに送ろうとして、その結果、パケットがこちらに届かない……。 この時点で絶望かと思いかけました。しかし……。 |
| あきらめてはいけない! 再びNATをかけるのだ! |
| そう、ようはドリームキャストにグローバルIPアドレス(と同じアドレス)を与えてやればよいのです。 上の私のシステムをよく見てください。 ドリームキャストはWindows2000が入ったPCにダイヤルアップしています。この時ドリームキャストに与えられるIPアドレスはWindows2000が与えており、そのIPアドレスは任意に設定できるのです。 もちろん我が家のLANの中に流れるIPパケットはプライベートアドレスでないといけませんから(そうでないと、ISDNルータがパニックになってしまう^^;)、Windows2000でIPアドレス変換(すなわち静的NAT)を行い、一度プライベートアドレスに戻し、そしてISDNダイアルアップルータで再びIPアドレス変換(こちらは静的IPマスカレード)すればよいのです。 ↓ (グローバルアドレス) ↓ Windows2000(NAT処理) ↓ (プライベートアドレス) ↓ ISDNダイアルアップルータ(IPマスカレード) ↓ (グローバルアドレス) ↓ ISDN回線 こうすれば、なんと我が家のプライベートアドレスによるPCのLANと同居しながら、ドリームキャストにグローバルIPアドレスが割り当てることができるのです! あまり知られていませんが、Windows2000ProfessionalにもWindows2000Serverと同じようにNATを設定することができます。コマンドプロンプトからタイプして設定しないといけないので大変ですが、なんとかやってのけました(実はこの設定をするのに1週間かかりました)。 ドリームキャストの代わりにパソコンをダイヤルアップしたところ、pingもtracertも通るし、webも見ることができました。 さて、いよいよドリームキャストをつないでみます。まずドリームパスポート3から。 おお! ch@b talkが使えるようになりました! 次はエアロダンシングiです。緊張の一瞬…… クイックロビーには問題なくログイン。コメントも変更可能……。とかしている間に、どなたかから対戦の申し込みが……。思わずAボタン! 対戦サーバに接続……。 うおおおっっ! 対戦できるようになったーーー!!!!! 感動です……。もう言葉もありません。続けて3回も撃墜されましたが、そんなことはどうでもいいです。これからは通信対戦し放題の毎日が待っているんだ……! こんなにうれしいことはない……。 |
|
[03/01/06追記] ★PC版エアロダンシングi パソコン(Windows)用の「エアロダンシングi」が発売されていますが、このネットワーク対戦はドリームキャストと同じサーバで行なわれ、ドリキャス対PCでも対戦できることから、まったく同じシステムを使っていると思われます。 ★エアロダンシングiのインターネット対戦の仕組みの推測 上では、各プレイヤーのドリームキャストがサーバを介して対戦しているように述べていますが、事実はそうではないようです。 サーバにログインし、ロビーで対戦相手を選ぶまでは確かにサーバとの通信のみで行なわれています。しかし、対戦相手が決まり、対戦条件を設定した後、本当の対戦が始まると、どうやらプレイヤーのドリームキャスト同士がピアツーピアで通信しているようです。 このプロセスは以下のようだと推測されます。
★PC版エアロダンシングiの問題点 PC版にはドリームキャスト版では考えられなかったような問題があります。 上で述べているとおり、この対戦システムでは、自分のIPアドレスをデータに埋め込んでサーバに伝えています。ところがパソコンには複数のLANカードがついていて、複数のIPアドレスを持っている場合があります。また、LANカードで家庭内のLANを構築し、インターネットにはモデムやTAで接続している場合も複数のIPアドレスを持っていることになります。 この場合、エアロダンシングiのゲームシステムは、本来取得すべきIPアドレス(グローバルIPアドレス)がわからずに、間違えて別のLANカードのローカルIPアドレスを伝えてしまうことがあるようです。この場合、もちろん対戦は出来なくなります。 |
| 設定のまとめ(モデム使用) | ||||||||||||||||||||||||
|
ルータとドリキャスとWindows2000の設定のまとめを載せておきましょう。どうぞ挑戦してバラ色の人生をお送りください。 ただし、ここに書かれているの内容の普遍的な正否は保証できません。また以下を実行したことによって生じた損害はあなたの責任としてください。特にダイヤルアップルータは設定を間違えた場合、リセットするしか復帰の手段がないことがあります。現在の状態をどこかに保存した上で行うことをお勧めします。 では、検討を祈ります!! 設定におけるIPアドレスの例の説明)
| ||||||||||||||||||||||||
|
[03/01/06追記] ★Windows XPの場合 ここではWindows2000 Professionalを使いましたが、WindowsXP Professionalでも、まったく上記と同じような手順で同じことが出来るのを確認しました(Home Editionでは確認していません)。 ★対戦相手の制限 上記の例では、ドリームキャストのアドレスが"GGG.GGG.GGG.GGG"、ドリームキャストからみたWindows2000のアドレスが"GGG.GGG.GGG.GGG-1"となるようになっています。従って、もし、対戦相手のグローバルIPアドレスが"GGG.GGG.GGG.GGG-1"だった場合、Windows2000とアドレスが重なってしまい、対戦することが出来ません。 こんなことはめったにおきないと思いますが、同じプロバイダのユーザー同士だと可能性はゼロではありません。 |
| ならばブロードバンドアダプタではどうだ!? | ||||||||||||||||||||||||||||||||||||
|
以上でとりあえずドリームキャストのモデムで接続できるようになりました。 しかし、上記の設定の途中で気づいたのですが、ダイアルアップ接続しているクライアント<->サーバ間の応答が異様に遅いのです。 たとえば、win98のパソコンをドリームキャストと同じようにモデムでつなぎ、win2000のRASサーバにpingをうつと
ちなみにISDN回線を通してこのホームページのサーバにpingをうつと、
モデム−モデム間の通信速度は31,200bpsでつながっており、ファイルの転送速度もその程度出ているので、連続的に大きなデータを転送するときは期待通りの速度が出ていると思います。しかし、どうやら最初の応答が遅いように思われます。 これでは実はあまり快適に通信ゲームができていないかもしれません。そこで、近々ADSLへの移行も考えていることもあって、ブロードバンドアダプタを購入しました。ブロードバンドアダプタとはドリームキャスト用の10M/100Mのイーサネットアダプタのことです。 さて、今度はモデムではなくイーサネットによる接続ですから、Windows2000パソコンにもう1枚LANカードを入れる必要があります。幸い、1枚余っていたのでそれを使い、モデムの時と同様にNATを設定して試してみました。 [接続図]
TEL1 +-----------+
電話機 -----------------| ダイアル |
TEL2 | アップ |
----| ルータ |--------ISDN回線
+---------------+ TEL3 | RTA50i |
| PC | ----| |
+---------------+ +-----------+
"DCBBA"| |"LAN" |
ドリームキャスト | | LAN |
(ブロードバンドアダプタ)-->-+ +---->----->----->----->--+
|
他のパソコン
設定におけるIPアドレスの例の説明)
基本的にはモデムの時の設定と変わりありません。 また、パソコンのモデムとルータのTELポートとの間の電話線もつないだままでいいですし、Windows2000の着信接続の設定もそのままで残しておけば、ブロードバンドアダプタからモデムに戻すときも簡単です。 さて、この接続で反応速度がどの程度改良されたのか調べてみました。 というものの、ドリームキャストにはpingやtracertのようなツールはないので、「エアロダンシングi」の通信対戦のロビーで表示される通信状況の数値を比較してみました。
上の表のように、モデムの時はだいたい 480 前後だったものが、260 前後へと下がりました。この数値が小さいほどレスポンスとしてはいいそうなので、かなり改善されたと言えるでしょう。 [こぼればなし] 余談ですが、この通信状況の調査にはUDPのポート20675のパケットが使われているようです。このポートをブロックすると通信状況の数字が表示されなくなります。 [03/01/06追記] ★ADSLやFTTHでは? ここではISDNルータを扱っていますが、BbAを使用する場合、内線を使うこともないため、ISDNである必要はありません。ルータを使用したADSLやFTTHでも、まったく同じような設定でネット対戦ができるようになります。 |
| コラム:余談というわけでもないけれど…… | |||||||||||||||||||||||||||||||||||||
| Windows2000のRASクライアントに固定のIPアドレスを与えるには? | |||||||||||||||||||||||||||||||||||||
|
Windows2000の「着信接続」、すなわちRAS(Remote Access Service)サーバの設定には、クライアントに与えるIPアドレスについて3つの方法が選べます。 ・DHCPを使う ・アドレス範囲を指定してそこから与える ・クライアントが指定する さて、今回使用したのは「アドレス範囲を指定してそこから与える」です。 理由は、我が家のLANではDHCPは広いアドレス範囲を指定しており、ドリームキャストに固定のアドレスを与えるのは不可能であること。そして、ドリームキャストのダイアルアップ機能は自分のIPアドレスを設定できないこと、によります。 「アドレス範囲を指定してそこから与える」方法ですが、実はその「アドレス範囲」からクライアントに割り当てられるアドレスは接続するたびに変わります。これではドリームキャストに固定のアドレスを当てることが出来ません。 この解決方法は「アドレス範囲を2個にする」しか方法がないようです。なぜ1個でないのかというと、アドレス範囲の先頭のアドレスはWindows2000のインターフェースのアドレスとして取られてしまうからです。そして残った2個目のアドレスがドリームキャストのアドレスとして与えられます。 注)WindowsXP Professionalも同じように設定できます。 | |||||||||||||||||||||||||||||||||||||
| ダイアルアップルータが回復不能になる!? | |||||||||||||||||||||||||||||||||||||
|
YAMAHAのISDNダイアルアップルータには恐ろしいほどの機能があります。例えばDHCPのアドレス範囲の指定、100個も設定できるIPパケットフィルタ、静的IPマスカレードの設定、IPパケットログの記録、といったものです。今回のシステムの実現にはこれらの機能を最大限に利用しています。他のメーカーの製品を使っていたら実現不可能なこともあったことでしょう。 しかしこれらの便利な機能も、うっかり使い方を間違えるととんでもないことになることがあります。 例えばIPパケットフィルタ。 私が使っているYAMAHA RTA50iでは、LAN側、PP側ともIN/OUTの両方にフィルタが設定できます。これらを駆使してセキュリティを確保したりできるわけです。そしてこれらの設定は、webブラウザからルータをアクセスして設定することが出来るのです。 ところがこの設定用のwebサーバ機能は、LAN側のフィルタの向こう側にあります。 もしうっかりとLAN側のフィルタにTCPパケットをリジェクトするフィルタを設定してしまったらどうなるでしょう? そう。設定用のページを見ることが出来なくなるため、2度とフィルタを設定できない。つまり2度と設定画面を見ることができない、という復帰不可能状態に陥ります。 シリアルポートから接続すればフィルタを解除できるとは思いますが、我が家ではルータのシリアルポートはつながっていない(つなげない距離にある)ため、私はいつも仕方なくリセットし(工場出荷時状態に戻し)て再設定してました。 なお、RTA50iの場合は、現在の設定をファイルにでも保存しておけば、簡単に復元することが出来きるのがせめてもの救いです。 | |||||||||||||||||||||||||||||||||||||
| ダイアルアップルータがパニックになる!? | |||||||||||||||||||||||||||||||||||||
|
高機能なダイアルアップルータRTA50iですが、結構、どんくさいところもあります。 例えば、LAN側のネットワークはデフォルトでは"192.168.0.0/24"になっています。また、LAN側にはゲートウェイがないことになっています。 で、LAN側にこれらのアドレスを持っている機器だけをつないでいるときは問題ありません。 ところがLAN側にこれ以外のアドレスを持った機器が存在した場合、おかしなことになります。 ルータのLAN側IPアドレスは"192.168.0.x"、サブネットマスク"255.255.255.0"で、ゲートウェイがないのですから、"192.168.0.0/24"以外の始点アドレスを持つパケットは落としてしまってよいはずです(よね? 基本的なところで自信なし^^;)。 しかしRTA50iはこれらのパケットを通してしまいます(それが普通なのかもしれませんが)。 この仕様によっておこる異常現象のうちで面白いのがルータ自身に返事を要求するパケットを送った場合です。 例えばDNSによる名前解決。このときルータはちゃんとPP側(つまりISDN回線の先の)のDNSに問い合わせ、その結果を問い合わせ元に返そうとします。ここまではいいのですが、なんとその返答のパケットをLAN側でなくPP側に送ってしまうのです! つまりこのルータは"192.168.0.0/24"以外のネットワークはPP側にある、と思いこんでいるみたいです(ゲートウェイがLAN側にないのですからルーティングとしてはそれで正しいのですが)。 おそろしいのが、"192.168.0.0/24"でないクライアントから設定用webページを呼び出した場合です。 この場合、どうやらルータはページの内容をPP側に送ってしまっているみたいで、いつまでたってもクライアントにはページが表示されません。それどころが、それ以降、どのクライアントも設定用webページを見ることが出来なくなります。私はこの現象を「ルータのパニック」と呼んでいます(^^;)。 これの回復手段は「電源オフ」です。リセットしなくてもいいのが救いでしょう。 この問題については、ルータのLAN側のINフィルタに、始点アドレスが"192.168.0.0/24"以外のパケットをリジェクトするフィルタを追加すれば対処できます。 | |||||||||||||||||||||||||||||||||||||
| 静的IPマスカレードは必要か? | |||||||||||||||||||||||||||||||||||||
|
今回はダイアルアップルータに静的IPマスカレードを設定しました。はたして本当に静的(static)にする必要があるのでしょうか? IPマスカレードは、変換先アドレスが1つしかないNAT(ネットワークアドレス変換)と考えることが出来ます。プライベートネットワークにある全てのクライアントのIPパケットの始点アドレスを、同じグローバルなIPアドレスに変換します。 しかしそれではポート番号が重なってしまったり、どのパケットがどのクライアントのものか分からなくなってしまいます。そのため始点ポート番号を重ならない任意のものに変換します。そしてどの始点アドレス/ポートをグローバルアドレスのどのポートに変換したかを記憶しておくのです。一般にルータはこの変換をテーブルとして記憶しています。 もし外部からプライベートネットワーク宛のIPパケットが来た場合は、この変換テーブルを参照してプライベートアドレスとポートを得ます。そしてそのアドレスを終点アドレスとして、プライベートネットワーク側に送信します。もしテーブルに該当するものがないと、そのパケットは捨てられます。 ルータがIPマスカレードを行なう場合、ポートの変換のされ方は製品ごとに異なります。ルータが起動してから、最初にIPマスカレードしたパケットを1024ポートに、その次を1025ポートに…、と順番に割り振っていくものもあれば、元のポート番号をそのままWAN側のポートに使い、ダブった場合のみ別のを当てる、というものもあります。 では、このテーブルはいつまで保持されているのでしょうか? 大半のルータはこれを時間管理で行っているようです。つまり最後にそのテーブルが使用されてから一定時間以上たつとテーブルが削除されます。逆にいえば、定期的にパケットが行き交っていればテーブルはいつまでも保持されることになります。 このことを考えてみると、「IPマスカレードにおいて、最初にプライベートアドレス側からIPパケットを送信すれば、同じポートを使っていて、かつ頻繁にパケットを交換している限り、IPマスカレードされたポート番号も変わることがなく、通信相手には常に同じアドレス/ポートからパケットが届いたように見え、かつ、そのアドレス/ポートに返信したパケットは必ず相手に届く」ということになります。 このことを通信ゲームにおけるドリームキャストと対戦サーバor対戦相手の関係に置き換えましょう。するとこうなります。 「IPマスカレードにおいて、最初にドリームキャストからIPパケットを送信すれば、同じポートを使っていて、かつ頻繁にパケットを交換している限り、対戦サーバor対戦相手には常に同じアドレス/ポートからパケットが届いたように見え、かつ、そのアドレス/ポートに返信したパケットは必ずドリームキャストに届く」 ドリームキャストの通信ゲームはポート番号が固定され、かつ、常にパケット交換をしていますから、おそらくこの条件に当てはまると思われます。 よってこの文を読む限り、通常のIPマスカレード(つまりルータのデフォルトの状態)で問題はないように思われます。 しかし、UDPを使う場合は駄目な場合があります。それは次のような場合です。
IPマスカレードでは、最初にプライベートネットワーク側から送信されないと変換テーブルが作成されませんし、原則的にポート番号が変えられますから、この3つの場合が駄目なことは分かりますね。このようなことに備えて今回は静的IPマスカレードを設定しました。 静的IPマスカレードは、IPマスカレードの変換テーブルを既定値でセットしたもので、通常はポート番号はそのまま通し変換を行いません(元のポート番号=変換後のポート番号)。またタイムアウトによるテーブルの破棄も行われません。これによって上の問題はクリアされます。 しかし静的IPマスカレードを設定するためにはアプリケーション(ゲーム)が使っているポート番号を特定する必要があります。 静的IPマスカレードを設定すると、設定されたポート番号はプライベートネットワークの特定のノード(今回はドリームキャスト)でしか使えなくなります。もし使われているポートが特定できず、全てのポートにIPマスカレードを設定すると全てのポートが特定のノードに割り当てられ、他のマシンはグローバルネットワークに対するアクセスが不可能になってしまうのです。 今回のように、特定のアプリケーションによる特定のポートだけの設定ならば、実用上、問題は起こらないでしょう。 なお、ここで対象にしている「エアロダンシングi」のようなシステムの場合、静的IPマスカレードを設定してネットワーク対戦を可能にしたとしても、そのLAN内からは1台しか対戦に参加できません。 | |||||||||||||||||||||||||||||||||||||
| Windows2000 ProfessionalにおけるNATの設定方法 | |||||||||||||||||||||||||||||||||||||
|
実は私が一番苦労したのは、このWindows2000におけるNATの設定でした。 ちなみに私はネットワーク技術者ではありません。ネットワークについては専門外の素人です。かつ、Windows2000も導入してからわずか1ヶ月の素人です(NTも)。 「エアロダンシングi」を遊べるようにするためには「Windows2000でNATすればよい」という解答が出たものの、この実現方法がわかりませんでした。 それでとりあえず、ネットワークとWindows2000の解説書を立ち読みしながら探し回りました。 しかしながら、なんとWindows2000ProfessionalでのNATの設定方法が載った本を1冊も見つけることができませんでした(ToT)。結局、欲しい情報はないけどもっとも役に立ちそうな本を1万円分近く買い求め、そのおかげでネットワークについては少し詳しくなりましたけどね。 しかし具体的な操作方法はわからずじまいだったので、仕方なく自分でひたすらキーボードをたたいて手探りで設定方法を探ったわけです。 私の他にもこの設定方法を知りたい方は多いと思いますので、ここで簡単に説明することにします。日本語Webサイト初のWin2kProのNAT解説となるでしょう(当社検索結果による^^;)。 Windows2000ServerにはGUI(というほどではないけど)の「ルーティングとリモートアクセス」というツールが付属しています。IPパケットフィルタやNATはこれを使って簡単に設定することができます。しかし Windows2000Professionalには付属していません(安いから仕方ないか -_-;)。 ではどうするのかというと"netsh"というコマンドを使います。しかもコマンドプロンプトからです。 コマンドプロンプトで"netsh"とタイプするとnetsh(ネットワークシェル)が起動し、「ルーティングとリモートアクセス」サービスの設定が変更できるようになるのです。 しかしnetshの中のコマンドもすべてキーボードからのタイプとなります。"add addressmapping"とかいうような長いコマンドもありますから、結構大変です。 netshは"?"を入力するとヘルプが出るので個々のコマンドの説明はそれを見てもらうこととして、具体的にどう設定するかを、今回の設定を例にして説明しましょう。
注意) NATとnetshを使うためには「ルーティングとリモートアクセス」サービスが開始している必要があります。「ルーティングとリモートアクセス」は「着信接続」を設定すると自動的に開始されますが、「着信接続」を使っていない場合は手動で開始させる必要があります。「コントロールパネル」→「管理ツール」→「サービス」を開き、「ルーティングとリモートアクセス」のプロパティで開始させてください。「スタートアップ時」の設定を「自動」にしておくと、次の起動時から自動的に開始されます。 なお、別欄にも書きましたが、このNATの機能はWindowsXP Professionalにも同じものがあり、同じように使用できます。 | |||||||||||||||||||||||||||||||||||||
| 気になる? あなたのセキュリティ | |||||||||||||||||||||||||||||||||||||
|
常時接続しているあなた。セキュリティが気になってますか? ルータに組み込まれているIPマスカレード機能は、一種のファイアーウォールとしての働きがあります。 なぜかという言うと、上で述べたとおり、プライベートネットワーク側からパケットを送信しない限り変換テーブルが作成されないので、グローバルネットワーク側からパケットを送り込むことが不可能だからです。闇雲に送ろうとしてもルータで落とされてしまうだけなのです。 また、私が使っているルータYAMAHA RTA50iはフレッツISDNのような常時接続の設定をすると、自動的にセキュリティのフィルタが設定されます。これは非常に的を射たフィルタ設定となっており、説明されると「おー、なるほど」と感心させられてしまうものです。内部から外部へのアクセスは問題ありませんが、外部からの接続要求やパケットはことごとくふるい落とされてしまいます。 しかしこれを読んでいるそこのあなた! ネットワークゲームを動かそうと焦るあまり、ダイアルアップルータに静的IPマスカレードを設定したり、IPパケットフィルタに穴をあけたりしていますね? それって、セキュリティ上、やばくありません? どう思います? 答えは「やばくもあり、そうでもなし」というところでしょうか。 例えば、あなたのパソコンでネットワークゲームを遊ぼうとして、全てのポートを静的IPマスカレードで割り当ててしまったとしたら、それは「危険性が高い」といえます。だってそれはそのパソコンがグローバルネットワークに直接つながっているのと同じだからです。せめて1023以下のポートは適切なフィルタをかけておくべきでしょう。 しかしそれがパソコンではなく、ドリームキャストのようなゲーム機だったとしたら大した問題ではありません。ゲーム機は外部に対して何もサービスする機能がないからです(少なくとも現状では)。 また、今回の設定のようにポートを限定して静的マスカレードを設定している場合も、危険性は低いと言えます。普段は使われていないポートが3つ程度グローバルネットワークから見えたからと言っても何ができるわけでもありません(IPパケットを送りまくって攻撃するくらいはできるでしょうが)。 実のところ、セキュリティ上、もっとも危ないことは次の2点だと思います。
しっかりパスワードがかかっているところからの進入は困難ですし、一般の人のパソコンに対してはハッカーが苦労して入るほどの値打ちがないことを考えると、IDとパスワードの管理さえきちんとしてれば「完璧ではないけれど、とりあえず安全」といえるのではないでしょうか。もちろん用心するにこしたことはありませんけどね。 最低限必要なのは「セキュリティに関心を持つこと」なのでしょう。 あ、ちなみに私はネットワーク技術者ではないので、ここの話はあまり信用しないでください(って最後に言うか?^^;)。 | |||||||||||||||||||||||||||||||||||||
| ルータの使用は善か悪か? | |||||||||||||||||||||||||||||||||||||
|
現在、インターネットの接続の高帯域化が話題となっています。例えばADSLやCATVがすでにありますし、光ファイバーを家庭に引くことができるようになる日も近いでしょう(01/03/06記)。 我が家ではまだISDNを使っていますが、これは「あんなことやこんなこと」をするためにはISDNには機材がそろっているということが理由です。例えば今回のようにネットワークゲームをやるためには、ダイアルアップルータの機能に頼るところが大変大きかったのです。現在においては、ADSLでは接続用機材(スプリッタやモデム)は自由に選ぶことができないことがあったり、CATVではルータの使用を禁止されていることが多いと聞いています。 ADSLの接続用機材のうち、ADSL対応ルータ(PPPoE対応ルータ)はADSLの普及とともに選択肢が増えてくると思われますし、近いうちにモデムも自由に選べるようになるようです。 ではCATVでのルータの使用はどうでしょうか? そもそもなぜCATVではルータの使用を禁止しているところが多いのでしょう? その理由はほとんどのCATV業者(ISP業務の)の回線形態が「ベストエフォート型」だからだと思います(公然の事実だったらごめんなさい。私はCATVは無知なもので^^;)。 例えば「最高10Mbpsのベストエフォート型」ということは「すいてるときは10Mbps出ることもあるけど、混んでたら遅くなるよ。それでもいいね?」ということです。 ちなみにISDNやADSLもベストエフォート型ですが、これらはルータの使用を認めています(よね?)。 では、同じベストエフォート型なのになぜCATVだけがルータの使用を認めないのでしょうか? それはCATVのバックボーンの帯域幅と契約者1本あたりの帯域幅(のMax)がきわめて近いからだと思います。 例えば、最大10MpbsベストエフォートのCATV業者(ISP)のバックボーンが250Mbpsだったとすれば、わずか25人の契約者が同時にフルにダウンロードに使うといっぱいになり、それ以上の人が使えばどんどん実質的なスピードは落ちていってしまいます。 しかしながらさすがにこれだけ速いとダウンロードもすぐに終わってしまうため、実際に多くの人が同時にダウンロードすることは少ないと思われます。契約者の人数から統計学を使って計算すれば、どの程度の平均速度が期待できるかを試算できるでしょう。 しかしながら契約者がルータを使ったらどうなるでしょうか? CATV業者の方は1台のパソコンがつながっていると思って計算していたら、実はその向こうに何台も隠れていた、ということになったら予想以上のデータが流れ、スピードが落ちてしまう危険性があります。 CATV接続の「ウリ」は、常時接続と高速ダウンロードですから、「スピードが遅い」と契約者が感じたりしたら苦情が出るのは必至です(たとえベストエフォート型だとしても)。 というわけで、CATVはルータの使用を禁止しているのだと思います(先にも述べましたが公然の事実ならばごめんなさい)。最近はルータの使用を認めるところもぼちぼち増えてきているようですが、依然として禁止しているところも多いようです。 CATV業者側の都合はわかりました。 しかしながらルータが使えないと言うのは、契約者側(つまり我々)から見ると不便なものです。 果たしてこの「ルータ禁止」は仕方のないことなのでしょうか? 私は「一般の家庭内」程度なら許して欲しいと思います。これをオフィスなんかで使われたりするとまた事情が変わりますが、一般の家庭では家族がそろって別々にインターネットを使うことはまれだと思います。ルータを使おうが使うまいがあまり変わらないのではないでしょうか? また、グローバルIPアドレスが枯渇してきているという事情もあります。IPアドレスは32bitのデータであり、そんなに大きくない有限の数値です。いずれ128bitのIPv6に移行するとしても、すぐに全ての機器が対応するのは難しいでしょう。 ルータで使われているIPマスカレードやNATは、枯渇するグローバルIPアドレスの消費を押さえるには、実に即効性のある技術です。 多くのCATV業者に見られるようなIPアドレスの追加オプションをもうけるのではなく、1契約あたり1アドレスとしルータの使用を認める。これがベストではないでしょうか? また上の別項で述べたとおり、ルータはセキュリティに関しても有利です。 現在、CATVを使ってインターネットに接続している人たちの多くは、自分たちのパソコンがインターネットにさらけ出されている事実を認識していないでしょう。しかしルータを導入するだけでいくらかセキュリティを上げることができるのです(もちろんルータとその設定によります。利口なルータの供給を期待しましょう)。 また、セガを始め、ネットワークゲームを供給する側にも注文があります。 それは是非ルータの使用を前提としたネットワークゲームのシステムを使って欲しい、ということです。 このページに書かれている設定によって、ルータを使用した環境でもネットワークゲームができるようになります。しかしながらこれらの作業には専門的な知識と、いくらかの出費と、おそるべき努力が必要です。 しかしルータの使用を前提としたシステムを使ってもらえれば、今よりも比較的簡単にネットワークゲームが楽しめるようになるでしょう。一家に子供の数だけゲーム機を購入する家庭が増えることも予想できます。 ドリームキャストは残念ながら製造中止になるそうですが、他のプラットフォームにおいてはこれからもネットワークゲームは普及していくでしょう。それらのプラットフォーム全てにグローバルIPアドレスを割り振ることなど、はたして可能でしょうか? 以上のことを踏まえて、私はルータの使用を業者、ユーザーの双方に対して進言いたします。 あ、ちなみに私はネットワークアナリストではないので、ここの話はあまり真剣に取らないでください。単なる素人のボヤキです(ってまた最後に言うか?^^;)。 | |||||||||||||||||||||||||||||||||||||
|
[03/01/06追記] 最初のこの欄を書いてから2年近くが流れました。現在、我が家はFTTHを引いており、快適なインターネット環境で、快適なネットワークゲームが楽しめています。 2年前ではあまり種類もなかった家庭用PPPoE対応ルータも、「ブロードバンドルータ」という通り名で多くの種類が発売されています。値段も数千円から高速なものでも1万円代。CATVもルータを許可するところが増え、もう家庭にルータを導入するのも一般的になったと言えるでしょう。 ネットワークゲームの技術も改良され、スクエアの「ファイナルファンタジーXI」に代表されるPlay Onlineや、マイクロソフトのXBOX Liveのように、ルータのNAT環境下でも動作するシステムが登場してきています。 しかしながら、ネットワークゲームが一般的になってくると、個人でもネットワークゲームを作ってみようとか、サーバを立ち上げて見ようとか言う人も出てきています。そんなとき、このページを見て、簡単につなげて遊べるシステムを作ってもらえたら幸いです。 | |||||||||||||||||||||||||||||||||||||