ip_conntrack: table full, dropping packet.

리눅스/OS 일반|2015. 1. 16. 16:45
반응형

-------------------------- messages log --------------------------

Jun  6 12:54:37 ns1 kernel: ip_conntrack: table full, dropping packet.
Jun  6 12:54:43 ns1 kernel: printk: 95 messages suppressed.
Jun  6 12:54:43 ns1 kernel: ip_conntrack: table full, dropping packet.
Jun  6 12:54:47 ns1 kernel: printk: 133 messages suppressed.
Jun  6 12:54:47 ns1 kernel: ip_conntrack: table full, dropping packet.
Jun  6 12:54:54 ns1 kernel: printk: 140 messages suppressed.
Jun  6 12:54:54 ns1 kernel: ip_conntrack: table full, dropping packet.
Jun  6 12:55:07 ns1 kernel: printk: 103 messages suppressed.
Jun  6 12:55:07 ns1 kernel: ip_conntrack: table full, dropping packet.
-----------------------------------------------------------------

ip_conntrack: table full, dropping packet. 는 ip_conntaack 모튤의 테이블이 꽉 차버려서 나머지 패킷을 drop 시킬때에 발생.

 
ip_conntrack 에서 테이블을 구성하는 두가지의 값
  - CONNTRACK_MAX
  - HASHSIZE
 
CONNTRACK_MAX는 커널 메모리 상에서 netfilter가 동시에 처리하는 세션의 수.
HASHSIZE는 CONTRACK 엔트리의 리스트를 저장할 해쉬 테이블의 사이즈.
-----------------------------------------------------------------

messages에 위와 같은 로그가 있다.

watch -d cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count 로 확인 했을때

26129

 

최대 값은 아래와 같았다.

cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
65536

 

서비스 지연시에는 65536 세션을 초과했을듯 싶다.

그렇다면 ip_conntrack_max 값을 증가시켜 주면되는데.

echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max   이런 방식으로 변경가능.

echo 0 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max   요건 무제한..그러나 자칫 하다가는 서버가 죽을수도 있겠죠? ^^

반대로 너무 적게 잡아 놓으니 원격 접속은 물론 웹페이지등 모든 웹서비스가 안되더군요. ^^

 

 

[출처] hanyjuny님의 블로그 | 쭈우닝 (http://blog.naver.com/hanyjuny?Redirect=Log&logNo=40109148791)

반응형

댓글()