2008-10-19 2 views
0

iptables를 사용하는 2.6.16 커널을 사용하는 데비안을 실행 중입니다. 시스템은 가벼운로드를받는 사용자 정의 HTTP 프록시를 실행 중입니다 (다른 사이트의 동일한로드로도 잘 작동 함). 시스템은 가상 IP가있는로드 밸런서가 선행 된 4 개의 서버로 이루어져 있으며, ISA 2004 시스템 4 개가 배열되어 있으므로 기본 토폴로지는 다음과 같습니다.Linux에서 때때로 SYN 패킷이 끊깁니다.

클라이언트 -> ISA [1-4] -> 로드 밸런서 -> 우리 프록시 [1-4] -> 인터넷

때때로 ISA는 SYN-ACK가 전송되지 않는 SYN 패킷을 우리에게 전송합니다. 3 초 후 다시 시도하고 다시 6 초 후 세 번째로 프록시를보고하고 직접 연결로 전환합니다. 이 3 개의 SYN 사이와 그 전후에 동일한 ISA의 다른 SYN이 와서 성공적으로 응답하는이 시간 동안.

매우 비슷한 문제

은 (그러나, 솔루션) 다른 사람에 의해보고되고있다 :

모든 CentOS는라는 리눅스의 맛에서 오는. 그것은 iptables가 기본적으로 활성화되어 있다는 점에서 특이합니다.

http://www.linuxhelpforum.com/showthread.php?t=931912&mode=linear http://www.centos.org/modules/newbb/viewtopic.php?topic_id=16147

거의 동일하지만 서로 다른 비트 : http://www.linuxquestions.org/questions/linux-networking-3/tcp-handshake-fails-synack-ignored-by-system.-637171/

또한 관련이있을 것으로 보인다 : 나는 iptables에 의심 http://groups.google.com/group/comp.os.linux.networking/browse_thread/thread/b1c000e2d65e0034

가 범인으로하지만, 추가 의견 환영합니다.

답변

2

게시 한 첫 번째 링크에서 언급 한 것처럼 수신 대기 호출의 두 번째 매개 변수를 확인하십시오. 보류 중 (아직 허용되지 않음) 연결의 최대 수입니다. listen (2) 매뉴얼 페이지에 따르면, 프로토콜이 재전송을 지원한다면 (TCP는), 큐가 꽉 찼을 때 연결 요청이 삭제 될 것입니다 (큐에 충분한 공간이 있으면 다시 연결을 생성 할 것으로 예상 함)).

+0

이것은 동일한 포트에 대한 다른 요청이 성공하지 못했음을 설명하지 못합니다. – user29402

+0

다른 요청은 행운의 여지가 있고 대기열이 조금 비워진 후 (즉, 서버가 보류중인 연결 중 일부를 수락 한 후) 요청됩니다. – CesarB

+0

그러면 다음 SYN이 들어 왔을 것입니다. 그렇지 않으면 대답이없는 채로 남겨두면 3 개 모두가 답을 얻지 못합니다. 운에 의해서만 설명하기가 어렵습니다. – user29402

0

사실, iptables는 culrpit으로 밝혀졌으며, 규칙은 INVALID 패킷을 삭제했습니다. iptables로 인해 SYN이 무의미하다고 생각하는 이유는 무엇입니까? (TIME_WAIT는 없습니다. 드롭하지 않기 전에 최소한 30 분 동안 같은 소스 포트로 트래픽이 없었기 때문입니다.)

관련 문제