PC の NAT タイプが厳密・標準になる: UPnP、二重 NAT、CGNAT
NAT タイプが厳密や標準になるのは、ほかのプレイヤーが PC に向けて始めた接続が、入ってくる途中で止められているということです。UPnP、2 台目のルーター、プロバイダーのどれが原因なのか、そしてそもそもそれが問題になるのはどんなときかを確認します。
「フレンドが自分のロビーに参加できない。」「パーティ チャットが自分以外の全員にはつながる。」「ゲームに NAT タイプ: Strict と表示され、ルーターを再起動しても何も変わらなかった。」この 3 つはどれも 1 つの仕組みから起こりえます: インターネットと PC の間にある何かが、自分から出ていく通信は通すのに、ほかのプレイヤーが自分に向けて始めた接続は止めているのです。
NAT がすること、そして表示が評価しているもの
ルーターはインターネット側に IPv4 アドレスを 1 つ持ち、家庭内のデバイスにはプライベート アドレスを割り当てます。ネットワーク アドレス変換 (NAT) は、出ていくパケットを書き換え、返事が戻ってこられるように各通信を記憶しておきます。RFC 3022 はその結果をはっきり書いています: 従来の NAT では、セッションは「一方向で、プライベート ネットワークから外向き」であり、外から始まったセッションは、そのホストのために事前に設定されたマッピングを通してしか入れません。
表示が悪くてもサーバーへの参加がうまくいくのはそのためです: その通信を始めるのは PC のほうだからです。NAT タイプが評価しているのは、ほかの誰かが始めた通信がどれだけうまく通るかです。Xbox サポート は、その段階を次のように定義しています:
- オープン: どの NAT タイプの人ともプレイでき、ホストにもなれます。
- 標準: 一部の人とはプレイできない場合があり、通常はホストに選ばれません。
- 厳密: NAT がオープンの人としかプレイできず、ホストには選ばれません。
- Unavailable: パーティ チャットができず、一部の Xbox タイトルではマルチプレイができません。
Microsoft の開発者向けドキュメントも同じ規則を述べています: 標準は標準かオープンとだけ、厳密はオープンとだけ接続できます。この規則によれば、厳密のプレイヤーどうしは互いに接続できません。
問題になるとき、ほとんど問題にならないとき
この表示が問題になるのは、ほかの誰かが自分に到達しなければならないときです:
- ピアツーピアの試合。 Microsoft の Game Development Kit のドキュメントは開発者に対して、それを使って作られたピアツーピアのゲームは「NAT タイプが標準または厳密のクライアントのために、独自のパブリック IP アドレスとポートの検出および NAT 越えの仕組みを提供することが引き続き求められる」と伝えています。
- ホスト。 自分がホストするロビーや、PC 上のリッスン サーバーや専用サーバーは、ほかの人が接続してくるのを待ちます。専用サーバーやリッスン サーバーについて、Valve の Steam サポートは、ゲームプレイの通信の既定のポートとして UDP 27015 を挙げています。
- ボイス チャットとパーティ チャット。Xbox サポートは、マルチプレイと並んでこれらを NAT タイプと結び付けています。
ゲームがすべての試合を自前のサーバーやリレー経由にしている場合は、ほとんど問題になりません。その場合、すべての接続を PC 自身が開くからです。Valve の Steam Datagram Relay は、ゲームの通信を Valve の基幹網とリレーを通して「ピアツーピアの通信と専用サーバーの両方について」運び、IP アドレスは「決して明かされません」。たとえば Counter-Strike 2 のリリース ノートは、「SDR 経由でリレーされる」接続と「コミュニティ サーバーへの直接の UDP 接続」を区別しています (Valve、2024 年 9 月 9 日)。ほかのアプリで厳密と表示されても、誰かが自分に到達する必要がまったくないゲームについては、ほとんど何もわかりません。
Windows で表示される場所
Windows 10 では、設定 > ゲーム > Xbox ネットワーク に NAT タイプと Xbox ネットワークのサーバー接続状態が表示されます。そこに出る Teredo is unable to qualify は、PC が Teredo アドレスを取得できなかったことを意味します。Teredo はトンネリング プロトコルで、Forza Horizon 3 や 4 などの一部のゲームが Xbox ネットワークでのマルチプレイに使っています (Xbox サポート)。同じ画面には 問題を解決する ボタンがあります。Xbox サポートがこの画面を説明しているのは Windows 10 についてだけで、同じ失敗に対する Windows 11 の手順は、代わりに 設定 > ネットワークとインターネット > ネットワークの詳細設定 > ネットワークのリセット に進みます。
Teredo にはまた、「IP ヘルパー」サービスがスタートアップの種類「自動」で実行中であることと、Windows ファイアウォールが既定のポリシーでオンになっていること が必要です。Xbox サポートは、Windows を「パフォーマンスを最適化しようとして」構成し直す一部のアプリが IP ヘルパーをオフにすること、一部の家庭用ルーターがインターネット側で IPv6 を検出すると Teredo をブロックすること、そして一部の VPN クライアントが接続中に Teredo をブロックすることを付け加えています。ツールがそれらの設定を変えていた場合は、Fix ページにある w0a の Xbox のネットワークと IPv6 カードが、IP ヘルパー サービスと Teredo/IPv6 移行の設定を Windows の既定値に戻します (カードの仕組み)。
どの NAT の後ろにいるかを調べる
- ルーターにサインインし、ステータス ページに表示される WAN またはインターネットのアドレスを書き留めます。
- それを、「IP アドレス確認」のようなページに表示されるパブリック アドレスと比べます。
- 2 つが一致すれば、アドレスを変換しているのはルーターだけで、そのルーターの UPnP やポート フォワーディングで道を開けられます。
- 一致しなければ、Xbox サポートの判定が当てはまります: 「現在の構成ではオープン NAT にはできません。」WAN アドレスを見てください。10.x.x.x、172.16.x.x から 172.31.x.x、または 192.168.x.x なら、まず自分の機器がもう 1 台前に入っていないか確認してください: プロバイダーのゲートウェイと自分のルーターの組み合わせは二重 NAT です。100.64.0.0 から 100.127.255.255 の間なら、それはプロバイダーのキャリア グレード NAT とルーターの間の接続用に予約された共有アドレス空間です (RFC 6598)。
原因別の対処
自分のルーターの UPnP
UPnP を使うと、ゲームがルーターに外からの通信を受け入れるよう依頼でき、自分では何も入力する必要がありません。Xbox サポートによると、ルーターが対応していれば「おそらく既定でオンになっています」。そして、ルーターの NAT テーブルを更新することを勧めています: UPnP をオフにして保存し、ルーターを再起動してから、UPnP をオンに戻してもう一度保存します。Xbox サポートはこうも警告しています: 「ポート フォワーディング、UPnP、境界ネットワーク (DMZ とも呼ばれます) の設定を組み合わせないでください。」
二重 NAT: ゲートウェイをブリッジにする
プロバイダーのゲートウェイと自分のルーターがあると、「両方のデバイスが NAT を行っている可能性があり」、Xbox サポートの対処は、ゲートウェイをブリッジ モードにして、アドレスを変換するのを自分のルーターだけにすることです。手順はゲートウェイによって違います。そのドキュメントかプロバイダーに手順があります。
ホストするときのポート フォワーディング
フォワーディングは 1 つのポートを 1 台のデバイスに直接送るので、そのデバイスには変わらないアドレスが必要です。Xbox サポートの方法: ルーターの DHCP または LAN のセクションで、デバイスの MAC アドレスを予約リストに追加します。そのうえで、ゲームのパブリッシャーが挙げているポートとプロトコルだけをフォワードします。たとえば、専用サーバーやリッスン サーバー向けの Valve のリストにある UDP 27015 です。境界ネットワーク (DMZ) のオプションはそれよりずっと踏み込んだもので、Xbox サポートはこれを、デバイスを「ネットワーク ファイアウォールの外側の領域に」移すものと説明しています。
キャリア グレード NAT: 変えられるのはプロバイダーだけ
キャリア グレード NAT は 1 つの IPv4 アドレスを複数の契約者で共有するもので、RFC 6888 はそれが「契約者によって管理されるものではない」と付け加えています: ルーターのどの設定も、そこには届きません。CableLabs と 2 つのケーブル事業者によるテスト報告で、RFC 7021 として公開されたものは、2010 年のテストで、その後ろでは「6to4 や Teredo などの IPv6 移行技術は完全に失敗するか、深刻なサービス低下を受ける」ことを確認しました。Xbox サポートの助言は、プロバイダーにパブリック IP アドレスを求め、提供できないならプロバイダーを変えることです。
ゲームが使う場合の IPv6
RFC 7021 は IPv6 を「IPv4 アドレス枯渇問題の解決策」と呼んでいます。家庭用 IPv6 ルーターについての IETF の推奨事項 (RFC 6092) は、そこでは NAT は使われそうにないとしつつ、内側から始まった通信だけを受け入れるという習慣は残し、アプリケーションが内向きのフローを開く方法、つまり「透過モード」を求めています。そのため IPv6 が役立つのは、プロバイダー、ルーター、ゲームのすべてがそれを使う場合だけです。Microsoft の Game Development Kit のドキュメントは、ゲームにマルチプレイのポートを IPv4 と IPv6 の両方にバインドするよう求めています。Windows の IPv6 のコンポーネントは既定値のままにしてください: Xbox サポートは Teredo の失敗の原因の中に、プログラムや手作業によってレジストリで Teredo がオフにされていることを挙げています。
NAT タイプを変えないもの
- Windows のネットワーク設定。 TCP のオプションや DNS はアドレス変換に触れません。変換はルーターかプロバイダーで行われます。それらのボックスが何をするかは ネットワークの調整 で扱っています。
- ファイアウォールをオフにすること。 Xbox サポートによると、Teredo には Windows ファイアウォールが既定のポリシーで動いている必要があり、内向きのポリシーが「AllowInbound」だと、Teredo は IPsec 接続を確立できません。
- UPnP やポート フォワーディングに加えて DMZ を使うこと。 Xbox サポートは組み合わせないよう述べています。
- VPN。 一部の VPN クライアントは Teredo をブロックし、アンインストールした後もブロックし続けるファイアウォールの規則を残すものもあります。VPN で Ping が下がるかどうかは別の問題です: VPN で Ping は下がるか?
関連
ゲーム ブースターや最適化ツールが Windows で変更できることとできないこと、そして信頼する前にそのツールを確かめる方法: ゲーム ブースターや最適化ソフトは本当に効くのか?
このページは役に立ちましたか?
何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。
送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー
このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。