コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

NAT とプライベートIP

生田 陸人
LuaGate エンジニア / 現役エンジニア
編集 LuaGate編集部

NAT とプライベートIP

このレッスンで分かること

  • NAT は内側のプライベート IP と外側のグローバル IP を変換する仕組みで、IPv4 アドレス枯渇を実質的に解決しました
  • ポート番号も書き換える NAPT (IP マスカレード) が現代の主流
  • 副作用として外部から内部へ直接アクセスできず、P2P 通信では STUN/TURN/ICE で NAT 越えを行います

NAT とプライベートIP とは

家庭内 LAN とインターネットをつなぐ NAT の仕組みを理解します。本レッスンでは、NAT とプライベートIP の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。

NAT 方式の整理

方式別名仕組み主な利用シーン
静的 NAT1:1 NAT内部 IP 1 つ ↔ 外部 IP 1 つ公開サーバー用
動的 NATプール NAT内部 IP を外部 IP プールから動的割当古典企業 LAN
NAPT (PAT)IP マスカレード複数内部 IP を 1 つの外部 IP に多重 (ポート書換)家庭/小規模 LAN の標準
CGNATキャリアグレード NATISP 側で巨大 NAT を実施モバイル回線、一部 ISP

副作用: NAT 越しの内部端末への着信は基本不可。P2P 用途では STUN/TURN/ICE で NAT 越え。

このレッスンで学ぶこと

家庭やオフィスのプライベート LAN がインターネットにつながる仕組み、NAT (Network Address Translation) を学びます。IPv4 アドレス枯渇を救った技術です。

NAT とは

NAT は、プライベート IP アドレスとグローバル IP アドレスを変換する仕組みです。多くの場合は家庭の Wi-Fi ルーターや企業のゲートウェイに組み込まれています。

家の中の PC が 192.168.1.50 (プライベート IP) から noimancode.com (グローバル IP) にアクセスするとき、ルーターは送信元 IP を自分のグローバル IP に書き換えてから外に出します。返事が返ってきたら逆方向に書き換え、内部の PC へ届けます。

なぜ NAT が生まれたか

IPv4 のアドレスは約 43 億個しかなく、世界中の端末すべてにグローバル IP を割り当てるのは不可能でした。「組織の中ではプライベート IP を自由に使い、外に出るときだけグローバル IP に変換すれば、グローバル IP は 1 つ (= プロバイダから割り当てられた 1 個) でも何百台もの端末を収容できる」というアイデアが NAT です。

この章のポイント

NAT のおかげで IPv6 移行が遅れた

IPv6 は 1998 年に規格化されましたが、NAT のおかげで「IPv4 のまま十分やっていける」状態が長く続きました。これが結果として IPv6 普及を遅らせた大きな要因のひとつです。

NAPT (IP マスカレード)

実は今 NAT と呼んでいる仕組みの大半は NAPT (Network Address Port Translation) です。IP アドレスだけでなくポート番号も書き換えることで、1 つのグローバル IP に多数の内部端末を相乗りさせます。

たとえば家のルーターが下記のような変換テーブルを持ちます。

内部 IP:ポート外部 IP:ポート宛先
192.168.1.50:51234203.0.113.5:62345noimancode.com:443
192.168.1.51:48901203.0.113.5:62346google.com:443
192.168.1.52:55012203.0.113.5:62347github.com:443

ポート番号が違うので、戻ってきたパケットがどの内部端末向けかを一意に決められます。

外から内部にアクセスできない

NAT の副作用として、外部から内部端末への通信は基本的にできません。外から見えるのはルーターの 1 つのグローバル IP だけで、その中の 192.168.x.x には直接アクセスできないからです。

これは「セキュリティ的にはありがたい」面と「サーバーを家で公開しづらい」面の両方があります。家で Web サーバーを公開したい場合は、ルーターでポートフォワーディング (例 — 外部 80 番への通信を内部 192.168.1.10 の 80 番に転送) を設定する必要があります。

