P2PゲームにおけるNATタイプと通信マトリクス
ピアツーピア(P2P)およびハイブリッド型マルチプレイヤーゲームは、専用サーバーを経由せずプレイヤー同士の端末間で直接通信セッションを確立します。ルーターのNAT(ネットワークアドレス変換)が外部からの通信パケットを遮断すると、ロビー接続タイムアウトや片方向ボイスチャット遮断などの問題が発生します。
| NATタイプ分類 | STUN / ICE 挙動 | 接続可能な相手 | 典型的なトラブル |
|---|---|---|---|
| Type 1 (Open) | フルコーン。パブリックIPが直接ソケットに割り当て | Open, Moderate, Strict | 障害なし。最適なホスト環境 |
| Type 2 (Moderate) | アドレス・ポート制限コーン | Open, Moderate | Strictホストのロビーに参加不可 |
| Type 3 (Strict) | 対称型NAT。接続先ごとに割り当てポートが変動 | Openのみ | ロビー強制切断、フレンド招待エラー、VC無音 |
| 二重NAT (Double NAT) | モデムとルーターで2回NAT変換が発生 | Restricted / Strict | ランダムな同期ズレ、断続的なパケットロス |
ステップ1: プロバイダのCGNATと二重NATの確認
ルーターの設定を変更する前に、契約プロバイダからグローバルIPv4アドレスが割り当てられているか、CGNAT(RFC 6598帯域)内にあるかを確認します。
- ルーター管理画面(192.168.1.1 など)にログインします。
- WAN側のIPv4アドレスを確認します。
- 外部確認サイトで表示されるグローバルIPと比較します:
curl -4 https://icanhazip.com
- WAN側IPが 100.64.0.0 から 100.127.255.255 の範囲にある場合、CGNAT環境です。この状態ではルーター側のポート開放は機能しないため、プロバイダへ固定/動的グローバルIPの申請を行うか、IPv6通信を利用する必要があります。
ステップ2: 固定IP割り当てとUDPポート開放
ポート開放ルールを安定して対象機器に向けるため、ルーターのDHCP設定でPCまたはゲーム機のプライベートIPを固定します。
主要プラットフォームのUDPポート
- Steam / P2P通信: UDP 27015-27030, UDP 4380
- Xbox Live / Game Pass: UDP 88, UDP 500, UDP 3544, UDP 4500
- PlayStation Network: UDP 3478, UDP 3479, UDP 3658
- Nintendo Switch: UDP 45000-65535
ルーターのポートフォワーディング設定例
- サービス名: Game_P2P
- プロトコル: UDP
- 外部ポート: 該当ポート番号
- 内部IPアドレス: 192.168.1.150(固定IP)
- 内部ポート: 外部ポートと同一
- 状態: 有効
ステップ3: Windows ファイアウォールとUPnPの調整
UPnPを使用する場合、Windowsのネットワーク接続プロファイルが「プライベート」に設定されていることを確認してください。
Get-NetConnectionProfile
Set-NetConnectionProfile -InterfaceAlias "Ethernet" -NetworkCategory Private
PC端末に対してDMZ(非武装地帯)を適用することは推奨されません。すべての未防護ポートがインターネット全体に晒され、セキュリティリスクが極大化します。PCでは必要なポートのみを個別に転送してください。