Conntrack TCP 상태 시간 초과가 제대로 작동하지 않습니다.

Conntrack TCP 상태 시간 초과가 제대로 작동하지 않습니다.

개인 IP 주소를 사용하고 라우터(게이트웨이)에서 최소 2시간 동안 SNAT 항목을 활성 상태로 유지하려고 합니다(내 네트워크의 일부 Windows 응용 프로그램은 2시간으로 설정된 TCP keepalive를 사용합니다). 게이트웨이는 Linux 머신이므로 7400초로 nf_conntrack_tcp_timeout_established설정 했습니다.nf_conntrack_generic_timeout

echo 7400 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
echo 7400 > /proc/sys/net/netfilter/nf_conntrack_generic_timeout

이제 TCP 연결이 설정된 직후 새 값을 볼 수 있습니다.

# cat /proc/net/ip_conntrack
tcp      6 7399 ESTABLISHED src=192.168.0.192 dst=108.168.176.194
sport=51826 dport=5222 src=108.168.176.194 dst=95.63.14.117 sport=5222 
dport=51826 [ASSURED] use=1

그러나 몇 초 후에 값을 다시 읽었더니 이제 값이 60초로 돌아왔습니다.

tcp      6 39 ESTABLISHED src=192.168.0.192 dst=108.168.176.194 
sport=51826 dport=5222 src=108.168.176.194 dst=95.63.14.117 sport=5222 
dport=51826 [ASSURED] use=1

답변1

근본 원인은 커널의 conntrack 코드가 수정되었기 때문입니다. 공급자가 수정한 임베디드 Linux 배포판을 사용하고 있으므로 SNAT 항목 시간 초과를 새로 고치는 기능은 공급자가 제공하는 새로운 "기능" 중 하나를 제공하는 특수 기능을 가리킵니다. 나는 그것을 고쳤고 이제 예상대로 작동합니다.

관련 정보