iX 2/2019
S. 58
Review
Software-defined Networking
Aufmacherbild

Eine Übersicht quelloffener SDN-Controller

Weichensteller

Auf der Suche nach dem Gehirn für das intelligente Netzwerk von morgen gilt es, den passenden SDN-Controller zu finden. Das Angebot aus dem Open-Source-Umfeld ist groß und unübersichtlich. Auf welche Projekte lohnt es sich einen genaueren Blick zu werfen?

The next big Thing nach der Virtualisierung von Servern ist das Entkoppeln von konkreten Netzwerkkomponenten und der dazugehörigen Software. Unter dem Schlagwort Open Networking erlaubt dieser Ansatz dem Administrator, das Betriebssystem und die Software zu verwenden, die am besten zu seinem konkreten Anwendungsfall passen. Doch diese neue Freiheit braucht eine Logik, die im Hintergrund die Fäden zieht. Genau hier kommt der SDN-Controller ins Spiel, der als Steuerungszentrale im Netzwerk die Weichen stellt.

Der SDN-Controller als Bindeglied zwischen Anwendungsebene und Infrastrukturebene im Netzwerk (Abb. 1)

SDN steht für Software-defined Networking, ein Begriff, der sich seinerseits in den Bereich Software-defined Everything (SDX) einordnen lässt. Der Ansatz dabei ist, die Hardware von der Software zu trennen. Die Hardware übernimmt nach diesem neuen Paradigma nur noch die Verarbeitung auf der Infrastrukturebene (Forwarding Plane), während die Software für die gesamte Logik und Verwaltung im Hintergrund zuständig ist. So soll ein ganzheitliches System entstehen, das sich flexibel und dynamisch an wechselnde Anforderungen anpasst. Auf Serverebene ist eine solche Abstrahierung durch Virtualisierung in vielen Rechenzentren schon geschehen. SDN soll helfen, nun auch die Netzwerkebene zu virtualisieren.

Gesprächig nach unten und oben

In seiner ursprünglichen Definition stand der Begriff SDN nur für die funktionale Trennung der Control und Forwarding Plane, eine Sichtweise, die durch die Open Networking Foundation geprägt wurde. Sie definiert ein Netzwerk nicht mehr von unten über die Konfiguration der Hardware, sondern von oben über eine zentrale Steuerungssoftware, den SDN-Controller. Der SDN-Controller übernimmt in diesem Szenario die Logik, indem er den Flow des Netzwerkverkehrs über die Forwarding Plane (die Router und Switches) steuert. Die Kommunikation zwischen Controller und Hardware erfolgt über die sogenannte Southbound API. Sie verläuft in den allermeisten Systemen über das Protokoll OpenFlow, das sich bei Herstellern im SDN-Bereich als Quasistandard etabliert hat und inzwischen weit verbreitet ist.

Neben der Southbound API für die Kommunikation „nach unten“ verfügt ein SDN-Controller auch über eine Northbound API. Sie steuert die Kommunikation des Controllers mit der Anwendungsebene. Eine SDN-Anwendung kann spezielle Anforderungen an das System bedienen, beispielsweise die bedarfsgesteuerte Erhöhung der Bandbreite für eine Backup-Anwendung. Mittlerweile halten Begriffe wie Intent-based Networking (IBN) und Network Function Virtualization (NFV) Einzug in die Definition von SDN, sodass der Begriff zunehmend unschärfer wird.

Technisch gesehen verfügen OpenFlow-Switches über Flow Tables, in denen sogenannte Matches eingetragen sind. Matches definieren mögliche Zustände eingehender Pakete auf dem Switch und legen fest, wie die Pakete weiterverarbeitet oder -geleitet werden. Dabei können die Prüfungskriterien vielfältig sein, sodass sich mit OpenFlow-Einträgen Weiterleitungsentscheidungen auf Layer 2, Layer 3 und Layer 4 des OSI-Modells treffen lassen. Wird ein Paket auf die MAC-Adresse, ein VLAN oder einen Quell-/Ziel-Port geprüft, kann also geswitcht, geroutet und gefiltert werden.