tcpdump:いくつかのVLANの1つをキャプチャします


11

tcpdumpでVLAN 1000またはVLAN 501をキャプチャしたいman pcap-filter

vlan [vlan_id]式は、VLAN階層でフィルタリングするために複数回使用できます。その式を使用するたびに、フィルターオフセットが4ずつ増加します。

私がする時:

tcpdump -vv -i eth1 \( vlan 1000 \) and \( ip host 10.1.1.98 or ip host 10.1.1.99 \)

キャプチャされたパケットを取得します。

しかし、私がするとき:

tcpdump -vv -i eth1 \( vlan 1000 or vlan 501 \) and \( ip host 10.1.1.98 or ip host 10.1.1.99 \)

パケットを取得していません-マニュアルページに記載されている「4ずつインクリメントする」動作のためだと思います。

一度に複数のVLANでトラフィックをキャプチャするにはどうすればよいですか?

回答:


15

パケットバイトを直接調べることができることを思い出しました。そのため、イーサネットヘッダーを直接調べると機能します。

tcpdump -vv -i eth1 '( vlan and ( ether[14:2] & 0xfff == 1000 or ether[14:2] & 0xfff == 501 ) ) and ( ip host 10.1.1.98 or ip host 10.1.1.99 )'

を忘れないでください:2、これは2バイトのフィールドです-私はしばらくこれで立ち往生しました。


6

これは、grepを使用するだけで、詳細なパケット試験を使用するよりも簡単に実行できます。

tcpdump -n -i eth1 -e | grep "vlan 1000" 

-e:各ダンプ行にリンクレベルのヘッダーを出力します。

次のような行を印刷します

ethertype 802.1Q (0x8100), length 60: vlan 1000, p 0, ethertype ARP

grepで簡単にキャッチできます

複数のVLAN IDをキャッチする場合は、次のようなコマンドを使用できます。

tcpdump -n -i eth1 -e | grep "vlan 1000\|vlan 501"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.