Vernetzung virtueller Umgebungen Open vSwitch – Das kann der Open-Source-Netzwerk-Switch

Autor / Redakteur: Thomas Joos / Dipl.-Ing. (FH) Andreas Donner

Mit „Open vSwitch“ lassen sich virtuelle Netzwerk-Switches erstellen, die virtuelle Server auf die gleiche Weise vernetzen können, wie physische Netzwerk-Switches die physischen Server. Open vSwitch ist Teil des Linux-Kernels.

Mit dem von der Linux Foundation betriebenen Open-vSwitch-Konzept (OvS) lassen sich virtuelle Netzwerkswitches für virtuelle Netze aufbauen.
Mit dem von der Linux Foundation betriebenen Open-vSwitch-Konzept (OvS) lassen sich virtuelle Netzwerkswitches für virtuelle Netze aufbauen.
(Bild: OvS / Linux Foundation / VMware)

Open vSwitch stellt auf Softwarebasis Funktionen zur Verfügung, die alles abdecken, was ein Switch in einem Netzwerk erfüllen muss. Dabei werden nahezu alle Funktionen unterstützt, die auch Hardware-Switches beherrschen. Es handelt sich dabei um einen der wichtigsten Standards bei virtuellen Netzwerken, vor allem im Open-Source-Bereich. Die Software ist in C geschrieben.

Open vSwitch ist unter der Apache 2.0 lizenziert. Open vSwitch kann aber nicht nur zur Vernetzung von virtuellen Umgebungen genutzt, sondern auch zusammen mit physischen Servern eingesetzt werden. Neben Layer 2-Aufgaben lassen sich auch Layer 3-Aufgaben erfüllen.

Bildergalerie

Dies ermöglicht in Zusammenhang mit Linux das Erstellen von komplexen Netzwerkkonfigurationen auf Softwarebasis mit Bordmitteln. Zu den wichtigsten Funktionen gehören Switching, Routing, Tunneling, LACP, Libvirt-Integration und VXLAN. Tunnel können dabei miteinander verbunden werden, ohne VXLAN nutzen zu müssen. Open vSwitch ermöglicht bereits auf Ebene von Layer 2 eine ACL-Steuerung, um Berechtigungen für den Netzwerkverkehr zu steuern.

Einstieg in Open vSwitch

Open vSwitch (OvS) unterstützt dabei Funktionen, die auch in komplexen Netzwerk-Switches in großen Umgebungen zur Verfügung stehen. Unterstützt werden zudem zahlreiche Schnittstellen und Protokolle, zum Beispiel „NetFlow“, „sFlow“, „IPFIX“, „RSPAN“, „CLI“, „LACP“ und „802.1ag“.

Ein Schwerpunkt von Open vSwitch liegt in großen Rechenzentren. Daher ist es auch möglich, virtuelle Switches über mehrere Hosts und sogar Rechenzentren zu spannen.

Die im Linux-Kernel integrierte Netzwerksoftware wird zum Beispiel von OpenStack zur Vernetzung genutzt. Viele andere virtuelle Systeme setzen bei der Vernetzung ebenfalls auf Open vSwitch. So wird OvS wird auch in „XenServer“, der „Xen-Cloud“-Plattform sowie „KVM“, „Proxmox VE“ und „VirtualBox“ genutzt.

Weitere Systeme, die auf Open vSwitch setzen sind „openQRM“, „OpenNebula“ und „oVirt“. Die Installation kann über Pakete in „Ubuntu“, „Debian“, „Fedora“ und „openSuse“ installiert werden. Open vSwitch wird auch unter „FreeBSD“ und „NetBSD“ unterstützt.

Mit Open vSwitch können auch VLANs für virtuelle Server konfiguriert werden. Weitere Funktionen, die Open vSwitch unterstützt sind die Gruppierung und Spiegelung von Ports. QoS ist mit Open vSwitch ebenfalls möglich.

Open vSwitch für virtuelle Netzwerke

