Um SYN, ACK usw. zu finden, müssen Sie die packet.find-Methode verwenden. Das folgende ist nur eine kleine Änderung an der forwarding.l2_pairs Aktienkomponente von POX (Karpfen)
Sagen wir, wir haben MININET und
sudo mn --controller remote
ein paar Zeilen Code an der Lagerkomponente running forwarding.l2_pairs in Zeile 41 nach dem Paket = event.parsed wir wie so
packet = event.parsed
tcp_found = packet.find('tcp')
if tcp_found:
if tcp_found.SYN:
print "SYN found"
Run in einem anderen Endgerät als MININET pOX Komponente wie so
0 ändern werden
python pox.py forwarding.l2_pairs host_tracker openflow.discovery
Um nun einige SYN-Flags zu erhalten gehen wir in der MININET Terminal und das Einrichten eines Standard-Python HTTP-Server
h1 python -m SimpleHTTPServer 80 &
und den Inhalt des Dummy-Server von Host erhalten 2
h2 wget -O - h1
am Terminal, dass wir die pox l2_pairs Komponente laufen untersuchen wir die Ausgabe
INFO:forwarding.l2_pairs:Pair-Learning switch running.
INFO:host_tracker:host_tracker ready
INFO:core:POX 0.2.0 (carp) is up.
INFO:openflow.of_01:[00-00-00-00-00-01 1] connected
INFO:host_tracker:Learned 1 2 6e:6e:ca:c9:2b:93
INFO:host_tracker:Learned 1 2 6e:6e:ca:c9:2b:93 got IP 10.0.0.2
SYN found
INFO:host_tracker:Learned 1 1 52:3b:b2:ff:ff:b7
INFO:host_tracker:Learned 1 1 52:3b:b2:ff:ff:b7 got IP 10.0.0.1
SYN found
Der Haken dabei ist, dass in der POX Dokumentation SYN, ACK etc wie angegeben sind tcp
TCP (TCP) Attribute Attribute: ...... FIN (bool) - Wahr, wenn FIN-Flag gesetzt SYN (bool) - Wahr, wenn SYN-Flag gesetzt ......
um diese Attribute zu erhalten wir den tcp Teil des Pakets auf eine Variable mit der find-Methode zuweisen, dann greifen wir auf die Attribute ein mit Punkt (.)
variable.attribute
und wir sind gut zu gehen (wenn gefunden).