# OpenFlow

OpenFlow ist ein Kommunikationsprotokoll, das Zugriff auf die Hardwarekomponenten eines Switches oder Routers liefert, welche die Verarbeitung eintreffender Netzwerkpakete durchführen (die sogenannte Forwarding Plane).

## Ansätze

Die Open Networking Foundation (ONF), eine Anwenderorganisation, die sich der Verbreitung und Implementierung von Software-defined networking (SDN) und SDN-Protokollen widmet, verwaltet den OpenFlow-Standard. Die ONF definiert OpenFlow als erste standardisierte Kommunikationsschnittstelle zwischen der Kontroll- und der Weiterleitungsebene einer SDN-Architektur. OpenFlow erlaubt direkten Zugriff auf die Forwarding Plane eines Switches oder Routers, und zwar sowohl physisch als auch virtuell (Hypervisor-basiert). Weil eine solche offene Schnittstelle in klassischen Netzwerkgeräten fehlt, werden diese häufig als monolithisch, geschlossen und Mainframe-ähnlich charakterisiert. Stattdessen verfolgt OpenFlow den Ansatz, die Steuerung des Netzwerks aus den Geräten hinaus in eine logisch zentralisierte Software zu verlagern. Es gibt kein anderes Protokoll, das ähnliche Ansätze verfolgt.
Einfacher gesagt, erlaubt OpenFlow, den Weg, den Pakete durch das Netzwerk nehmen, von einer Software bestimmen zu lassen, die auf mehreren Routern läuft. Mindestens zwei von ihnen haben die Rolle eines primären bzw. sekundären Observers. Die Trennung der Kontrollebene von der Weiterleitungsebene ermöglicht durch die Nutzung von Access Control Lists (ACLs) und von Routing-Protokollen ein komplexeres Management der Datenströme. Seine Erfinder betrachten OpenFlow als Technik, die Software-Defined Networking ermöglicht.

## Versionen

Die erste Version war die OpenFlow Version 0.2.0, welche im März 2008 veröffentlicht wurde. Version 0.8.2 wurde im Oktober 2008 veröffentlicht. Diese wurde um Echo Anforderung und Echo Antwort Mitteilungen erweitert. Im Dezember 2008 kam dann Version 0.8.9, welche um IP Netzmasken und erweiterte Statistikinformationen erweitert wurde. OpenFlow 0.9 wurde im Juli 2009 veröffentlicht. Letztlich im Dezember 2009 wurde die weit verbreitete Version 1.0 publiziert. Version 1.1 von OpenFlow wurde am 28. Februar 2011 freigegeben. Die Weiterentwicklung wird von der Open Networking Foundation (ONF) verwaltet.
Im Dezember 2011 bestätigte der ONF-Vorstand die Version 1.2 und veröffentlichte sie im Februar 2012. Es folgte im Juni 2012 Version 1.3.0. und im Oktober 2013 Version 1.4.0
Aktuellste Version ist offenbar OpenFlow Version 1.5.1 (26. März 2015).

## Kompatible Hard- und Software

Einige Netzwerkswitch- und -routeranbieter haben angekündigt, Switches mit OpenFlow anzubieten oder zu unterstützen, darunter Allied Telesis, Arista Networks, Big Switch Networks, Brocade Communications, Cisco, Dell Force10 Networks, Extreme Networks, Hewlett-Packard, IBM, Juniper Networks, Larch Networks, MikroTik, NEC, uvm. Einige Routing-Control-Plane-Implementierungen benutzen das Protokoll, um die Weiterleitungskomponenten zu verwalten. Normalerweise wird OpenFlow zwischen Switch und Controller auf einer separaten, gesicherten Verbindung übertragen.
Die Indiana University eröffnete in Zusammenarbeit mit der ONF im Mai 2011 ein SDN Interoperability Lab, um zu testen, wie gut SDN- und OpenFlow-Produkte verschiedener Hersteller zusammenarbeiten.
Im Februar 2012 veröffentlichte Big Switch Networks das Project Floodlight, ein Open Source OpenFlow Controller unter Apache-Lizenz, und kündigte seine OpenFlow-basierte SDN-Suite für November jenes Jahres an, die einen kommerziellen Controller, virtuelles Switching und Anwendungen zur Überwachung von Taps enthält.
Im Februar 2012 teilte HP mit, den Standard in 16 seiner Ethernet-Switch-Produkte zu unterstützen.
Im Januar 2013 stellte NEC einen virtuellen Switch für Microsofts Hyper-V auf Windows Server 2012 vor, der OpenFlow-basiertes SDN und Netzwerkvirtualisierung in entsprechende Microsoft-Umgebungen bringen soll.

## Einsatzgebiete

Im April 2012 beschrieb Urs Hölzle von Google, wie das interne Netzwerk der Firma innerhalb von zwei Jahren komplett umgebaut wurde, um mit OpenFlow erhebliche Leistungsverbesserungen zu erzielen.