P2P通信と
NATタイプの関係

仕組み編
対戦ゲームやボイスチャットが「繋がりにくい」理由を、仕組みからゼロで解説します。原因を探して直したい人は、続きの実践編とセットでどうぞ。
先に結論 ── 大事なのは「IPv4のグローバルIP」

対戦ゲームやボイスチャットが繋がりにくいとき、原因はほとんどの場合、たった1つのことに行き着きます。あなたの家に、IPv4のグローバルIP(=インターネット上の住所)が自分専用で割り当てられているかどうかです。

宅配便にたとえると、フレンドがあなたに直接データを届けるには「あなたの家の住所」が必要です。ところが最近の回線では、1つの住所(IPv4アドレス)を大勢の契約者で共有していることが珍しくありません。マンションの共用ポストみたいな状態です。これだと相手はあなたの家(部屋)を特定できず、荷物=ゲームのデータが届きません。これが「繋がらない」の正体です。

①専用の住所がある=直接届く 🧑 フレンド 🏠 203.0.113.5 あなた専用の住所(IPv4グローバルIP) 📦 ②住所を大勢で共有=部屋がわからない 🧑 フレンド 📮 みんなで共有の住所 🏢 どの部屋があなた? 📦 ここで止まる

ここで「IPv4の」とわざわざ付けたのには理由があります。対戦ゲームのプレイヤー同士の通信(P2P通信)は、現在もほとんどがIPv4で行われます。そのため「v6プラスでIPv6は速い」という回線でも、IPv4の住所が共有ならP2Pは繋がりにくいのです。この共有の仕組み(CGNAT・IPv4共有)はページ後半で詳しく説明します。

このページでは、この結論を理解するための道のり──P2P通信・グローバルIP・NAT──を順番にゼロから解説します。「仕組みはええから今すぐ直したい」という人は実践編へどうぞ。

P2P通信とは何か

インターネット上の通信には大きく2種類あります。

サーバー経由型(クライアント・サーバー型)は、すべての通信が中央のサーバーを経由します。YouTubeやNetflixがこれで、あなたのスマホは「サーバーから受け取るだけ」なので、NATタイプ(後半で説明します)が悪くても問題ありません。PSO2(ファンタシースターオンライン2)・FF14(ファイナルファンタジー14)のようなMMORPGも、プレイヤー同士の通信はすべて運営のサーバーを経由するため、NATタイプを気にせず快適に遊べます。

P2P(ピア・ツー・ピア)型は、プレイヤー同士が直接通信します。格闘ゲーム・シューター・レースゲームのように「相手の動きをリアルタイムで受け取る必要があるゲーム」でよく使われます。マッチメイキングだけサーバーを使い、ゲームデータのやりとりはプレイヤー同士で直接行う仕組みです。

①サーバー経由型:必ず2ホップ 🧑 あなた 🗄️ サーバー (必ずここを通る) 🧑 相手 1ホップ目 2ホップ目 📍 経由中 ②P2P型:直接つながる=1ホップ 🧑 あなた 🧑 相手 経由地なし

同じ「あなた→相手」という通信でも、①は必ずサーバーという中継地点を経由し、②は間に何も挟まず直接つながります。P2Pで問題になるNATタイプは、この「①には無い、②だけの直接接続」が原因で起きます。

P2Pでは、相手があなたのIPアドレスに直接データを送ってきます。このとき「あなたの玄関(ポート)が開いているか」が重要になります。これがNATタイプの話です。

プライベートIPとグローバルIP ── まずこの違いから

NATの話をする前に、2種類の「住所(IPアドレス)」を知っておく必要があります。

グローバルIP ── インターネット上の住所

世界中でただ1つに決まる住所です。インターネット上の通信は、最終的にこのグローバルIPを使って相手を見つけます。ふつう、1つの契約回線につき1つのグローバルIPがプロバイダーから割り当てられます。

なお、このページで単に「グローバルIP」と書くときはIPv4のグローバルIPを指します。冒頭の結論のとおり、P2P対戦で勝負を分けるのはIPv6ではなくIPv4の住所だからです。

