web-dev-qa-db-ja.com

conntrack deleteは、大きなファイルのコピーの実行を停止しません

NATポートフォワーディングが設定されたルーターがあります。 natを介して大きなファイルのhttpコピーを起動しました。 httpサーバーは、ダウンロードする大きなファイルを含むLANPCでホストされます。 WAN PCからファイルのダウンロードを開始しました。ファイルコピーの実行中にNATルールを無効にしました。ファイルのコピーは残ります。NAT転送を無効にすると、ファイルのコピーを停止します。 conntrack-toolを使用したルール。

enter image description here

私のconntrackリストには次のconntrackセッションが含まれています

# conntrack -L | grep "33.13"
tcp      6 431988 ESTABLISHED src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 [ASSURED] use=1

次のコマンドで削除しようとしました:

# conntrack -D --orig-src 192.168.33.13
tcp      6 431982 ESTABLISHED src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 [ASSURED] use=1
conntrack v1.4.3 (conntrack-tools): 1 flow entries have been deleted.

conntrackセッションが削除されました。次のコマンドで確認できます。しかし、別のconntrackセッションがsrc ip addressで作成されました。これは、削除されたconntrackのLANアドレスです。

# conntrack -L | grep "33.13"
tcp      6 431993 ESTABLISHED src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 [ASSURED] use=1
conntrack v1.4.3 (conntrack-tools): 57 flow entries have been shown.

新しいconntrackを削除しようとしましたが、残り続けます

# conntrack -D --orig-src 192.168.3.17

# conntrack -L | grep "33.13"
conntrack v1.4.3 (conntrack-tools): 11 flow entries have been shown.
tcp      6 431981 ESTABLISHED src=192.168.3.17 dst=192.168.33.13 sport=80 dport=52722 src=192.168.33.13 dst=192.168.33.215 sport=52722 dport=80 [ASSURED] use=1

私が欠けているものは何ですか?

1
Mohamed KALLEL

https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

nf_conntrack_tcp_loose - BOOLEAN
0 - disabled not 0 - enabled (default)
If it is set to zero, we disable picking up already established connections.

したがって、すでに確立されている接続はオンザフライで検出され(SYN/SYN + ACK/ACKは関与しません)、新しいconntrackエントリとして追加されます。これは新しいconntrackエントリであるため、NATテーブルが再度トラバースされ、DNATルールが再度適用されます。 1つの方法がすぐに機能しない場合でも(DNATルールに加えてSNAT/MASQUERADEが定義されていない場合、httpサーバーの送信パケットはWAN as192.168.3.17としてしばらくの間表示される可能性があります。 192.168.33.13によって拒否/無視されます)、他の方法で再試行するとすぐに(192.168.33.13からのACK再試行...)、これは一致します。

これを入力します:

echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose

そして、conntrack -D ..を使用してconntrackエントリを削除してみてください。

これにより、新しいconntrackエントリが作成されなくなり、ダウンロードが削減されることが期待されます。

2
A.B