Удаление conntrack не останавливает запуск большого файла
У меня настроен роутер с переадресацией портов nat. Я запустил http копию большого файла через nat. Сервер http размещается на ПК с локальной сетью, который содержит большой файл для загрузки. Я запустил загрузку файлов с WAN PC. Я отключил правило 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 был создан с IP-адресом src - это адрес локальной сети удаленного 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, но он остался
# 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 ответ
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 могут ненадолго появиться в глобальной сети как 192.168.3.17 и быть отклонены / проигнорированы 192.168.33.13), как только другой способ попытается снова (ACK retry от 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
