NAT とは — プライベート IP を公開 IP に変換する仕組みとポートフォワーディング

⏱ 約 5 分 view 37 like 0 LOG_DATE:2026-06-10
目次 / TOC

NAT (Network Address Translation) は、パケットがルータ (境界) を通るときに送信元 / 宛先の IP アドレスを書き換える技術。自宅の何台もの端末が 192.168.x.x という同じような番号なのに、外から見ると全部 1 つの公開 IP に見えるのは NAT のおかげ。とくにポート番号まで使い分けて「多数 : 1」を実現する PAT (NAPT / IP マスカレード) が、いま家庭・社内のほぼ全ルータで動いている。本稿では NAT が生まれた理由 / 種類 / 変換テーブルの動作 / ポートフォワーディング / NAT が壊す副作用 / そして「NAT ≠ ファイアウォール」までを扱う。

01

NAT とは — 国境でアドレスを書き換える #

NAT は、プライベートな世界 (LAN)公開された世界 (インターネット) の境目に立つ通訳。中から外へ出るパケットの送信元 IP を公開 IP に貼り替え、戻ってきた返信を元の端末に貼り直す。

▸ かみ砕いて言うと — 「会社の代表電話」

社内には内線 (プライベート IP) がたくさんあるが、外から見える番号は代表電話 1 本 (公開 IP)。外線に発信すると相手には代表番号が表示され、かかってきた電話は交換手 (ルータ) が正しい内線に取り次ぐ。「どの内線が今どの相手と話しているか」を交換手が台帳で管理している — これが NAT の変換テーブル。

02

なぜ生まれたか — IPv4 枯渇とプライベートアドレス #

IPv4 のアドレスは約 43 億個しかなく、早くから枯渇が見えていた。そこで「外に出ない内輪用の番号」= プライベートアドレス (RFC 1918) を定め、外と話すときだけ NAT で公開 IP に変換する方式が普及した。

範囲CIDRよく使う場所
10.0.0.0 – 10.255.255.25510.0.0.0/8大規模社内
172.16.0.0 – 172.31.255.255172.16.0.0/12中規模 / Docker 等
192.168.0.0 – 192.168.255.255192.168.0.0/16家庭 / 小規模

これらの番号はインターネット上でルーティングされない。だから外と通信するには必ず NAT (または IPv6) が要る。

03

3 つの種類 — Static / Dynamic / PAT #

種類対応用途
Static NAT1 : 1 固定公開サーバに常に同じ公開 IP を割り当てる
Dynamic NAT多 : 多 (プール)公開 IP の在庫から空きを動的に貸す
PAT / NAPT多 : 1 (+ポート)家庭・社内の定番。1 つの公開 IP を全端末で共有

世の中で「NAT」と言えばほぼ PAT を指す。Linux では MASQUERADE、家庭用ルータでは「IP マスカレード」と呼ばれる、あの機能。

04

PAT の仕組み — ポートで多数を 1 つにまとめる #

「多数 : 1」をどう実現するのか。答えはポート番号。ルータは「内側の IP:ポート」と「公開 IP:書き換え後ポート」の対応を変換テーブルに記録し、戻りのパケットを逆引きして正しい端末へ返す。

1. 送信 (アウトバウンド)
PC-A 192.168.1.10:51000 → 宛先 93.184.216.34:443。ルータが送信元を公開 IP:新ポート 203.0.113.5:40001 に書き換え、対応をテーブルに記録。
2. 返信 (インバウンド)
サーバは 203.0.113.5:40001 宛に返す。ルータはテーブルを逆引きし、宛先を本来の 192.168.1.10:51000 に戻して LAN 内へ。
3. 別端末は別ポート
PC-B が同時に通信しても、ルータは別の公開ポート 40002 を割り当てる。ポートで見分けるから 1 つの公開 IP に何百台でも相乗りできる。
05

ポートフォワーディング — 外から中のサーバへ繋ぐ #

PAT は「中→外」の通信を前提にしている。テーブルは中からの発信で初めて作られるので、外から勝手に中へは入れない。自宅でゲームサーバや Web を公開したいときは、ルータに手動で道を作る — これが ポートフォワーディング (DNAT / 静的ポート変換)

ルータ設定の例: 公開 8080 → 内部 Web サーバ
# 外からの 203.0.113.5:8080 を 192.168.1.50:80 へ転送する設定 WAN 203.0.113.5 : 8080 ──▶ LAN 192.168.1.50 : 80

# Linux ルータなら iptables の DNAT で同等 $ iptables -t nat -A PREROUTING -p tcp --dport 8080
-j DNAT --to-destination 192.168.1.50:80

▸ 攻撃面になりやすい場所

ポートフォワーディングは「インターネットに直接口を開ける」行為。古いルータ管理画面、RDP (3389)、SMB (445)、未認証の IoT などを安易に転送すると即スキャンされ侵入される。UPnP による自動穴あけも、マルウェアに悪用される典型。公開するなら最小限・認証必須・パッチ必須。

06

NAT が壊すもの — エンドツーエンドの代償 #

NAT は便利だが、「すべての端末が直接届き合う」というインターネット本来の前提を崩す。そのため副作用がある。

  • 外からの接続開始ができない — P2P・オンライン対戦・在宅サーバが素直に繋がらない。
  • VoIP / ビデオ通話 — 双方が NAT の内側だと直接繋げないため、STUN (自分の公開アドレスを知る) / TURN (中継サーバ経由) / ICE で穴を開ける。
  • CGNAT (キャリアグレード NAT) — IPv4 枯渇が深刻化し、ISP 側でさらに NAT を重ねる構成。利用者は公開 IP すら持たず、ポート開放もできないことがある。
  • IPv6 という本来の解 — アドレスが膨大な IPv6 では原則 NAT は不要で、エンドツーエンドが復活する。
07

セキュリティ上の意味 — 「NAT はファイアウォールではない」 #

PAT の副産物として「外から勝手に入れない」性質があるため、NAT を防御だと誤解しがち。だが NAT の目的はアドレス変換であって、フィルタリングではない

項目NAT(PAT)ファイアウォール
外→中の未要求接続を遮断副産物として概ね遮断明示的に制御
中→外の通信を制御素通しポリシーで制御
マルウェアの外部通信を止める止めない止められる

中で動くマルウェアの C2 通信 (中→外) は NAT を平然と通り抜ける。境界にはきちんとしたステートフルファイアウォールを置き、NAT はあくまでアドレス変換役と割り切る。

08

まとめ — 押さえる 5 点 #

  • NAT はルータで IP アドレスを書き換える技術。生まれた理由は IPv4 枯渇
  • 定番は PAT (NAPT / IP マスカレード)ポート番号で多数の端末を 1 公開 IP に相乗りさせる。
  • 戻りは変換テーブルの逆引きで正しい端末へ返る。
  • 外→中はテーブルがないため入れない。公開したいなら ポートフォワーディング (DNAT)(=攻撃面が増える)。
  • NAT はファイアウォールではない。中→外は素通し。境界には別途 FW を置く。
𝕏 ポスト B! はてブ