Suchen

Definition Was ist OpenFlow?

Bei OpenFlow handelt es sich um ein Kommunikationsprotokoll im Umfeld des Software-Defined Networkings (SDN). Mit OpenFlow ist es möglich, auf die Control Plane eines Routers oder eines Switches zuzugreifen und die Weiterleitung von Paketen zu steuern.

(© aga7ta - Fotolia)

OpenFlow verfolgt das Grundprinzip bei Netzwerkelementen wie beispielsweise Routern oder Switches, die Kontrollebene (Control Plane) von der Weiterleitungsebene (Forwarding Plane) zu trennen. Dadurch lässt sich die Steuerlogik des Netzwerks in einen externen Controller verlagern. Die Weiterleitung von Paketen steuert nicht mehr der Router oder der Switch, sondern die Anwendung im Controller.

Im Gegensatz zu herkömmlichen Netzwerken mit proprietären Endgeräten und verteilter Intelligenz entsteht ein Software-Defined Network, in dem die Netzwerkarchitektur von Anwendungen definier- und steuerbar wird. Die logische Steuerung des Netzwerks übernimmt eine zentralisierte Software.

Verwaltet wird der Standard von der Open Networking Foundation (ONF), die sich um die Weiterentwicklung und Verbreitung des Software-Defined Networkings und die verschiedenen SDN-Protokolle kümmert. Die Ursprünge von OpenFlow liegen allerdings bei der Stanford University. Die erste Version des Protokolls 0.2.0 erschien bereits im Jahr 2008. Version 1.0 wurde Ende 2009 veröffentlicht.

Bis zur Version 1.1 sind die Spezifikationen auf https://www.ip-insider.de/redirect/605856/aHR0cDovL2FyY2hpdmUub3BlbmZsb3cub3JnLw/35b2a4d098fd59d57ee44f185ba59edd79b77c2a6bcde5d0b96591ff/article/ einsehbar. Ab der Version 1.2 verwaltet die Open Networking Foundation (ONF) die Weiterentwicklung. Die Spezifikationen für 1.2, 1.3 und 1.4 sind deshalb nicht mehr auf http://archive.openflow.org/ zu finden, sondern über https://www.ip-insider.de/redirect/605856/aHR0cHM6Ly93d3cub3Blbm5ldHdvcmtpbmcub3JnL3Nkbi1yZXNvdXJjZXMvdGVjaG5pY2FsLWxpYnJhcnk/9e05c19e935e5c642c198a173a3a0c8f56e5cb9b6f400bbf6f06fed4/article/ abrufbar.

Die Vorteile von OpenFlow im Software-Defined Networking

Mit OpenFlow lassen sich Netzwerk-Ressourcen effektiver einsetzen und zentralisiert steuern. Die Segmentierung der Netzwerke durch proprietäre Hard- und Software mit auf einzelnen Geräten verteilter Intelligenz kann aufgebrochen und durch eine einheitliche zentrale Steuerlogik auf Anwendungsebene ersetzt werden. Das Netz wird flexibler, agiler und ist einfacher an die sich verändernden Anforderungen anpassbar.

Hinzu kommen diverse Spareffekte durch den Einsatz von herstellerübergreifenden Systemen. Sämtlicher Traffic im Netzwerk ist beliebig kontrollierbar, wesentlich einfacher zu managen und leichter zu planen. Es entsteht ein in sich konsistentes Netz, da keine Netzwerkgrenzen und Inkompatibilitäten mehr durch unterschiedliches Equipment verschiedener Hersteller auftreten.

Da es sich bei OpenFlow um einen offenen Standard handelt, der von vielen großen Herstellern unterstützt wird, ist Hardware grundsätzlich leichter austausch- und ersetzbar. Selbst experimentelle Protokolle lassen sich alleine durch die Anpassung der Steuerlogik des Controllers realisieren, ohne dass spezifische Funktionen von einzelnen Herstellern in ihren Geräten aufwendig implementiert werden müssen. Der Weg, den Pakete durch ein Netzwerk nehmen, bestimmt die zentrale Steuerlogik der Software, die alle Router und Switche gleichzeitig steuert.

Der Flow-Mechanismus zur Weiterleitung von Paketen

Beim Software-Defined Networking bezeichnet man die Pfade zwischen einzelnen Netzwerkknoten, die die Datenpakete auf ihrem Weg durch das Netz nehmen, oft auch als Flows. Sie kennzeichnen den Weg der Pakete vom Sender bis zum Empfänger. Die Tabellen zur Steuerung der Flows lassen sich dynamisch vom Controller aus anlegen.

In einem herkömmlichen Switch entstehen die Forwarding-Tabellen, die die Zielports der Datenpakete bestimmen, durch einen immer gleichen Algorithmus. Der Switch wertet die Quell-MAC-Adresse der eingehenden Pakete aus und trägt sie mit dem zugehörigen Eingangsport in die Forwarding-Tabelle ein. Um den Zielport für die Ziel-MAC-Adresse eines Pakets zu ermitteln, schlägt er diesen in seiner Forwarding-Tabelle nach. Findet er einen Eintrag, schickt er das Paket an den Port weiter. Ist kein Eintrag vorhanden, schickt der Switch das Paket in Form eines Broadcasts an alle Ports.

