「NATトラバーサル」という言葉はゲームのネットワーク設定やVPN・P2P通信の文脈でよく登場する用語です。
NATを「越える」とはどういう意味なのか、具体的な仕組みがわかりにくいと感じる方も多いかもしれません。
本記事では、NATトラバーサルの意味と仕組み・越え方を、NAT越え・Nintendo Switch・VPN・UDP・P2P通信との関係を交えてわかりやすく解説します。
ゲームのNATタイプ問題に悩んでいる方やP2P通信・VPNの仕組みを理解したい方にもきっと役立つ内容でしょう。
NATトラバーサルを正しく理解することで、ゲームのオンライン接続問題の解決やネットワーク設計の改善につなげることができます。
NATトラバーサルとは「NAT環境下でもエンドツーエンドの通信を実現するための技術」のこと
それではまず、NATトラバーサルの基本的な意味と必要性について解説していきます。
NATトラバーサル(NAT traversal)とは、NATやファイアウォールが存在するネットワーク環境においても、異なるLAN内にある端末同士が直接通信できるようにするための技術・手法の総称です。
「トラバーサル(traversal)」は「横断・通過」を意味し、NATの壁を横断して通信する技術であることから「NAT越え」とも呼ばれます。
NATは本来LAN内からインターネットへの外向き通信を前提とした技術のため、インターネット越しに2つのLAN内の端末が直接通信するP2P接続やゲームのマッチメイキングでは問題が生じるでしょう。
VoIP・オンラインゲーム・ビデオ会議・P2Pファイル共有など、リアルタイムかつ直接的な通信が必要なアプリケーションでNATトラバーサルが広く活用されています。
NATが存在するとインターネット側からLAN内の端末へ直接接続を開始することができません。NATトラバーサルはこの制限を回避するための技術で、ゲームのNATタイプ問題やビデオ通話の接続品質に深く関わっています。
NATがP2P通信の障害になる理由
NATがP2P通信の障害になる原因を理解しておきましょう。
【P2P通信でNATが問題になる場面】
端末A(LAN_A内:192.168.1.10)と端末B(LAN_B内:192.168.2.10)が直接通信したい場合
問題1:端末AはグローバルIPを持たないため、端末BはどのIPへ接続すれば良いかわからない
問題2:端末BのルーターはNATテーブルにエントリがなければ外部からの通信を破棄する
問題3:双方のルーターが相手からの接続開始パケットをブロックしてしまう
この「どちらも接続を開始できない」という問題がNATによるP2P通信の壁であり、NATトラバーサルが解決しようとする課題でしょう。
NATトラバーサルの主な手法一覧
| 手法 | 内容 | 主な用途 |
|---|---|---|
| UPnP | ルーターにポート開放を自動要求 | 家庭用ゲーム機・P2Pアプリ |
| STUNプロトコル | 外部サーバーで自分のグローバルIPとポートを取得 | VoIP・WebRTC |
| TURNプロトコル | リレーサーバー経由で通信を中継 | STUNが失敗した場合の代替 |
| ICEフレームワーク | STUN・TURNを統合して最適な接続を選択 | WebRTC・ビデオ会議 |
| ホールパンチング | 双方向から同時にUDPパケットを送り穴を開ける | P2P通信・ゲーム |
| ポートフォワーディング | ルーターで特定ポートをLAN内機器へ転送 | サーバー公開・NATタイプ改善 |
これらの手法を状況に応じて組み合わせることで、NATを越えた通信が実現できるでしょう。
NATトラバーサルの主な仕組み
続いては、NATトラバーサルの代表的な手法の仕組みを詳しく確認していきます。
各手法の特性を理解することで、目的に応じた最適な手法を選択できるでしょう。
UPnP(Universal Plug and Play)の仕組み
UPnP(Universal Plug and Play)とは、LAN内の機器がルーターに対して自動的にポート開放を要求できるプロトコルです。
ゲーム機やP2Pアプリがルーターに「このポートを開けてください」と自動的に要求することで、ポートフォワーディングの手動設定なしにNATを越えた通信を実現します。
Nintendo SwitchやPlayStationなどのゲーム機はUPnPに対応しており、ルーター側でUPnPを有効化することでNATタイプが改善されるでしょう。
STUNプロトコルの仕組み
STUN(Session Traversal Utilities for NAT)とは、インターネット上のSTUNサーバーを使って自分のグローバルIPアドレスとNATが割り当てたポート番号を把握するためのプロトコルです。
【STUNの動作の流れ】
① 端末AがSTUNサーバーへUDPパケットを送信
② STUNサーバーが端末AのグローバルIP・ポートを確認して返答
③ 端末Aは自分のグローバルIP・ポートを把握
④ このグローバルIP・ポート情報を端末Bと共有してP2P通信を試みる
STUNはVoIPやWebRTCでのビデオ通話・ゲームのマッチメイキングなど幅広い場面で活用されているでしょう。
UDPホールパンチングの仕組み
ホールパンチングはNATに「穴を開ける」という直感的なイメージの技術です。
【UDPホールパンチングの流れ】
① 端末AとBがそれぞれシグナリングサーバーに自分のアドレス情報を登録
② シグナリングサーバーが双方のグローバルIP・ポートを相手に教える
③ 端末AとBが同時に相手のグローバルIP・ポートへUDPパケットを送信
④ 双方のNATに相手への通信エントリが作成される(穴が開く)
⑤ 以降は双方向のP2P通信が可能になる
TCPよりもUDPの方がホールパンチングが成功しやすいため、ゲームやVoIPではUDPベースのホールパンチングが広く採用されているでしょう。
ゲーム機におけるNATタイプとNATトラバーサル
続いては、Nintendo SwitchやPlayStationのNATタイプとNATトラバーサルの関係を確認していきます。
ゲームのオンライン接続問題で悩んでいる方にとって特に実践的な内容でしょう。
NATタイプとは何か
ゲーム機のネットワーク設定で表示されるNATタイプは、その端末がNATを越えてP2P通信を行う能力の指標です。
| NATタイプ | 内容 | オンラインゲームへの影響 |
|---|---|---|
| タイプA・オープン | ポート制限なし・最も通信しやすい | すべての相手と接続可能 |
| タイプB・モデレート | 一部のポートに制限あり | ほぼすべての相手と接続可能 |
| タイプC・ストリクト | 多くのポートに制限あり | タイプAの相手とのみ接続可能 |
NATタイプがCやストリクトの場合はオンラインゲームで接続できない相手が増えるため、NATタイプの改善が推奨されるでしょう。
NATタイプを改善する方法
NATタイプを改善するための主な方法を確認しておきましょう。
【NATタイプ改善の主な方法】
① ルーターのUPnPを有効化する(最もシンプルな方法)
② ゲーム機に固定IPを割り当ててポートフォワーディングを設定する
③ DMZを設定してゲーム機へすべての通信を転送する(セキュリティリスクに注意)
④ ダブルNATを解消する(ONUのルーター機能をブリッジモードに変更)
まずUPnPの有効化を試み、それでも改善しない場合はポートフォワーディングの設定へ進むのが一般的な手順でしょう。
VPNとNATトラバーサルの関係
VPNはNATトラバーサルが必要になる代表的なアプリケーションのひとつです。
IPsec VPNはポート番号を持たないESPプロトコルを使用するため、NATと相性が悪く接続が失敗することがあるでしょう。
これを解決するためにNAT-T(NAT Traversal for IPsec)という技術が使われており、ESPパケットをUDPでカプセル化することでNATを越えられるようにしています。
まとめ
本記事では、NATトラバーサルの意味と仕組みについて、NAT越えの手法・STUN・UPnP・ホールパンチング・ゲームのNATタイプとの関係を交えながら解説しました。
NATトラバーサルとはNAT環境下でもエンドツーエンドの通信を実現するための技術の総称で、UPnP・STUN・ホールパンチングなど複数の手法が状況に応じて活用されています。
ゲームのNATタイプ問題はUPnPの有効化・ポートフォワーディングの設定・ダブルNATの解消などで改善でき、VPNではNAT-Tを使ってIPsecのNAT越え問題に対応できるでしょう。
NATトラバーサルの概念を理解しておくことで、ゲームのオンライン接続問題・ビデオ通話の品質改善・P2P通信の設計など実践的な場面での問題解決に役立てることができます。
本記事がNATトラバーサルへの理解を深め、ネットワーク設定や設計の実践に役立てば幸いです。