Open vSwitch unterstützt nahezu alle offenen Netzwerkprotokolle im Layer-2-Bereich. „GRE“ und „VXLAN“ können ebenfalls genutzt werden. Neue Protokolle und Funktionen werden ständig integriert. Dazu gehört auch die Unterstützung von NetFlow, IPFIX und sFlow. Open vSwitch nutzt „ovs-vswitchd“ für die Konfiguration und „ovsdb-server“ zur Speicherung der Konfiguration. Der Prozess „ovs-vswitchd“ ist das zentrale Steuerelement auf dem jeweiligen Server für die Verbindung zu Open vSwitch.

Die Daten werden in einer JSON-Datenbank gespeichert. Diese ist im Verzeichnis „etc“ zu finden und wird durch „ovsdb-server“ genutzt. In den meisten Fällen wird hier ein eigenes Unterverzeichnis erstellt. Auf Ubuntu-Servern wird die Datenbank für Open vSwitch im Verzeichnis „/etc/openvswitch/conf.db“ gespeichert.

Das Schema ist in „/usr/share/openvswitch/vswitch.ovsschema“ zu finden. Auch „ovs-vswitchd“ hat Zugriff auf die Datenbank, da der Prozess die Änderungen speichern muss. Beim Einsatz von OpenFlow verbindet „ovs-switchd“ die Verbindung zum OpenFlow-Controller auf. Mehr dazu ist in der Ubuntu-Dokumentation zu lesen.

Open vSwitch installieren

Die Installation von Open vSwitch erfolgt über die gängigen Paketquellen. Auf Ubuntu/Debian kann die Installation mit dem folgenden Befehl erfolgen:

Sudo apt install openvswitch-switch

Danach erfolgt die Verwaltung mit dem Befehlszeilentool „ovs-vsctl“. Mit dem Tool wird „ovs-switchd“ auch mit dem OpenFlow-Controller verbunden. Um mit Open vSwitch zu beginnen, kann eine leere Konfigurationsdatenbank erstellt werden, oder es wird die bereits vorhandene Datenbank genutzt. Um einen neuen Switch zu erstellen, wird zum Beispiel der folgende Befehl verwendet:

ovs-vsctl add-br switch1

Auf diesem Switch können mit „ovs-vsctl“ Ports erstellt werden, zum Beispiel:

ovs-vsctl add-port switch1 eth0

Hier lassen sich umfassende Konfigurationen und Routing-Aufgaben konfigurieren. Die aktuelle Einstellung des jeweiligen Switches kann mit „ovs-vsctl show“ angezeigt werden.

Verbinden von virtuelle Switches

In größeren Umgebungen werden VMs auf unterschiedlichen Hosts betrieben, müssen aber dennoch leicht erstellbar sein und mit dem Netzwerk kommunizieren können. Zur Unterstützung dieses Szenarios kann Open vSwitch auch mit Tunneln arbeiten, um mehrere Hosts und Switches miteinander zu verbinden.

Open vSwitch nutzt dazu GRE, VXLAN oder GENEVE. Welches Protokoll verwendet wird, kann mit dem Parameter „type=“ konfiguriert werden. Hier stehen die Optionen „gre“, „vxlan“ und „geneve“ zur Verfügung.

Open Virtual Network und Open vSwitch

Zusätzlich zu OvS arbeitet die Community von Open vSwitch auch am Open Virtual Network (OVN). Dieses erweitert die Funktionen von OvS. Mit OVN können auch virtuelle L2- und L3-Overlays sowie Sicherheitsgruppen mit OvS umgesetzt werden. OVN kann virtuelle Netzwerkkonfigurationen in OpenFlow übersetzen.

OVN arbeitet mit logischen Routern und logischen Switches. Im Fokus von OVN stehen:

  • Verteilte virtuelle Router
  • Verteilte logische Switches
  • Zugriffskontroll-Listen
  • DHCP
  • DNS-Server

(ID:47002763)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist