tcpdump: birkaç vlanstan birini yakala


11

Ben tcpdump VLAN 1000 yakalamak istediğiniz veya VLAN 501. man pcap-filterdiyor ki:

Vlan [vlan_id] ifadesi, VLAN hiyerarşilerine filtre uygulamak için birden fazla kullanılabilir. Bu ifadenin her kullanımı, filtre ofsetlerini 4 artırır.

Ben yaparken:

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

Yakalanan paketler alıyorum.

Ama yaptığım zaman:

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

Herhangi bir paket almıyorum - man sayfasında açıklanan "4'e kadar artış" davranışı nedeniyle sanırım.

Tek seferde birden fazla VLAN'da nasıl trafik yakalayabilirim?

Yanıtlar:


15

Paket baytlarını doğrudan inceleyebileceğinizi hatırladım. Doğrudan ethernet başlığına bakarak çalışır:

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 )'

Unutmayın :2, bu 2 baytlık bir alan - buna bir süre takıldım.


6

Derin paket sınavından daha basit bir şekilde yapılabilir, sadece grep kullanın:

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

-e: Her dökümü satırına bağlantı düzeyi üstbilgisini yazdırın.

gibi satırlar yazdıracak

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

grep tarafından kolayca yakalanabilen

Birden fazla VLAN kimliğini yakalamak istiyorsanız aşağıdaki komutu kullanabilirsiniz:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.