回答:
NATはIPヘッダーを変更するため、レイヤー3で機能します。PATを使用している場合は、それがレイヤー4でも機能していると主張できます。これは、パケットが一意でない場合にパケットの送信元ポートを変更する可能性があるためです。
NAT機能のサブセットである「オーバーロード」とも呼ばれるポートアドレス変換(PAT)と呼ばれる機能を使用して、いくつかの内部アドレスを1つまたはいくつかの外部アドレスにのみNAT変換できます。
PATは、内部グローバルIPアドレスで一意の送信元ポート番号を使用して、変換を区別します。ポート番号は16ビットでエンコードされているため、合計数は理論的にはIPアドレスあたり65,536にもなる可能性があります。
この送信元ポートがすでに割り当てられている場合、PATは元の送信元ポートを保持しようとします。PATは、適切なポートグループ0-5111、512-1023、または1024-65535の先頭から始まる最初の使用可能なポート番号を見つけようとします。
適切なグループからまだ利用可能なポートがなく、複数のIPアドレスが構成されている場合、PATは次のIPアドレスに移動し、元のソースポートを再度割り当てようとします。これは、使用可能なポートとIPアドレスがなくなるまで続きます。
したがって、ポートは一意でない場合にのみ変更されます。
シスコへのこのリンクは、NATのかなり良い概要です。
Natはクロスレイヤープロセスです。これには、少なくともレイヤー3(IP)および4(TCP、UDPなど)が含まれます。場合によっては、レイヤー7(アプリケーション)も含まれます。
IPアドレス(レイヤー3)、IPチェックサム(レイヤー3)、およびTCP / UDPチェックサム(レイヤー4)を変更するには、少なくとも1対1のNATが必要です。
IPアドレス(レイヤー3)、IPチェックサム(レイヤー3)、TCP / UDPポート(レイヤー4)、TCP / UDPチェックサム(レイヤー4)を変更するには、最低でも1対多のNATが必要です。
そのような最小限のNATは、多くのものを壊します(たとえば、アクティブモードのFTP)。したがって、ほとんどのNATは基本を超えて、アプリケーションデータ(レイヤー7)の少なくとも一部のIPアドレスの変換と追跡も実行します。
同じデバイスからのパケット間でこれがどのように一貫している必要があるかを考えてください...少なくともセッション内で。したがって、これをレベル5以上に設定する必要があると主張できます。IPヘッダーを変更するために到達したからといって、上位層からの検討からそれを失格にするべきではありません。下位層は上位層について何も知らない場合がありますが、上位層は下位層を認識して操作できます。実際、レイヤー6が適切なようです。ウィキペディアから:
アプリケーション層エンティティは、プレゼンテーションサービスがエンティティ間の大きなマッピングを提供する場合、異なる構文とセマンティクスを使用する場合があります。
アドレスがレベル7ではなくレベル3である場合でも、アドレス間のマッピングは、プレゼンテーション層で行うべきことのようです。