Назад | Перейти на главную страницу

conntrack delete не останавливает выполнение копии большого файла

У меня есть роутер с настроенной переадресацией портов нат. Я запустил http-копию большого файла через нат. HTTP-сервер размещен на ПК в локальной сети, который содержит большой файл для загрузки. Я запустил загрузку файла с WAN ПК. Я отключил правило nat при копировании файлов. копия файла сохраняется. Я хочу остановить копирование файла, когда отключу правило nat forward с помощью conntrack-tool.

мой список 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-адресом - это LAN-адрес удаленного conntrack

# 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 -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

Что мне не хватает?

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. Даже если один способ не работает сразу (если не определено SNAT / MASQUERADE в дополнение к правилу DNAT, исходящие пакеты http-сервера могут на короткое время отображаться в WAN как 192.168.3.17 и отклоняться / игнорироваться 192.168.33.13) , как только другая попытка повторяется (повтор ACK с 192.168.33.13 ...), это будет совпадать.

Введите это:

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

И попробуйте снова удалить запись conntrack с помощью conntrack -D ...

Мы надеемся, что это предотвратит создание новой записи conntrack и остановит загрузку.

Этот ответ скопирован из: https://superuser.com/questions/1258689/conntrack-delete-does-not-stop-runnig-copy-of-big-file