TCP RST 및 연결 재설정 PCAP 분석: 연결을 종료한 사람과 이유
TCP RST, 피어별 연결 재설정, SYN 후 재설정, TLS 중 재설정, 방화벽 재설정, 애플리케이션 종료 및 패킷 캡처 증거를 분석하는 방법입니다.
'피어에 의한 연결 재설정'은 HTTP 클라이언트, 데이터베이스, TLS 도구, 프록시 및 사용자 정의 TCP 애플리케이션에서 흔히 발생하는 오류입니다. 사용자는 "TCP RST pcap 분석", "피어 Wireshark에 의한 연결 재설정", "SYN 후 RST", "TLS 연결 재설정" 및 "방화벽 TCP 재설정"을 검색합니다. 왜냐하면 연결을 종료한 사람과 재설정이 애플리케이션, 운영 체제, 방화벽, 로드 밸런서 또는 서버에서 발생했는지 알아야 하기 때문입니다.
TCP RST는 명시적입니다. "이 연결을 중단합니다"라고 뜹니다. 어려운 부분은 귀인입니다.
재설정 조사에는 재설정 전 방향, 타임스탬프, 시퀀스 번호 및 충분한 패킷이 포함된 깨끗하고 집중된 추적이 필요하기 때문에 PCAP 수술이 유용합니다.
일반적인 재설정 패턴
RST가 발생할 수 있습니다.
- SYN 직후.
- SYN-ACK 이후.
- ClientHello 이후.
- HTTP 요청 후.
- 유휴 시간 초과 중.
- 잘못된 프로토콜 데이터 이후.
- 애플리케이션이 읽지 않은 데이터가 있는 소켓을 닫을 때.
- 방화벽이 정책을 거부하는 경우.
- 로드 밸런서에 정상적인 백엔드가 없는 경우.
- 서버 프로세스가 충돌하거나 상태를 거부하는 경우.
타이밍은 어디를 봐야할지 알려줍니다.
RST를 보낸 사람
먼저 재설정 패킷의 소스 IP, 소스 포트, 대상 IP 및 대상 포트를 식별합니다. 서버 IP가 RST를 보내면 서버 측 또는 해당 측을 가장하는 무언가가 RST를 종료했습니다. 클라이언트 IP가 RST를 보내면 클라이언트 측에서 RST를 종료했습니다. TTL, MAC 또는 경로 동작이 미들박스를 암시하는 경우 재설정이 주입될 수 있습니다.
지원서 문구에만 의존하지 마십시오. RST를 수신한 측에서 "Reset by Peer"가 보고될 수 있습니다.
SYN 후 재설정
SYN 이후의 RST는 종종 포트가 닫혔거나 정책이 연결을 거부함을 의미합니다. SYN이 RST를 즉시 수신하는 경우 애플리케이션은 TLS 또는 HTTP에 도달하지 못한 것입니다.
다음을 찾으세요:
- SYN -> RST, ACK
- 서버 없음Hello
- 애플리케이션 데이터 없음
- 시도 전반에 걸쳐 일관된 동작
이는 인증서 실패나 HTTP 오류가 아닙니다. 이는 TCP 연결 가능성/서비스 상태 오류입니다.
TLS 중 재설정
ClientHello 이후의 RST는 잘못된 포트, 지원되지 않는 TLS, SNI 불일치, 미들박스 정책 또는 서버 거부로 인해 발생할 수 있습니다. 호스트 이름, ALPN, TLS 버전 및 타이밍을 확인할 수 있도록 DNS 및 ClientHello 메타데이터를 보존하세요.
TLS 경고 후에 재설정이 도착하면 경고는 재설정보다 더 많은 정보를 제공합니다. 경고가 없으면 재설정은 낮은 수준 또는 정책 기반일 수 있습니다.
요청 후 재설정
HTTP 요청, 데이터베이스 쿼리 또는 프로토콜 명령 이후의 RST는 종종 애플리케이션이 요청을 거부하거나 충돌할 만큼 충분히 이해했음을 의미합니다. 업스트림을 사용할 수 없기 때문에 프록시가 닫혔음을 의미할 수도 있습니다.
연관:
- 전송된 마지막 애플리케이션 바이트입니다.
- 서버 응답 또는 응답 부족.
- 재설정 전 유휴 시간입니다.
- 백엔드/로드 밸런서 로그.
- 특정 요청 크기에 대해서만 재설정이 발생하는지 여부입니다.
Checklist
다음 워크플로를 사용하세요.
- 대화에서 첫 번째 RST를 식별하십시오.
- 보낸 사람이 누구인지 확인하세요.
- 그 직전에 무슨 일이 일어났는지 살펴보세요.
- TCP 핸드셰이크가 완료되었는지 확인하세요.
- TLS가 시작되었는지 또는 완료되었는지 확인하세요.
- 애플리케이션 데이터가 전송되었는지 확인하세요.
- 유휴 시간 초과 타이밍을 확인하세요.
- 미들박스 주입에 대한 TTL/MAC/경로 단서를 비교합니다.
- 재설정 시 DNS, TCP, TLS 및 애플리케이션 바이트를 보존합니다.
- 서버/로드 밸런서 로그를 사용하여 속성을 확인하세요.
최종 진단
TCP RST는 연결 중단이지만 그 이유는 타이밍과 보낸 사람에 따라 다릅니다. pcap은 닫힌 포트, 방화벽 거부, TLS 거부, 애플리케이션 닫기, 유휴 시간 초과, 로드 밸런서 오류 및 미들박스 재설정을 구분할 수 있습니다.
PCAP 수술은 가장 중요한 질문에 답하는 패킷 순서를 보존하는 데 도움이 됩니다. 누가 연결을 재설정했으며 연결 직전에 무슨 일이 일어났습니까?