본문 바로가기
Engineering/Network

[tcpdump] 덤프 파일 사이즈가 커서 wireshark로 열리지 않는 경우를 대비하여 pcap 파일 분할하여 저장하기

by 알탱2 2024. 1. 10.
반응형

개요

  • 제품 검증을 하다보면 tcpdump 를 사용하여 network packet을 캡쳐하고, 그 데이터를 활용하여 결과 확인을 하는 등에 활용하곤 한다.
  • 최근 담당했던 제품에 request / response packet size가 워낙 크다보니 1개의 Transaction 으로 발생되는 packet만 캡쳐해도 1GB 가 훌쩍 넘게 되었다.
  • 이렇게 1GB가 넘는 파일을 wireshark로 열면 아래와 같은 에러 팝업을 마주할수 있으며, 초반 256MB(wireshark 기본 설정값인 것 같다)를 넘어서는 데이터를 확인할 수 없다. 이 기본 크기를 늘리는 방법은 아직 찾지 못하였다..
    • error message : The capture file appears to be damaged or corrupt. (pcap: File has 1225395521-byte packet, bigger than maximum of 262144)
  • 이런 경우 wireshark 설치 시 함께 설치되는 editcap 툴을 사용하여 일정 패킷 크기로 파일을 분할할 수 있다고 하는데, 시도해본 결과 이 또한 파일 크기가 너무 크다는 에러 메세지만 출력되었다.
  • 따라서 아래 방법을 통해 저장 시점부터 wireshark 에서 핸들링 가능하도록 최대 크기 256MB 만큼씩 파일을 분할하여 생성하도록 하여 해결하였다.

 

 


지정 크기(MB)로 파일 분할하여 pcap 파일 생성하기

 

(1) pcap 파일 저장할 폴더에 owner 또는 권한을 조정하기 (필수)

  • pcap 파일을 1개 생성할 때와 달리 여러개의 파일을 생성하게 되려면 tcpdump(user)가 파일을 생성할 수 있도록 폴더 권한을 조정해줘야 한다.
    • 조정하지 않을 경우 아래와 같이 tcpdump command 가 permission denied 에러와 함께 실행되지 않는다.

< 방법 #1. 폴더 owner 변경하기 >

#chown -R tcpducmp:tcpdump 폴더명

chown -R tcpducmp:tcpdump tcpdumptest

 

 

< 방법 #2. 폴더 write 권한 부여하기 (모든 user에게) >

 
# chmod +w 폴더명

chmod +w tcpdumptest

 

 

 

(2) 파일이 설정 크기로 분할되어 생성되도록 tcpdump 실행하기

 

  • tcpdump 실행 시, -C 256 옵션을 추가하여 256MB 가 초과하면 파일을 분할하여 생성하도록 함
    • -C 256 은 당연히 100, 200 형태로 원하는 MB 크기로 변경하여 사용 가능
  • 아래 예시에서 -C 256 옵션과 -w 파일명 옵션을 제외한 다른 옵션은 필요한 상황에 맞게 조절하면서 사용 필요
# tcpdump -i any -nn -C 256 -s0 -w 폴더명/파일명.pcap

tcpdump -i any -nn -C 256 -s0 -w tcpdumptest/test1.pcap

  • 위의 명령어로 packet dump 를 생성하면 256MB를 넘는경우 아래와 같이 순서대로 number가 붙으며 파일이 생성됨
tcpdumptest/test1.pcap
tcpdumptest/test1.pcap1
tcpdumptest/test1.pcap2
tcpdumptest/test1.pcap3
tcpdumptest/test1.pcap4
tcpdumptest/test1.pcap5
tcpdumptest/test1.pcap6
tcpdumptest/test1.pcap7
tcpdumptest/test1.pcap8
tcpdumptest/test1.pcap9
tcpdumptest/test1.pcap10
tcpdumptest/test1.pcap11
...

 

 

 

 


그 외, tcpdump에 자주 사용하는 옵션은 아래 포스트 참고 : 

https://jinane.tistory.com/6

 

[tcpdump] 네트워크 패킷 캡쳐하기 (자주 사용하는 옵션 정리)

첫 직장이 미디어 파일을 송출하는 서버를 개발하는 회사였고, 솔루션이 정상 구동되기 위해 네트워크 구성은 아주 중요한 요소였다. 각 고객마다 복잡한 룰에 의해 관리되고 있는 통신망에 설

jinane.tistory.com

 

반응형

댓글