La eliminación de conntrack no detiene la ejecución de la copia del archivo grande.

La eliminación de conntrack no detiene la ejecución de la copia del archivo grande.

Tengo un enrutador con reenvío de puerto nat configurado. Lancé una copia http de un archivo grande a través de nat. El servidor http está alojado en la PC de la LAN que contiene el archivo grande para descargar. Inicié la descarga del archivo desde WAN PC. Deshabilité la regla nat cuando se ejecuta la copia de archivos. la copia del archivo sigue restante. Quiero detener la copia del archivo cuando desactivo la regla de reenvío nat con conntrack-tool.

ingrese la descripción de la imagen aquí

mi lista de conntrack contiene la siguiente sesión de 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

Intenté eliminarlo con el siguiente 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.

la sesión de conntrack se elimina, puedo verlo en el siguiente comando. Pero se creó otra sesión de conntrack con la dirección IP src que es la dirección LAN del conntrack eliminado.

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

Intenté eliminar el nuevo conntrack pero sigue ahí.

# 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

¿Qué me falta?

Respuesta1

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.

Por lo tanto, la conexión ya establecida se detecta sobre la marcha (sin SYN/SYN+ACK/ACK involucrado) y se agrega nuevamente como una nueva entrada de conntrack. Dado que es una nueva entrada de conntrack, la tabla nat se recorrerá nuevamente y se aplicará nuevamente la regla DNAT. Incluso si una forma no funciona inmediatamente (si no hay ningún SNAT/MASQUERADE definido además de la regla DNAT, los paquetes salientes del servidor http podrían aparecer en WAN como 192.168.3.17 por un momento y ser rechazados/ignorados por 192.168.33.13) , tan pronto como el otro método lo intente nuevamente (reintento ACK desde 192.168.33.13...), esto coincidirá.

Escribe esto:

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

E intente nuevamente eliminar la entrada de conntrack con conntrack -D...

Con suerte, esto debería evitar que se cree una nueva entrada de conntrack y cortar la descarga.

información relacionada