Dieser Artikel ist Teil unseres Guides: Einführung in Software-defined Networking (SDN)

OpenFlow: Konfigurations-Protokolle OF-Config und OVSDB verstehen

Das OpenFlow-Protokoll lenkt den Netzwerkfluss. Dafür sind allerdings OpenFlow-Konfigurations-Protokolle für Switches und Controller notwendig.

Im Laufe der Zeit werden sich mehrere Möglichkeiten bieten, SDN (Software-defined Networking) zu implementieren. Eine der am häufigsten in Betracht gezogenen Strategien ist im Moment, die Kontrollschicht vom physischen Netzwerk zu entkoppeln. Das Management platziert man dann in einem zentralen Controller

Dieser Controller verwendet OpenFlow als so genanntes Southbound-Protokoll, um spezielle Datenflüsse zwischen den Nodes und dem Netzwerk zu erlauben. Damit lässt sich das Netzwerk präzise programmieren.

OpenFlow verwaltet die Flüsse effizient und bestimmt, welche Pakete zwischen welchen individuellen Quellen und Zielen weitergeleitet werden. Allerdings bietet es nicht die notwendigen Konfigurations- und Management-Funktionen, um Ports oder entsprechende IP-Adressen zuzuweisen. An dieser Stelle treten die OpenFlow-Konfigurations-Protokolle in Erscheinung.

OpenFlow-Konfigurations-Protokolle etablieren die Wechselbeziehung zwischen Controllern und Switches.

In einem herkömmlichen Netzwerk verwenden Anbieter proprietäre Konfigurations- und Management-Methoden. Einige setzen dabei auf SNMP, um die Produkte zu konfigurieren und zu überwachen. Andere verwenden die Kommandozeile, um die jeweiligen Geräte im Netzwerk zu konfigurieren.

Einer der potenziellen Vorteile von SDN ist es, dass man von der Programmierung individueller Switches im Netzwerk Abstand nehmen kann. SDN Controller liefern den Administratoren hingegen eine ganzheitliche Ansicht über alle Komponenten im Netzwerk. 

Somit kann man mithilfe von Policies oder Richtlinien den Traffic in Bezug auf die komplexe Matrix der Geräte lenken. In diesem Szenario definiert OpenFlow den Betriebsfluss der Pakete. Allerdings spezifiziert es keine Switch-Konfigurations-Datenbanken oder ein Management-Protokoll. 

OpenFlow-Konfigurations-Protokolle etablieren die Wechselbeziehung zwischen Controllern und Switches. Damit sind Standard-Konfigurations- und Management-Methoden für Switches möglich. Verwendet man die gleiche Management-Konfiguration, können Netzwerk-Administratoren Switches von beliebigen Anbietern einsetzen. 

Damit sind Sie in der Lage, das beste Gerät für jeden Netzwerk-Standort zu wählen. Nun muss man nur noch die Parameter setzen, die für die Kommunikation zwischen Controllern und Switches erforderlich sind. Derzeit wird an zwei Konfigurations- und Management-Protokollen für OpenFlow-Switches gearbeitet: OF-Config und OVSDB.

Grundlagen zu OF-Config

OF-Config (OpenFlow Management and Configuration Protocol) Version 1.1 wurde im März 2013 ausgegeben. Die Open Networking Foundation (ONF) ist für die Entwicklung verantwortlich. OF-Config wurde entwickelt, um sowohl auf physischen als auch auf virtuellen Switches mit OpenFlow-Implementierungen zu arbeiten.

Das OF-Config-Protokoll adressiert die nachfolgenden Komponenten für das Controller-Switch-Management:

  • OpenFlow-Konfigurations-Stelle oder -Knoten: Die OF-Config-Stelle erteilt OF-Config-Befehle.
  • OpenFlow-fähiger Switch: Ein physischer oder virtueller Switch, der diverse Ports und Queues besitzt.
  • Logischer OpenFlow-Switch: Ein logischer Switch innerhalb des OpenFlow-fähigen Switches, der eine Teilmenge der Ports und Queues zuweist, die einen OpenFlow-fähigen Switch ausmachen.

Die OF-Config-Stelle kann sich auf demselben Server oder Workstation wie der OpenFlow Controller befinden. Eine Möglichkeit ist auch innerhalb eines herkömmlichen Netzwerk-Management-Produkts. Auf jeden Fall sind Konfigurations-Knoten in der Lage, mehrere OpenFlow-fähige virtuelle und physische Switches zu verwalten. 

Eine Konfigurations-Stelle verwaltet möglicherweise mehrere OpenFlow-fähige Switches. Ein solcher Switch wird unter Umständen von mehr als einem Konfigurations-Knoten angewiesen.

Der Konfigurations-Knoten kommuniziert auch mit logischen OpenFlow-Switches, die sich innerhalb eines OpenFlow-fähigen Switches befinden. Genau genommen versorgt die Kontrollstelle jeden logischen Switch mit den IP-Adressen und Port-Nummern des OpenFlow-Controllers, der die individuellen Paketflüsse durch den Switch kontrolliert. 

An dieser Stelle wird auch festgelegt, ob man TCP oder TLS für die Kommunikation zwischen Switch und Controller verwendet. Weiterhin werden Zertifikate für die Kommunikation zwischen Controller und Switch konfiguriert. Jeder logische OpenFlow-Switch arbeitet unabhängig im Hinblick auf die anderen logischen Switches innerhalb des gleichen OpenFlow-fähigen Switches.

