← 一覧へ
ネットワーク
#NAT#PAT#IPv4고갈#CGN#NAT64
最終更新 · 2026-10-28

NAT(Network Address Translation、ネットワークアドレス変換)

1. 概要

A. 定義

NAT(Network Address Translation)とは、IPパケットがルータやファイアウォールなどの境界機器を通過する際に、ヘッダに含まれる送信元または宛先のIPアドレス(およびポート)を別の値に書き換え、異なるアドレス空間(多くはプライベート網とパブリック網)を接続するネットワークアドレス変換技法である。変換機器は元アドレスと変換アドレスの対応関係を変換テーブル(NATテーブル)に記録しておき、戻ってくる応答パケットのアドレスを逆方向に復元することで双方向通信を仲介する。

NATは本来、IPv4アドレス枯渇という現実的制約に対応するために考案されたが、今日ではアドレス節約を超えて内部網の隠蔽と境界セキュリティの中核手段として定着している。 一つのパブリックIPの背後に数百〜数千台のプライベートホストを隠せるため、家庭・企業・通信事業者のいずれもが事実上NATなしではインターネットに接続できない構造となった。 RFC 2663・3022で概念と用語が標準化され、特にポートまで併せて変換する方式(NAPT/PAT)が普及したことで、「パブリックIP 1個=ホスト1台」という制約が崩れた。

B. 登場背景と必要性

NATが必要になった最も直接的な背景は、IPv4アドレスの構造的枯渇である。 IPv4は約43億個(2³²)のアドレスしか表現できないが、インターネットに接続される端末が急増するにつれ1990年代には既に枯渇が予見され、2011年にIANAの最上位アドレスブロックが枯渇した。 NATはRFC 1918が定義したプライベートアドレス帯(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)を内部で自由に再利用し、外部へ出るときだけ少数のパブリックIPに変換することで、パブリックアドレス消費を劇的に削減した。

二つ目の背景は、内部網トポロジの隠蔽と境界統制である。 NATを経ると外部からは内部ホストの実際のアドレス構造が見えず、変換機器のパブリックIP一つだけが見えるため、攻撃者が内部端末を直接狙ってスキャンすることが難しくなる。 特にPAT環境では、外部から内部へ入るセッションを明示的に開かない限り受信が遮断されるが、この「既定で遮断」という性質がファイアウォールを補完する一次境界効果を提供する。

三つ目の背景は、アドレス体系の独立性と移行の容易さである。 プライベートアドレスを使えば、ISPを変えたり二つの組織を合併したりする際に、外部パブリックアドレスの変更とは無関係に内部アドレスを維持でき、逆に重複するプライベート帯を使う二つの網を接続する際もNATでアドレス衝突を回避できる。 このようにNATはアドレス節約・セキュリティ・運用柔軟性という三つの価値を同時に提供し、インターネット成長の隠れた土台となった。

C. 適用目標と範囲

NAT導入の目標は、第一にパブリックIPv4アドレスの節約と共有、第二に内部構造の隠蔽による境界セキュリティの補強、第三にプライベートアドレスに基づく運用独立性の確保である。 適用範囲は、家庭用ルータ、企業境界ファイアウォール、データセンタ・クラウドのアウトバウンドゲートウェイ、通信事業者の大規模共有機器(CGN)に至るまで、プライベート・パブリック境界が存在するほぼすべての地点である。 ただしNATは端点間透過性(end-to-end transparency)を損ない、P2P・VoIP・一部プロトコルに障害を引き起こすため、その限界と回避(traversal)技法まで併せて理解してはじめて正しく適用できる。

2. NATの動作原理と構成要素

A. 全体構造

NATの全体構造は、プライベート網のパケットが境界機器でパブリックアドレスに変換されてインターネットへ出て、応答は変換テーブルを通じて元のホストへ復元されるという流れに要約される。 変換機器は内部(inside)と外部(outside)のインタフェースを持ち、各セッションについて(内部IP・ポート ↔ パブリックIP・ポート)の組をテーブルに登録する。

flowchart LR
    subgraph INSIDE["プライベート網(Inside、RFC 1918)"]
        H1["ホストA(192.168.0.10)"]
        H2["ホストB(192.168.0.11)"]
    end
    H1 --> NAT
    H2 --> NAT
    NAT["NAT機器(境界ルータ/ファイアウォール)"]
    TBL[("変換テーブル(セッションマッピング)")] -.->|"マッピング照会・復元"| NAT
    NAT -->|"送信元IPをパブリックIPに置換"| INET["インターネット(Outside)"]
    INET -->|"応答パケット"| NAT
    NAT -.->|"宛先を元ホストに復元"| H1

