Ein konventionelles Computernetzwerk besteht aus verschiedenen Kabeln (Ethernet, Glasfaser, Koaxialkabel), die mit Geräten wie Routern und Switches verbunden sind. Letztere sind dafür zuständig, die Datenpakete an ihren Bestimmungsort zu leiten. Mit dem Aufkommen von Wi-Fi und Mobilfunk-Datennetzen wurden die Kabel durch Wireless-Signale substituiert.
Im OSI-Netzwerkreferenzmodell sind die drei untersten Layer für Netzwerk-Equipment, Datenverarbeitung und Kommunikation zuständig: Netzwerk- (Level 3), Sicherungs- (Level 2) und Bitübertragungsschicht (Level 1). Im Fall eines Virtual Network werden diese Aufgaben vollständig auf die Software verlagert. Dabei können virtuelle Netzwerke vollständig innerhalb eines einzigen physischen Rechners (beziehungsweise Servers) existieren.
Sie können aber auch eine Abstraktionsschicht darstellen, die über einem physischen Netz läuft, dessen Konfiguration und Topographie sich von der des virtuellen Netzes unterscheiden kann. Ein Virtual Network aufzubauen, ist ein komplexes Unterfangen - kann sich wegen der zu erwartenden Benefits aber lohnen.
Virtual Network - Funktionsweise
Um zu verstehen, wie ein virtuelles Netzwerk funktioniert, empfiehlt sich der Blick auf ein verwandtes (und etwas vertrauteres) Konzept: Dem der virtuellen Maschine (VM). Eine Virtual Machine ermöglicht es, mehrere Anwendungsinstanzen auf einem physischen Rechner auszuführen.
Dabei "wissen" die VMs nicht, dass sie virtuell sind - alle Systemaufrufe und Kommunikationsvorgänge, die sie normalerweise mit der zugrundeliegenden Hardware durchführen würden, werden von einer Softwareschicht abgefangen - dem Hypervisor. Dieser jongliert die Anfragen von mehreren VMs, die auf demselben Rechner laufen, um die zugrundeliegenden Hardwareressourcen so effizient wie möglich zu nutzen.
Zudem ist der Hypervisor in der Lage, die Ergebnisse zurückzugeben, die die VM von der Hardware erwartet. Eine Virtual Machine kann auch Anweisungen für diverse Hardwareplattformen übersetzen. Das ermöglicht beispielsweise, eine VM auf einem x86-Rechner auszuführen, obwohl sie für ARM-CPUs entwickelt wurde.
Ein virtuelles Netzwerk basiert auf den gleichen Prinzipien: Die Software wird so konfiguriert, dass sie ein Netzwerk mit der von den Administratoren gewünschten, spezifischen Topografie emuliert. Wie bei den VMs kann ein Virtual Network seine Magie entfalten, weil die Betriebssysteme und Anwendungen, die mit ihm kommunizieren, nicht "wissen", ob sie mit einem realen oder einem virtuellen Switch kommunizieren oder nicht. Sie senden einfach Pakete mit bestimmten Netzwerk-Routing-Informationen im Header und erwarten, ähnliche Pakete zurückzuerhalten.
Weil diese Art der Kommunikation standardisiert ist, ist es relativ simpel, Software zu entwickeln, die das Verhalten von physischen Netzwerkkarten, Routern oder Switches emuliert. Tools wie Open vSwitch können entweder auf einem Hypervisor laufen oder als Control Stack für physische Netzwerkhardware fungieren.
Hat der Hypervisor die Pakete erhalten, muss er herausfinden, wie er sie an ihren Bestimmungsort weiterleiten kann - ebenso wie es die physische Netzwerkhardware tun würde. Der Unterschied besteht darin, dass der Hypervisor Informationen über das softwaredefinierte, virtuelle Netzwerk in Informationen über die tatsächliche, zugrundeliegende physische Umgebung übersetzen muss.
Ein Rechner könnte "denken", dass er ein Paket an einen anderen Computer im selben lokalen Netzwerk sendet, in der Realität könnten sich die beiden Rechner aber in verschiedenen Ländern befinden - oder es könnte sich um zwei virtuelle Maschinen handeln, die auf demselben Server laufen.
Der Hypervisor löst dieses Problem häufig, indem er ein Paket in ein anderes einschließt, dessen Header andere Routing-Informationen enthält und dieses dann an die physische Netzwerkinfrastruktur weiterleitet. Sobald das Paket an seinem Ziel ankommt, wird die äußere "Verpackung" entfernt - das empfangende System nimmt an, das Paket sei über das Virtual Network angekommen und nicht über das physische.
Virtuelle Netzwerke - Typen
Folglich erfordert es eine Menge Arbeit - und Einfallsreichtum, ein Virtual Network zu implementieren. Diese Mühe sollte man sich entsprechend nur machen, wenn man auch einen Mehrwert damit erzielt. Ein Blick auf die verschiedenen Spielarten virtueller Netzwerke hilft dabei, einen Eindruck darüber zu bekommen, für welche Szenarien sie sich in der realen Welt eignen. Eine wichtige grundlegende Unterscheidung ist dabei die zwischen internen und externen virtuellen Netzwerken:
Ein internes virtuelles Netzwerk wird verwendet, um mehrere VMs zu verbinden, die auf demselben Server laufen. In diesem Fall muss der Hypervisor die Netzwerkpakete nicht einkapseln und über ein reales Netzwerk senden. Stattdessen ermittelt er, für welche VM sie bestimmt sind, und stellt sie zu.
Es mag seltsam erscheinen, Protokolle, die für die Kommunikation von Computer zu Computer entwickelt wurden, für die Kommunikation zwischen zwei Prozessen zu verwenden, die auf derselben physischen Hardware laufen. Dabei sollten Sie allerdings bedenken, dass einer der Vorteile der Virtualisierung darin besteht, mehrere sofort einsatzbereite Betriebssysteme als völlig getrennte und in sich geschlossene Prozesse auf demselben Server ausführen zu können. Die Verwendung von Standard-Netzwerkpaketen und -protokollen zu diesem Zweck (zusammen mit der zugehörigen Sicherheitsinfrastruktur) hat zur Folge, dass diese VMs ohne Modifikationen laufen und miteinander kommunizieren können.
Bei externen virtuellen Netzwerken hingegen handelt es sich um separate physische Computer (oder eine Mischung aus VMs und physischen Maschinen). In diesem Szenario sind die Maschinen über herkömmliche physische Netzwerkgeräte verbunden (einschließlich Verbindungen über das Internet), aber der Netzwerkadministrator erstellt eine virtuelle Netzwerktopologie, die sich von der zugrundeliegenden physischen unterscheidet.
Es gibt drei verschiedene (interne oder externe) Virtual-Network-Typen:
Ein Virtual Private Network (VPN) stellt die einfachste Form eines virtuellen Netzwerks dar. Das häufigste Einsatzszenario: Ein einzelner Rechner stellt über das Internet eine Verbindung zum lokalen Unternehmensnetz her. Aus der Sicht des Computers (und der anderer Computer, mit denen er interagiert), ist er Teil des LAN, sobald das VPN eingerichtet ist - auch wenn der Zugriff remote erfolgt.
Ein Virtual Local Area Network (VLAN) ist komplexer und besteht aus einem vollständigen, lokalen Netzwerk, das virtuell definiert ist. Ein VLAN kann erstellt werden, indem ein einzelnes physisches LAN in mehrere VLANs unterteilt wird oder physisch getrennte LANs in einem VLAN zusammengefasst werden.
Ein Virtual Extensible Local Area Network (VXLAN) ist eine optimierte Variante des VLANs. Sie ermöglicht es, große LANs in viele separate VLANs zu unterteilen und außerdem die Migration von VMs ohne Service-Unterbrechung zu erleichtern. Beide Features sind für Cloud-Infrastrukturen wichtig.
Virtual Networks - Vorteile
Virtuelle Netzwerke sind eine absolute Notwendigkeit, wenn mehrere virtuelle Maschinen auf derselben Hardware laufen (ein häufiges Szenario beim Cloud Computing). Indem sie VLANs und VXLANs auf bestehenden, phsysischen Netzwerken erstellen, können Administratoren Netzwerke schnell und - in der Ära von Infrastructure as Code - oft auch automatisiert umstrukturieren. Manuell wäre diese Aufgabe nur schwer oder nicht zu stemmen.
Zu den wesentlichen Vorteilen virtueller Netzwerke zählen:
weniger Kosten und Wartungsaufwand für physische Netzwerkhardware;
zentralisierte und automatisierte Kontrolle rationalisiert das Netzwerk-Management;
für die Netzwerkkonfiguration ergeben sich flexiblere und granulare Optionen.
(fm)
Dieser Artikel basiert auf einem Beitrag unserer US-Schwesterpublikation Infoworld.com.