예를 들어 "tcpdump ether Host"를 마스크로 필터링하여 특정 OUI가 있는 호스트를 얻을 수 있습니까?

예를 들어 "tcpdump ether Host"를 마스크로 필터링하여 특정 OUI가 있는 호스트를 얻을 수 있습니까?

src ether host특정 MAC 접두사가 있는 모든 장치를 확인하여 트래픽을 필터링 하려고 합니다 . 이것이 IP와 같다면 필터링하여 src ether host aa:bb:cc:00:00:00/24OUI와 일치하는 항목을 볼 수 있지만 aa:bb:cc...그렇지는 않습니다.

MAC 접두사 또는 마스크로 일치시키는 방법이 있습니까?

중요한 경우:

이는 Wi-Fi용이므로 기술적으로는 SA 주소이며 오른쪽으로 스크롤하면 확인할 수 있습니다 (필드에 tcpdump입력 ).src ether host

13:12:48.139316 1.0 Mb/s 2412 MHz 11b -41dBm signal -41dBm signal antenna 0 0us BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:aa:bb:cc:84:05:7c Probe Request (emporia) [5.5* 11.0* 1.0* 2.0* 6.0 12.0 24.0 48.0 Mbit]

답변1

이름(host, src 호스트, ether, ether src...)은 기본적으로 해당 tcp 및 ip 패킷의 특정 바이트에 대한 바로 가기입니다. tcpdump 필터에는 와일드카드가 허용되지 않으므로 tcp 패킷 자체를 더 자세히 살펴보아야 합니다. 이더넷 소스 주소는 ether[6]에서 시작하는 6바이트에 위치하며, 이더넷 대상 주소는 ether[0]에서 시작하는 6바이트에 위치합니다.

따라서 src 주소의 3바이트를 필터링하려면 바이트 6, 7, 8을 필터링해야 합니다. 트리 바이트( "tcpdump: data size must be 1, 2, or 4")는 필터링할 수 없으므로 필터를 두 부분으로 분할해야 합니다. 바이트 6 및 7: 에테르[6:2], 바이트 8: 에테르[8:1]

즉, 필터는 다음과 같습니다. ether[6:2]==0xaabb and ether[8:1]==0xcc

관련 정보