変換テーブル(セッションマッピング)を中心に置く点が核心である。 NATは状態保持(stateful)機器として、出ていく最初のパケットを見てマッピングを生成し応答を復元できなければならないため、このテーブルの寿命・サイズ・ポリシーがNATの性能とセキュリティを左右する。

B. 変換処理のライフサイクルと構成要素

一つのセッションがNATを通過するライフサイクルを、PAT(ポート変換)を例にシーケンスで示すと次のとおりである。 内部ホストが異なっていてもポートを変えて割り当て、一つのパブリックIPを共有させるのがPATの本質である。

sequenceDiagram
    participant A as ホストA(192.168.0.10:3500)
    participant N as NAT/PAT機器
    participant S as Webサーバ(203.0.113.9:443)
    A->>N: "SYN 送信元=192.168.0.10:3500"
    N->>N: "マッピング生成: 内部 10:3500 -> パブリック 1.1.1.1:40001"
    N->>S: "SYN 送信元=1.1.1.1:40001 に置換"
    S-->>N: "SYN-ACK 宛先=1.1.1.1:40001"
    N->>N: "テーブル照会で元ホストを識別"
    N-->>A: "SYN-ACK 宛先=192.168.0.10:3500 復元"
    Note over N: "セッション終了・タイムアウト時にマッピング回収"

核心となる構成要素は四つである。 内部/外部インタフェース(inside/outside)は変換の基準となる境界であり、アドレスプール(NATプール)は変換に使うパブリックアドレスの集合である。 変換テーブル(translation table)はセッションごとのマッピングとタイマを保持する状態ストアであり、ALG(Application Layer Gateway)はFTP・SIPのようにペイロード内にIP・ポートを含むプロトコルのために本文まで併せて書き換える補助モジュールである。

C. アドレス・ポート変換の詳細動作

NATが変える欄は、IPヘッダのアドレスだけでなく、変更に伴い再計算が必要なチェックサムと、PATの場合はTCP/UDPヘッダのポート番号まで含む。 IPチェックサムとTCP/UDPチェックサムはアドレス・ポートを含めて計算されるため、NAT機器は変換後にこれらを再計算(または増分更新)しなければパケットが破棄される。 ポート割当ては通常1024以上の空きポートから選び、一つのパブリックIPは理論上およそ6万余りのポートでそれだけの同時セッションを区別できるが、実際にはタイマ・衝突・予約ポートのためそれより少ない。

ICMPのようにポートを持たないプロトコルは、ポートの代わりにQuery IDを識別子として使ってマッピングし、このためpingやtracerouteもPAT環境で正常に動作する。 一方、マッピングにはタイムアウト(idle timeout)がかかっており、一定時間トラフィックがなければ回収されるが、この値が短ければ遊休セッションが切れ、長ければテーブルが飽和するため、TCP/UDP別に適切に調整することが運用の要である。

3. NATの種類

A. 静的NATと動的NAT

NATはマッピング方式により大きく静的・動的・PATに分かれる。 静的NAT(Static NAT)は内部IP一つをパブリックIP一つに固定の1:1で対応させる方式で、外部から常に同じパブリックアドレスで内部サーバにアクセスする必要がある場合(Web・メールサーバの公開)に使われる。 アドレスを節約できはしないが、マッピングが固定でインバウンドが予測可能という利点があり、DMZサーバ公開の標準方式である。

動的NAT(Dynamic NAT)はパブリックアドレスのプールを置き、内部ホストが外部へ出るたびにプールから一つを一時的に借りて1:1で割り当てる方式である。 同時に出ていくホスト数分だけパブリックアドレスが必要なので静的より効率的だが、プールが尽きればそれ以上は接続できず、マッピングが毎回変わるため外部から特定の内部ホストを指定してアクセスできない。

B. PAT(NAPT)と多数ホストの共有

PAT(Port Address Translation、NAPT)は今日最も普及した方式で、パブリックIP一つにポートを変えて割り当て、多数の内部ホストを同時にマッピングする。 家庭用ルータが数十台の端末をISPから与えられたパブリックIP一つでインターネットに接続するのがまさにPATであり、「IP過負荷(IP overloading)」とも呼ばれる。 アドレス節約効果が最も大きいが、外部から内部へのインバウンドセッションは既定で遮断されるため、サーバ公開にはポートフォワーディング(静的マッピング)を別途設定しなければならない。

