初級ではNATを「家の住所を1つの公開住所に付け替える仕組み」と捉えました。中級では、どうやって複数機器を1つの住所に多重化するのかを、ポート番号の仕組みから見ます。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
これは何をする係?
家庭用ルーターが実際に行うのは、単なるIP変換ではなくNAPT※1(IPマスカレード)です。IPアドレスとポート番号の組で通信を区別し、複数機器を1つの公開IPに多重化します。
- 各機器の「プライベートIP+ポート」を、「公開IP+別のポート」に付け替える
- どの通信をどの機器へ戻すかを、変換表に記録しておく
- だから公開IPが1つでも、家族の通信が混ざらずに並行できる
登場人物メモ:
- ※1 NAPT/IPマスカレード — IPとポートの組で複数機器を1つの公開IPに束ねる方式
- ※2 ウェルノウンポート — 用途が決まった若い番号(80=HTTP、443=HTTPS など)
この部分をもっと深く(上級)
家庭用ルーターが行うのはNAPT(IPマスカレード)でした。その心臓部が変換表です。1エントリは単なる1対1ではなく、5つの組(5タプル)で通信を識別します。
- プロトコル(TCP/UDP)
- 内側の 送信元IP+ポート
- 外側の 送信元IP+ポート(ルーターが割り当てた公開側)
- 宛先IP+ポート
ポート番号はトランスポート層の概念で、どの層が何を担うかは ネットワークの階層 で押さえられます。返信が来ると、ルーターは宛先の公開IP+ポートを鍵に変換表を引き、内側の本来の相手へ戻します。
アニメーション『IPアドレスとポート番号』を開く
アニメーション『NAT(プライベートIPを公開IPに変換)』を開く
ここから「外から始まる通信が入れない」理由がはっきりします。変換表のエントリは内側発の通信でしか作られないからです。外から突然来たパケットには対応するエントリがなく、ルーターは戻し先を決められないため破棄します。これは欠陥ではなく、結果として簡易なファイアウォールとして働き、VPC のプライベート側の設計思想にもつながります。
やさしく言うと(初級)
家の中のスマホ・PC・テレビは、それぞれプライベートIP※1(家の中だけの住所)を持っています。でも、そのままでは外の世界に出られません。
外に出るときは、ルーターが1つの公開IP※2(世界に通じる住所)に付け替えます。これがNAT※3です。家族みんなが、1つの表札を共有して外とやり取りするイメージです。
登場人物メモ:
- ※1 プライベートIP — 家の中だけで通じる住所(192.168.x.x など)。外には出ない
- ※2 公開IP(グローバルIP) — 世界に通じる住所。回線に1つ割り当てられる
- ※3 NAT — 家の中の住所を、外向けの公開住所に変換する仕組み
仕事の流れ
- 内側の機器が、外のサーバへ通信を始める(プライベートIP+ポート)
- ルーターが送信元を公開IP+割り当てたポートに書き換え、変換表に控える
- サーバは公開IP+そのポート宛に返事を返す
- ルーターは変換表を照合し、正しい内側の機器へ戻す
アニメーション『NAT(プライベートIPを公開IPに変換)』を開く
やさしく言うと(初級)
理由は、世界の住所(IPv4)が足りないからです。
- インターネットの住所(IPv4)は数に限りがあり、機器全部に配れない
- そこで家の中は使い回しの住所(プライベートIP)で済ませる
- 外向けには、回線の公開IPを家族で共有する
- 誰宛の返事かは、ルーターが変換表を見て正しい機器へ返す
こうして、限りある住所を無駄なく使い回しています。
ポート番号の仕組み
ポート番号は0〜65535の範囲で、「同じ機器の中のどの窓口宛か」を表します。
- ウェルノウンポート(0〜1023)— 用途が固定。80=HTTP、443=HTTPS、25=メールなど
- 送信元側は、空いている大きな番号を一時的に使う(エフェメラルポート)
- 「IP=建物、ポート=部屋」で、通信は必ずIP+ポートの組で相手を指す
アニメーション『IPアドレスとポート番号』を開く
内側から始めた通信は戻れるが、外からは入れない——これがNATの重要な性質です。変換表は内側発の通信で作られるため、外部から突然来た通信は戻り先が分からず、原則届きません。この「外から入れない」性質が、結果として簡易な防御にもなり、VPC のプライベート側やNATゲートウェイの設計につながります。
外から特定機器へ通したいときは、ポートフォワーディングを使います。「この公開ポート宛は、この内部機器のこのポートへ」と、変換表に固定の穴を開けて通す設定です。
一往復を通しで追うと、変換表がどこで作られ、どこで逆引きされるかが見えます。
アニメーション『NATの変換(内→外→戻り)』を開く
- 内部端末 — 家の中の機器。プライベートIP(192.168.x)で通信を始める側
- ルータ(変換表) — 内部アドレスと公開IP:ポートの対応を変換表で管理し、書き換えと復元を担う
- 外部サーバ — 外側の相手。内部端末の存在は知らず、公開IPだけを見ている
やさしく言うと(初級)
住所(IPアドレス)が「建物」なら、ポート※4は「その中の部屋番号」です。
- 同じ機器でも、Web宛・メール宛などをポートで見分ける
- ルーターは「どの機器の・どのアプリ宛か」を、住所とポートの組で管理する
- だから1つの公開IPでも、家族の通信がごちゃ混ぜにならない
登場人物メモ:
- ※4 ポート — 同じ機器の中の窓口番号。どのアプリ宛かを表す
アニメーション『NAT(プライベートIPを公開IPに変換)』を開く
⚠️ うまくいかないとき
- 外部発が届かない — サーバ公開やオンラインゲームで、ポートフォワーディング未設定
- 二重NAT — NATが2段になり、ポート変換が二重で不安定になる
- ポート枯渇 — 大量の同時接続で、割り当てる一時ポートが足りなくなる
- 戻り待ちの打ち切り — 変換表のエントリが時間切れで消え、長時間無通信の接続が切れる
この部分をもっと深く(上級)
- 対称NAT同士でP2P不成立 — STUNが効かずTURN中継に頼るしかなく、遅延と中継コストが増える
- CGNAT配下でポート開放不能 — 家庭側の設定が上位NATに阻まれ、サーバ公開ができない
- UPnPの開けっぱなし — アプリやマルウェアが開けた穴が残り、意図しない口が外に晒される
- ポート枯渇 — 大量同時接続やCGNAT共有で、割り当てる一時ポートが尽きて新規接続が張れない
- 変換表のタイムアウト — 長時間無通信のエントリが消え、P2Pや常時接続がある日突然切れる
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. 本文で挙げられている、HTTPSが使うウェルノウンポートの番号を答えてください。
問2. 通信の送信元側が、空いている大きな番号を一時的に使う、そのポートの呼び名を答えてください。
問3. NAT配下の家庭内サーバに、外部から通信を届けたいとき使う設定はどれ?
問4. 家庭用ルーターが1つの公開IPで複数機器を同時に通信させられるのは、何を使って区別しているから?
問5. 本文でのポート番号の説明として正しいのは?
問6. NATで「内側からは戻れるが、外からは入れない」のはなぜか、本文の説明として正しいのは?
問7. 本文が挙げる「二重NAT」とはどんな状態か?
問8. 「長時間無通信の接続がある日突然切れる」原因として、本文が挙げるのは?