NATクライアントとサーバー、およびポートの閉鎖

NATクライアントとサーバー、およびポートの閉鎖

クライアントとサーバーがあるとします。クライアントは NAT の背後にあり、サーバーはパブリックです。

クライアントはセッションサーバーと。

クライアントが 192.168.1.1 上にあり、NAT が 192.168.1.2 プライベート IP アドレス上にあるとします。また、NAT が 50.0.0.1 上にあり、サーバーが 50.0.0.2 パブリック IP アドレス上にあるとします。

クライアントは、UDP/IP (TCP/IP と似ているとよいのですが) パケットをサーバーに送信します。このパケットの送信元 IP は 192.168.1.1、送信元ポートは 1000 (ランダムに選択) で、宛先ポートは 50.0.0.2、宛先ポートは 2000 です。これは、サーバー上でアプリケーションが実行されるポートです。

TCP/IP パケットは NAT に到着し、送信元 IP が 50.0.0.1 に変更され、ポートは 5000 (ランダムに選択) に変更され、サーバーにルーティングされます。

サーバーは、宛先 IP 50.0.0.1、ポート 5000 で応答パケットを送信します。

NAT はパケットの宛先 IP を 192.168.1.1 に、宛先ポートを 1000 に変更します。

  1. さて、サーバーは同じ IP 50.0.0.1 とポート 5000 に多数の UDP/IP パケットを送信し、すべてのパケットがクライアント 192.168.1.1 ポート 1000 に転送されるでしょうか?

  2. もしそうなら、NAT のパブリック側のこのポート 5000 は、どのくらいの期間、上記のクライアントにパケットを転送しますか?

  3. パケットのみ送信元IP 50.0.0.2、送信元ポート2000クライアントに転送されますか?

答え1

回答:

  1. はい。
  2. これはデバイスのNATの実装に依存します。Linuxでは、次のように調整できます。/proc/sys/net/ipv4/netfilter/ip_conntrack_udp_* を編集する
  3. はい - ただし、NAT によって認識される「関連」ポートがある場合は、関連するものを特定するために追加の NAT モジュールが使用されます (少なくとも Linux では)

関連情報