
NAT は次のように動作しますか?
私のコンピュータ 192.168.1.5 がポート 5555 (例) で要求を送信すると、この要求はルータ 194.564.23.67 (パブリック IP) に送信され、NAT はポートを変更して要求とポートを転送し、そのポートでターゲット IP からの応答を待機します。
コンピュータ 192.168.1.5 から、ルータが応答を待機しているポートを確認する方法はありますか。
答え1
TCPとUDPセッションには2つのポートがあることに注意してください。送信元ポートと宛先ポートです。したがって、NATについては、送信元ポートを参照する方が簡単です。にポートが送信されるから。
たとえば、Web サーバーにリクエストを送信すると、そのリクエストはポート 80 に送信されます。このポートは、接続中に開かれる一時ポート (1024 より上) から送信されます。この例では、正しく読み取れば、送信元ポートは 5555 です。このポートはリクエストを発行するアプリケーションに属し、リクエストが完了するまでそのアプリケーションに固有のものです。そのマシンのその送信元ポートがアクティブである間は、そのポートから他の接続を行うことはできません。
通常、ウェブサーバーはポート80でリクエストを受信し、応答を送信します。にポート5555、およびからポート80。
NAT、特にポート アドレス変換 (PAT) が関係する場合、多くのデバイスが 1 つのパブリック IP アドレスを共有する必要があるため、各デバイスが使用した元のポートは一意であるとは見なされません。2 台のマシンがポート 5555 を送信元ポートとして使用する可能性があるため、Web サーバーからルーターに応答パケットが戻されたときに、そのパケットをどこに送信するかは明確ではありません。
したがって、NAT 中に送信元 IP アドレスがルーターのパブリック アドレスに変更されるだけでなく、送信元ポートもルーターの観点から一意のものに変更されます。これは状態テーブルで維持されます。応答パケットは Web サーバーからルーターによって選択されたポートに送信され、その後 NAT が解除され、開かれたポートを使用して内部デバイスに渡されます。
国内のルーターで状態テーブルを表示できるものはほとんどありません。Ciscoルーターでは、次のようにできます。
show ip nat trans
これにより、有効なすべての NAT のリストが表示されます。
唯一の他の方法は、ルータからの送信接続を調べることです。この場合、トラフィックが制御するデバイスを通過する必要がありますが、これも家庭環境では起こりそうにありません。