conntrack delete não para de executar cópia de arquivo grande

conntrack delete não para de executar cópia de arquivo grande

Eu tenho um roteador com encaminhamento de porta nat configurado. Lancei uma cópia http do arquivo grande por meio do nat. O servidor http está hospedado no PC LAN que contém o arquivo grande para download. Iniciei o download do arquivo do WAN PC. Desativei a regra nat quando a cópia do arquivo estava em execução. a cópia do arquivo permanece restante. Quero interromper a cópia do arquivo ao desabilitar a regra de encaminhamento nat com a ferramenta conntrack.

insira a descrição da imagem aqui

minha lista conntrack contém a seguinte sessão 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

Tentei removê-lo com o seguinte comando:

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

a sessão conntrack foi removida, posso ver no comando a seguir. Mas outra sessão conntrack foi criada com o endereço IP src é o endereço lan do conntrack removido

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

Tentei remover o novo conntrack mas ele continua permanecendo

# 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

O que estou perdendo?

Responder1

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.

Portanto, a conexão já estabelecida é detectada instantaneamente (sem SYN/SYN+ACK/ACK envolvido) e adicionada novamente como uma nova entrada conntrack. Como é uma nova entrada conntrack, a tabela nat será percorrida novamente e a regra DNAT aplicada novamente. Mesmo que uma forma não funcione imediatamente (se não houver SNAT/MASQUERADE definido além da regra DNAT, os pacotes de saída do servidor http poderão aparecer na WAN como 192.168.3.17 por um curto período e serem rejeitados/ignorados por 192.168.33.13) , assim que o outro lado tentar novamente (repetição de ACK de 192.168.33.13...), isso corresponderá.

Digite isto:

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

E tente novamente excluir a entrada conntrack com conntrack -D...

Esperamos que isso evite que uma nova entrada conntrack seja criada e interrompa o download.

informação relacionada