ip_conntrack_max를 안전하게 늘리시겠습니까?


9

로그에서 다음을 자주 볼 수 있습니다.

커널 : ip_conntrack : 테이블이 가득 차서 패킷을 삭제하는 중입니다.

현재 ip_conntrack_max가 65536 (기본값, RHEL5)으로 설정되어 있습니다.

메모리 사용량을 염두에두고이 값을 얼마나 안전하게 증가시킬 수 있습니까? 이 상자에 4GB 램이 있습니다. 이 컴퓨터가 제공하는 기능 중 하나는 정적 콘텐츠 서버로서, 연결 수가 많을 수 있으며 캐싱에 사용되는 OS 메모리를 최대한 많이 유지하고 싶습니다.

또한 다음 두 가지의 차이점은 무엇입니까? / proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max

어느 것을 편집해야합니까?

감사!

답변:


9

먼저 스스로에게 질문하십시오 : 설정에 연결 추적이 필요합니까? 서버 일 뿐이고 방화벽 / NAT가 다른 곳에서 수행되는 경우 conntrack을 함께 비활성화 할 수 있습니다.

둘째, conntrack 항목이 의미가 있는지 확인하십시오. 일부 네트워크 또는 방화벽 구성 오류로 인해 conntrack 테이블이 쓰레기로 채워지는 경우가 있습니다. 일반적으로 이들은 완전히 설정되지 않은 연결 항목입니다. 예를 들어 서버가 들어오는 연결 SYN 패킷을받을 때 발생할 수 있지만 서버 응답은 항상 네트워크 어딘가에서 손실됩니다.

내가 'ip_conntrack : table full'메시지를 가지고 있고 라우터가 상당히 큰 네트워크 (수천 개의 엔드 포인트)를 위해 NAT를 수행하는 ip_conntrack_max 증가 (구성 수정 대신)가 필요한 유일한 머신.

conntrack이 필요하고 그것이 실제보다 더 커야한다는 것을 알고 있다면 더 이상 'table full'메시지가 표시되지 않을 때까지 숫자를 늘리십시오. 그리고 메모리 사용량을보십시오.

conntrack 객체의 메모리 할당에 대한 일부 통계는 / proc / slabinfo 파일에서 찾을 수 있습니다.


6

"netfilter"가있는 경로는 동일한 설정을 참조하는 오래된 방법입니다. 두 파일 중 하나를 편집 할 수 있습니다.

# cat / proc / sys / net / ipv4 / ip_conntrack_max  
655360
# cat / proc / sys / net / ipv4 / netfilter / ip_conntrack_max
655360
# echo 655361> / proc / sys / net / ipv4 / ip_conntrack_max
# cat / proc / sys / net / ipv4 / netfilter / ip_conntrack_max
655361

우분투 10.04 / 2.6.32-45-server에는 ipv4 / netfilter / ip_conntrack_max 만 존재합니다
okwap

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.