flowchart TB
    START["出ていくパケットを受信"] --> Q1{"宛先は内部公開サーバか?"}
    Q1 -->|"はい(インバウンド・静的)"| STATIC["静的マッピング/ポートフォワーディング適用"]
    Q1 -->|"いいえ(アウトバウンド)"| Q2{"変換方式は?"}
    Q2 -->|"1:1 固定"| SNAT["静的NATマッピング"]
    Q2 -->|"プールから1:1一時"| DNAT["動的NAT割当て"]
    Q2 -->|"IP 1個 + ポート多重"| PAT["PATポート割当て"]
    SNAT --> WRITE["テーブル記録・チェックサム再計算"]
    DNAT --> WRITE
    PAT --> WRITE
    STATIC --> WRITE
    WRITE --> OUT["パブリック網へ送信"]

C. NAT詳細分類の比較

PATは外部アドレス・ポートにマッピングをどれだけ縛るかにより詳細動作が異なり、この差がP2P・VoIPの通過可否を左右する。 下表は種類別の特性をアドレス節約・インバウンド・代表用途の観点で整理したものである。

区分 静的NAT 動的NAT PAT(NAPT)
マッピング関係 1:1 固定 1:1 一時(プール) N:1(ポートで区別)
アドレス節約 なし 中程度 非常に大きい
インバウンドアクセス 常に可能 マッピング中のみ 既定で遮断(フォワーディング必要)
代表用途 サーバ公開・DMZ 間欠的な外部接続 家庭・企業共有
ポート変換 なし なし あり

静的NATは「公開すべきサーバ」に、PATは「隠したまま送り出す多数端末」に適するという点が核心的な違いである。 動的NATは両者の中間だが、ポート共有がないためPATほど節約されず、実務ではサーバは静的、ユーザ網はPATで組み合わせる構成が一般的である。

4. NATの限界と通過(Traversal)技法

NATは端点間接続性を損なうため、外部から内部へ先に接続を試みるアプリケーションで根本的な障害を引き起こす。 特にP2Pファイル共有、VoIP(SIP/RTP)、オンラインゲーム、ビデオ会議のように双方が直接セッションを結ぶ必要がある場合、両方ともPATの背後にあれば相手の実際のアドレス・ポートが分からず接続が成立しない。 これを解決するための標準技法がSTUN・TURN・ICEである。

STUN(Session Traversal Utilities for NAT)は、内部ホストが外部STUNサーバに問い合わせて「自分が外部から見えるパブリックIP・ポート」を知り、そのアドレスを相手に知らせて直接接続を試みさせる。 しかし対称型(symmetric)NATのように宛先ごとにポートを変えて割り当てる環境では、STUNで知ったアドレスが実際の通信に使われず失敗するが、このときはTURN(Traversal Using Relays around NAT)サーバがトラフィックを中継(relay)して回避する。 ICE(Interactive Connectivity Establishment)は直接接続・STUN・TURNの候補をすべて収集し、接続可能な経路を自動で選ぶフレームワークで、WebRTCがこれを採用してブラウザ間のリアルタイム通信を可能にした。

一方、アプリケーション層でIP・ポートをペイロードに含むFTP(アクティブモード)・SIPなどはALGが本文も併せて書き換えてはじめて動作し、家庭用ルータはUPnP IGD・NAT-PMP・PCPのようなプロトコルで端末が自らポートフォワーディングを要求して通過を自動化する。 このようにNAT通過は「NATが壊した透過性をアプリケーション・補助プロトコルが復元する」という構造として理解すべきである。

5. 深化: 大規模NAT(CGN)とIPv6移行動向

A. 通信事業者レベルのCGN(Carrier-Grade NAT)

IPv4枯渇が深刻化し、通信事業者が加入者にパブリックIPを与えられなくなると、ISP内部に二次NAT層を置くCGN(またはLSN、Large Scale NAT)を導入した。 加入者家庭のルータ(一次NAT)が変換したトラフィックをISPのCGN(二次NAT)が再び変換するダブルNAT構造であり、このとき加入者にはRFC 6598が専用に割り当てた100.64.0.0/10共有帯が付与される。 CGNは数万加入者が少数のパブリックIPを共有させてアドレスを極限まで節約するが、加入者別インバウンドが不可能になり、一つのパブリックIPを多数が共有することにより悪用行為の追跡(ロギング)とIPベースの遮断・評判管理が難しくなる副作用を生む。 このためCGNはポートブロック単位の割当てと詳細ロギングを併せて要求し、RFC 6888はこのCGN要件を規定する。