この章のポイント

CGNAT (キャリアグレード NAT)

モバイル回線や一部のプロバイダでは、ユーザーにグローバル IP を割り当てず、キャリア側で大規模 NAT (CGNAT) を行うことが増えています。これにより外部から到達不可能な構成になることが多く、ピアツーピア通信 (オンラインゲーム、VPN) で問題になることがあります。

NAT トラバーサル

P2P 通信 (ビデオ会議、オンラインゲーム、WebRTC) では NAT 越しに直接通信する必要があるため、STUN / TURN / ICE と呼ばれる NAT 越えの技術が使われます。

  • STUN — お互いの外側 IP/ポートを公開サーバー経由で知る
  • TURN — どうしても直接つながらないとき、中継サーバーを使う
  • ICE — STUN/TURN を含めて複数の候補から最適経路を選ぶ

Zoom や Google Meet が裏側でやっている仕組みなので、頭の片隅に入れておくとビデオ会議系の障害対応がはかどります。

IPv6 と NAT

IPv6 はアドレスが潤沢なので、本来 NAT は不要です。すべての端末にグローバル IPv6 を直接付与する設計が想定されています。しかしセキュリティの慣習やルーター側の都合で、IPv6 でもファイアウォール的な「ステートフルフィルター」が標準で有効になっているケースが多く、結果として家庭利用では NAT に近い体験になります。

まとめ

このレッスンの要点は、NAT と NAPT / IPv4 延命と IPv6 / NAT トラバーサル の 3 点です。実務でこれらを切り分けて説明できるようになると、設計レビューや障害対応の精度が一段上がります。

理解度チェック

Q. 家庭の Wi-Fi ルーターで使われている NAT 方式として最も一般的なものは?

  1. 静的 NAT (1:1)
  2. 動的 NAT (プール方式)
  3. NAPT (IP マスカレード) - 複数内部 IP を 1 つの外部 IP にポート多重
  4. CGNAT
答えを見る

正解は 3。家庭ルーターは 1 つのグローバル IP に複数の端末を相乗りさせる必要があるため、IP + ポートを書き換える NAPT (IP マスカレード) が標準です。

出典 (References)

最終更新: 2026-05-28

関連レッスン

よくある質問

Q. このトピックは実務でどう役立ちますか?

A. DB のクエリ最適化、API 設計、データ構造の選択など、設計判断の根拠になります。表面的にライブラリを使うだけでなく「なぜそれが速いのか」を理解できると、性能問題を未然に防げます。コーディング面接でも頻出のテーマです。

Q. 計算量はどう求めれば良いですか?

A. ループのネストごとに掛け算する、再帰なら漸化式から解く、というのが基本です。Big-O 表記は定数倍と低次の項を無視するため、n の指数(n²、n log n など)に注目してください。最悪・平均・最良の 3 つを意識すると説得力が増します。

Q. 覚えるべき定番アルゴリズムは何ですか?

A. 二分探索、クイックソート/マージソート、BFS/DFS、ダイクストラ、DP の基本問題(フィボナッチ・ナップサック)が必修です。これらを「白紙から書ける」状態にすると、応用問題が一気に解けるようになります。

次のレッスン

次は ルーティングと経路選択 で、家庭内 LAN とインターネットをつなぐ NAT の仕組みを理解します を学びます。

事前確認 — 進む前に次の 3 つができることを確認しましょう。

  1. NAT の要点を自分の言葉で説明できる
  2. このレッスンの最小コード (または操作手順) を見ずに書ける
  3. 練習問題やクイズで間違えた箇所を読み直して理解した

理解度チェック (30 秒)

Q. NAT とは何か、1 文で説明してください。

この章のポイント

A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。

関連レッスン

復習ミニクイズ

NAPT (IP マスカレード) で書き換えられる情報はどれですか