家庭用ルーターやネットワーク設定について調べていると、
「NATを有効にする」
「NAPTで複数端末をインターネットへ接続する」
「ポート開放ができないのはCGNATが原因かもしれない」
といった言葉を目にします。
しかし、
「NATとNAPTは何が違う?」
「家庭用ルーターで使っているのはNAT?NAPT?」
「1つのグローバルIPアドレスを家族全員で使えるのはなぜ?」
「NAPTとポートフォワーディングは同じ?」
「NATがあればファイアウォールはいらない?」
「CGNATになるとポート開放できないのはなぜ?」
と迷うことがあります。
結論からいうと、「NAT」はIPアドレスを別のIPアドレスへ変換する仕組みの総称で、「NAPT」はIPアドレスだけでなくTCP・UDPなどのポート番号も変換し、多数の端末で1つの外部IPv4アドレスを共有できるようにする方式です。
一言で覚えるなら、
NAT=「IPアドレスを変換する」
NAPT=「IPアドレス+ポート番号を変換する」
です。
RFC 3022では、Basic NATをIPアドレスを別のアドレスへ対応付ける方式、NAPTを複数のネットワークアドレスとTCP・UDPポートを、1つの外部アドレスとそのポートへ変換する方式として説明しています。
家庭用ルーターで一般に「NAT」と呼ばれている機能の多くは、実際にはポート番号まで利用するNAPTに相当します。
この記事では、「NAT」と「NAPT」の違いから、プライベートIPアドレス、グローバルIPアドレス、ポート番号、家庭用ルーター、ポート開放、CGNAT、IPv6との関係まで詳しく解説します。
- 「NAT」と「NAPT」の違い【結論】
- 「NAT」とは?
- 「Basic NAT」とは?
- 「NAPT」とは?
- 家庭用ルーターのNATは、実際にはNAPT?
- NAPTの仕組みを具体例で理解する
- NAPTはなぜIPv4アドレス不足対策になる?
- NAPTと「PAT」は同じ?
- NATとNAPTの最大の違い
- NAPTではTCPとUDPをどう区別する?
- NAPTの「変換テーブル」とは?
- NATテーブルは永久に残る?
- 外向き通信はできるのに、外から直接接続しにくいのはなぜ?
- 「ポートフォワーディング」とは?
- 「ポート開放」とポートフォワーディングは同じ?
- NATとファイアウォールの違い
- NATはセキュリティ機能?
- NAT・NAPTにもデメリットはある?
- なぜ一部のアプリはNATと相性が悪い?
- 「CGNAT」とは?
- 家庭のNAPTとCGNATは何が違う?
- CGNATで使われる「100.64.0.0/10」とは?
- CGNATだとポート開放できないことがある?
- CGNATかどうか確認する考え方
- 「二重NAT」とは?
- 「静的NAT」と「動的NAT」の違い
- IPv6ではNAPTは不要?
- NPTv6とIPv4のNAPTは同じ?
- NAT64とは?
- NATを使うとIPアドレスは完全に隠れる?
- NATを使えば複数端末は同じIPアドレスに見える?
- 「NAT・NAPT」で迷ったときの3秒判定
- 「NAT」を使った例文
- 「NAPT」を使った例文
- 具体例で比較:家庭で3台の端末を使う
- 具体例で比較:自宅サーバーを外部公開する
- よくある間違い1:「NAT」と「NAPT」は完全な同義語だと思う
- よくある間違い2:「家庭のNATはIPアドレスだけを書き換える」と思う
- よくある間違い3:「NATがあればファイアウォールはいらない」と思う
- よくある間違い4:「ポート開放=ポート番号を新しく作ること」と思う
- よくある間違い5:「CGNATでも家庭のルーター設定だけで必ずポート開放できる」と思う
- よくある間違い6:「NATを使えば匿名になる」と思う
- よくある間違い7:「IPv6にはNATという技術が一切存在しない」と思う
- 「NAT」と「NAPT」に関するよくある質問
- まとめ
- 参考リンク・出典
「NAT」と「NAPT」の違い【結論】
| 比較項目 | NAT | NAPT |
|---|---|---|
| 正式名称 | Network Address Translation | Network Address Port Translation |
| 主な変換対象 | IPアドレス | IPアドレス+ポート番号 |
| 代表的な使い方 | あるアドレスを別のアドレスへ変換 | 複数端末で1つの外部IPv4アドレスを共有 |
| 複数端末の識別 | アドレス対応が中心 | ポート番号も使って区別 |
| 家庭用ルーター | 広い意味で「NAT」と呼ばれる | 実際にはNAPTが広く利用される |
| IPv4アドレス節約 | 方式による | 非常に有効 |
| 別名 | 広い概念 | PAT、IPマスカレード等と呼ばれることがある |
3秒で判断するなら、
「IPアドレスだけを変換?」 → NAT
「IPアドレスとポート番号を使い、複数端末で1つのIPv4アドレスを共有?」 → NAPT
と考えると分かりやすいでしょう。
「NAT」とは?
ネットワークを通過するIPアドレスを別のIPアドレスへ変換する仕組み
NATは、
Network Address Translation
の略です。
ネットワークを通過するパケットのIPアドレスを別のIPアドレスへ変換します。
RFC 2663は、NATに関する用語や動作を整理し、内部ネットワークのアドレスと外部ネットワークのアドレスを変換する仕組みを説明しています。
またRFC 3022では、従来型NATを大きく、
- Basic NAT
- NAPT
に分けています。
つまり、厳密に整理すると、
NATはより広い概念で、その具体的な方式の一つがNAPT
と考えることができます。
「Basic NAT」とは?
RFC 3022でいうBasic NATは、基本的に、
IPアドレスを別のIPアドレスへ対応付けて変換する方式
です。
たとえば内部ネットワークの、
10.0.0.10
というアドレスを、外部では、
203.0.113.10
として扱う、といった変換です。
| 内部側 | 外部側 |
|---|---|
| 10.0.0.10 | 203.0.113.10 |
| 10.0.0.11 | 203.0.113.11 |
このような方式では、それぞれの内部アドレスに対応する外部アドレスを必要とするため、
1個のグローバルIPv4アドレスを何十台もの端末で共有する
目的には向きません。
そこで重要になるのがNAPTです。
「NAPT」とは?
IPアドレスだけでなくポート番号も変換する方式
NAPTは、
Network Address Port Translation
の略です。
RFC 3022では、複数のネットワークアドレスとTCP・UDPポートを、1つの外部ネットワークアドレスとそのTCP・UDPポートへ変換する方式として説明されています。
つまりNAPTでは、
- IPアドレス
- TCP・UDPのポート番号
の両方を利用します。
これによって、何台ものパソコン・スマートフォンが、1つのグローバルIPv4アドレスを共有できます。
家庭用ルーターのNATは、実際にはNAPT?
一般的な家庭用IPv4ルーターでは、NAPTに相当する処理が広く利用されています。
家庭内には、
- パソコン
- スマートフォン
- テレビ
- ゲーム機
- タブレット
など多数の機器があります。
それぞれに、
192.168.1.10
192.168.1.11
192.168.1.12
などのプライベートIPv4アドレスが割り当てられているとします。
一方、インターネット側では家庭全体で1つのグローバルIPv4アドレスしか利用していない場合があります。
NAPTはポート番号を利用して、それぞれの通信を区別します。
NAPTの仕組みを具体例で理解する
家庭内に2台のパソコンがあるとします。
パソコンA:
192.168.1.10:53001
パソコンB:
192.168.1.11:53002
ルーターの外部IPv4アドレスが、
203.0.113.5
だったとします。
ルーターは通信を、たとえば、
| LAN側 | インターネット側 |
|---|---|
| 192.168.1.10:53001 | 203.0.113.5:40001 |
| 192.168.1.11:53002 | 203.0.113.5:40002 |
のように変換できます。
外部から見ると、どちらの通信も、
203.0.113.5
から来ています。
しかしポート番号が、
40001
と、
40002
に分かれているため、ルーターは戻ってきた通信を、どの内部端末へ返せばよいか判断できます。
NAPTはなぜIPv4アドレス不足対策になる?
IPv4アドレスは32ビットしかなく、理論上の組み合わせは約42.9億です。
世界中のすべての端末へ1台につき1個のグローバルIPv4アドレスを割り当て続けるには不足します。
そこで家庭・会社内部ではRFC 1918で定められた、
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
などのプライベートIPv4アドレスを利用し、外部通信時だけNAPTでグローバルIPv4アドレスを共有します。
同じ192.168.1.10というアドレスを、世界中の多数の家庭で再利用できるため、IPv4アドレスを大幅に節約できます。
NAPTと「PAT」は同じ?
ネットワーク製品や解説記事では、NAPTとほぼ同じ文脈で、
PAT(Port Address Translation)
という名称が使われることがあります。
また環境によっては、
IPマスカレード
という言葉も使われます。
正式なRFC用語としてRFC 3022で使われているのは、
NAPT(Network Address Port Translation)
です。
初心者向けには、
NAPT・PAT・IPマスカレードは、複数端末がポート番号を利用して1つの外部IPv4アドレスを共有する仕組みを指して使われることが多い
と理解するとよいでしょう。
NATとNAPTの最大の違い
NATは「アドレス」、NAPTは「アドレス+ポート」
最も重要な違いです。
Basic NATでは、
内部IPアドレス ↔ 外部IPアドレス
を中心に対応付けます。
NAPTでは、
内部IPアドレス+内部ポート番号
と、
外部IPアドレス+外部ポート番号
を対応付けます。
このポート番号があることで、多数の内部端末・通信を1個の外部IPv4アドレスの中で区別できます。
NAPTではTCPとUDPをどう区別する?
ポート番号だけでなく、
TCPなのかUDPなのか
も重要です。
たとえば、
TCP 50000
と、
UDP 50000
は別の通信です。
NAPTでは、
- 内部IPアドレス
- 内部ポート番号
- 外部IPアドレス
- 外部ポート番号
- TCP・UDPなどのプロトコル
などを利用して通信を管理します。
NAPTの「変換テーブル」とは?
NAPTを行うルーターは、どの外部通信がどの内部端末に対応するのか記録する必要があります。
この対応関係を、一般に、
NATテーブル
変換テーブル
などと呼びます。
たとえば、
| 内部 | 変換後 |
|---|---|
| 192.168.1.10:51000 | 203.0.113.5:41001 |
| 192.168.1.11:52000 | 203.0.113.5:41002 |
という対応をルーターが記憶します。
外部サーバーから203.0.113.5:41002へ応答が戻れば、ルーターは、
「これは192.168.1.11:52000宛ての通信」
と判断して変換します。
NATテーブルは永久に残る?
通常は残りません。
通信が終了したり一定時間通信がなかったりすると、変換情報は削除されます。
そうしなければ、限られたポート番号やルーターのメモリを無限に消費してしまうからです。
どの程度の時間保持するかは、
- TCP
- UDP
- ルーター
- 実装
- ネットワーク事業者
などによって異なります。
外向き通信はできるのに、外から直接接続しにくいのはなぜ?
家庭内端末からインターネットへ通信を開始すると、NAPTルーターはその通信に対応する変換情報を作ります。
そのため、外部サーバーから返ってきた応答を正しい端末へ戻せます。
一方、外部から突然、
203.0.113.5:50000
へ接続要求が来ても、対応する変換情報がなければ、
「LAN内のどの端末へ送ればよいのか」
判断できません。
そこで外部から家庭内サーバーへ接続させたい場合などに利用するのが、
ポートフォワーディング
です。
「ポートフォワーディング」とは?
ポートフォワーディングは、外部側の特定ポートへ来た通信を、LAN内の特定IPアドレス・ポートへ転送する設定です。
たとえば、
外部TCP 50000
へ来た通信を、
192.168.1.100:25565
へ送る、といった設定です。
| 外部 | 内部 |
|---|---|
| 203.0.113.5:50000 | 192.168.1.100:25565 |
これによって、インターネット側からLAN内のゲームサーバーなどへ接続できる場合があります。
「ポート開放」とポートフォワーディングは同じ?
家庭用ルーターの説明では、ほぼ同じ意味で、
「ポート開放」
という言葉が使われることがあります。
ただし厳密には、外部通信を成立させるために、
- NAPTの転送設定
- ルーターのファイアウォール
- 端末側ファイアウォール
- サーバーアプリの待ち受け設定
など複数の条件が関係する場合があります。
そのため、
ルーターでポート転送を設定した=必ず外から接続できる
とは限りません。
NATとファイアウォールの違い
NAT・NAPTとファイアウォールは同じものではありません。
NAT・NAPT=アドレスやポートの変換
ファイアウォール=通信を許可・拒否するアクセス制御
です。
NAPT環境では、外部から突然届いた通信について対応する変換情報がなければ内部へ転送されないことがあります。
そのため結果的に、外部から直接接続しにくくなります。
しかし、
「NATを使っているからファイアウォールはいらない」
と考えるべきではありません。
セキュリティ対策としては、ファイアウォールなどによって、どの通信を許可するか明示的に管理することが重要です。
NATはセキュリティ機能?
NAT本来の目的は、通信のアクセス制御そのものではありません。
NATはIPアドレス等を変換する技術です。
NATによって内部アドレスがそのまま外部へ見えなかったり、未対応の外部通信が内部へ届きにくかったりする効果はあります。
しかしそれを、
ファイアウォールと同じ防御機能
と考えるのは適切ではありません。
NAT・NAPTにもデメリットはある?
あります。
もともとのインターネットは、通信する端末同士が直接到達できる、
エンドツーエンド
の通信を基本思想の一つとしていました。
NATが入るとアドレス・ポートが途中で書き換えられるため、アプリケーションによっては追加処理が必要になります。
たとえば、
- P2P通信
- オンラインゲーム
- VoIP
- 外部からの着信・接続
などではNAT越えが課題になることがあります。
なぜ一部のアプリはNATと相性が悪い?
単純なWeb閲覧のように、
内部端末 → 外部サーバー
の順に通信を開始する場合はNAPTと非常に相性がよいといえます。
一方、外部の相手から内部端末へ直接接続するP2P通信などでは、
内部端末が外部から見てどのIPアドレス・ポートへ変換されているか
を知る必要が生じる場合があります。
そのため、
- STUN
- TURN
- ICE
- PCP
- UPnPによるポートマッピング
など、NAT環境で通信を成立させるための技術が利用されることがあります。
「CGNAT」とは?
CGNATは、
Carrier-Grade NAT
あるいは、
Carrier-Grade Network Address Translation
と呼ばれる仕組みです。
家庭内だけでIPv4アドレスを共有するのではなく、
ISP側で多数の契約者が同じ外部IPv4アドレスを共有する
ためにNATを行います。
RFC 6888ではCGNを、複数の加入者が同じIPv4アドレスを共有するため、ISPのネットワーク内に配置されるNAT機能として定義しています。
家庭のNAPTとCGNATは何が違う?
家庭用ルーターのNAPTは、利用者自身の家にあるルーターで行います。
CGNATは、
さらにISP側でもNATされる
構成です。
イメージすると、
パソコン → 家庭用ルーターのNAPT → ISPのCGN → インターネット
となります。
このように複数段階でNATされることもあります。
CGNATで使われる「100.64.0.0/10」とは?
RFC 6598では、CGNなどのサービスプロバイダー向けShared Address Spaceとして、
100.64.0.0/10
が予約されています。
範囲としては、
100.64.0.0〜100.127.255.255
です。
これは、
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
といったRFC 1918の家庭・組織向けプライベートアドレスとは別の用途です。
ISPのCGN環境などで利用するために設けられた共有IPv4アドレス空間です。
CGNATだとポート開放できないことがある?
あります。
家庭用ルーターのポートフォワーディングは、自分のルーターを通過する通信を設定できます。
しかしCGNATでは、そのさらに外側にあるISP管理のNATも通過しています。
利用者は通常、ISP側のCGN変換設定を自由に変更できません。
そのため、家庭用ルーターだけでポートフォワーディングを設定しても、インターネット側からの通信がCGNを通過できない場合があります。
RFC 6888でも、CGNでは外部から加入者側への接続が難しくなるアプリケーションがあることが説明されています。
CGNATかどうか確認する考え方
ルーターのWAN側に表示されるIPv4アドレスと、インターネット上から確認される外部IPv4アドレスが異なる場合、上流側でNATされている可能性があります。
またWAN側アドレスが、
100.64.0.0/10
に含まれている場合は、CGN向け共有アドレスが使われている可能性があります。
ただし実際の回線構成はISPによって異なるため、確実に知りたい場合は契約している通信事業者の仕様を確認する必要があります。
「二重NAT」とは?
家庭内でもNATが2段になることがあります。
たとえば、
ホームゲートウェイ → 自前のWi-Fiルーター → パソコン
という構成で、ホームゲートウェイとWi-Fiルーターの両方がルーターモードでNATを行っている場合です。
これを一般に、
二重NAT
と呼びます。
通常のWeb閲覧では問題が表面化しない場合がありますが、
- ポート開放
- オンラインゲーム
- VPN
- P2P通信
などで設定が複雑になることがあります。
「静的NAT」と「動的NAT」の違い
NATのアドレス対応方法には、さまざまな設計があります。
静的NAT
あらかじめ、
内部アドレスA ↔ 外部アドレスA
という固定した対応を設定する方式です。
サーバー公開など、決まった対応関係を維持したい場合に利用できます。
動的NAT
利用可能な外部アドレスのプールなどから、必要に応じて変換先を割り当てる方式です。
ただし家庭用ルーターで一般的なのは、アドレスだけを動的変換するBasic NATというより、1つの外部IPv4アドレスをポート番号で共有するNAPTです。
IPv6ではNAPTは不要?
IPv6は128ビットの巨大なアドレス空間を持つため、
IPv4アドレス節約を目的として多数端末を1つのIPアドレスへ集約するNAPT
への依存を大きく減らせます。
IPv6では各端末がグローバルに一意なIPv6アドレスを持つ構成を取りやすくなっています。
ただし、
「IPv6にはアドレス変換技術が一切ない」
という意味ではありません。
たとえばRFC 6296では、IPv6のネットワークプレフィックスを1対1で変換する、
NPTv6
がExperimental仕様として定義されています。
NPTv6とIPv4のNAPTは同じ?
大きく異なります。
RFC 6296のNPTv6は、内部・外部プレフィックスの間で、
1対1のアドレス関係
を維持するステートレスな変換方式です。
IPv4で一般的なNAPTのように、
多数の端末をポート番号で1個の外部IPアドレスへ集約する
ことを目的にした方式ではありません。
NAT64とは?
IPv6関連で、
NAT64
という言葉を見ることもあります。
NAT64は、IPv6ネットワークとIPv4ネットワークの間で通信するための変換技術です。
つまり、
IPv4内でアドレスを変換するNAT44
や、
IPv4でアドレスとポートを共有するNAPT44
とは目的が異なります。
「NAT」という言葉には複数の変換技術があるため、何と何を変換しているのか確認することが重要です。
NATを使うとIPアドレスは完全に隠れる?
NATによって、LAN内のプライベートIPv4アドレスがそのままインターネット上の通信元として使われない構成にはできます。
しかし、
「NATを使えば匿名になれる」
という意味ではありません。
Webサービス側からは、NAPT後のグローバルIPv4アドレスが見えます。
またCookie、ログイン情報、ブラウザ情報など、利用者を識別する手掛かりはIPアドレス以外にも存在します。
NATを使えば複数端末は同じIPアドレスに見える?
NAPTを利用する家庭では、外部Webサービスから見ると、複数端末が同じグローバルIPv4アドレスからアクセスしているように見える場合があります。
CGNATではさらに、多数の家庭・契約者が同じ外部IPv4アドレスを共有する場合があります。
そのため、
「同じIPアドレス=必ず同じ人・同じ端末」
とは限りません。
「NAT・NAPT」で迷ったときの3秒判定
| こんな場合 | 答え |
|---|---|
| IPアドレスを別のIPアドレスへ変換 | NAT |
| IPアドレス+ポート番号を変換 | NAPT |
| 1対1のアドレス変換 | Basic NATの代表例 |
| 家庭の複数端末が1つのIPv4を共有 | NAPT |
| ポート番号で通信を区別 | NAPT |
| ISP側で多数契約者がIPv4を共有 | CGNAT |
| 100.64.0.0/10 | CGN向けShared Address Space |
| 外部ポートを内部端末へ固定転送 | ポートフォワーディング |
最も簡単に覚えるなら、
NAT=「住所を書き換える」
NAPT=「住所と受付番号の両方を書き換える」
です。
「NAT」を使った例文
- ルーターでNATを利用する。
- 内部IPv4アドレスを外部アドレスへNATする。
- NATによってアドレス変換を行う。
- 二重NATになっていないか確認する。
- IPv4とIPv6の通信には別のNAT技術が利用される場合がある。
「NAPT」を使った例文
- NAPTで家庭内の複数端末が1つのIPv4アドレスを共有する。
- NAPTではTCP・UDPのポート番号も変換する。
- ルーターのNAPT変換テーブルを利用して応答先を判断する。
- NAPT環境で外部公開するためポートフォワーディングを設定する。
- IPv4アドレス節約にNAPTが広く使われている。
具体例で比較:家庭で3台の端末を使う
家庭に3台の端末があるとします。
PC:192.168.1.10
スマホ:192.168.1.11
ゲーム機:192.168.1.12
家庭用ルーターの外部IPv4アドレスは、
203.0.113.5
1個だけです。
NAPTを利用すると、それぞれの通信へ異なる外部ポート番号を割り当てられるため、3台とも同じ203.0.113.5を使ってインターネットへアクセスできます。
これが、家庭で「1つのグローバルIPv4アドレスを複数機器で共有できる」代表的な仕組みです。
具体例で比較:自宅サーバーを外部公開する
LAN内の、
192.168.1.100:8080
でWebサーバーを動かしているとします。
通常のNAPTだけでは、外部から突然アクセスしてきた通信をどこへ送るべきか判断できません。
そこで、
外部TCP 50000 → 192.168.1.100:8080
というポートフォワーディングを設定します。
ただしCGNAT環境ではISP側にもNATがあるため、家庭用ルーターの設定だけでは外部公開できない場合があります。
よくある間違い1:「NAT」と「NAPT」は完全な同義語だと思う
厳密には違います。
NATはより広いアドレス変換の概念で、NAPTはIPアドレスとポート番号の両方を変換する方式です。
ただし家庭用ルーターの説明ではNAPTまで含めて単に「NAT」と呼ぶことが多くあります。
よくある間違い2:「家庭のNATはIPアドレスだけを書き換える」と思う
家庭で多数の端末が1つのグローバルIPv4アドレスを共有する場合、通常はポート番号も利用して通信を区別します。
つまり実態としてはNAPTに相当します。
よくある間違い3:「NATがあればファイアウォールはいらない」と思う
NATはアドレス等の変換技術であり、ファイアウォールは通信を許可・拒否するための仕組みです。
役割が異なります。
よくある間違い4:「ポート開放=ポート番号を新しく作ること」と思う
一般的な家庭用ルーターの「ポート開放」は、外部ポートへの通信をLAN内の特定端末・ポートへ転送できるようにする設定を指すことが多くあります。
よくある間違い5:「CGNATでも家庭のルーター設定だけで必ずポート開放できる」と思う
ISP側のCGNを利用者自身が設定できない場合、家庭用ルーターだけで外部からの着信通信を通せないことがあります。
よくある間違い6:「NATを使えば匿名になる」と思う
NATは匿名化サービスではありません。
外部側には変換後のIPv4アドレスが見えますし、Web上ではIPアドレス以外の情報でも利用者を識別できる場合があります。
よくある間違い7:「IPv6にはNATという技術が一切存在しない」と思う
IPv6にもNPTv6や、IPv4・IPv6間のNAT64などアドレス変換に関係する技術があります。
ただしIPv4のアドレス不足を補うためのNAPT44と同じ目的・仕組みではありません。
「NAT」と「NAPT」に関するよくある質問
Q1. NATとNAPTの一番簡単な違いは?
NATはIPアドレスを変換し、NAPTはIPアドレスに加えてTCP・UDP等のポート番号も変換します。
Q2. 家庭用ルーターで使われているのはNATとNAPTのどちらですか?
一般には「NAT」と呼ばれていますが、多数の家庭内端末で1つの外部IPv4アドレスを共有している場合、実際にはNAPTに相当する処理が広く利用されています。
Q3. NAPTとPATは違いますか?
製品や解説によって用語の使い方は異なりますが、PATはNAPTとほぼ同じようなアドレス・ポート変換を指して使われることがあります。
RFC 3022で用いられている用語はNAPTです。
Q4. NAPTではなぜ1つのIPアドレスを複数端末で使えますか?
ポート番号を使って各通信を区別できるからです。
同じ外部IPv4アドレスでも異なる外部ポート番号へ変換することで、応答を正しい内部端末へ戻せます。
Q5. NATがあればウイルスや不正アクセスを完全に防げますか?
いいえ。
NATは本来アドレス変換の仕組みです。
ファイアウォール、OS更新、認証、マルウェア対策など別のセキュリティ対策も必要です。
Q6. CGNATとは何ですか?
ISP側で多数の加入者が同じIPv4アドレスを共有するために行うNATです。
家庭用ルーターよりさらに上流でアドレス・ポート変換が行われます。
Q7. 100.64.x.xは普通のプライベートIPですか?
RFC 1918の家庭・組織向けプライベートアドレスとは別です。
100.64.0.0/10はRFC 6598で、主にCGN向けのShared Address Spaceとして予約されています。
Q8. CGNATだと自宅サーバーを公開できませんか?
一般的なポートフォワーディングだけでは難しい場合があります。
ISPがグローバルIPv4アドレス提供、ポート開放機能、PCP等の別手段を提供している場合もあるため、契約サービスの仕様確認が必要です。
Q9. IPv6でもNAPTは必要ですか?
IPv4アドレス節約を目的としたNAPTの必要性は大幅に低くなります。
IPv6では各端末へ一意なIPv6アドレスを割り当てやすいためです。
Q10. NATとポートフォワーディングの違いは?
NATはアドレス変換全般の仕組みです。
ポートフォワーディングは、外部の特定ポートへ届いた通信をLAN内の特定端末・ポートへ転送する設定です。
まとめ
「NAT」と「NAPT」は非常によく似た言葉ですが、厳密には変換する情報が異なります。
| NAT | NAPT |
|---|---|
| Network Address Translation | Network Address Port Translation |
| IPアドレスを変換 | IPアドレス+ポート番号を変換 |
| 広いアドレス変換の概念 | NATの一方式 |
| 1対1の変換など | 多数の内部端末で1つの外部IPv4を共有可能 |
| Basic NAT等を含む | 家庭用ルーターで広く利用 |
最も簡単な覚え方は、
NAT=「IPアドレスを書き換える」
NAPT=「IPアドレスとポート番号を書き換える」
です。
家庭内では、
- 192.168.1.10
- 192.168.1.11
- 192.168.1.12
といった多数のプライベートIPv4アドレスを利用できます。
NAPTによって、それぞれの通信を別々のポート番号へ変換すれば、1個のグローバルIPv4アドレスを多数の端末で共有できます。
この仕組みはIPv4アドレス不足を緩和するうえで非常に大きな役割を果たしてきました。
一方で、NAT・NAPTによって、
- 外部から直接接続しにくい
- P2PやオンラインゲームでNAT越えが必要になる
- ポートフォワーディング設定が必要になる
といった問題も生まれます。
さらにISP側でCGNATが使われている場合には、家庭用ルーターより外側でもNATが行われるため、利用者自身の設定だけではポート開放できないことがあります。
また、
NAT=ファイアウォール
NAT=匿名化
ではありません。
NATはあくまで、
ネットワークアドレスを変換する技術
です。
ネットワークの基本を整理するなら、
NAT=アドレス変換
NAPT=アドレス+ポート変換
ポートフォワーディング=外部ポートを内部サービスへ転送
CGNAT=ISP側で多数契約者のIPv4を共有
と覚えると理解しやすいでしょう。
参考リンク・出典
-
IETF / RFC Editor「RFC 2663: IP Network Address Translator (NAT) Terminology and Considerations」
― NATに関する基本的な用語・分類・動作・制約を整理した文書。Traditional NATやNAPT等を理解する基礎資料 -
IETF / RFC Editor「RFC 3022: Traditional IP Network Address Translator (Traditional NAT)」
― Basic NATをIPアドレスの対応付け、NAPTを複数のネットワークアドレスとTCP・UDPポートを1つの外部ネットワークアドレス・ポートへ変換する方式として説明 -
IETF / RFC Editor「RFC 1918: Address Allocation for Private Internets」
― IPv4のプライベートアドレスとして10.0.0.0/8、172.16.0.0/12、192.168.0.0/16を規定 -
IETF / RFC Editor「RFC 6888: Common Requirements for Carrier-Grade NATs (CGNs)」
― CGNを、ISPネットワーク内で複数加入者が同じIPv4アドレスを共有するためのNAT機能として定義し、CGNの共通要件を規定 -
IETF / RFC Editor「RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space」
― CGN等のサービスプロバイダー向けShared Address Spaceとして100.64.0.0/10を規定。RFC 1918のプライベートアドレスとは異なる用途であることを説明 -
IETF / RFC Editor「RFC 6296: IPv6-to-IPv6 Network Prefix Translation」
― IPv6プレフィックスをステートレスに1対1変換するNPTv6をExperimental仕様として定義。IPv4のNAPTとは異なり、アドレス間の1対1関係を維持
※本記事ではRFCの用語に沿って、「NAT」をアドレス変換に関する広い概念、「NAPT」をIPアドレスとTCP・UDPポート番号の両方を変換する方式として整理しています。市販ルーターの設定画面では、NAPTまで含めて単に「NAT」と表示されることがあります。
※「PAT」「IPマスカレード」などは製品・OS・解説資料によって用語の使われ方が異なる場合があります。RFC 3022ではNetwork Address Port Translation(NAPT)という名称が使われています。
※NAT・NAPTはファイアウォールそのものではありません。外部からの通信が結果として内部へ届きにくくなる場合はありますが、適切なアクセス制御・認証・ソフトウェア更新等のセキュリティ対策を別途行う必要があります。
※CGNAT環境では利用者がISP側の変換設定を直接変更できないことが多いため、通常の家庭用ルーターだけでは外部からのポート開放が成立しない場合があります。
※IPv6ではIPv4アドレス節約を目的としたNAPTへの依存を減らせますが、NPTv6・NAT64など異なる目的のアドレス変換技術も存在します。「IPv6ではNATという技術が一切ない」と単純化しないよう注意してください。
