![Conntrack TCP 상태 시간 초과가 제대로 작동하지 않습니다.](https://linux55.com/image/53816/Conntrack%20TCP%20%EC%83%81%ED%83%9C%20%EC%8B%9C%EA%B0%84%20%EC%B4%88%EA%B3%BC%EA%B0%80%20%EC%A0%9C%EB%8C%80%EB%A1%9C%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
개인 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 항목 시간 초과를 새로 고치는 기능은 공급자가 제공하는 새로운 "기능" 중 하나를 제공하는 특수 기능을 가리킵니다. 나는 그것을 고쳤고 이제 예상대로 작동합니다.