Der ADMIN 05/13 wirft einen Blick auf die frei verfügbaren Cloud-Frameworks von Eucalyptus über OpenNebula bis OpenStack. Gute Aussichten für skalierbare ... (mehr)

Floodlight-OpenFlow-Controller

Floodlight ist ein in Java geschriebener, hoch performanter Open-Source-OpenFlow-Conroller. Er wurde auf der Basis von Beacon, einem experimentellen OpenFlow-Controller der Universität Standford, entwickelt und wird heute von einer großen Entwickler-Community unterstützt. Mit BigSwitch Networks steht hinter Floodlight auch eine Firma, die kommerzielle Lösungen vorrangig für Rechenzentren anbietet.

Derzeit implementiert Floodlight die OpenFlow-Version 1.0 und arbeitet mit allen Switches, Routern, virtuellen Switches und Accesspoints zusammen, die diese Version ebenfalls unterstützen. Floodlight ist unter der Apache-Lizenz veröffentlicht und stellt neben dem Kontroll-Framework zum Steuern der Netzwerkkomponenten mittels OpenFlow auch eine Reihe von Netzwerkapplikationen zur Verfügung. Das Bereitstellen dieser Applikationen ist der eigentliche Fokus von Floodlight.

Floodlight-Architektur

Floodlight bietet eine Reihe von Funktionen und Abstraktionen zum Steuern eines OpenFlow-Netzwerks. Dem dient eine modulare Architektur der Controller-Features sowie eine Reihe von eng an den Controller gebundenen Basis-Applikationen (Abbiuldung 2). Zum optimalen Ausnutzen der Ressourcen aktueller Multiprozessorsysteme greift Floodlight dabei auf Multi-threading zurück und ist so in der Lage, mehrere Millionen neuer Flows pro Sekunde zu verarbeiten.

Abbildung 2 zeigt die grundsätzliche Architektur und die Relationen zwischen einzelnen in Java geschriebenen Modulen des Floodlight-Controllers sowie die RESTfull-Northbound-API zum Anbinden externer Applikationen.

Die Westbound-Java-API erlaubt die Entwicklung eigener Module in Java und die schnelle Anbindung an den Core-Controller. Diese werden beim Start des Floodlight-Controllers über ein eigenes Modulsystem automatisch unter Berücksichtigung ihrer Abhängigkeiten geladen und stehen fortan zur Verfügung. So kann man den vollen Funktionsumfang des Controllers und der OpenFlow-API nutzen und zeitnah auf Ereignisse im Netz, wie beispielsweise das Auftauchen neuer Pakete oder eines neuen Flows, reagieren. Man spricht daher auch von reaktiven Applikationen.

Die Northbound-REST-API erlaubt darüber hinaus das Anbinden externer Applikationen in einer beliebigen Sprache mittels JSON. Im Vergleich zur Java-API ist die REST-API jedoch relativ langsam. Ein Reagieren auf Events in Echtzeit ist damit nicht möglich. Stattdessen erlaubt sie neben dem Abfragen von Service- und Statusinformationen beispielsweise die A-priori-Installation von OpenFlow-Regeln durch externe Applikationen. Diese nennt man auch proaktive Applikationen. Eine der Standardanwendungen, die auf die REST-API setzt, ist das Floodlight-eigene GUI ( Abbildung 3 ). Darüber hinaus existieren ein in Python geschriebener Circuit Pusher, welcher automatisch dauerhafte OpenFlow-Regeln für die Verbindung zwischen zwei IP-Adressen installiert.

Abbildung 3: Das Floodlight-GUI stellt alle wichtigen Informationen bezüglich des OpenFlow-Netzwerks dar. So erfährt man den Status der Switche sowie der verbundenen Endgeräte. Auch die automatisch erkannte Netzwerktopologie lässt sich graphisch darstellen.
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023