プライベートIP ── 家の中だけで使う住所

家の中のルーターやWi-Fiで繋がる機器(スマホ・PC・ゲーム機)には、それぞれプライベートIPと呼ばれる番号が振られます。これがプライベートIPです。マンションの「101号室」「102号室」のような、建物の中だけで通じる部屋番号のようなものです。

プライベートIPとして使われる範囲(決まりごと):
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が3台 🎮 192.168.1.5 📱 192.168.1.10 💻 192.168.1.20 📡 ルーター(NAT変換) 3つ→1つに変換 🌐 グローバルIP(1個だけ) 例: 210.xxx.xxx.1 192.168.1.5 192.168.1.10 192.168.1.20 変換中… 210.xxx.xxx.1

家に何台端末があっても、外から見えるグローバルIPは1つだけ。3台それぞれの「行ってきます」がルーターに集まり、ルーターが1つのグローバルIPに変換してから外に送り出しています。この変換の仕組みが、次に説明するNATです。

自分のIPを確認する方法:
・グローバルIP → ルーター管理画面のWAN側IPで確認できます(確かめ方は記事「ゲームだけ繋がらない?」参照)
・プライベートIP → Windowsなら「ipconfig」、Macなら「システム設定→ネットワーク→詳細」で確認できます
NATとは何か ── 家のルーターが「翻訳機」になっている

家の中のデバイス(スマホ・PC・ゲーム機)は、それぞれプライベートIP(192.168.x.xなど)を持っています。でもインターネット上にはグローバルIPが1つだけ与えられています。ルーターはこの2つを変換(翻訳)する役割を持っていて、この仕組みをNAT(Network Address Translation)と言います。

🎮 ゲーム機・PC 📡 ルーター 住所を書き換える場所 🌐 インターネット 192.168.1.2 210.xxx.xxx.1 ✓ 住所が書き換わった!

問題は「外から家に入ってくる通信」です。P2Pゲームで相手があなたのPS5に直接データを送ろうとしたとき、ルーターは「このデータ、家の中のどのデバイスに渡せばいいの?」と判断できないことがあります。この「玄関の開き具合」がNATタイプです。

NATタイプ A/B/C/D の違い
タイプ意味ゲームへの影響
タイプA グローバルIPが直接ゲーム機やPCに割り当たっている。玄関が全開。 最良 どんな相手とも繋がれる
タイプB ルーター経由だがUPnPや適切なポート設定で開放できている。 良好 ほぼ問題なし
タイプC ルーターが厳しく制限。外からの接続要求を多くブロック。 注意 一部のプレイヤーと繋がれない
タイプD ほぼすべての外からの接続をブロック。CGNATの場合が多い。 問題あり オンライン対戦できないことも
タイプCやDになる主な原因:
①CGNATでグローバルIPが来ていない(最多)
②ルーターのUPnPが無効になっている
③ルーターのファイアウォール設定が厳しすぎる
UPnPとポート開放(ポートフォワード)とは

ここまで何度か出てきた「UPnP」「ポート開放」も、玄関(ポート)の開き方に関わる仕組みです。どちらも目的は同じ(外からの通信をルーターの奥まで届かせる)ですが、やり方が違います。

ポート開放(ポートフォワード)── 手動で玄関を指定する

ルーターの管理画面から、「このポート番号あての通信は、家の中のこのデバイスに送ってください」と手動で設定する方法です。ゲーム機やPCのIPアドレスとポート番号を自分で入力する必要があり、少し手間がかかりますが、確実に設定できます。

UPnP ── ゲーム機やPCが自動でお願いする

UPnP(Universal Plug and Play)は、ゲーム機やPCのゲーム・アプリが「このポートを開けてください」とルーターに自動でお願いする仕組みです。手動設定が不要なので簡単ですが、ルーター側でUPnP機能自体がオフになっていると機能しません。

