Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Grundlegendes zur Verbindung eines virtuellen Switches mit dem OpenFlow-Controller auf Geräten mit Junos OS

Auf Geräten, auf denen das Betriebssystem Junos von Juniper Networks (Junos OS) ausgeführt wird, stellt jeder virtuelle OpenFlow-Switch eine unabhängige Verbindung mit dem Controller her und wird durch eine eindeutige Laufzeit-Datenpfad-ID dargestellt, die aus der MAC-Adresse des Management-Ports und einer intern zugewiesenen virtuellen Switch-ID besteht. Der Controller und der virtuelle Switch sind über eine TCP/IP-Verbindung auf der Managementebene miteinander verbunden. Daher müssen OpenFlow-fähige Geräte, die von einem Controller verwaltet werden, mit dem Management-Netzwerk verbunden sein (z. B. über den Management-Port me0, fxp0, em0 oder em1) und von der IP-Adresse des Controllers aus erreichbar sein.

Beim Herstellen einer Verbindung mit dem Controller tauschen der Switch und der Controller Hallo-Nachrichten aus, die die neueste vom Absender unterstützte OpenFlow-Protokollversion angeben. Wenn es sich beim ersten vom Switch empfangenen Paket nicht um eine OFPT_HELLO Nachricht handelt, beendet der Switch die Verbindung und versucht, eine neue Verbindung mit dem Controller herzustellen. Wenn der Controller und der Switch eine OpenFlow-Protokollversion aushandeln, die von einer der Parteien nicht unterstützt wird, wird die Verbindung mit einer Fehlermeldung beendet, die einen OFPET_HELLO_FAILED Fehlertyp und einen OFPHFC_INCOMPATIBLE-Code angibt.

Die Sitzung wird eingerichtet, wenn Switch und Controller erfolgreich Hello-Nachrichten austauschen und die OpenFlow-Protokollversion aushandeln. Nach dem Einrichten der Sitzung sendet der Controller dem Switch eine Feature-Request-Nachricht, in der er die vom Switch unterstützten Funktionen anfordert. Der Switch antwortet mit einer Feature-Antwortnachricht, die die lokale MAC-Adresse im Feld für die Datenpfad-ID des virtuellen Switches enthält. Wenn die lokale MAC-Adresse nicht verfügbar ist, beendet der Switch die Verbindung.

Nach dem Einrichten der Sitzung tauschen der Controller und der virtuelle Switch Echoanforderungs- und Antwortnachrichten als Keepalive-Mechanismus aus. Der Keepalive-Timer wird zurückgesetzt, wenn der virtuelle Switch oder Controller entweder eine Echoantwort oder ein Paket empfängt. Echoanforderungen werden alle 10 Sekunden während Leerlauffenstern gesendet, wenn keine anderen Meldungen vorhanden sind. Wenn der Switch 120 Sekunden lang keine Echoantwort oder andere Nachricht vom Controller empfängt, gilt die Verbindung als unterbrochen, und der Switch versucht 10 Sekunden lang, die Verbindung wiederherzustellen. Wenn die Verbindung nicht hergestellt werden kann, wechselt der Switch in den Notfallmodus, wie in der OpenFlow v1.3-Spezifikation definiert. Im Notfallmodus löscht der Switch normale Flow-Einträge und löscht nach 30 Sekunden Flow-Einträge, die in Hardware installiert sind.

Wenn der Empfänger zu irgendeinem Zeitpunkt nach dem Einrichten der Sitzung eine OpenFlow-Nachricht erhält, in der die falsche OpenFlow-Version angegeben ist, antwortet der Empfänger mit einer Fehlermeldung, die einen OFPET_BAD_REQUEST Typ und OFPBRC_BAD_VERSION Code angibt. Wenn der Switch die Version und den Typ eines OpenFlow-Pakets im TCP-Puffer nicht verarbeiten kann oder wenn der Switch keine OpenFlow-Nachrichten an den Controller senden kann, beendet der Switch die Verbindung.

Das Ändern, Löschen oder Deaktivieren der Konfiguration des virtuellen Switches wirkt sich auch auf die Verbindung zum Controller aus. Wenn Sie eine vorhandene Konfiguration eines virtuellen Switches ändern, beendet der virtuelle Switch die vorhandene Verbindung zum Controller und richtet eine neue Sitzung mit den aktualisierten Konfigurationsinformationen ein. Wenn Sie eine vorhandene virtuelle Switch-Konfiguration löschen oder deaktivieren, trennt der virtuelle Switch automatisch die Verbindung zum Controller.

Zusammenfassend lässt sich sagen, dass der Switch unter den folgenden Umständen die Verbindung zum Controller trennt:

  • Das erste Paket, das der Switch vom Controller empfängt, ist keine Hello-Nachricht.

  • Der Switch empfängt eine Hallo-Nachricht mit einer nicht unterstützten OpenFlow-Version.

  • Die lokale MAC-Adresse kann nicht in die Feature-Antwortnachricht aufgenommen werden.

  • Der Switch erhält 120 Sekunden lang keine Echoantwort oder andere Meldung vom Controller.

  • Die bestehende virtuelle Switch-Konfiguration wird gelöscht oder deaktiviert.

  • Die vorhandene Konfiguration des virtuellen Switches wird geändert. In diesem Fall versucht der Switch nach dem Trennen der Verbindung zum Controller, eine neue Verbindung und Sitzung herzustellen.

  • Der Switch kann die Version und den Typ eines OpenFlow-Pakets nicht im TCP-Puffer verarbeiten.

  • Der Switch kann keine OpenFlow-Nachrichten an den Controller senden, der als tote TCP-Socket-Verbindung behandelt wird.