Wireshark로 네트워크 프로토콜 캡처하기

Wireshark로 네트워크 프로토콜 캡처하기입니다. 인터페이스 선택, 캡처/디스플레이 필터, DNS, TCP, tcpdump와 분석 기준을 정리했습니다.

Wireshark로 네트워크 프로토콜 캡처하기

Wireshark는 네트워크 인터페이스를 지나는 packet을 캡처하고, Ethernet, IP, TCP, DNS, HTTP 같은 프로토콜 구조를 눈으로 확인할 수 있게 해주는 분석 도구다. 학습과 장애 분석에 유용하지만, 본인이 관리하거나 허가받은 네트워크에서만 사용해야 한다.

설치와 인터페이스 선택

Wireshark를 실행하면 Wi-Fi, Ethernet, Loopback 같은 인터페이스 목록이 보인다. 현재 트래픽이 움직이는 인터페이스를 선택해야 원하는 패킷이 보인다. Windows에서는 캡처 드라이버인 Npcap 설치가 필요할 수 있다.

공식 다운로드: wireshark.org

캡처 필터와 디스플레이 필터

캡처 필터는 저장할 패킷 자체를 제한하고, 디스플레이 필터는 이미 캡처한 패킷 중 화면에 보여줄 것만 고른다. 처음에는 너무 강한 캡처 필터를 걸지 말고 넓게 캡처한 뒤 디스플레이 필터로 좁히는 편이 안전하다.

Capture filter examples:
host 8.8.8.8
tcp port 443
udp port 53

Display filter examples:
dns
http
tcp.port == 443
ip.addr == 8.8.8.8

DNS 요청 확인

브라우저에서 도메인에 접속하기 전에 DNS가 먼저 동작한다. Wireshark에서 dns 필터를 입력하면 질의 이름, 응답 IP, 응답 코드 등을 확인할 수 있다.

display filter: dns
확인할 항목: query name, response address, response code, server IP

TCP 연결 확인

TCP 통신은 연결 시작 시 SYN, SYN/ACK, ACK 흐름이 보인다. 방화벽이나 서비스 문제를 볼 때 이 세 단계가 어디까지 진행되는지 확인하면 원인 범위를 줄일 수 있다.

display filter: tcp.flags.syn == 1
display filter: tcp.analysis.retransmission
display filter: tcp.port == 443

계층별 프로토콜 예시

Application : HTTP, DNS, SSH, SMTP, DHCP
Transport   : TCP, UDP
Network     : IP, ICMP
Link        : Ethernet, ARP

CLI 대안: tcpdump

서버에서는 GUI를 쓰기 어렵기 때문에 tcpdump로 캡처하고, 필요하면 pcap 파일을 내려받아 Wireshark에서 열어 분석한다.

sudo tcpdump -ni any -w capture.pcap 'host 8.8.8.8 or port 53'
sudo tcpdump -nnr capture.pcap | head

분석 기준

  • DNS 응답이 없으면 이름 해석 문제를 먼저 본다.
  • TCP SYN만 반복되면 방화벽, 라우팅, 서비스 미기동을 의심한다.
  • TLS 통신은 본문이 암호화되어 보이지 않는 것이 정상이다.
  • 재전송이 많으면 손실, MTU, 품질 문제를 의심한다.
BGM EVER