NAT(アドレス変換)
家庭やオフィスの“プライベートIP”を、インターネットで使える“グローバルIP”に書き換える仕組み。IPv4枯渇を乗り切る立役者で、ルータの中で毎秒動いている。
- 1.NAT は プライベートIP(192.168.x.x など)と グローバルIP を相互変換し、IPv4 アドレス不足を実質的に回避する仕組み。
- 2.家庭用ルータの実体は PAT/NAPT:ポート番号まで書き換え、1つのグローバルIP を複数端末で共有する。
- 3.外向き発信に強い一方、外からの着信は届かない。公開したいなら ポートフォワーディング、根本解決は IPv6。
何を解決する?
IPv4 アドレスは約43億個しかなく、世界中の端末に1つずつ配るには 全然足りません(IPv4 枯渇)。そこで、
- 各家庭・各オフィスには グローバルIP は1つ(数個)だけ 割り当てる
- LAN の中では、誰とも衝突しない プライベートIP を自由に使う
- インターネットに出る瞬間だけ、ルータが グローバルIP に変換 する
この“出口で住所を貼り替える”発想のおかげで、限られたグローバルIPを大量の端末で共有できます。詳しいアドレスの考え方は /network/ip-subnet/ を参照してください。
LAN内専用に予約されたアドレス帯(RFC1918)は次の3つ。インターネット上には流れません。
10.0.0.0/8 / 172.16.0.0/12 / 192.168.0.0/16
基本の仕組み
PC(192.168.0.10)が、あるWebサーバ(93.184.216.34)へアクセスする場面を追います。グローバルIPはルータが持つ 203.0.113.1 だとします。
- PC が「送信元
192.168.0.10→ 宛先93.184.216.34」のパケットを送る - ルータが送信元を 自分のグローバルIP
203.0.113.1に書き換え て外へ出す - 「誰の代わりに出したか」を 変換テーブル に記録しておく
- サーバからの返事は
203.0.113.1宛に戻ってくる - ルータがテーブルを見て、宛先を 元の
192.168.0.10に戻して PC へ渡す
つまり NAT の本体は、この 変換テーブル(誰の通信をどう貼り替えたかの対応表) です。
NAT の種類
ひとくちに NAT と言っても、何を・どう変換するかで呼び方が分かれます。
| 種類 | 変換するもの | 用途・特徴 |
|---|---|---|
| 静的NAT (1:1) | 1つのプライベートIP ↔ 1つのグローバルIP を固定 | 公開サーバ向け。常に同じ外側IPで見える |
| 動的NAT | プールから空きグローバルIPを都度割り当て | IPの数だけ同時接続可。今は出番が少ない |
| PAT / NAPT | IP に加えて ポート番号 も書き換える | 家庭用ルータの主役。1つのIPを多数端末で共有 |
家庭用ルータがやっているのは、ほぼ常に一番下の PAT(Port Address Translation)、別名 NAPT(NAPT=NAT+ポート変換) です。「IPマスカレード」と呼ばれることもあります。
PAT:ポートで見分ける
グローバルIPが1つしかないのに、PC・スマホ・テレビが同時に通信できるのはなぜか。答えは ポート番号でも区別している から。
ルータは外へ出すとき、各通信に 異なる送信元ポート を割り当てて記録します。
| 内側(プライベート) | 外側(グローバルへ書換後) |
|---|---|
192.168.0.10:51000 | 203.0.113.1:40001 |
192.168.0.11:51000 | 203.0.113.1:40002 |
戻りパケットは「203.0.113.1 の ポート 40001 宛」のように届くので、ポートを鍵にして元の端末・元のポートへ正確に振り分けられます。ポートの考え方は /network/tcp-udp/ にもつながります。
SNAT(Source NAT) は 送信元 を書き換える変換で、LAN→インターネットの外向き通信がこれ。DNAT(Destination NAT) は 宛先 を書き換える変換で、外から来たパケットを内部サーバへ向け直すポートフォワーディングがこれにあたります。家庭用ルータは送信元を隠す SNAT が既定動作です。
外からの着信:ポートフォワーディング
NAT は 内側から始めた通信 には強い一方、外から突然来る通信 はテーブルに対応が無いため捨てられます。これは副次的なファイアウォール効果でもありますが、自宅サーバを公開したいときは困ります。
そこで ポートフォワーディング(ポート開放 / DNAT) を設定し、「203.0.113.1:443 に来たら、内側の 192.168.0.20:443 へ転送する」とルータに教えます。
# Linux ルータでの例(iptables)
# 外向き:LAN(192.168.0.0/24) の送信元を出口IPへ書き換える(SNAT/マスカレード)
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
# 内向き:WAN の TCP 443 着信を内部Webサーバへ転送する(DNAT)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 \
-j DNAT --to-destination 192.168.0.20:443
つまずきポイント
- NAT 配下では P2P が難しい:両端が NAT の内側だと、互いに着信できず直接つながらない。WebRTC 等は STUN / TURN や NAT越え(ホールパンチング) で回避する
- NAT はセキュリティ機能ではない:外から入れないのは“着信を捨てている”副作用にすぎず、本来の防御は /network/proxy-lb/ も含めたファイアウォールで設計する
- 二重NAT に注意:自前ルータの外にプロバイダ側の NAT(CGN)がもう1段あると、ポート開放しても外から届かないことがある
- 同じポートを2台へは割れない:外側
443を内部の複数サーバへ同時に振り分けることはできない(手前のリバースプロキシで振り分ける)
モバイル回線や一部の固定回線では、プロバイダ自身が大規模NAT を挟み、グローバルIPを多数の契約者で共有します。この場合 自分側でポート開放しても外部公開はできず、固定グローバルIPの契約や別経路(VPN・トンネル)が必要になります。
NAT の限界と IPv6
NAT は IPv4 枯渇を 延命 した立役者ですが、本質的には「足りないIPをやりくりする回避策」です。変換テーブルの維持コスト、P2P や着信通信の難しさ、エンドツーエンドの透過性の喪失といった代償を伴います。
根本的な解決は IPv6 です。アドレス空間が桁違いに広い(約340澗個)ため、すべての端末にグローバルIPを直接配れて、原理的に NAT が不要になります。現実にはしばらく IPv4 と併用が続くため、NAT は当面なくならない仕組みでもあります。アドレス体系の全体像は /network/tcp-ip/ も合わせてどうぞ。
ハンズオン
# 自分のグローバルIP(NAT変換後に外から見える住所)を確認
curl -s https://ifconfig.me
# 自分のプライベートIP(LAN内の住所)を確認
# Linux:
ip addr show
# Windows:
ipconfig
# 経路上で住所が変わる様子(自宅ルータが最初のホップ)を追う
traceroute example.com # Windows は tracert
ネットワーク Article
NAT(アドレス変換)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
NAT
比較で見る軸
難易度: intermediate / カテゴリ: ネットワーク / タグ数: 4
導入後に効く点
家庭用ルータの実体は PAT/NAPT:ポート番号まで書き換え、1つのグローバルIP を複数端末で共有する。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- intermediate
- カテゴリ
- ネットワーク
- タグ数
- 4
判断チェックリスト
- 自社の用途が「NAT / IPアドレス」に近いか確認する。
- 強みである「NAT は プライベートIP(192.168.x.x など)と グローバルIP を相互変換し、IPv4 アドレス不足を実質的に回避する仕組み。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。