Mit OpenFlow ist es möglich, diesen grundsätzlichen Forwarding-Mechanismus zu erweitern, indem zusätzliche Felder in der Forwarding-Tabelle ergänzt werden. Über diese Felder lässt sich die Weiterleitung von Paketen extern beeinflussen und steuern. Es entstehen Flows von Paketen, die aufgrund identischer Headerbits und der spezifischen Felder in der Forwarding-Tabelle gleiche Wege durch das Netzwerk nehmen. Anstelle des einfachen, selbstlernenden Switchalgorithmus treten beliebig durch die zentrale Software definierbare Regeln zur Weiterleitung von Paketen.

Beispielsweise können Router und Switches durch die Steuerlogik so programmiert werden, dass Server optimal ausgelastet oder Verkehrsströme umgeleitet und Staus vermieden werden. Zusätzlich gestattet es OpenFlow, Access Control Lists (ACLs) zu verwenden und die Datenströme mit diesen zu managen.

Einordnung von OpenFlow im Software-Defined Networking

Ein Software-Defined Network kann in eine Daten- und in eine Steuerebene aufgeteilt werden. OpenFlow ermöglicht es, die Trennung von Daten- und Steuerebene außerhalb eines Switches oder eines Routers zu vollziehen.

Eine im Controller angesiedelte Steuer- und Verwaltungsinstanz kontrolliert die Forwarding Plane der Datenebene und bestimmt den Weg der Datenpakete vom Sender zum Empfänger. OpenFlow lässt ein standardisiertes Netzwerk entstehen, bei dem der Controller seine Router und Switches anweist, wie Datenpakete weiterzuleiten sind. Der Controller definiert die Netzwerkpfade (Flows). Die Kommunikation zwischen Open-Flow-Switches und -Routern und dem Controller erfolgt gesichert über eine Secure-Socket-Layer-Verbindung (SSL).

Northbound und Southbound Interface

Im Umfeld des Software-Defined Networkings und des OpenFlow-Protokolls werden häufig die Begriffe Northbound Interface und Southbound Interface verwendet. Um diese Begriffe zu verstehen, müssen die jeweiligen Komponenten in einem hierarchisch gegliederten Diagramm betrachtet werden.

Die Elemente der hierarchisch obersten Ebene stehen in diesem Diagramm ganz oben, die darunter angesiedelten folgen unterhalb. Beispielsweise ist ein Controller im Software-Defined Networking oberhalb des physikalischen Netzwerks der Switches und Router und unterhalb des SDN-Service-Layers angesiedelt.

Die Interface des Controllers in Richtung SDN-Service-Layer sind seine Northbound Interfaces und die Richtung physikalischem Netz seine Southbound Interfaces. Aus Sicht eines Routers bezeichnet das Northbound Interface das Interface, das per OpenFlow mit dem Controller kommuniziert und im Software-Defined Network die Forwarding Plane von der Control Plane trennt.

OpenDaylight

Bei OpenDaylight handelt es sich um ein Open Source Projekt namhafter Netzwerkausstatter. Zu den Teilnehmern des Projekts zählen zum Beispiel Cisco, IBM, Microsoft, Brocade, Juniper, Citrix oder Red Hat. OpenDaylight wurde 2013 ins Leben gerufen und verfolgt das Ziel, offene, standardisierte SDN-Controller zu entwickeln.

Seit 2014 steht eine vollständige SDN-Software-Distribution zur Verfügung, die den Aufbau einer kompletten SDN-Infrastruktur erlaubt. Die OpenDaylight Software ist in der Programmiersprache Java geschrieben. Für die Anbindung von externen Systemen sind Plugins vorgesehen. Diese sind für alle wichtigen Protokolle im SDN-Umfeld wie beispielsweise auch für OpenFlow erhältlich.

Damit unterstützt OpenDaylight OpenFlow und ermöglicht mit Hilfe dieses Kommunikationsprotokolls die Steuerung von Switches und Routern von der zentralen Control Plane (Controller) aus. In das OpenDaylight-basierte SDN lassen sich OpenFlow-fähige Netzwerkgeräte dank der Plugins problemlos integrieren.

Hybrider OpenFlow-Ansatz

OpenFlow ist mittlerweile von vielen Herstellern implementiert. Sie bieten Hardware wie Router und Switches an, die OpenFlow-fähig sind, aber auch herkömmliche Weiterleitungsmechanismen beherrschen. Geräte, die beide Ansätze integrieren, werden oft als hybride Geräte bezeichnet.

Zusätzlich kann bei den Geräten unterschieden werden, ob der Switch die verschiedenen Weiterleitungsmechanismen nach einzelnen Portgruppen beherrscht oder ob beide Arten von Traffic-Steuerung über jeden einzelnen Port möglich sind. Dank OpenFlow als Option für einzelne Ports, VLANS oder Trunkverbindungen ist ein Betreiber eines großen Rechenzentrums in der Lage, seine Netzwerke fast nach Belieben aufzusplitten. Unterschiedliche Kundennetze lassen sich dynamisch auf der Plattform betreiben und gleichzeitig ist in anderen Netzsegmenten das Routing des Traffics auf herkömmliche Art möglich.

(ID:44676131)

Über den Autor