pcapreplay

패킷 바이너리를 지정한 네트워크 인터페이스로 재전송합니다. PCAP 파일이나 테이블에 저장된 패킷 데이터를 네트워크 장치를 통해 다시 전송할 때 사용합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행수집 노드에서 실행 (mapper)

문법

pcapreplay device=STR [pps=LONG]

옵션

device=STR
패킷을 전송할 PCAP 네트워크 장치 식별자. system-pcap-devices 명령어로 사용 가능한 장치 목록을 조회할 수 있습니다.
pps=LONG
초당 전송할 최대 패킷 수(Packets Per Second). 0보다 큰 값을 지정하면 전송 속도를 제한합니다. 지정하지 않거나 0 이하의 값을 지정하면 속도 제한 없이 전송합니다.

입력 필드

필드타입필수 여부설명
payload바이너리필수전송할 패킷 바이너리. byte[] 타입이 아니거나 null이면 해당 레코드의 전송을 건너뜁니다.

출력 필드

입력 레코드의 필드를 그대로 전달합니다.

오류 코드

파싱 오류
오류 코드메시지설명
30900PCAP 장치를 초기화 할 수 없습니다.device 옵션이 지정되지 않은 경우
30901pps 값은 반드시 0보다 큰 숫자 값이어야 합니다.pps 옵션 값이 숫자로 변환할 수 없는 경우
런타임 오류

해당 사항 없음

설명

pcapreplay 명령어는 입력 레코드의 payload 필드에서 패킷 바이너리를 읽어 지정한 네트워크 장치로 전송합니다. 입력 레코드는 변경 없이 그대로 다음 명령어로 전달됩니다.

pps 옵션으로 초당 전송 패킷 수를 제한할 수 있습니다. 전송 속도 제한이 설정되면 1초 단위로 패킷 전송 수를 관리하며, 할당된 패킷을 모두 전송한 후에는 다음 1초 구간까지 대기합니다.

네트워크 장치의 전송 버퍼가 가득 찬 경우, 장치가 쓰기 가능한 상태가 될 때까지 대기합니다. 장치가 예기치 않게 닫히면 해당 패킷의 전송을 건너뜁니다.

사용 예

  1. PCAP 파일의 패킷 재전송

    pcapfile /opt/logpresso/data/capture.pcap | pcapreplay device="eth0"
    

    PCAP 파일에서 읽은 패킷을 eth0 네트워크 장치로 재전송합니다.

  2. 전송 속도를 제한하여 패킷 재전송

    pcapfile /opt/logpresso/data/capture.pcap | pcapreplay device="eth0" pps=1000
    

    PCAP 파일에서 읽은 패킷을 초당 1,000개로 속도를 제한하여 eth0 장치로 재전송합니다.

  3. 특정 패킷만 필터링하여 재전송

    pcapfile /opt/logpresso/data/capture.pcap
    | pcapdecode
    | search dst_port == 80
    | pcapreplay device="eth0" pps=500
    

    PCAP 파일에서 목적지 포트가 80인 패킷만 필터링하여 초당 500개로 속도를 제한하고 재전송합니다.

호환성

pcapreplay 명령어는 소나 4.0 이전 버전부터 제공되었습니다.