VPNの設定を調べている中両者の違いをいまいち理解できていないなと感じたのが今回の動機です。
NAT
おうちのパソコンには基本的にプライベートアドレスを割り当てますが、IPv4の仕様上、このままではインターネットを筆頭に別セグメントと通信することが出来ません。ここで利用されるのがネットワークアドレス変換(Network Adress Translation)になります。
NATはネットワークの境界において2つのIPアドレスを一対一で対応させ、中継を行う技術です。
↑のようなケースでは、大抵の家のパソコンはルーターを経由してインターネットに繋がっているはずです。ルーターはプロバイダから割り当てられたグローバルIPアドレスを持っており、インターネットを介して通信を行う際、パソコンのNICに割り当てられたプライベートアドレスを自身の持つグローバルアドレスに変換します。
これによって、パソコンがあたかも直接インターネットに接続されているかのように見えるというわけです。
NAPT
しかし先ほどアドレスを一対一で対応させると書きましたが、我が家の端末はパソコンこれ1台ですなどという状況が今時発生するでしょうか? スマホなりプリンターなりスマートホームなり、最低もう一台くらいは同じLAN内に存在しそうです。
この状況、本来NATであるなら機器の数と同じだけのグローバルIPアドレスが必要になるはずですから、ワンルームなのにルーターが2台3台と...なんて事になっておかしくはなさそうですが、これを解決するためにNetwork Address Port Translationという技術があります。IPマスカレードとも呼ばれます。
NAPTではIPアドレスに加えてポートの変換を行います。これによって1つのグローバルアドレスでもLAN内からの複数の通信を同時に行うことが出来るようになります。IPマスカレードはLinuxにおけるNAPT実装の名称ですが、どうもこちらの方が有名らしいです。私もこっちで覚えていました。ステープラーとホッチキスみたいなものかもしれません。
NATでは
192.168.0.1 -> 10.34.143.78 の様にIP - IPでの変換ですが
NAPTでは
192.168.100.1 -> 20.171.55.113:100
192.168.100.2 -> 20.171.55.113:200 の様にIP - IP+Port番号で変換を行います。
ポートで分割されるため同時に通信を行うことが出来ます。
参照:
https://e-words.jp/w/NAPT.html