videocalling
Illustration of NAT(ネットワークアドレス変換) in video calling

NAT(ネットワークアドレス変換)

技術

複数のデバイスが単一のパブリックIPアドレスを共有できるようにする技術。

NATとは?

NAT(Network Address Translation)は、プライベートネットワーク上の複数のデバイスがインターネットにアクセスする際に、単一のパブリックIPアドレスを共有できるようにするネットワーク技術です。自宅のルーターはNATを使用して、ラップトップ、スマートフォン、スマートTVなどのデバイスに、ISPが提供する1つのパブリックIPアドレスを通じてインターネットアクセスを提供しています。

P2P接続の問題

WebRTCビデオ通話を開始したい場合、友人に192.168.1.100に接続するよう伝えることはできません。それはプライベートアドレスであり、パブリックインターネット上には存在しないからです。NATの根本的な問題は、両方のピアがルーターのパブリックIPを通じてのみ到達可能であり、どちらのルーターも着信P2P接続の試行を正しい内部デバイスにルーティングする方法を知らないことです。

NATの種類

  • フルコーンNAT:最も寛容な種類。外部のどのホストでもマッピングされた外部アドレスに送信可能。STUNが完全に機能
  • 制限コーンNAT:以前連絡したIPアドレスからの着信パケットのみを受け入れ
  • ポート制限コーンNAT:正確なIP:ポートの組み合わせからのパケットのみを受け入れ。2025年のほとんどの家庭用ルーターはこの動作
  • 対称NAT:最も制限が厳しく問題が多い種類。宛先ごとに異なるポートマッピングを作成し、STUNが無効に。TURNリレーのみが機能

WebRTCがNATを解決する方法

  • STUN(発見):インターネットから見たパブリックIPとポートを発見
  • ICE(インテリジェントな選択):複数の接続戦略を同時に試行し、最適な動作パスを選択
  • TURN(最後の手段):STUNが失敗した場合に、両方のピアが到達可能なリレーサーバーを提供

まとめ

NATは現代のインターネットアーキテクチャの必要悪です。IPv4アドレス枯渇を解決しましたが、WebRTCが克服すべきP2P接続の問題を生み出しました。STUN、TURN、ICEを通じたNATトラバーサルの習得は、2025年以降のWebRTC開発者にとって不可欠です。