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)

Tutorial: Erste Schritte

Als Java-Anwendung läuft Floodlight in einer Java-VM und steht somit auf praktisch allen Betriebssystemen zur Verfügung. Für viele gängige Linux-Distributionen wie beispielsweise Ubuntu ist oftmals sogar ein Release in den Repositories vorhanden. Darüber hinaus steht auf der Projekt-Homepage ein vorkonfiguriertes Virtual Machine Image zum Download bereit. Durch die rapide Weiterentwicklung von Floodlight empfiehlt es sich jedoch, die neueste Version von GitHub oder Nightly Builds zu installieren. Diese erwiesen sich in der Vergangenheit als äußerst stabil und beheben bereits eine Reihe von Bugs der alten Releases.

Am einfachsten lässt sich Floodlight unter Linux (etwa Ubuntu) installieren. Hierzu sollte neben einer Java-Umgebung ein Git-Client, Python und Apache Ant vorhanden sein. Um Floodlight unter Linux von GitHub zu laden und zu übersetzen, genügen die folgenden Befehle:

$ git clone git://github.com/floodlight/floodlight.git
$ cd floodlight
$ git checkout stable
$ ant

Konfigurieren lässt sich Floodlight über Java-Properties-Dateien. Unter »./src/main/resources/floodlightdefault.properties« finden sich die Standardeinstellungen wie Port-Einstellungen und die Applikationsmodule, welche automatisch geladen werden. Vor einem ersten Test empfiehlt es sich, das einfache »net.floodlightcontroller.forwarding.Forwarding« -Modul durch das performantere »net.floodlightcontroller.learningswitch.LearningSwitch« -Modul zu ersetzen. Anschließend lässt sich Floodlight mit

$ java -jar target/floodlight.jar

starten und es erwartet fortan die Verbindung von OpenFlow-Switches.

Steht gerade keine OpenFlow-fähige Hardware zur Verfügung, lässt sich mit der freien Software MiniNet ein OpenFlow-Netzwerk simulieren. Hier empfiehlt sich ebenfalls die Installation von GitHub:

$ git clone git://github.com/mininet/mininet
$ mininet/util/install.sh -a

Die Prozedur dauert circa fünf Minuten und installiert alle MiniNet-Komponenten inklusive des OpenFlow-Software-Switches »Open vSwitch« , einem Wireshark-Dissector zum Analysieren von OpenFlow-Nachrichten mit Wireshark und POX, einem in Python geschriebenen weiteren OpenFlow-Controller.

Zum Starten von MiniNet mit einer minimalen Topologie, die zwei Hosts über einen OpenFlow-Switch verknüpft und eine Verbindung zu einem externen Floodlight-Controller aufnimmt, genügt:

$ sudo mn --topo=minimal --controller=remote--ip=<controller ip> --port=<openFlowPort 6633 by default>

Sogleich verbindet sich MiniNet mit Floodlight und schon hat man ein kleines Software Defined Network zum Ausprobieren und Testen.

Für weitere Hilfe oder Informationen zu Floodlight empfiehlt sich ein Blick auf die (englischsprachige) Homepage des Projekts [1] . Darüber hinaus steht über die Mailingliste eine große Entwickler-Community jederzeit hilfsbereit zur Seite.

Fazit

Der Floodlight-OpenFlow-SDN-Controller bietet bereits eine beeindruckende Leistung und eine Menge an Applikationen. Darüber hinaus entstehen in der Open-Source-Community weitere interessante Lösungen beispielsweise für effizientes Handover in drahtlosen Netzen, Multipath- und In-Network-Load-Balancing, Application Aware Traffic Engineering oder BYOD. Dabei ermöglicht Software Defined Networking eine schnelle, hardwareübergreifende und vor ahllem kostengünstige Möglichkeit auch für eigene Implementierungen von Netzwerk-Management-Lösungen. Das Floodlight-Projekt zeigt eindrucksvoll, welches Potenzial Software Defined Networking hat.

Zum Einsatz von Floodlight in einer produktiven Umgebung fehlen jedoch noch einige entscheidende Punkte. So bietet Floodlight bisher nur ein sehr eingeschränktes Konfigurationsmanagement. Praktisch alle Konfigurationsinformationen werden ausschließlich im Speicher vorgehalten und sind bei einem Neustart des Controllers verloren. Ebenso fehlt bisher ein Hochverfügbarkeitsmechanismus. Fällt der Controller aus, liegt vor allem bei der Verwendung reaktiver Applikationen schnell das gesamte Netzwerk lahm. Auch die bisher verfügbaren Applikationen stecken zum Teil noch in den Kinderschuhen und erlauben mitunter nur eine eingeschränkte Funktionalität.

Dennoch eignet sich Floodlight hervorragend, um mit Software Defined Networking in Kontakt zu treten und kostengünstig erste Erfahrungen zu sammeln. In Kombination mit der ebenfalls kostenlos erhältlichen MiniNet-Software und Open vSwitch bedarf es nicht einmal realer Hardware, um erste Versuche zu unternehmen und eigenes Know-how aufzubauen. Noch stehen SDN und OpenFlow – und somit auch OpenFlow-Controller wie Floodlight – am Anfang. Dennoch lässt sich absehen, dass sie die Zukunft von Kommunikationsnetzen weitreichend verändern werden.

Infos

  1. OpenFlow-Projekt: http://www.projectfloodlight.org
comments powered by Disqus
Mehr zum Thema

Virtuelle Switche mit Open vSwitch

Open vSwitch implementiert in Software einen Netzwerk-Switch, der die meisten im Rechenzentrum nützlichen Funktionen bereitstellt. Damit lassen sich virtuelle Maschinen ohne großen Aufwand zu virtuellen Netzen verschalten. Für komplexe Anwendungen von Software-defined Network-ing unterstützt die Software auch das OpenFlow-Protokoll.
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