WEB PROTOCOL

NAT(Network Address Translation)

プライベートIPをパブリックIPに変換し、複数デバイスでインターネット接続を共有する仕組み

INTERACTIVE VISUALIZATION
Outgoing
NAT
Incoming
パブリックIP
203.0.113.1
ルーター外部アドレス
LANデバイス
1台
プライベートネットワーク
NATエントリ
0
変換テーブル
パケット
ステップ 1 / 8
シナリオ
1台のLANデバイスが外部サーバーと通信する基本的なNAT変換の流れ
ステップ1 / 8
自動再生でNAT変換の流れを順番に確認できます
LAN内のデバイス: PC: 192.168.1.10
ルーターのパブリックIP: 203.0.113.1

外部サーバー: Web Server(93.184.216.34)
解説

📌
NATとは

NAT(Network Address Translation)は、プライベートIPアドレスとパブリックIPアドレスを相互に変換する技術です。マンションの共有電話に例えると、各部屋(デバイス)には内線番号(プライベートIP)があり、 外部との通話はすべてマンションの代表番号(パブリックIP)を通じて行われます。 内線番号は外部には見えず、代表番号+内線で正しい部屋に取り次がれます。上のツールで「複数デバイス」シナリオを試すと、3台のデバイスが1つのパブリックIPを共有する様子を確認できます。

📌
特徴

  • 🌐IPアドレスの節約複数のデバイスが1つのパブリックIPを共有するため、限られたIPv4アドレスを効率的に使えます。家庭のルーターで数十台のデバイスが1つのグローバルIPでインターネットに接続しています。
  • 🔒セキュリティの向上LAN内のデバイスはプライベートIPを持つため、外部から直接アクセスすることができません。NATが自然なファイアウォールの役割を果たし、外部からの不正アクセスを防ぎます。
  • 🔄ポートマッピングパブリックIPのポート番号を使ってデバイスを区別します。送信時にルーターが一意のポートを割り当て、戻りのパケットはそのポート番号を手がかりに正しいデバイスに届けられます。
  • 📋NATテーブル管理ルーターは変換の対応表(NATテーブル)を保持します。通信が開始されるとエントリが作成され、通信が終了するとタイムアウトで削除されます。上のツールでテーブルの変化を確認できます。

📌
ユースケース

🏠 家庭のインターネット接続
Wi-Fiルーターが全デバイスのトラフィックをNATで変換。PC、スマートフォン、タブレットが1つのグローバルIPを共有します
🏢 企業ネットワーク
社内ネットワークのデバイスがNATを通じてインターネットにアクセス。内部構成を外部に隠しセキュリティを確保します
🖥️ サーバー公開(ポートフォワーディング)
NAT内部のWebサーバーを外部に公開。ルーターが特定ポートへのアクセスを内部サーバーに転送します
☁️ クラウドNATゲートウェイ
AWS NAT GatewayやGCP Cloud NATで、プライベートサブネットのリソースがインターネットにアクセスする際に使用されます

📌
用語解説

NAT(Network Address Translation)
= ネットワークアドレス変換
パケットのIPアドレス(とポート番号)を書き換えることで、プライベートネットワークとパブリックネットワークの間の通信を可能にする技術です。
PrivatePublicNAT
プライベートIP(Private IP)
= LAN内でのみ有効なアドレス
LAN内のデバイスに割り当てられるIPアドレスです。10.0.0.0/8、172.16.0.0/12、192.168.0.0/16の範囲が予約されており、 インターネット上では直接ルーティングされません。
192.168.1.10Private Range
パブリックIP(Public IP)
= インターネット上で一意のアドレス
ISPから割り当てられるグローバルに一意なIPアドレスです。インターネット上のサーバーとの通信に使用され、 NATルーターの外部インターフェースに設定されます。
203.0.113.1Global Unique
ポートマッピング(Port Mapping)
= ポート番号でデバイスを区別する仕組み
複数のデバイスが同じパブリックIPを共有する場合、ルーターがポート番号を変換してデバイスを区別します。 送信時に一意のポートを割り当て、受信時にそのポートで元のデバイスを特定します。
:50001 → :40001:50002 → :40002:50003 → :40003
NATテーブル(NAT Table)
= アドレス変換の対応表
ルーターが保持する、プライベートアドレスとパブリックアドレスの対応表です。 通信開始時にエントリが作成され、戻りのパケットはこのテーブルを参照して正しいデバイスに配送されます。
NAT TABLE.10:50001 → :40001.20:50002 → :40002

📌
変換の手順

LAN内のデバイスが外部サーバーと通信する際の6つのステップを追いかけます。

1
デバイスがパケット送信
LAN内のデバイスが送信元にプライベートIPを設定してパケットを送信します。
2
NATが送信元を書き換え
ルーターがパケットの送信元IPをパブリックIPに、ポートを一意の番号に書き換えます。
3
外部サーバーに到達
変換後のパケットがインターネットを通じてサーバーに届きます。サーバーにはパブリックIPからの通信に見えます。
4
サーバーが応答を送信
サーバーがパブリックIP宛にレスポンスを送り返します。
5
NATが宛先を書き換え
ルーターがNATテーブルを参照し、ポート番号から元のデバイスを特定。宛先をプライベートIPに書き換えます。
6
デバイスにパケット配送
応答パケットが正しいLANデバイスに届けられます。
SendNAT →ServerReplyNAT ←Deliver送信 → NAT変換 → サーバー → 応答 → NAT逆変換 → 配送

📌
NATの種類

Static NAT(静的NAT)
プライベートIPとパブリックIPを1対1で固定的に対応付けます。サーバーを外部に公開する場合に使用。パブリックIPが台数分必要になるため、アドレス節約の効果はありません。
192.168.1.100 ↔ 203.0.113.10 (固定)
Dynamic NAT(動的NAT)
パブリックIPのプールから動的に割り当てます。通信開始時にプールから空いているIPを取得し、通信終了後に返却。プール内のIPが尽きると新しい通信はできません。
192.168.1.10 → プール(203.0.113.1~10) から割当
PAT / NAPT(ポートアドレス変換)
1つのパブリックIPをポート番号で多重化します。家庭やオフィスで最も一般的な方式で、数百台のデバイスが1つのIPを共有できます。上のツールで可視化しているのがこの方式です。
192.168.1.10:50001 → 203.0.113.1:40001
現在最も普及しているのはPAT/NAPTです。 家庭用ルーター、企業のファイアウォール、クラウドのNATゲートウェイのほとんどがこの方式を採用しています。

関連コンテンツ

サブネットマスクとCIDR

サブネットマスクとCIDR

IPアドレスのネットワーク部とホスト部をビット単位で色分け表示

MACアドレス解決(ARP)

MACアドレス解決(ARP)

ARP Request/Replyによるアドレス解決とARPテーブル登録の流れを可視化

TTLとtraceroute

TTLとtraceroute

TTL減算とICMP Time Exceededによる経路探索の仕組みを可視化

HTTP通信

HTTP通信

ブラウザとサーバー間のHTTPリクエスト/レスポンスの仕組みを可視化

TLSハンドシェイク

TLSハンドシェイク

HTTPSで安全に通信するためのTLSハンドシェイクの仕組みを可視化

DNS名前解決

DNS名前解決

ドメイン名からIPアドレスへの階層的な問い合わせの流れを可視化