NAT(ネットワークアドレス変換)の仕組み

入門 | 10分 で読める | 2026.05.02

公式ドキュメント

この記事の要点

• NATはプライベートIPとグローバルIPを相互変換する技術
• 家庭ルーターで使われるのはNAPT(ポート番号も変換)
• RFC 1918で定義されたプライベートIP範囲(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)

NATとは

NAT(Network Address Translation / ネットワークアドレス変換)は、プライベートIPアドレスとグローバルIPアドレスを相互変換する技術です。IPv4アドレスの枯渇問題を緩和するために広く使われています。

なぜ必要か: IPv4アドレスは約43億個しかなく、世界中のすべての機器に割り当てることができません。NATにより、1つのグローバルIPアドレスを複数の機器で共有できます。

プライベートIPとグローバルIP

グローバルIPアドレス

インターネット上で一意に識別される公開IPアドレスです。

  • 特徴: 世界中で重複しない、ISPから割り当てられる
  • 用途: Webサーバー、メールサーバー、インターネット接続
  • 例: 8.8.8.8(Google DNS)、93.184.216.34(example.com)

プライベートIPアドレス

組織内のローカルネットワークでのみ使用されるIPアドレスです。

  • 特徴: インターネット上でルーティングされない、自由に使える
  • 用途: 家庭内LAN、企業内ネットワーク
  • 例: 192.168.1.10(家庭内PC)、10.0.1.5(企業内サーバー)

プライベートIPアドレスの範囲(RFC 1918)

クラスアドレス範囲CIDR表記アドレス数主な用途
クラスA10.0.0.0 - 10.255.255.25510.0.0.0/8約1677万個大規模企業ネットワーク
クラスB172.16.0.0 - 172.31.255.255172.16.0.0/12約104万個中規模ネットワーク
クラスC192.168.0.0 - 192.168.255.255192.168.0.0/16約65,000個家庭・小規模オフィス

ポイント: プライベートIPアドレスは組織ごとに重複して使用できます。Aさんの家と Bさんの家の両方で `192.168.1.1` を使っても問題ありません。

その他の特殊なIPアドレス

範囲用途
127.0.0.0/8ループバック(127.0.0.1 = localhost)
169.254.0.0/16リンクローカル(DHCP失敗時の自動割り当て)
0.0.0.0/8デフォルトルート、未指定アドレス
224.0.0.0/4マルチキャスト
240.0.0.0/4予約済み(将来の利用)

NATの基本動作

通信の流れ

内部ネットワーク           NAT ルーター            インターネット
[PC-A] 192.168.1.10  ──→  [NAT] 203.0.113.5  ──→  [Webサーバー] 93.184.216.34
                            │
                     送信元IPを変換
                     192.168.1.10 → 203.0.113.5

変換テーブル(NAT Table)

内部IP外部IP状態
192.168.1.10203.0.113.5変換中
192.168.1.11203.0.113.5変換中

問題点: 複数の内部機器が同じグローバルIPに変換されると、応答パケットをどの機器に返すべきか判別できません。この問題を解決するのがNAPTです。

NAPT(ポート番号も変換)

NAPT(Network Address Port Translation)またはPAT(Port Address Translation)は、IPアドレスだけでなくポート番号も変換することで、1つのグローバルIPアドレスを複数の機器で共有します。

NAPTの動作

内部                      NAT ルーター              外部
192.168.1.10:52341  ──→  203.0.113.5:10001  ──→  93.184.216.34:443
192.168.1.11:52342  ──→  203.0.113.5:10002  ──→  93.184.216.34:443
                          │
                   IPアドレスとポート番号を両方変換

NAPT変換テーブル

内部IP:ポート外部IP:ポート宛先IP:ポートプロトコル
192.168.1.10:52341203.0.113.5:1000193.184.216.34:443TCP
192.168.1.11:52342203.0.113.5:1000293.184.216.34:443TCP
192.168.1.10:54321203.0.113.5:100038.8.8.8:53UDP

ポイント: 家庭用ルーターや企業ファイアウォールで使われているのは、通常NATではなくNAPTです。ポート番号を変換することで、数千台の機器を1つのグローバルIPで共有できます。

家庭用ルーターでのNAT/NAPT

典型的な家庭ネットワーク

インターネット(ISP)
     │
     │ グローバルIP: 203.0.113.5
     │
 ┌───┴───┐
 │ ルーター │ (NAT/NAPT機能)
 └───┬───┘
     │ プライベートIPネットワーク: 192.168.1.0/24
     ├─ [PC] 192.168.1.10
     ├─ [スマホ] 192.168.1.11
     ├─ [タブレット] 192.168.1.12
     └─ [プリンター] 192.168.1.20

通信の例:PCからWebサイト閲覧

  1. 送信(PC → Webサーバー)
送信元: 192.168.1.10:52341
宛先: 93.184.216.34:443 (HTTPS)

ルーター通過後:
送信元: 203.0.113.5:10001  ← NAPTで変換
宛先: 93.184.216.34:443
  1. 受信(Webサーバー → PC)
送信元: 93.184.216.34:443
宛先: 203.0.113.5:10001

ルーター通過後:
送信元: 93.184.216.34:443
宛先: 192.168.1.10:52341  ← 変換テーブルで復元

NATの種類

Static NAT(静的NAT)

1つのプライベートIPを1つのグローバルIPに固定でマッピングします。

内部IP外部IP
192.168.1.10203.0.113.10
192.168.1.11203.0.113.11

用途: 社内サーバーを外部公開する場合

Dynamic NAT(動的NAT)

プライベートIPを、プールされたグローバルIPの中から動的に割り当てます。

