web-dev-qa-db-ja.com

Wireshark:NATの動作を理解するのに助けが必要

NATを実行しているルーターの背後にあるホームネットワークにPCがあります。 PCにFTPサーバーをセットアップしたかったので、必要なすべてのポートなどを転送しましたが、現在は機能しています。次に、好奇心から、Wiresharkを実行して、そこで実行されるパケットを確認します。私はルーターWAN IPを使用して自分自身に接続しました、そしてそれは私が見たものです:

that's what I saw

これが192.168.1.3が私のPCIP、95.105.x.xが私のルーターWAN IP、そして192.168.1.1がルーターLANIPです。

リクエストとリプライの両方のコピーが2つある理由を理解しています。同じマシンでクライアントとサーバーの両方を実行しています。ここで私が理解していないのは、2番目と3番目のパケットにルーターのLANIPが含まれている理由です。

人が私のサーバーに接続すると、次のように表示されます。

this

ご覧のとおり、パケットには私のPC LANIPと個人のIPだけが含まれています。他のサーバーに接続するときも同じです。

では、自分自身に接続している場合に、ルーターがLANIPで応答するのはなぜですか。

1
c_spk

ルーターは送信元IPアドレスを保持できません。これにより、リターントラフィックがNATを経由せずにLANを介して直接配信されるためです。また、NATをトラフィックの一方の方向にのみ適用し、もう一方の方向には適用しないと、通信が切断されます。

送信元IPは、リターントラフィックがルーターに送信されるように選択する必要があります。つまり、LANの外部にある任意のIPアドレスを使用でき、接続は機能していました。

NATへの1つのアプローチは、送信インターフェイスのIPアドレスを送信元IPとして使用することです。少なくとも1つの実装では、これはマスカレードと呼ばれます。これにより、表示されている内容が説明されます。外界へのLANは、ルーターのWAN IP)になりすます。また、LANからポート転送を経由してLANに戻る接続は、ルーターのLANIPになりすます。

このアプローチの追加の利点は、ルーターのWAN IPが変更された場合に接続が切断されないことです。

2
kasperd