Network Address Translation — プライベート IP アドレスとグローバル IP アドレスを変換する技術。IPv4 アドレス枯渇対策として家庭用ルータ・ISP で広く利用される。
概要
NAT は送信元・宛先の IP アドレス(場合によってはポート番号も)を書き換える仕組み。家庭やオフィスの多数端末(プライベート IP)を 1 つのグローバル IP に束ねてインターネットへ出すのが典型的な用途。
種類
| 種類 | 内容 |
|---|---|
| Static NAT | 1:1 の固定対応。サーバ公開用 |
| Dynamic NAT | プール内グローバル IP から動的割当 |
| NAPT (PAT) | IP + ポートを変換、N:1 を実現。家庭用ルータはこれ |
| Carrier-Grade NAT (CGN) | ISP 側で二重 NAT をかける。個人の固定 IP 取得を妨げる |
NAPT は IP マスカレードとも呼ばれ、Linux の iptables では MASQUERADE で設定する。
NAT が引き起こす問題
1. 二重 NAT
家庭用 HGW(auひかり・光コラボ等)の配下に市販ルータを置く構成で頻発する。VPN のポート開放を 2 段階で行う必要があり、経路制御が複雑になる。
インターネット
│
[ ISP HGW ] ← 1 段目 NAT(グローバル ↔ 192.168.0.x)
│
[ 自前ルータ ] ← 2 段目 NAT(192.168.0.x ↔ 192.168.1.x)
│
[ PC ]
2. VPN との相性
IPsec ESP はポート番号を持たないため、単純な NAPT を通せない。NAT-T(UDP 4500 カプセル化)で回避するが、2 段階の NAT 環境ではさらに難易度が上がる。
3. P2P 通信の阻害
リモートデスクトップ・VoIP・オンラインゲーム等の P2P 通信では、NAT 越え(NAT Traversal)が必要。STUN / TURN / ICE / UPnP などの仕組みで対処する。
NAT 越え技術
| 技術 | 用途 |
|---|---|
| STUN | NAT 種別判定、自分のグローバル IP/ポート取得 |
| TURN | リレーサーバ経由で通信(完全中継) |
| ICE | STUN/TURN を組み合わせた経路自動選択 |
| UPnP / NAT-PMP / PCP | ルータにポートマッピングを動的要求 |
| UDP Hole Punching | 双方向 UDP でファイアウォール穴あけ |
Tailscale / WireGuard は STUN + DERP リレーを組み合わせて NAT 越えを自動化している。二重 NAT 環境でもポート開放なしで通信が成立する。
関連用語
- IPsec — NAT-T で NAT 越えを実現する暗号化プロトコル
- L2TP — NAT 下で構築が特に難しい旧式 VPN
- IKE(IKEv1 / IKEv2) — IKE の NAT-T 機能が関係する