たとえば、「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")はフィルタリングできないため、フィルタを2つの部分に分割する必要があります。バイト 6 および 7: エーテル[6:2]、バイト 8: エーテル[8:1]

つまり、フィルタは次のようになります。 ether[6:2]==0xaabb and ether[8:1]==0xcc

関連情報