
デフォルトでは、SNAT ターゲットは元のパケットの送信元ポートを保持します。そのポートがすでに使用されている場合は、ランダムに 1 つを選択します。このポートの選択に影響を与えたり、選択される範囲を測定したりする方法はありますか? 私のテストでは、net.ipv4.ip_local_port_range
これに影響を与えていないようです。別の設定があるかどうか疑問に思っています。
答え1
デフォルトでは、SNAT ターゲットは元のパケットの送信元ポートを保持します。そのポートがすでに使用されている場合は、ランダムに 1 つを選択します。
デフォルトではランダムに選択されるわけではなく、代わりに次のアルゴリズムがデフォルトになります
(太字部分は元のポートを保持するというあなたの主張を裏付けています)
ポート範囲が指定されていない場合、512 未満の送信元ポートは 512 未満の他のポートにマッピングされます。512 から 1023 までのポートは 1024 未満のポートにマッピングされ、その他のポートは 1024 以上にマッピングされます。可能な場合は、ポートの変更は行われません。
このポートの選択に影響を与えたり、選択される範囲を測定したりする方法はありますか?
masquerade
はい、ルール内でまたはsnat
ステートメントのいずれかを使用してNAT
、次のようにポート範囲を指定することにより可能です。--to-ports port[-port]
--to-ports ポート[-port]
This specifies a range of source ports to use, overriding
the default SNAT source port selection heuristics (see
above). This is only valid if the rule also specifies one
of the following protocols: tcp, udp, dccp or sctp.
私のテストでは、net.ipv4.ip_local_port_range はこれに影響を与えていないようでした。
は、リッスンするために使用可能でなければならないリスナー ポートに適用net.ipv4.ip_local_port_range
されますが、 とは関係ありません。つまり、これらのポートは実際にSNAT
は によって使用されることはありません。NAT
https://www.ibm.com/docs/en/filenet-p8-platform/5.5.x?topic=listener-linux