decodedhcp
이더넷 프레임에서 DHCP 메시지를 디코딩하여 트랜잭션 ID, IP 주소, 클라이언트 MAC 주소, DHCP 옵션 등을 추출합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
decodedhcp
입력 필드
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
payload | 바이너리 | 필수 | 이더넷 프레임 데이터. 바이너리 타입이 아닌 경우 입력 레코드를 그대로 출력합니다. |
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
tx_id | 32비트 정수 | DHCP 트랜잭션 ID |
client_ip | IP 주소 | 클라이언트 IP 주소 |
your_ip | IP 주소 | 서버가 클라이언트에 할당하는 IP 주소 |
next_server_ip | IP 주소 | 다음 부트스트랩 서버 IP 주소 |
gateway_ip | IP 주소 | 릴레이 에이전트 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)가 존재하면 장치 핑거프린팅에 사용할 수 있는 핑거프린트 문자열을 생성합니다.
사용 예
-
PCAP 파일에서 DHCP 메시지 디코딩
pcapfile /opt/logpresso/dhcp-capture.pcap | decodedhcpPCAP 파일에서 읽은 이더넷 프레임의 DHCP 메시지를 디코딩합니다.
-
디코딩 후 핑거프린트 추출
pcapfile /opt/logpresso/dhcp-capture.pcap | decodedhcp | search isnotnull(fingerprint) | fields client_mac, fingerprintDHCP 메시지에서 핑거프린트가 존재하는 레코드만 추출하여 클라이언트 MAC 주소와 핑거프린트를 조회합니다.
호환성
decodedhcp 명령어는 소나 4.0 이전 버전부터 제공되었습니다.