TCP Keepalive 및 Idle Timeout PCAP 분석: 방화벽, NAT, 로드 밸런서 및 장기 연결

TCP 킵얼라이브 패킷, 유휴 시간 초과, NAT 세션 만료, 방화벽 연결 끊김, 로드 밸런서 재설정, 오래 지속되는 API 연결 및 패킷 캡처 증거를 분석하는 방법입니다.

TCP 연결 유지, 유휴 시간 초과, 방화벽 시간 초과, NAT 시간 초과, 로드 밸런서 재설정, 오래 지속되는 연결, PCAP 분석

몇 분 또는 몇 시간 동안 활동이 없으면 수명이 긴 TCP 연결이 실패할 수 있습니다. SSH 세션이 정지됩니다. 데이터베이스 연결이 재설정되었습니다. WebSocket 연결이 끊어집니다. RTSP TCP 인터리브 스트림은 유휴 기간 후에 중지됩니다. API 클라이언트는 깨진 파이프를 봅니다. 사용자는 "TCP keepalive pcap", "방화벽 유휴 시간 초과", "NAT 세션 시간 초과", "로드 밸런서 유휴 연결 재설정" 및 "장기 TCP 연결 끊김"을 검색합니다. 이는 실제 시간 초과 결정 이후 오랜 시간이 지나 애플리케이션 오류가 나타나는 경우가 많기 때문입니다.

유휴 시간 제한 조사는 타이밍에 따라 달라지므로 PCAP 수술은 유용합니다. 마지막 실제 데이터 패킷, TCP 연결 유지 프로브, ACK, FIN/RST 패킷 및 정확한 유휴 기간이 필요합니다.

TCP 킵얼라이브란?

TCP keepalive는 피어에 계속 연결할 수 있는지 확인하기 위해 유휴 연결에서 작은 프로브를 보내는 선택적 메커니즘입니다. 또한 프로브가 미들박스 시간 초과보다 더 자주 발생하는 경우 NAT 및 방화벽 상태를 활성 상태로 유지할 수 있습니다.

그러나 기본값은 최신 인프라에 비해 너무 느린 경우가 많습니다. 방화벽은 60초 후에 유휴 상태가 만료될 수 있지만 OS TCP 연결 유지는 훨씬 나중에 시작될 수 있습니다.

유휴 시간 초과 증상

일반적인 증상은 다음과 같습니다.

  • 연결이 작동하다가 일정 유휴 시간이 지나면 연결이 실패합니다.
  • 유휴 후 첫 번째 요청이 재설정됩니다.
  • WebSocket은 정확히 60초 후에 연결이 끊어집니다.
  • 데이터베이스 풀에 오래된 연결이 있습니다.
  • NAT를 통해 SSH가 정지됩니다.
  • 로드 밸런서는 시간 초과 후 RST를 보냅니다.
  • 클라이언트는 유휴 상태 후에 데이터를 보내고 응답을 받지 못합니다.

정확한 타이밍이 단서입니다.

FIN 대 RST 대 자동 삭제

미들박스와 엔드포인트는 다양한 방법으로 유휴 연결을 닫을 수 있습니다.

  • FIN: 우아하게 닫힙니다.
  • RST: 낙태 종료.
  • 자동 삭제: 패킷 없음; 이후의 트래픽은 무시됩니다.

방화벽이 자동으로 상태를 삭제하는 경우 두 끝점 모두 연결이 여전히 존재한다고 생각할 수 있습니다. 다음 데이터 패킷은 재전송 또는 재설정 동작을 트리거합니다.

Keepalive 증거

추적에서 유휴 기간 동안 작은 패킷을 찾습니다. TCP keepalive 프로브는 다음 예상 바이트 바로 앞에 시퀀스 번호를 사용하는 경우가 많습니다. 분석기는 이를 연결 유지로 표시할 수 있습니다.

질문:

  • Keepalive가 전송되었나요?
  • 얼마나 자주?
  • 피어가 ACK를 보냈나요?
  • 연결 유지 후 미들박스가 재설정되었나요?
  • 프로브가 너무 늦게 시작되었나요?
  • Keepalive 간격 전에 연결이 끊어졌습니까?

로드 밸런서 및 프록시

로드 밸런서는 유휴 시간 제한을 적용하는 경우가 많습니다. 클라이언트가 연결이 30분 동안 지속될 것으로 예상하지만 로드 밸런서가 60초 후에 유휴 연결을 닫는 경우 애플리케이션은 하트비트를 보내거나 다시 연결해야 합니다.

패킷 증거는 누가 마감 또는 재설정을 보냈는지, 마지막 데이터 이후 얼마나 오랜 시간이 지났는지 보여줄 수 있습니다.

Checklist

다음 워크플로를 사용하세요.

  1. 수명이 긴 TCP 연결을 식별합니다.
  2. 마지막 애플리케이션 데이터 패킷을 표시합니다.
  3. 실패 전 유휴 시간을 측정합니다.
  4. TCP keepalive 프로브를 찾으십시오.
  5. 프로브가 ACK되었는지 확인합니다.
  6. FIN 또는 RST 발신자를 식별합니다.
  7. 닫기가 나타나지 않으면 자동 삭제 및 재전송을 찾으십시오.
  8. 시간 초과를 방화벽/로드 밸런서 설정과 비교하십시오.
  9. 다듬을 때 타이밍을 유지하십시오.
  10. 애플리케이션 하트비트와 연관시킵니다.

최종 진단

TCP 유휴 오류는 타이밍 문제입니다. 패킷 증거는 엔드포인트 닫기, 방화벽/NAT 상태 만료, 로드 밸런서 시간 초과, 연결 유지 누락, 너무 느린 연결 유지 및 자동 삭제를 구별할 수 있습니다.

PCAP 수술은 유휴 간격과 닫기/재설정 증거를 보존하는 데 도움이 되므로 오랫동안 지속되는 연결 실패를 정확하게 설명할 수 있습니다.