conntrack 삭제가 큰 파일의 실행 복사본을 중지하지 않습니다.

conntrack 삭제가 큰 파일의 실행 복사본을 중지하지 않습니다.

NAT 포트 전달이 구성된 라우터가 있습니다. 나는 nat를 통해 큰 파일의 http 사본을 시작했습니다. http 서버는 다운로드할 큰 파일이 포함된 LAN PC에서 호스팅됩니다. WAN PC에서 파일 다운로드를 시작했습니다. 파일 복사가 실행될 때 nat 규칙을 비활성화했습니다. 파일 사본이 계속 남아 있습니다. conntrack-tool을 사용하여 nat 전달 규칙을 비활성화하면 파일 복사를 중지하고 싶습니다.

여기에 이미지 설명을 입력하세요

내 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 세션이 제거되었습니다. 다음 명령에서 볼 수 있습니다. 그러나 src IP 주소로 생성된 다른 conntrack 세션은 제거된 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

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 규칙이 다시 적용됩니다. 단방향이 즉시 작동하지 않더라도(DNAT 규칙 외에 SNAT/MASQUERADE가 정의되지 않은 경우 http 서버의 나가는 패킷은 잠시 동안 WAN에 192.168.3.17로 표시되고 192.168.33.13에 의해 거부/무시될 수 있습니다) , 다른 방법으로 다시 시도하면(192.168.33.13에서 ACK 재시도...) 이것이 일치합니다.

다음을 입력하세요:

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

그리고 다음을 사용하여 conntrack 항목을 다시 삭제해 보십시오 conntrack -D.

이렇게 하면 새로운 conntrack 항목이 생성되지 않고 다운로드가 중단되는 것을 방지할 수 있습니다.

관련 정보