Software Defined Networking
SDN-Praxis mit Controllern und OpenFlow
Konstantin Agouros
Software Defined Networking (SDN) stellt einen ziemlichen Paradigmenwechsel im Netzwerkumfeld da. Heutige Netzwerke werden nach wie vor relativ statisch konfiguriert. Es gibt dynamische Routingprotokolle die dafür geschaffen wurden, Ausfälle zu erkennen und den Verkehr dann über andere Wege zu leiten. Den richtigen Lösungsweg zu finden, stellt sich aber teilweilse sehr komplex dar. Außerdem werden die Geräte (Router, Switche, Firewalls) in der Regel einzeln konfiguriert. Einen neuen Datenpfad zu schaffen, erfordert daher von den Administratoren viele einzelne Arbeitsschritte, ein Fehler in einem dieser Schritte (z.B. ein Tippfehler in einer IP-Adresse) und der ganze Pfad funktioniert nicht. Netzwerkgeräte haben in der Regel eine sogenannte Control Plane, welche die Steuerung übernimmt (welche Daten sollen wo lang fließen) und die Data Plane in welcher (häufig mit Hardwarebeschleunigung) aufgrund der Regeln der Control Plane die eigentlichen Daten fließen. Jedes Netzwerkgerät besitzt in der Regel eine eigene Control Plane und muss deswegen einzeln konfiguriert werden. Die Idee hinter SDN ist nun, die Control Plane zu zentralisieren. Erst Konzepte stammen so etwa aus dem Jahr 2005 aus den USA. Ein zentraler Controller kann wesentlich „intelligentere“ Entscheidungen treffen, da er den Zustand des Gesamtnetzwerkes kennt. Über ein Steuerprotokoll kann er dann den Geräten Anweisungen geben, welche Pakete über welchen Pfad weiterzuleiten sind. Damit sind wesentlich komplexere Entscheidungen möglich und auch das schnelle Umleiten von Verkehr ist möglich. Das momentan marktführende Protokoll heißt OpenFlow und und wird von der Open Networking Foundation weiterentwickelt. Das wirklich interessante dabei ist, das in den neueren OpenFlow Versionen die Trennung der ISO-Schichten 2 – 4 eigentlich aufgeweicht wird und auch dies dazu beiträgt, dass durch komplexere Entscheidungen möglich sind. Die Controller erlauben es, eigene Programme über ein Programmier-Interface einzuklinken und damit kann sich der Netzwerkadministrator vom statischen Netzwerk der Vergangenheit verabschieden und das Netzwerk wirklich programmieren. Das Buch soll nach einer Einführung in die Theorie, die sich aber auf ein Kapitel SDN allgemein (viele Hersteller verkaufen unter SDN nur eine leicht flexiblere Konfigurierbarkeit Ihrer Komponenten) und einem Kapitel, welches den OpenFlow Standard erklärt (in seinen verschiedenen Versionen) dem Leser das Thema praktisch näherbringen. Dazu wird gezeigt, wie nur durch das „einschieben“ von Flows Regeln auf OpenFlow fähige Geräte gebracht werden können. Ein Kapitel wird sich mit den Möglichkeiten bzw. Limitierungen tatsächlich OpenFlow fähiger Geräte beschäftigen. Und schließlich führen wir in die APIs der beiden Controller Floodlight und OpenDayLight ein, damit der Leser danach seine eigenen Ideen mit diesen APIs umsetzen kann, um das eigene Netzwerk zu Programmieren.