対戦ゲームやボイスチャットが繋がりにくいとき、原因はほとんどの場合、たった1つのことに行き着きます。あなたの家に、IPv4のグローバルIP(=インターネット上の住所)が自分専用で割り当てられているかどうかです。
宅配便にたとえると、フレンドがあなたに直接データを届けるには「あなたの家の住所」が必要です。ところが最近の回線では、1つの住所(IPv4アドレス)を大勢の契約者で共有していることが珍しくありません。マンションの共用ポストみたいな状態です。これだと相手はあなたの家(部屋)を特定できず、荷物=ゲームのデータが届きません。これが「繋がらない」の正体です。
ここで「IPv4の」とわざわざ付けたのには理由があります。対戦ゲームのプレイヤー同士の通信(P2P通信)は、現在もほとんどがIPv4で行われます。そのため「v6プラスでIPv6は速い」という回線でも、IPv4の住所が共有ならP2Pは繋がりにくいのです。この共有の仕組み(CGNAT・IPv4共有)はページ後半で詳しく説明します。
このページでは、この結論を理解するための道のり──P2P通信・グローバルIP・NAT──を順番にゼロから解説します。「仕組みはええから今すぐ直したい」という人は実践編へどうぞ。
インターネット上の通信には大きく2種類あります。
サーバー経由型(クライアント・サーバー型)は、すべての通信が中央のサーバーを経由します。YouTubeやNetflixがこれで、あなたのスマホは「サーバーから受け取るだけ」なので、NATタイプ(後半で説明します)が悪くても問題ありません。PSO2(ファンタシースターオンライン2)・FF14(ファイナルファンタジー14)のようなMMORPGも、プレイヤー同士の通信はすべて運営のサーバーを経由するため、NATタイプを気にせず快適に遊べます。
P2P(ピア・ツー・ピア)型は、プレイヤー同士が直接通信します。格闘ゲーム・シューター・レースゲームのように「相手の動きをリアルタイムで受け取る必要があるゲーム」でよく使われます。マッチメイキングだけサーバーを使い、ゲームデータのやりとりはプレイヤー同士で直接行う仕組みです。
同じ「あなた→相手」という通信でも、①は必ずサーバーという中継地点を経由し、②は間に何も挟まず直接つながります。P2Pで問題になるNATタイプは、この「①には無い、②だけの直接接続」が原因で起きます。
P2Pでは、相手があなたのIPアドレスに直接データを送ってきます。このとき「あなたの玄関(ポート)が開いているか」が重要になります。これがNATタイプの話です。
NATの話をする前に、2種類の「住所(IPアドレス)」を知っておく必要があります。
世界中でただ1つに決まる住所です。インターネット上の通信は、最終的にこのグローバルIPを使って相手を見つけます。ふつう、1つの契約回線につき1つのグローバルIPがプロバイダーから割り当てられます。
なお、このページで単に「グローバルIP」と書くときはIPv4のグローバルIPを指します。冒頭の結論のとおり、P2P対戦で勝負を分けるのはIPv6ではなくIPv4の住所だからです。
家の中のルーターやWi-Fiで繋がる機器(スマホ・PC・ゲーム機)には、それぞれプライベートIPと呼ばれる番号が振られます。これがプライベートIPです。マンションの「101号室」「102号室」のような、建物の中だけで通じる部屋番号のようなものです。
・192.168.0.0〜192.168.255.255(家庭用ルーターで一番よく使われる)
・10.0.0.0〜10.255.255.255
・172.16.0.0〜172.31.255.255(172.16.x.x〜172.31.x.xの範囲。企業のネットワークで使われることが多い)
この3つの範囲は「世界中のどの家庭・会社で使っても重複してOK」と決められた特別な番号です(RFC1918という規格)。
家に何台端末があっても、外から見えるグローバルIPは1つだけ。3台それぞれの「行ってきます」がルーターに集まり、ルーターが1つのグローバルIPに変換してから外に送り出しています。この変換の仕組みが、次に説明するNATです。
・グローバルIP → ルーター管理画面のWAN側IPで確認できます(確かめ方は記事「ゲームだけ繋がらない?」参照)
・プライベートIP → Windowsなら「ipconfig」、Macなら「システム設定→ネットワーク→詳細」で確認できます
家の中のデバイス(スマホ・PC・ゲーム機)は、それぞれプライベートIP(192.168.x.xなど)を持っています。でもインターネット上にはグローバルIPが1つだけ与えられています。ルーターはこの2つを変換(翻訳)する役割を持っていて、この仕組みをNAT(Network Address Translation)と言います。
問題は「外から家に入ってくる通信」です。P2Pゲームで相手があなたのPS5に直接データを送ろうとしたとき、ルーターは「このデータ、家の中のどのデバイスに渡せばいいの?」と判断できないことがあります。この「玄関の開き具合」がNATタイプです。
| タイプ | 意味 | ゲームへの影響 |
|---|---|---|
| タイプA | グローバルIPが直接ゲーム機やPCに割り当たっている。玄関が全開。 | 最良 どんな相手とも繋がれる |
| タイプB | ルーター経由だがUPnPや適切なポート設定で開放できている。 | 良好 ほぼ問題なし |
| タイプC | ルーターが厳しく制限。外からの接続要求を多くブロック。 | 注意 一部のプレイヤーと繋がれない |
| タイプD | ほぼすべての外からの接続をブロック。CGNATの場合が多い。 | 問題あり オンライン対戦できないことも |
①CGNATでグローバルIPが来ていない(最多)
②ルーターのUPnPが無効になっている
③ルーターのファイアウォール設定が厳しすぎる
ここまで何度か出てきた「UPnP」「ポート開放」も、玄関(ポート)の開き方に関わる仕組みです。どちらも目的は同じ(外からの通信をルーターの奥まで届かせる)ですが、やり方が違います。
ルーターの管理画面から、「このポート番号あての通信は、家の中のこのデバイスに送ってください」と手動で設定する方法です。ゲーム機やPCのIPアドレスとポート番号を自分で入力する必要があり、少し手間がかかりますが、確実に設定できます。
UPnP(Universal Plug and Play)は、ゲーム機やPCのゲーム・アプリが「このポートを開けてください」とルーターに自動でお願いする仕組みです。手動設定が不要なので簡単ですが、ルーター側でUPnP機能自体がオフになっていると機能しません。
①も②も、ゴールは同じです。ルーターに「このポートはこの端末へ送って」と伝えておくことで、あとから来る対戦相手の接続要求がちゃんと家の中まで届くようになります。①は自分で設定するので確実、②はゲーム機やPCが自動でお願いする分、ルーターのUPnP設定がオンになっている必要があります。
① ルーターの管理画面で「UPnP」の設定がオンになっているか確認する(オフならオンにする)
② それでも改善しない場合、ゲーム機やPCのIPアドレスを固定した上で、該当のポート番号を手動でポート開放する(ゲームタイトルごとに必要なポート番号は公式サイトで案内されています)
③ CGNAT環境の場合、①②をどちらも設定しても外からの通信がISPの手前で止まってしまうため、効果が出ません。CGNATかどうかの確かめ方は記事「ゲームだけ繋がらない?」にまとめてあります。
CGNATでは、あなたのルーターに届いているWAN IPがプロバイダーのプライベートIP(100.64.x.x)です。グローバルIPはさらにその外にあります。
P2Pゲームの相手があなたのPS5に繋ごうとしても、ISPのCGNATが壁になって届きません。ルーターのポート開放をしても意味がない(そもそも外から来ない)のはこのためです。
解決策は1つ:プロバイダーにグローバルIPを付けてもらう。契約しているCATVやISPに「グローバルIPオプション」があるか問い合わせてみてください。ただしグローバルIPになっても、ルーターのファイアウォール設定やUPnP設定によっては引き続き制限されることがあるため、あわせてルーター側の設定も確認してください。
CGNATがあるのに、実際にはP2P通信が成立してしまうケースもあります。ポイントは「どちらが先に接続を仕掛けるか」です。CGNATが塞ぐのは、あくまで外から冷たく飛んでくる接続要求だけ。あなたの機器が先に外へ向けて通信を送ると、CGNATはその送信に対応する一時的な穴(マッピング)を作ります。相手がタイプA・Bのように玄関が開いた相手であれば、あなたが先に相手へパケットを送ることで、その穴を通じて相手からの返信も戻ってこられます。
① 先に自分から接続を仕掛けている(相手の玄関が開いていれば、CGNATに一時的な穴ができる)
② NATホールパンチング:マッチングサーバーがお互いのIP・ポートを教え合い、両者が同時にパケットを送り合って穴を開け合う(ただしCGNATが「送信先ごとに毎回別ポートを使う」厳しいタイプ=symmetric NATだと、これもほぼ失敗する)
③ 裏でリレーに切り替わっている:直接のP2Pが無理だった場合、ゲーム側が自動でサーバー経由の通信に切り替え、ユーザーからは「P2Pで繋がっている」ように見えているだけのケースもある
CGNATの厳しさ(symmetricかどうか)はISPや機器によって差があるため、「同じCGNAT環境なのに繋がる人と繋がらない人がいる」という現象が起きるのはこのためです。