B. IPv6移行とNAT64/DNS64

NATはIPv4の寿命を延ばした成功した応急策だったが、根本解はアドレス空間が事実上無限(2¹²⁸)のIPv6への移行である。 IPv6はすべての端末にパブリックアドレスを与えられるので原則としてNATは不要だが、移行期にはIPv6専用端末がIPv4専用サーバと通信しなければならない混在状況が生じる。 これを仲介するのがNAT64(RFC 6146)で、IPv6パケットをIPv4に変換し、通常DNS64(RFC 6147)と併用してIPv4アドレスをIPv6アドレスに合成して端末に返す。 ただしIPv6環境でも内部構造隠蔽を目的にNATを使おうとする需要があり、NPTv6(RFC 6296)のような無状態プリフィックス変換が定義されたが、IETFはIPv6ではアドレス変換の代わりにファイアウォールでセキュリティを達成することを勧告しており、NATは次第にIPv4レガシ技術へ収斂する趨勢である。

C. 予想出題方向と答案構成戦略

技術士の観点でNATは「IPv4枯渇対応とアドレス節約メカニズム」という概念説明として出題されるか、「NAT種類比較とセキュリティ・通過設計」という分析問題に拡張されうる。 答案は単純な定義にとどまらず、① 静的・動的・PATのマッピング差と適用基準、② チェックサム・ポート・ALGなど変換の詳細動作、③ STUN・TURN・ICE通過技法とCGN・NAT64の移行文脈を、アドレス節約–セキュリティ–端点間透過性の毀損というトレードオフ軸で結んで展開することが説得力を持つ。 さらにIPv6移行の展望まで加えれば技術士水準の統合的視野を示せる。

6. 考慮事項および示唆点

  • セキュリティ効果の過信禁物: NATのインバウンド既定遮断は付随的な境界効果にすぎず、設計されたセキュリティ統制ではない。ポートフォワーディング・UPnPで穴が開けばそのまま露出するため、NATをファイアウォールの代替と見なしてはならず、状態ベースのファイアウォール・IPSと併せて多層で構成すべきである。特にIPv6移行時に「NATがなく危険だ」という誤解に陥らず、ファイアウォールポリシで境界統制を明示的に設計しなければならない。
  • 端点間透過性の毀損とアプリケーション互換性: NATは端点間の直接接続を前提とするプロトコルを壊す。VoIP・ビデオ会議・P2Pを導入する際はSTUN/TURN/ICE支援の有無とTURN中継サーバの帯域・費用を必ず併せて設計し、ALGが引き起こす予期せぬペイロード改変(むしろ障害を起こす場合)も点検対象に含めなければならない。
  • 性能・拡張性と状態テーブル管理: NATは状態保持機器であるため、同時セッション数が変換テーブルのサイズとCPUに直接影響する。大規模環境ではテーブル飽和・ポート枯渇がサービス障害につながるため、タイムアウトチューニング・セッション上限・冗長化(機器間の状態同期)を設計に反映し、CGNはポートブロック割当てでロギング量と追跡性を均衡よく管理しなければならない。
  • 追跡性・法的対応とCGNのジレンマ: 多数加入者が一つのパブリックIPを共有するCGNでは、事故発生時に特定加入者の識別が難しく、捜査協力・悪用遮断・評判管理に共通の難しさが生じる。ポート範囲単位のロギングと正確な時刻同期(NTP)を義務化して追跡性を確保する運用体系が必要である。
  • 展望 — IPv4レガシ技術への収斂: NATはIPv4寿命を20年以上延ばしたが、IPv6普及率が上昇するにつれ、長期的にはNAT64・デュアルスタックを経て「NATのない端点間インターネット」へ移行する展望である。当面はIPv4/IPv6混在が不可避なので、組織はデュアルスタックを基本とし、NATを移行期の中継・アドレス節約手段に限定して運用する戦略が現実的である。

参考資料


一言まとめ: NATは境界機器でIPアドレス・ポートを変換してプライベート網とパブリック網をつなぐ技法で、IPv4枯渇に対応してアドレスを節約し内部網を隠蔽するが、静的・動的・PATのマッピング差とCGN・NAT64の移行文脈、そして端点間透過性の毀損を補う STUN・TURN・ICE 通過技法まで併せて理解してはじめて正しく設計・運用できる、IPv6時代へ収斂していく過渡期の中核インフラ技術である。