Ich möchte Pakete auf einer Schnittstelle von SystemA
hören. Da es, wie ich die große Mehrheit der eingehenden Pakete nicht sehen, sieht, habe ich scapy
in seiner einfachsten Form:Was ist der erwartete Paketverlust mit Scapy?
import scapy.all as scapy
def filtre(p):
if p.haslayer(scapy.IP):
print(p[scapy.IP].src)
# Disable scapy verbosity
scapy.conf.verb = 0
scapy.sniff(iface="eth0", prn=filtre, store=0)
Dieses auf SystemA
mit der Ausgabe in eine Datei gesendet lief wird.
Zur gleichen Zeit, ich laufe
tcpdump
aufSystemA
undSystemB
nmap SystemA -P0
aufSystemB
Die Idee ist, zu sehen, wie viele Pakete während der nmap
Sitzung SystemB
verlassen und erreichen SystemA
. Die Ergebnisse
- nach den beiden
tcpdump
, 1000 Pakete linksSystemB
und erreichteSystemA
- aber es gab nur etwa 150 bis 200 Pakete mit der Quell-IP von
SystemB
registriert durchscapy
aufSystemA
Ich habe mehrere Tests mit den tcpdump
Sitzungen und ohne (sie haben das Ergebnis AFAICT nicht geändert), und erhalten eine variierende Anzahl von Paketen über scapy
- im Bereich 150-200.
Dies ist in einem LAN, SystemB
ist ein debian, SystemA
ein RPi3. Ich könnte erwarten, dass ein Paket nicht registriert wird, aber nicht 80 bis 90%. Zur gleichen Zeit registriert tcpdump
systematisch die erwarteten 1000 Pakete auf beiden Systemen.
Gibt es etwas, das mir fehlt?
EDIT: der gleiche Test mit 50 Paketen (nmap SystemA -p1-50 -P0
) ist in Ordnung, scapy registriert alle 50 Pakete.