①ポート開放:自分で手動設定 🧑 あなた 📡 ルーター 🔒 🔓 🌐 対戦相手 📝 3074番→192.168.1.5に転送 📩 対戦相手からの接続要求 ✓ 対戦相手と直接つながった! ②UPnP:ゲーム機やPCが自動でお願い 🎮 ゲーム機・PC 📡 ルーター 🔒 🔓 🌐 対戦相手 💬 開けて!(自動) 📩 対戦相手からの接続要求 ✓ 対戦相手と直接つながった! ⚠ ルーター側の「UPnP」設定がオフだと、このお願いは無視されます

①も②も、ゴールは同じです。ルーターに「このポートはこの端末へ送って」と伝えておくことで、あとから来る対戦相手の接続要求がちゃんと家の中まで届くようになります。①は自分で設定するので確実、②はゲーム機やPCが自動でお願いする分、ルーターのUPnP設定がオンになっている必要があります。

確認する順番:
① ルーターの管理画面で「UPnP」の設定がオンになっているか確認する(オフならオンにする)
② それでも改善しない場合、ゲーム機やPCのIPアドレスを固定した上で、該当のポート番号を手動でポート開放する(ゲームタイトルごとに必要なポート番号は公式サイトで案内されています)
③ CGNAT環境の場合、①②をどちらも設定しても外からの通信がISPの手前で止まってしまうため、効果が出ません。CGNATかどうかの確かめ方は記事「ゲームだけ繋がらない?」にまとめてあります。
CGNATがあるとなぜタイプD固定になるのか

CGNATでは、あなたのルーターに届いているWAN IPがプロバイダーのプライベートIP(100.64.x.x)です。グローバルIPはさらにその外にあります。

🎮 あなたのPS5 ルーター あなたの家 🚧 ISPのCGNAT (100.64.x.x) 共有IP=住所なし 🌐 🏠 CGNATなし グローバルIPあり=住所あり ルーター 相手の家 🎮 相手のPS5 相手からの接続はここで止まる ⚠ 相手が正常(CGNATなし)でも、あなた側がCGNATだと繋がらない → P2Pは片方でもCGNATだとアウト(ポート開放も無意味)

P2Pゲームの相手があなたのPS5に繋ごうとしても、ISPのCGNATが壁になって届きません。ルーターのポート開放をしても意味がない(そもそも外から来ない)のはこのためです。

解決策は1つ:プロバイダーにグローバルIPを付けてもらう。契約しているCATVやISPに「グローバルIPオプション」があるか問い合わせてみてください。ただしグローバルIPになっても、ルーターのファイアウォール設定やUPnP設定によっては引き続き制限されることがあるため、あわせてルーター側の設定も確認してください。

それでもCGNAT環境で繋がってしまうことがあるのはなぜ?

CGNATがあるのに、実際にはP2P通信が成立してしまうケースもあります。ポイントは「どちらが先に接続を仕掛けるか」です。CGNATが塞ぐのは、あくまで外から冷たく飛んでくる接続要求だけ。あなたの機器が先に外へ向けて通信を送ると、CGNATはその送信に対応する一時的な穴(マッピング)を作ります。相手がタイプA・Bのように玄関が開いた相手であれば、あなたが先に相手へパケットを送ることで、その穴を通じて相手からの返信も戻ってこられます。

CGNAT越しでも繋がることがある主な理由:
先に自分から接続を仕掛けている(相手の玄関が開いていれば、CGNATに一時的な穴ができる)
NATホールパンチング:マッチングサーバーがお互いのIP・ポートを教え合い、両者が同時にパケットを送り合って穴を開け合う(ただしCGNATが「送信先ごとに毎回別ポートを使う」厳しいタイプ=symmetric NATだと、これもほぼ失敗する)
裏でリレーに切り替わっている:直接のP2Pが無理だった場合、ゲーム側が自動でサーバー経由の通信に切り替え、ユーザーからは「P2Pで繋がっている」ように見えているだけのケースもある

CGNATの厳しさ(symmetricかどうか)はISPや機器によって差があるため、「同じCGNAT環境なのに繋がる人と繋がらない人がいる」という現象が起きるのはこのためです。

📖 実践編:ゲームや通話だけ繋がらない?原因の見つけ方 →
シンメトリックNAT・CGNAT・二重ルーター・v6プラス系の4パターンと、自分の家がどれかを確かめる方法。