어느 계층의 무엇을 보는가
네트워크가 말썽을 부릴 때, 도구를 아는 사람과 모르는 사람의 차이는 크지 않습니다. 정작 중요한 것은 지금 손에 든 도구가 OSI 7계층 중 어디를 들여다보고 있는지 아는가, 입니다. 도구를 잘못 고르면 답이 없는 곳을 아무리 파도 원인을 찾지 못합니다.
이 절에서는 실무에서 자주 쓰이는 도구 8개를 정리합니다. 외우기보다는 한 장의 지도처럼 두고 꺼내 보는 용도로 쓰십시오.
도구 진단 지도
| 도구 | 주요 계층 | 사용 프로토콜 | 무엇을 보여주는가 |
|---|---|---|---|
ping |
3계층 (네트워크) | ICMP Echo | 목적지까지 IP 패킷이 도달하는지, 왕복 시간(RTT)은 얼마인지 |
traceroute |
3계층 (네트워크) | ICMP TTL Exceeded | 패킷이 거쳐 가는 라우터 경로와 구간별 지연 |
dig / nslookup |
7계층 (응용) | DNS (UDP/TCP 53) | 도메인 이름이 어떤 IP로 해석되는지, TTL은 얼마인지 |
curl |
7계층 (응용) | HTTP / HTTPS | 요청과 응답이 정상적으로 오가는지, 헤더와 본문은 무엇인지 |
netstat |
4계층 (전송) | TCP / UDP | 현재 열린 소켓 목록, 연결 상태(LISTEN / ESTABLISHED / TIME_WAIT) |
ss |
4계층 (전송) | TCP / UDP | netstat과 같은 역할, 더 빠르고 상세한 소켓 정보 |
tcpdump |
2~7계층 | 이더넷 프레임부터 응용 페이로드까지 | 인터페이스를 흐르는 실제 패킷을 캡처하여 원시 데이터 확인 |
Wireshark |
2~7계층 | 이더넷 프레임부터 응용 페이로드까지 | tcpdump와 같지만 GUI로 프로토콜별 분해, 필터, 흐름 추적 가능 |
계층별로 읽는 법
표를 보면 계층이 크게 세 그룹으로 나뉩니다.
첫 번째 그룹은 3계층 도구입니다. ping과 traceroute는 IP와 ICMP를 기반으로 움직입니다. 이 도구들이 실패하면 문제는 물리 케이블, 스위치, 라우터, IP 설정 중 어딘가에 있습니다. 응용 계층 문제일 가능성은 낮습니다.
두 번째 그룹은 4계층 도구입니다. netstat와 ss는 소켓 상태를 보여줍니다. TCP 연결이 열렸는지, 어떤 포트가 LISTEN 중인지, TIME_WAIT 소켓이 쌓이지 않았는지 확인할 때 씁니다.
세 번째 그룹은 7계층 도구입니다. dig는 DNS만, curl은 HTTP만 봅니다. 이 도구들이 실패한다면 하위 계층(IP, TCP)은 이미 정상이고 응용 프로토콜 수준의 문제라는 단서가 됩니다.
tcpdump와 Wireshark는 어느 계층도 볼 수 있는 범용 현미경입니다. 다른 도구로 원인을 좁힌 뒤, 정확히 어떤 패킷이 오가는지 확인하고 싶을 때 꺼내 씁니다.
도구를 고르는 기준
문제가 생겼을 때 바로 tcpdump를 켜는 것은 현미경으로 방 전체를 수색하는 것과 같습니다. 먼저 거친 도구로 범위를 좁히고, 점점 정밀한 도구로 이동하는 것이 효율적입니다.
다음 절에서는 이 지도를 실제로 어떤 순서로 사용하는지, 진단의 흐름을 구체적으로 살펴봅니다.