Benutzer-Werkzeuge

Webseiten-Werkzeuge


sdn-start-mit-mininet-vm-ryu-floodlight-opendaylight

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
sdn-start-mit-mininet-vm-ryu-floodlight-opendaylight [2014/07/25 16:44] bennysdn-start-mit-mininet-vm-ryu-floodlight-opendaylight [2014/07/25 17:24] benny
Zeile 231: Zeile 231:
 Nun passiert etwas sehr wichtiges, der SDN-Controller fügt einen Flow-Eintrag hinzu da jetzt genug Informationen über die Kommunikation vorliegen. Dieser bedeutet: Wenn ein Paket auf OFB-IN-PORT 3 (dort ist **h2** angeschlossen) reinkommt und als Ziel die MAC-Adresse (ETH-DST) von **h1** hat, dann sende das Paket auf OF-PORT 1 raus. (Dies vermeidet dass für weitere Pakete dieser Art der Controller gefragt werden muss.) //Besonderheit: Ryu referenziert in diesem Fall nicht die **Buffer ID: 257**, was man eigentlich hätte tun können damit dieser Flow nicht nur im OVS eingetragen wird sondern das Paket auch gleich so behandelt wird. Ob dies eine Spezialität dieser Ryu-Beispielapplikation ist, muss ich noch testen.// Nun passiert etwas sehr wichtiges, der SDN-Controller fügt einen Flow-Eintrag hinzu da jetzt genug Informationen über die Kommunikation vorliegen. Dieser bedeutet: Wenn ein Paket auf OFB-IN-PORT 3 (dort ist **h2** angeschlossen) reinkommt und als Ziel die MAC-Adresse (ETH-DST) von **h1** hat, dann sende das Paket auf OF-PORT 1 raus. (Dies vermeidet dass für weitere Pakete dieser Art der Controller gefragt werden muss.) //Besonderheit: Ryu referenziert in diesem Fall nicht die **Buffer ID: 257**, was man eigentlich hätte tun können damit dieser Flow nicht nur im OVS eingetragen wird sondern das Paket auch gleich so behandelt wird. Ob dies eine Spezialität dieser Ryu-Beispielapplikation ist, muss ich noch testen.//
  
 +{{ ::of4-3output.png?nolink |}}
 +Hier referenziert Ryu nun die **Buffer ID: 257** und instruiert den OVS das Paket auf OF-Port 1 zu senden.
  
 +{{ ::of5-icmp.png?nolink |}}
 +Hier geht nun der eigentliche "Ping" von **h1** zu **h2** los. Vielleicht fragt ihr euch nun warum das Paket hier wieder im SDN-Controller landet obwohl wir nun eben beim "ARP" dies schonmal durchlaufen haben (**Buffer ID: 258**): Es handelt sich __erstmalig__ aus dieser Richtung um ein Paket das alle Informationen enthält (inkl. der Ziel-MAC-Adresse von **h2**, bisher war die im ARP-Request nämlich 00:00:00:00:00:00 bzw. ff:ff:ff:ff:ff:ff gesetzt!)
  
-Idle timeout (flow entfernen bei inaktivität) +{{ ::of6-1-flowmod.png?nolink |}} 
-Hard timeout (flow entfernen selbst wenn aktiv) 0 = unendlich +{{ ::of6-2-flowmod.png?nolink |}} 
-Priority (höher ist höher)+Hier kann man nun den Eintrag des Flows von OFB-IN-PORT 1 zu **h2** (ETH_DSTsehen.
  
 +{{ ::of7.png?nolink |}}
 +Hier nun abschließend die Instruktion an den OVS das Paket an **Buffer ID: 258** auf OF-Port 3 rauszuschicken.
  
 +==== Mininet Flow-Table ====
 +Mit allem was wir uns angeschaut haben, machen diese Einträge nun auch Sinn!
 +    * Bei eingehenden Paket auf Port (in_port) 1 mit dem Ziel dl_dst=00:00:00:00:00:02 (dl = Data Link)
 +      * Aussenden auf Port 3
 +    * Bei eingehenden Paket auf Port (in_port) 3 mit dem Ziel dl_dst=00:00:00:00:00:01 (dl = Data Link)
 +      * Aussenden auf Port 1
 +    * Passen die eingehenden Pakete nicht auf diese Flows, dann sende die Pakete an den Controller 
 +<code>
 +mininet> dpctl dump-flows --protocols OpenFlow13
 +*** s1 ------------------------------------------------------------------------
 +OFPST_FLOW reply (OF1.3) (xid=0x2):
 + cookie=0x0, duration=4921.582s, table=0, n_packets=3, n_bytes=182, priority=0 actions=CONTROLLER:65535
 + cookie=0x0, duration=897.163s, table=0, n_packets=6, n_bytes=532, priority=1,in_port=3,dl_dst=00:00:00:00:00:01 actions=output:1
 + cookie=0x0, duration=897.057s, table=0, n_packets=5, n_bytes=434, priority=1,in_port=1,dl_dst=00:00:00:00:00:02 actions=output:3
 +</code>
 +
 +==== Abschließende Informationen ====
 +
 +=== Idle Timeout ===
 +Beim **Idle Timeout** handelt es sich die Zeit (in Sekunden) nach der der Flow aufgrund von Inaktivität (Flow hat nicht auf eingehende Pakete gepasst, engl. "match") entfernt wird.
 +
 +0 = unendlich
 +
 +=== Hard Timeout ===
 +Beim **Hard Timeout** handelt es sich die Zeit (in Sekunden) nach der der Flow **trotz Aktivität** entfernt wird.
 +
 +0 = unendlich
 +
 +=== Priority ===
 +Je höher die **Priority**, desto wichtiger ist der Eintrag. Soll heissen, passt ein Paket auf einen Flow mit der Priorität 500 und würde auch auf einen Eintrag mit der Priorität 300 passen, wird der OVS/Switch bis zu diesem Eintrag nie kommen da die Abarbeitung der Tabelle nach dem ersten Eintrag stoppt und die Aktion ausgeführt wird.
  
 ===== Relevante Dokumentation ===== ===== Relevante Dokumentation =====
sdn-start-mit-mininet-vm-ryu-floodlight-opendaylight.txt · Zuletzt geändert: 2014/07/25 17:37 von benny

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki