Network Address Port Translation
IPアドレスを変換する技術だよ
グローバルIPアドレスとプライベートIPアドレスを紐付けて変換するよ
ポート番号を使って、1つのグローバルIPアドレスと複数のプライベートIPアドレスを紐付けるよ
「NAPT」と表現されるのが一般的だよ
簡単に書くよ
Network Address Port Translation(読:ネットワーク・アドレス・ポート・トランスレーション)とは
いわゆる「NAPT」のこと。
用語の中身としては
NAT
(IPアドレスを紐付けて変換する技術)のパワーアップ版
であり
ポート番号
(ネットワークとパソコンの間にあるドアの番号)を利用することで、1つのグローバルIPアドレス(全世界で通用するIPアドレス)と複数のプライベートIPアドレス(仲間内でのみ通用するIPアドレス)を紐付けて変換する技術
です。
詳しく書くよ
最初に留意事項です。
「NAPT(ナプト?)」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
NAPTの正式名称(?)が「Network Address Port Translation」です。
「Network Address Port Translation」の頭文字を取ったのが「NAPT」ね。
※「Network Address Port Translation」を何となく日本語にすると「ネットワーク住所と港変換」となります。[詳細]
以上が「NAPT」の意味を知っている人向けの説明です。
「NAPTって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
分からないのを承知で書きますが、サクっと一言で説明すると
ネットワーク間のアドレス(IPアドレス)とポートを変換する技術
が「Network Address Port Translation」です。
上でも書きましたが、一般的には「NAPT」と表現されます。
※本ページでも以降は「NAPT」と表現します。
NAPTを理解するためにはNAT(Network Address Translation)を理解していると都合が良かったりします。
以下の用語の意味が分からない方は、そちらから お勉強してください。
・IPアドレス
・グローバルIPアドレス
・プライベートIPアドレス
・ポート
・ポート番号
・NAT
……と言いたいところですが「えー、そんなの面倒くさいよー!」な人のために簡単に書いておきましょうかね。
ずらずらっと一気にいきます。
IPアドレスは「ネットワーク上の住所」です。
インターネットっぽい通信において、送信先を特定するときとかに使う情報です。
「198.51.100.2」のような形式になっています。
IPアドレスは2種類あります。
それは
1.全世界で通用するIPアドレス
2.仲間内でのみ通用するIPアドレス
の2つです。
この2種類のIPアドレスのうち
1.全世界で通用するIPアドレス
を「グローバルIPアドレス」と言います。
もう一方の
2.仲間内でのみ通用するIPアドレス
は「プライベートIPアドレス」です。
ポートは「ネットワークからパソコンさんに お邪魔するときに通るドア」です。
※話を単純化するために「パソコン」と書きましたが、その他のコンピュータ類でも同じです。
パソコンさんには番号を振られたドアが たくさん付いています。
通信において、データを受け取るときは、ネットワークを通ってきたデータが、たくさんあるドアの どれかを通ってコンピュータに入ってきます。
データを送るときは、コンピュータの中にあるデータが、たくさんあるドアの どれかを通ってネットワークの世界に出ていきます。
コンピュータには たくさんのドアが付いています。
データの種類によって どのドアを通るか決まっている……こともあれば、決まっていないこともあります。
例えば、インターネットのデータは80番のドアとか443番のドアを通ると決まっています。
FTP(インターネットの線を使ってファイルをやり取りする仕組み)のデータは20番とか21番のドアを通ります。
ここでは便宜上、20番のドアを通ることにしておきましょう。
telnet(他のコンピュータを遠隔操作するときに使う仕組み)のやり取りは23番のドアを使うことになっています。
このように「○番のドアは××のデータが通るね」と用途が決まっているドアもあれば「△番のドアは使いたい人が好きに使いなよ」と用途が決まっていないドアもあります。
これらのドアがポートです。
コンピュータとネットワークの間にあるドアです。
ネットワークとコンピュータの間を行き来するデータが通ります。
ポート番号は「ポートに割り振られた番号」です。
ポートの説明で
○番のドア
という表現が登場しました。
80番のドア、20番のドア、23番のドアなどですね。
これらのドア(ポート)に付いている番号がポート番号です。
ポートを識別するために割り振られた番号です。
NATは「ネットワーク間のアドレス(IPアドレス)を変換する技術」です。
「NAT」自体は2つのネットワーク間のIPアドレスを中継する技術を指す用語です。
ただし、インターネットの話で出てきたときは
グローバルIPアドレスとプライベートIPアドレスの変換をやる
と考えてください。
例えば、そうですね。
プライベートIPアドレスが「192.168.0.2」のコンピュータが あったとします。
このコンピュータは、そのままではインターネットが使えません。
プライベートIPアドレスは仲間内でしか通用しないからです。
他のネットワークの人は、返事をしようと思ったときに「ん?そこって どこ?」と途方に暮れてしまうでしょう。
そこでインターネットをするときはプライベートIPアドレスをグローバルIPアドレスに変換します。
最初の時点では差出人(返信先)はプライベートIPアドレスで書かれています。
これをグローバルIPアドレスに変換して、相手に送るのです。
これで相手も、どこに お返事を出せば良いか分かりますね。
逆に相手から返ってきたお返事はグローバルIPアドレス宛になっています。
これをプライベートIPアドレスに変換して、戻してやります。
これがNATです。
ここまでを予備知識として、NAPTの説明をします。
ズバリ!
NATにポートの概念を持たせたパワーアップ版
がNAPTです。
NATは「Network Address Translation」の略です。
NAPTは「Network Address Port Translation」の略です。
名前からして、違いは「Port(ポート)」の有無ですよね。
NATの場合は、1つのグローバルIPアドレスで一度にインターネットができるのは1台だけです。
同時に2台以上のコンピュータでインターネットをすることは できません。
NAPTでは、ポートを あれやこれやすることで、1つのグローバルIPアドレスで同時に2台以上のコンピュータがインターネットを使えるようにします。
それを踏まえて、NAPTの仕組みを見ていきましょう。
例えば、そうですね。
プライベートIPアドレスが「192.168.0.2」のコンピュータが あったとします。
このコンピュータは、そのままではインターネットが使えません。
プライベートIPアドレスは仲間内でしか通用しないからです。
他のネットワークの人は、返事をしようと思ったときに「ん?そこって どこ?」と途方に暮れてしまうでしょう。
そこでインターネットをするときはプライベートIPアドレスをグローバルIPアドレスに変換します。
最初の時点では差出人(返信先)はプライベートIPアドレスで書かれています。
これをグローバルIPアドレスに変換して、相手に送るのです。
これで相手も、どこに お返事を出せば良いか分かりますね。
逆に相手から返ってきたお返事はグローバルIPアドレス宛になっています。
これをプライベートIPアドレスに変換して、戻してやります。
ここまではNATの説明と同じです。
さて、ここにプライベートIPアドレスが「192.168.0.3」のコンピュータが あったとしましょう。
こいつも「192.168.0.2」のコンピュータと同じグローバルIPアドレスを使ってインターネットをしようとしました。
おそらく、プライベートIPアドレスからグローバルIPアドレスへの変換は問題ありません。
「192.168.0.2」から「198.51.100.xxx」への変換と「192.168.0.3」から「198.51.100.xxx」への変換をやるだけです。
しかし逆は どうでしょうか?
「198.51.100.xxx」へ届いた お返事は「192.168.0.2」へ渡せば良いのでしょうか。
それとも「192.168.0.3」へ渡すべきでしょうか。
分かりませんよね?
これがNATの限界でした。
複数台のコンピュータで同時にインターネットをしようとすると、返ってきたお返事(グローバルIPアドレス宛)を どのコンピュータに届ければ良いのか(どのプライベートIPアドレスに変換すれば良いのか)分からなくなっちゃうのです。
さぁ、ここで、いよいよNAPTの登場です。
NAPTではポートも使います。
例えば「192.168.0.2」のコンピュータには100番ポートを割り当てたとしましょう。
相手先のコンピュータには「198.51.100.xxxの100番ポートに お返事をくださいね」と指定してやるのです。
そうすると「192.168.0.2」のコンピュータとやり取りする相手は「198.51.100.xxx」の「100番」ポートに返事をくれます。
100番ポートを使っているのは「192.168.0.2」なので、この場合は「198.51.100.xxx」を「192.168.0.2」に変換すれば良いと分かります。
一方「192.168.0.3」のコンピュータには200番ポートを割り当てるとします。
相手先のコンピュータには「198.51.100.xxxの200番ポートに お返事をくださいね」と指定してやるのです。
そうすると「192.168.0.3」のコンピュータとやり取りする相手は「198.51.100.xxx」の「200番」ポートに返事をくれます。
200番ポートを使っているのは「192.168.0.3」なので、この場合は「198.51.100.xxx」を「192.168.0.3」に変換すれば良いですね。
はい、これで区別が付くようになりました。
同じグローバルIPアドレス「198.51.100.xxx」宛のお返事でも、ポートが100番であれば「192.168.0.2」に、ポートが200番であれば「192.168.0.3」に書き換えれば問題なくやり取りできます。
この仕組みがNAPTです。
どのポートにお返事が届いたかで、どのコンピュータ宛のお返事かを判断します。
最後に、もう一度まとめておきますね。
前提として、NATはグローバルIPアドレスとプライベートIPアドレスを変換する技術です。
コンピュータが1台のときは良いのですが、複数台になるとグローバルIPアドレスをどのプライベートIPアドレスに変換すれば良いか分からなくなります。
そこで、プライベートIPアドレスごとに使うポート番号を変更して、どのプライベートIPアドレスに変換すれば良いかをポート番号から判断できるようにしました。
この仕組みがNAPTです。
NATでは1つのグローバルIPアドレスを使えるのは1台のコンピュータ(1つのプライベートIPアドレス)だけでしたが、NAPTでは1つのグローバルIPアドレスを複数台のコンピュータ(複数のプライベートIPアドレス)で同時に使えます。
ちなみに、NATとNAPTを混同して表現している場合も たまにあるようです。
複数台のコンピュータで同時にインターネットをするときは「NAPT」の方だと思ってください。
一言でまとめるよ
まぁ「Network Address Port Translation」って単語が出てきたら「NAPT
(1つのグローバルIPアドレスを複数台のコンピュータで使ってインターネットをするための技術)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「network(ネットワーク)」はカタカナで「ネットワーク」で分かりますかね。
「address(アドレス)」の意味は「住所」とかです。
「port(ポート)」の意味は「港」とか「港湾」とか「港町」とかです。
「translation(トランスレーション)」の意味は「翻訳」とか「変換」とか「移動」とかです。
何となく くっつけると
ネットワーク住所と港変換
となります。
■検索してみる?






