Q) 특정 호스트를 지정하기 어려운경우, 점검을 해야할 시간을 특정 하지 못할 때, 어떤 패킷이 랜덤하게 들어올때 , 다량의 패킷을 tcmpdump 떠야 할때 어떻게 해야할까 ?
위와 같은 상황에서 좀더 tcmpdump 를 유용하게 쓸 수 있는 방법에 대해서 알아봅시다.
사용하게된 옵션들은 아래와 같습니다.
-C : 파일 사이즈 The units of file_size are millions of bytes(1,000,000 bytes, not 1,048,576 bytes).
-W : 최대 파일 갯수
-Z root : 파일을 나누어 남길때 권한 오류가 발생한다면 추가
-i any : 모든 인터페이스
icmp 패킷만, 10MB의 크기로, 최대 10개의 파일을 생성하게 하고 , 계속 로테이션 되게 로그를 쌓고 싶을 경우 아래와 같이 사용합니다. 캡쳐된 내용이 capfile0, capfile1, capfile2... 으로 9까지 생기고 계속 로테이션 되면서 기록됩니다.
$ tcpdump icmp -C 10 -W 10 -w capfile
권한오류가 발생 할 수도 있습니다. 그럴 경우 마지막에 -Z root 을 추가하여 루트권한으로 실행하도록 합니다.
tcpdump -i any icmp -C 10 -W 10 -w capfile -Z root
예제추가) 백그라운드로, 모든 인터페이스, udp 161 포트, 소스아이피 또는 목적지아이피가 10.0.0.1 , 파일은 10개 크기는 20MB씩 로테이션이 되도록 하고 파일명은 dump~ , 루트권한으로 실행
$ nohup tcpdump -i any src 10.0.0.1 or dst 10.0.0.1 and udp port 161 -W 10 -C 20 -w dump -Z root &
위를 잘 활용하면, 네트워크의 문제 (ping 유실, 네트워크 부하, 이상 패킷 흐름) 등의 모니터링을 하는데 도움을 줄 수 있다고 생각합니다. 실제로 현업에서 며칠에 한번씩 랜덤하게 ping 유실되는 것을 증명할 때 사용하기도 했습니다. 디스크 용량을 확인하고 적절하게 계산하여 원하는 만큼의 기간동안의 패킷을 로깅 할 수 있습니다.
'까벨로퍼 > 개발 이야기' 카테고리의 다른 글
[Linux/Unix] centos7에서 netstat,arp,route 등 명령이 안먹히면.. (0) | 2020.06.29 |
---|---|
[Django] openssl 인증서로 https 사용 (2) | 2020.06.29 |
[Linux/Unix] Tcpdump (0) | 2020.06.29 |
[c/c++] strcpy,strncpy,memcpy (0) | 2020.06.28 |
[Xcode] 단축키 모음 (0) | 2020.06.26 |