pcapreplay
패킷 바이너리를 지정한 네트워크 인터페이스로 재전송합니다. PCAP 파일이나 테이블에 저장된 패킷 데이터를 네트워크 장치를 통해 다시 전송할 때 사용합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
pcapreplay device=STR [pps=LONG]
옵션
device=STR- 패킷을 전송할 PCAP 네트워크 장치 식별자.
system-pcap-devices명령어로 사용 가능한 장치 목록을 조회할 수 있습니다. pps=LONG- 초당 전송할 최대 패킷 수(Packets Per Second). 0보다 큰 값을 지정하면 전송 속도를 제한합니다. 지정하지 않거나 0 이하의 값을 지정하면 속도 제한 없이 전송합니다.
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| payload | 바이너리 | 필수 | 전송할 패킷 바이너리. byte[] 타입이 아니거나 null이면 해당 레코드의 전송을 건너뜁니다. |
출력 필드
입력 레코드의 필드를 그대로 전달합니다.
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 30900 | PCAP 장치를 초기화 할 수 없습니다. | device 옵션이 지정되지 않은 경우 |
| 30901 | pps 값은 반드시 0보다 큰 숫자 값이어야 합니다. | pps 옵션 값이 숫자로 변환할 수 없는 경우 |
런타임 오류
해당 사항 없음
설명
pcapreplay 명령어는 입력 레코드의 payload 필드에서 패킷 바이너리를 읽어 지정한 네트워크 장치로 전송합니다. 입력 레코드는 변경 없이 그대로 다음 명령어로 전달됩니다.
pps 옵션으로 초당 전송 패킷 수를 제한할 수 있습니다. 전송 속도 제한이 설정되면 1초 단위로 패킷 전송 수를 관리하며, 할당된 패킷을 모두 전송한 후에는 다음 1초 구간까지 대기합니다.
네트워크 장치의 전송 버퍼가 가득 찬 경우, 장치가 쓰기 가능한 상태가 될 때까지 대기합니다. 장치가 예기치 않게 닫히면 해당 패킷의 전송을 건너뜁니다.
사용 예
-
PCAP 파일의 패킷 재전송
pcapfile /opt/logpresso/data/capture.pcap | pcapreplay device="eth0"PCAP 파일에서 읽은 패킷을
eth0네트워크 장치로 재전송합니다. -
전송 속도를 제한하여 패킷 재전송
pcapfile /opt/logpresso/data/capture.pcap | pcapreplay device="eth0" pps=1000PCAP 파일에서 읽은 패킷을 초당 1,000개로 속도를 제한하여
eth0장치로 재전송합니다. -
특정 패킷만 필터링하여 재전송
pcapfile /opt/logpresso/data/capture.pcap | pcapdecode | search dst_port == 80 | pcapreplay device="eth0" pps=500PCAP 파일에서 목적지 포트가 80인 패킷만 필터링하여 초당 500개로 속도를 제한하고 재전송합니다.
호환성
pcapreplay 명령어는 소나 4.0 이전 버전부터 제공되었습니다.