conntrack은 연결을 얼마나 오래 기억합니까?

conntrack은 연결을 얼마나 오래 기억합니까?

따라서협회conntrack은 연결이 종료된 후 X초를 기억하는 것 같습니다.

X의 길이와 구성 가능 여부를 아는 사람이 있습니까?

답변1

conntrack이 종료 후 TCP 연결을 기억해야 하는 이유는 TCP가 종료 후 연결을 기억해야 하는 것과 같은 이유입니다.RFC 793TCP의 경우, 특히 TIME-WAIT에 대한 부분에서는 기본값(명확하게 작성되지는 않음)이 2mn이어야 합니다. 물론 이는 UDP, ICMP 또는 기타 프로토콜에는 적용되지 않지만 지연은 세션을 기억하는 것입니다. 이는 상태 저장 방화벽 또는 NAT에 필요합니다.

즉, netfilter의 conntrack이 로드되면 대부분의 설정을 여기에서 사용할 수 있습니다.

/proc/sys/net/netfilter/

(아주 오래된 커널에 있을 수도 있습니다)

예를 들어 다음과 같이 나타날 수 있습니다.

# sysctl net.netfilter | grep timeout
net.netfilter.nf_conntrack_dccp_timeout_closereq = 64

[...]

net.netfilter.nf_conntrack_dccp_timeout_timewait = 240
net.netfilter.nf_conntrack_frag6_timeout = 60
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_gre_timeout = 30
net.netfilter.nf_conntrack_gre_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_icmpv6_timeout = 30

[...]

net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 120

동일한 명령(또는 echo nnn > /proc/sys/...)을 사용하여 설정을 변경할 수 있습니다. 예를 들어 TCP CLOSE 상태 제한 시간을 60과 같이 더 높은 지연으로 늘립니다.

sysctl -w net.netfilter.nf_conntrack_tcp_timeout_close=60

일부 기능 및 기본 설정은 커널 옵션 및 버전에 따라 달라질 수 있습니다. 예를 들어, net.netfilter.nf_conntrack_udp_timeout_stream"설정된" UDP 트래픽(두 개 이상의 패킷과 해당 응답이 동일한 스트림에 있을 때 간주됨)의 경우 최근 커널에서는 180에서 120으로 줄었습니다(>= 5.0?).

기본 전역 값을 사용하는 대신 특정 유형의 연결에 적용되도록 전용 시간 초과 정책을 구성하는 다른 방법이 있습니다.nfct~을 따라iptables또는nftables.

관련 정보