iBetter Books
수정

어느 계층의 무엇을 보는가

네트워크가 말썽을 부릴 때, 도구를 아는 사람과 모르는 사람의 차이는 크지 않습니다. 정작 중요한 것은 지금 손에 든 도구가 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계층 도구입니다. pingtraceroute는 IP와 ICMP를 기반으로 움직입니다. 이 도구들이 실패하면 문제는 물리 케이블, 스위치, 라우터, IP 설정 중 어딘가에 있습니다. 응용 계층 문제일 가능성은 낮습니다.

두 번째 그룹은 4계층 도구입니다. netstatss는 소켓 상태를 보여줍니다. TCP 연결이 열렸는지, 어떤 포트가 LISTEN 중인지, TIME_WAIT 소켓이 쌓이지 않았는지 확인할 때 씁니다.

세 번째 그룹은 7계층 도구입니다. dig는 DNS만, curl은 HTTP만 봅니다. 이 도구들이 실패한다면 하위 계층(IP, TCP)은 이미 정상이고 응용 프로토콜 수준의 문제라는 단서가 됩니다.

tcpdumpWireshark는 어느 계층도 볼 수 있는 범용 현미경입니다. 다른 도구로 원인을 좁힌 뒤, 정확히 어떤 패킷이 오가는지 확인하고 싶을 때 꺼내 씁니다.

도구를 고르는 기준

문제가 생겼을 때 바로 tcpdump를 켜는 것은 현미경으로 방 전체를 수색하는 것과 같습니다. 먼저 거친 도구로 범위를 좁히고, 점점 정밀한 도구로 이동하는 것이 효율적입니다.

다음 절에서는 이 지도를 실제로 어떤 순서로 사용하는지, 진단의 흐름을 구체적으로 살펴봅니다.

01. 어느 계층의 무엇을 보는가 — 소설처럼 읽는 데이터통신과 컴퓨터 네트워크 | iBetter Books