Warum ist nicht die scapy-capturing-VLAN-tag-Informationen?

Habe ich mit meinem raspberry pi als sniffer, und haben beobachtet, einige interessante Unterschiede zwischen tcpdump und scapy. Ich sehe die folgenden:


- Traffic-Generator-Maschine, Linux-Box mit scapy:

sendp(Ether(dst='ff:ff:ff:ff:ff:ff',src="AA:00:00:00:00:00")/Dot1Q(vlan=10)/IP()/ICMP())


Raspberry Pi, ala 'tcpdump':

00:25:10.156830 aa:00:00:00:00:00 (oui Unknown) > Broadcast, ethertype 802.1Q (0x8100),length 60: vlan 10, p 0, ethertype IPv4, localhost > localhost: ICMP echo request, id 0, seq 0, length 8


Rasperry Pi, über "scapy':

>>> pkt[0].show()
###[ Ethernet ]###   
    dst= ff:ff:ff:ff:ff:ff   
    src= aa:00:00:00:00:00   
    type= 0x800
###[ IP ]###
       version= 4L
       ihl= 5L
       tos= 0x0
       len=28
       id= 1
       flags= 
       frag= 0L
       ttl= 64
       proto= icmp
       chksum= 0x7cde
       src= 127.0.0.1
       dst= 127.0.0.1
       \options\
###[ ICMP ]###
          type= echo-request
          code= 0
          chksum= 0xf7ff
          id= 0x0
          seq= 0x0
###[ Padding ]###
              load= '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' None

Selbst wenn ich versuche:

>>> Dot1Q in pkt[0]
False


Weiß jemand, warum scapy nicht in der Lage ist zu erfassen (Parsen?) die vlan-frame, aber tcpdump sieht es in Ordnung ?

(PS ich habe auch geschnüffelt, mit scapy und exportiert eine pcap-Datei, und Lesen Sie dann die pcap-Datei mit tcpdump... die vlan-tags sind Weg... verschwunden... )

=======================

Für Interessierte, mein workaround für jetzt, ist die Verwendung tcpdump-Aufzeichnung in eine pcap-Datei, und verwenden Sie dann rdpcap() in scapy zum laden der Daten, so kann ich mit scapy leistungsstarke Analyse-Funktionen zu erkunden, das erfassen - dies führt zu einer Schicht-caching, und eine böse-system-Aufruf in meinem Programm, aber bringt mich zuverlässig vlan-Informationen...

=======================

Basierend auf RyPeck Antwort und GuyHarris Ratschläge, ich habe jetzt eine viel bessere Lösung:

a) Mit http://sourceforge.net/projects/pylibpcap/

import pcap
conf.use_pcap=True

b) Mit pcappy - was kann installiert werden mit: pip install pcappy

import pcappy as pcap
conf.use_pcap=True

Nun scapy zeigt die gleiche vlan-Informationen wie tcpdump, mit allen, die die große Analyse-Funktionen intakt!

InformationsquelleAutor Niall Byrne | 2013-09-25
Schreibe einen Kommentar