# Open vSwitch

Open vSwitch ist eine Freie Software zur Virtualisierung von Multilayer-Switches, die unter der Schirmherrschaft der Linux Foundation entwickelt wird. Die Software bietet Unterstützung für verschiedene Hypervisoren wie KVM und Xen und wird unter anderem vom Cloud-Computing-Softwarestack OpenStack verwendet.
Der Quelltext kann über das offizielle Repository auf GitHub bezogen werden und ist überwiegend in C geschrieben. Die Software steht unter der Apache-Lizenz 2.0 und darf daher frei kopiert, verwendet und verändert werden. Die erste noch verfügbare Version (0.90.4) wurde im Juli 2009 veröffentlicht.
Das Ziel von Open vSwitch ist die Netzwerkautomatisierung in großem Maßstab und es wird in teilweise sehr großen Produktionsumgebungen verwendet. Gleichzeitig werden verbreitete Schnittstellen und Protokolle zur Steuerung und Überwachung des Netzwerkverkehrs unterstützt, beispielsweise Netflow, sFlow, RSPAN und LACP.
Seit 2014 findet jährlich die Open vSwitch Fall Conference, kurz OVSCon statt. Die Vorträge sind überwiegend sowohl als PDF als auch als Videomitschnitt auf der offiziellen Website verfügbar.

## Geschichte
### Vorläufer

Erste Entwicklungen im Vorfeld begannen im Jahr 2006 an der Stanford University um Martìn Casado mit Ethane, einer Flow-basierten Netzwerk-Architektur, und dem sich daraus ab 2008 entwickelnden OpenFlow-Protokoll. Der Name Open vSwitch findet erstmals 2009 Verwendung und kurz darauf entstehen die offizielle Mailingliste und das Quelltext-Repository. Aus diesem Jahr stammt auch die erste über die offizielle Website noch verfügbare Version von Open vSwitch.

### Open vSwitch

Noch 2009 wird das Open vSwitch Database Management Protocol implementiert. Ab 2010 wird OpenFlow 1.0 unterstützt und noch im selben Jahr erscheint Version 1.0 von Open vSwitch. Federführend in der Entwicklung ist zunächst die Firma Nicira, welche 2012 von VMware aufgekauft wird. 2016 wird Open vSwitch Linux Foundation Project. Zu diesem Zeitpunkt zählt das Projekt bereits über 300 Beitragende aus verschiedenen Firmen wie Cisco, Ericsson, Huawei, HP, IBM, Intel, Red Hat und VMware.

## Funktionsumfang

Open vSwitch unterstützt folgende Features:
* Einsicht in Inter-VM-Kommunikation via NetFlow, sFlow(R), IPFIX, SPAN, RSPAN, und GRE-getunnelte Spiegel
* LACP (IEEE 802.1AX-2008)
* Standard-802.1Q-VLAN mit Trunking
* Multicast-Snooping
* IETF-Auto-Attach-SPBM und rudimentäre benötigte LLDP-Unterstützung
* BFD und 802.1ag-Link-Monitoring
* STP (IEEE 802.1D-1998) und RSTP (IEEE 802.1D-2004)
* Feine QoS-Kontrolle
* Unterstützung für HFSC qdisc
* VM-weises Interface-Traffic-Policing
* NIC-Bonding mit Source-MAC-Loadbalancing, Active-Backup und L4-Hashing
* OpenFlow-Unterstützung (inklusive vieler Erweiterungen für Virtualisierung)
* IPv6-Unterstützung
* Mehrere Tunneling-Protokolle (GRE, VXLAN, STT und Geneve, mit IPsec-Unterstützung)
* Protokoll zur entfernten Konfiguration mit C- und Python-Bindings
* Kernel- und Userpace-Optionen der Forwarding-Engine
* Multi-Table-Forwarding-Pipeline mit Flow-Caching-Engine
* Abstraktion der Forwarding-Ebene zur Vereinfachung der Portierung auf neue Software- und Hardwareplattformen

## Anwendung und Bedeutung

Open vSwitch ist seit Kernelversion 3.3, also seit 2012, Bestandteil des offiziellen Linux-Kernels und ist integraler Bestandteil vieler Virtualisierungslösungen, insbesondere im FLOSS-Bereich. So nutzt zum Beispiel XenServer die Software als Standard-Switch und auch OpenStack bietet Open vSwitch als eins von mehreren verfügbaren Netzwerk-Backends an.
Open vSwitch stellt in vielen Umgebungen eine unverzichtbare Komponente für das Software-defined Networking dar. Andere virtuelle Switche mit ähnlichem Funktionsumfang sind ausschließlich unter proprietärer Lizenz erhältlich. Deshalb ist Open vSwitch ein wichtiger Teil freier Virtualisierungslösungen, besonders in komplexen Umgebungen, wie sie beim Cloud-Computing zu finden sind.