グローバルIPプール: 203.0.113.10 - 203.0.113.20

制限: プールのサイズ分の機器しか同時接続できない

NAPT / PAT(ポート変換)

1つのグローバルIPを複数のプライベートIPで共有します(最も一般的)。

用途: 家庭用ルーター、小規模オフィス

実践メモ: 家庭用ルーターの「NAT設定」は、実際にはNAPT(ポート変換込み)を指しています。

ポートフォワーディング(静的NAPT)

外部からの接続を特定の内部機器に転送する設定です。

設定例

外部からのアクセス:
203.0.113.5:8080 → 192.168.1.10:80 (内部Webサーバー)
203.0.113.5:2222 → 192.168.1.10:22 (内部SSHサーバー)

ルーター設定(概念図)

外部ポートプロトコル内部IP内部ポート
8080TCP192.168.1.1080
2222TCP192.168.1.1022
25565TCP192.168.1.2025565

用途:

  • 自宅サーバーの公開
  • ゲームサーバーのホスティング
  • リモートアクセス(VPNやRDP)

注意: ポートフォワーディングでサービスを公開すると、外部から攻撃を受ける可能性があります。不要なポートは開放しないでください。

NATの問題点

1. エンドツーエンド通信の破壊

NATはインターネットの「エンドツーエンド原則」(すべての端末が直接通信できる)を破壊します。

従来(NAT なし):
[PC A] ←─────────────→ [PC B]
直接通信可能

NAT 環境:
[PC A (プライベートIP)] ─× ← [PC B (プライベートIP)]
                       直接通信不可

2. P2P通信の困難さ

両端がNATの内側にいる場合、直接通信ができません。

影響を受けるアプリケーション:

  • ビデオ会議(Zoom、Teams、Google Meet)
  • P2Pファイル共有(BitTorrent)
  • オンラインゲーム(P2P型)
  • VoIP(SIP、WebRTC)

3. プロトコルの制限

一部のプロトコルはNATを通過できません(FTP Active Mode、一部のVPNなど)。

4. パフォーマンスへの影響

ルーターでの変換処理がオーバーヘッドになります。

NAT越え(NAT Traversal)

NATの問題を回避して、プライベートIP同士で通信するための技術です。

主要な技術

技術正式名称仕組み
STUNSession Traversal Utilities for NAT自分のグローバルIPとポートを発見
TURNTraversal Using Relays around NATリレーサーバー経由で通信
ICEInteractive Connectivity EstablishmentSTUN/TURNを組み合わせて最適な経路を選択

STUN(自分のグローバルIPを発見)

1. クライアントがSTUNサーバーに問い合わせ
2. STUNサーバーが「あなたのグローバルIPは 203.0.113.5:10001 です」と返答
3. この情報を相手に伝えて直接通信

制限: 対称型NATでは動作しない

TURN(リレーサーバー経由)

[クライアントA] → [TURNサーバー] ← [クライアントB]

直接通信できない場合、TURNサーバーが中継

デメリット: サーバー負荷が高い、遅延が増加

ICE(最適な経路を自動選択)

1. STUN で直接接続を試行
2. 失敗した場合、TURN にフォールバック
3. 複数の候補経路から最適なものを選択

採用例: WebRTC、Skype、Zoom

ポイント: ZoomやGoogle Meetなどのビデオ会議システムは、ICE技術を使ってNATを越えた直接通信(P2P)を試み、失敗時にはリレーサーバー経由にフォールバックします。

NATとIPv6

IPv6ではNAT不要

IPv6は膨大なアドレス空間(128ビット = 約340澗個)を持つため、すべての機器にグローバルアドレスを割り当てられます。

IPv4 + NAT:
[PC] 192.168.1.10 → [ルーター] 203.0.113.5 → インターネット

IPv6(NAT不要):
[PC] 2001:db8::10 → インターネット(直接通信)

NPTv6(IPv6でのアドレス変換)

IPv6でもアドレス変換を行う技術(主にセキュリティ目的)。

用途:

  • ISP変更時のアドレス再割り当ての簡素化
  • 内部ネットワークの隠蔽

注意: NPTv6は一般的ではありません。IPv6ではファイアウォールで保護しつつ、NAT不要の設計が推奨されます。

NATの確認方法

自分のグローバルIPを確認

# コマンドラインで確認
curl ifconfig.me
curl ipinfo.io/ip
curl icanhazip.com

# Webサービス
https://www.whatismyip.com/

内部IPを確認

# Linux/macOS
ip addr show
ifconfig

# Windows
ipconfig

NATテーブルの確認(ルーター管理画面)

多くのルーターでは「NAT変換テーブル」や「セッション一覧」として確認できます。

内部IP:ポート     外部IP:ポート     宛先IP:ポート     プロトコル
192.168.1.10:52341 → 203.0.113.5:10001 → 93.184.216.34:443  TCP

まとめ

NATはプライベートIPとグローバルIPを相互変換する技術で、IPv4アドレス枯渇問題の応急処置として広く使われています。家庭用ルーターで使われるのはNAPT(ポート番号も変換)で、1つのグローバルIPを複数機器で共有できます。プライベートIPの範囲はRFC 1918で定義され、10.0.0.0/8172.16.0.0/12192.168.0.0/16が使用されます。NATはエンドツーエンド通信を破壊するため、STUN/TURN/ICEなどのNAT越え技術が発展しました。IPv6では膨大なアドレス空間によりNAT不要になります。

注意: NATはセキュリティ機能ではありません。内部ネットワークを守るにはファイアウォールが必要です。NATは「副次的に内部を隠す効果」があるだけです。

参考リソース

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

メールで無料相談する
← 一覧に戻る