CTS-KB

NAT

なっと

Network Address Translation ネットワークアドレス変換 NAPT IP マスカレード
#ネットワーク #ルーティング

Network Address Translation — プライベート IP アドレスとグローバル IP アドレスを変換する技術。IPv4 アドレス枯渇対策として家庭用ルータ・ISP で広く利用される。

概要

NAT は送信元・宛先の IP アドレス(場合によってはポート番号も)を書き換える仕組み。家庭やオフィスの多数端末(プライベート IP)を 1 つのグローバル IP に束ねてインターネットへ出すのが典型的な用途。

種類

種類内容
Static NAT1: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 越え技術

技術用途
STUNNAT 種別判定、自分のグローバル IP/ポート取得
TURNリレーサーバ経由で通信(完全中継)
ICESTUN/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 機能が関係する

関連記事