NAT
IPアドレスは、インターネットで使えるものと使えないものがあります。使えない場合は、インターネットで使えるIPアドレスに変換する必要があります。
本項では、NAT(Network Address Translation)について説明します。
グローバルアドレスとプライベートアドレス
IPアドレスには、インターネットで使えるIPアドレスと使えないIPアドレスがあります。
インターネットで使えるIPアドレスをグローバルアドレス、使えないIPアドレスをプライベートアドレスと言います。それぞれのアドレスの範囲は以下の通りです。
種類 | 範囲 |
---|---|
グローバルアドレス | 0.0.0.0〜223.255.255.255 ※プライベートアドレス範囲を除く |
プライベートアドレス | 10.0.0.0〜10.255.255.255 172.16.0.0〜172.31.255.255 192.168.0.0〜192.168.255.255 |
IPアドレスは住所の役目をするため、グローバルアドレスはインターネットの中で重複しないように管理されており、一意になっています。プライベートアドレスはインターネットで使わないため自由に設定できますが、通信する範囲では重複しないように割り当てる必要があります。
グローバルアドレスは数に限りがあるため、家庭のネットワークでは使えないことが多く、一般的にプライベートアドレスを使います。また、企業でもプライベートアドレスが多く使われています。
プライベートアドレスでインターネットと通信する
プライベートアドレスを使っていた場合、そのままではインターネットと通信できないため、グローバルアドレスに変換する必要があります。これを、NATと言います。
フレームは、パソコンからルーターまでは以下の通りです(MACアドレスなど一部省略しています)。
ルーターを経由した後は、以下のように送信元IPアドレスがグローバルアドレス(以下の例では203.0.113.1)に変換されます。これで、インターネットと通信できるようになります。
また、インターネットにあるサーバーからの応答は203.0.113.1宛てに送られてきて、ルーターで元の192.168.1.10宛てに変換されます。
NAPT
例えば、2台のパソコンを使っていてIPアドレスが192.168.1.10と192.168.1.20だとします。パソコンからインターネットへ通信する際、ルーターを経由する時にどちらもNATによって送信元IPアドレスが203.0.113.1に変換された場合、サーバーからの応答はどちらも203.0.113.1宛てに返ってきます。ルーターは203.0.113.1を192.168.1.10に変換したらよいか、192.168.1.20に変換したらよいかわからないため、通信が成り立ちません。
このような場合は、NAPT(Network Address Port Translation)という技術を使います。NAPTは、IPマスカレードとも呼ばれます。
NAPTでは、インターネットへ送信する時に送信元IPアドレスだけでなく、送信元のポート番号も変換します。例えば、192.168.1.10では送信元IPを203.0.113.1でポート番号を3,000番に変換したとします。
サーバーからの応答で、同じ203.0.113.1宛てであってもポート番号が3,000番宛てであれば192.168.1.10宛てと判断して変換可能なため、通信が成立します。
この3,000番という数字は固定ではなく、通信の度に自動でルーターが割り当てます。このため、ルーターはNAPTテーブルを保持しています。
プライベート | グローバル |
---|---|
IP:192.168.1.10 ポート:4,000 | IP:203.0.113.1 ポート:3,000 |
IP:192.168.1.10 ポート:5,000 | IP:203.0.113.1 ポート:3,001 |
IP:192.168.1.20 ポート:5,000 | IP:203.0.113.1 ポート:3,002 |
上記のNAPTテーブルでは、203.0.113.1宛ての通信が戻ってきた場合、3,001番ポート宛てであれば192.168.1.10でポート番号5,000に変換します。3,002番ポート宛てであれば、192.168.1.20のポート番号5,000です。
このように、サーバーからの応答フレームが同じグローバルアドレス宛てで戻ってきても、元のアドレスやポート番号に変換できます。
NAPTを使えば、1つのグローバルアドレスで複数のパソコンがインターネットを使えるようになります。
デスティネーションNAT
家庭では一般的にこれまで説明したとおり、パソコンのプライベートアドレスをインターネットで使えるグローバルアドレスに変換して通信を行いますが、これをソースNATと言います。
通信開始時のフレームで、送信元のIPアドレスが変わるためです。
これに対し、インターネットからグローバルアドレス宛てに開始された通信を、プライベートアドレスに変換する方法をデスティネーションNATと言います。デスティネーションNATは、公開サーバー(例えば、公開Webサーバー)などにプライベートアドレスが設定されていて、インターネットからアクセスさせる時に使います。
フレームは、インターネットからルーターまでは以下のとおりです。
ルーターを経由した後は、以下のように宛先IPアドレスがプライベートアドレスに変換されます。
上記のとおり、デスティネーションNATでは通信開始時のフレームで、宛先IPアドレスが変わります。
つまり、インターネットからはグローバルアドレスの203.0.113.2がWebサーバーのIPアドレスに見えますが、実態は192.168.1.2が設定されているため、ルーターで変換するのがデスティネーションNATです。
Webサーバーからの応答は、ルーターで送信元IPアドレスが192.168.1.2から203.0.113.2に変換されて、インターネットへ送信されます。
関連ページ
- 応用編「IPアドレスの種類」
- IPアドレスは、グローバルアドレスやプライベートアドレスだけでなく、他にも種類分けされています。その種類分けについて説明しています。