decodedhcp

이더넷 프레임에서 DHCP 메시지를 디코딩하여 트랜잭션 ID, IP 주소, 클라이언트 MAC 주소, DHCP 옵션 등을 추출합니다.

명령어 속성

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

문법

decodedhcp

입력 필드

필드타입필수 여부설명
payload바이너리필수이더넷 프레임 데이터. 바이너리 타입이 아닌 경우 입력 레코드를 그대로 출력합니다.

출력 필드

필드타입설명
tx_id32비트 정수DHCP 트랜잭션 ID
client_ipIP 주소클라이언트 IP 주소
your_ipIP 주소서버가 클라이언트에 할당하는 IP 주소
next_server_ipIP 주소다음 부트스트랩 서버 IP 주소
gateway_ipIP 주소릴레이 에이전트 IP 주소
client_mac문자열클라이언트 MAC 주소
fingerprint문자열DHCP 옵션 55 (Parameter Request List) 기반 핑거프린트 문자열. 옵션 55가 없으면 null
options배열DHCP 옵션 목록. 각 항목은 type (32비트 정수), name (문자열), value (바이너리) 필드를 포함하는 맵

오류 코드

파싱 오류

해당 사항 없음

런타임 오류

해당 사항 없음

설명

decodedhcp 명령어는 입력 레코드의 payload 필드에서 이더넷 프레임을 읽어 DHCP 프로토콜 메시지를 디코딩합니다. payload 필드가 바이너리 타입이 아닌 경우 입력 레코드를 그대로 다음 명령어로 전달합니다.

디코딩된 DHCP 메시지에서 트랜잭션 ID, 클라이언트 IP, 서버 할당 IP, 다음 서버 IP, 게이트웨이 IP, 클라이언트 MAC 주소를 추출합니다. DHCP 옵션 중 옵션 55 (Parameter Request List)가 존재하면 장치 핑거프린팅에 사용할 수 있는 핑거프린트 문자열을 생성합니다.

사용 예

  1. PCAP 파일에서 DHCP 메시지 디코딩

    pcapfile /opt/logpresso/dhcp-capture.pcap
    | decodedhcp
    

    PCAP 파일에서 읽은 이더넷 프레임의 DHCP 메시지를 디코딩합니다.

  2. 디코딩 후 핑거프린트 추출

    pcapfile /opt/logpresso/dhcp-capture.pcap
    | decodedhcp
    | search isnotnull(fingerprint)
    | fields client_mac, fingerprint
    

    DHCP 메시지에서 핑거프린트가 존재하는 레코드만 추출하여 클라이언트 MAC 주소와 핑거프린트를 조회합니다.

호환성

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