Network Troubleshooting

증상 문구를 계층별 가설로 좁히는 트러블슈팅 루프

네트워크 장애는 사용자가 말한 증상을 물리, 링크, 네트워크, 전송, 애플리케이션 계층의 검증 가능한 가설로 바꿔야 빨리 좁혀진다.

01

증상 고정

언제, 어디서, 어떤 대상에, 어떤 오류 문구가 나오는지 재현 조건을 기록한다.

reproduce
02

계층 가설

링크 단절, 라우팅 실패, DNS 오류, TCP 거부, HTTP 상태 오류를 분리한다.

layer split
03

도구 매칭

ping과 traceroute는 도달성, dig는 이름 해석, curl은 HTTP 응답, tcpdump는 패킷 증거를 준다.

근거
04

범위 축소

클라이언트, 네트워크, 서버, 외부 서비스 중 어느 경계에서 깨지는지 좁힌다.

isolate
timeout
패킷이 사라지거나 응답 경로가 막힌 후보를 먼저 본다. 라우팅, 방화벽, 서버 처리 지연을 순서대로 분리한다.
loss or delay
refused
대상 호스트는 도달했지만 포트에 listener가 없거나 차단됐다. 서비스 상태, listen address, security group을 본다.
TCP RST
slow
손실, 재전송, DNS 지연, 서버 대기 시간을 같은 타임라인에 놓는다. 평균보다 p95와 특정 구간 반복성을 확인한다.
latency budget

장애 분석 기록

재현 명령 문제를 재현한 명령과 시간, 출발지, 대상 주소가 남아 있다.
반증 아닌 원인을 제거한 증거도 함께 기록한다.
복구 확인 조치 뒤 같은 경로로 정상 응답을 검증한다.

진단 순서

symptom -> layer hypothesis -> command evidence -> 경계 분리 -> fix -> verify