Eine Konfigurations-Stelle kann die an einen logischen Switch zugewiesenen Ressourcen erkennen, Tunnel konfigurieren, Port-Parameter setzen, Ports an- und ausschalten und den Status des Switches abfragen. Sie erhält Fehler-Codes von einem Switch, sollte eine Konfigurations-Operation fehlschlagen. Gibt es einen Teilfehler, ist ein Rollback möglich.

Möchte man OF-Config in einem Switch implementieren, muss man dazu die interne Datenbank des Geräts modifizieren und das NETCONF-Protokoll (RFC 6241) implementieren. Nur dann ist eine Kommunikation zwischen Konfigurations-Knoten und Switch möglich. Netconf verwendet für die Konfigurations-Daten und die Protokoll-Nachrichten XML-Enkodierung.

Konfigurations-Daten werden zum Switch gesendet und davon empfangen. Dafür sind RPCs (Remote Procedure Calls) zuständig. Netconf kann komplette oder Teile der Konfigurations-Beschreibungen senden oder empfangen. Weiterhin ist eine asynchrone Benachrichtungs-Vermittlung seitens des Switches möglich.

Netconf ist erweiterbar. Gibt es künftig weitere Leistungsmerkmale in OF-Config, werden diese ebenfalls unterstützt. Konfigurations-Knoten können Switch-Konfigurations-Fähigkeiten empfangen. Aktualisiert man eine Konfigurations-Stelle auf eine höhere OF-Config-Version, ist Unterstützung für einen Switch möglich, auf dem man noch kein Upgrade eingespielt hat.

Die Spezifikation 1.1.1 für OF-Config beinhaltet UML-Diagramme, XML-Beispiele und das komplette XML-Schema, das die Konfigurations-Möglichkeiten definiert.

Grundlagen zu OVSDB-Protokoll: Open vSwitch managen

Das Management-Protokoll OVSDB (Open vSwitch Database) ist eine Komponente des Open-Source-Projekts Open vSwitch. Es wurde speziell entwickelt, um Implementierungen mit Open vSwitch zu managen.

Eine Implementierung für Open vSwitch besteht aus einem Datenbank-Server und einem Switch-Daemon. Ein Cluster Controller beinhaltet Manager und Controller, die das OVSDB-Protokoll verwenden, um Konfigurations-Informationen an den Switch-Datenbank-Server zu kommunizieren. Controller verwenden OpenFlow, um Details des Paket-Flusses durch den Switch zu spezifizieren. Jeder Manager und Controller kann mehrere Switches ansprechen und jeder Switch ist in der Lage, Anweisungen von mehreren Managern und Controllern zu erhalten.

Controller verwenden OpenFlow, um Details des Paket-Flusses durch den Switch zu spezifizieren.

Sie können den Befehl ovs-vsctl verwenden, der in Open vSwitch enthalten ist. Damit starten Sie OSVSDB-Operationen. Die Optionen auf der Kommandozeile weisen darauf hin, welche OVSDB-Operationen sich ausführen lassen. Sequenzen der ovs-vsctl-Befehle verwendet man in der Regel in Skripten oder via Netzwerk-Management-Produkte.

Mithilfe des OVSDB-Protokolls können Manager die Anzahl der individuellen virtuellen Brücken (Bridges) innerhalb einer Open-vSwitch-Implementierung spezifizieren. Sie sind in der Lage, Ports und Tunnel hinsichtlich einer Bridge zu kreieren, zu konfigurieren und zu löschen. Ein Manager kann weiterhin Queues erschaffen, konfigurieren und löschen.

Das OVSDB-Protokoll verwendet JSON (JavaScript Object Notation) als Schema und Wire-Protokoll-Format, sowie JSON-RPC 1.0 als Wire-Protokoll, wie in RFC 4627 spezifiziert. Jeder RPC enthält möglicherweise eine Liste mit Konfigurations-Operationen, fungiert aber als individuelle Transaktion.Die Open-vSwitch-Dokumentation beinhaltet Details zur Konfigurations-Datenbank und der OVSDB-Internet-Entwurf spezifiziert die JSON-RPC-Operationen des Protokolls.

Die Dokumentation zum OVSDB-Protokoll ist schon eine geraume Zeit als Teil der Open-vSwitch-Dokumentation vorhanden. Um die Dokumentation einfacher verfügbar zu machen und diese zu verstehen, haben Mitarbeiter von VMware einen Internet-Entwurf veröffentlicht, der das OVSDB-Protokoll definiert.

Open vSwitch implementiert das OVSDB-Protokoll bereits. Allerdings müssen andere Switch-Anbieter ihre Switch-Konfigurations-Datenbanken modifizieren und JSON plus JSON-RPC implementieren, um OVSDB einsetzen zu können.

Wird sich ein OpenFlow-Konfigurations-Protokoll durchsetzen?

In der Vergangenheit wurde kein OpenFlow-Konfigurations-Protokoll als Standard angenommen. Schlussendlich könnte der Druck von Betreibern sehr großer Netzwerke, die Public oder private Clouds im Einsatz haben, die Anbieter drängen, sich auf einen einzigen Standard zu verständigen.

Über den Autor:
David B. Jacobs hat mehr als 20 Jahre Erfahrung in der Netzwerk-Branche. Er hat hochmoderne Software-Entwicklungsprojekte geleitet und „Fortune 500“-Unternehmen ebenso beraten wie Software-Startups.

Folgen Sie SearchNetworking.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Software-defined Networking

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close