Virtualisierung für Netzwerke
- 11 Minuten
Große Rechenzentren sind Teil der Kerninfrastruktur, die Clouddienste unterstützt. Um kostengünstig zu sein, müssen diese Rechenzentren über agile Netzwerke verfügen, die einfach zu konfigurieren und zu aktualisieren sind. Diese Netzwerke müssen sich auch für das Konzept der Netzwerkvirtualisierung eignen. Durch Netzwerkvirtualisierung werden virtuelle Netzwerke über physischen Netzwerken erstellt – vergleichbar mit der Erstellung von virtuellen Computern auf physischen Servern. Obwohl eine umfassende Behandlung von Rechenzentrumsnetzwerken und den zugrunde liegenden Technologien den Rahmen dieses Moduls sprengen würde, ist es wichtig, den Grund für die Netzwerkvirtualisierung zu verstehen.
Herausforderungen beim Aufbau von Cloudrechenzentren
Computernetzwerke umfassen eine Vielzahl von Knoten und Links. Ein Knoten ist eine beliebige Netzwerkappliance, z. B. ein Switch, ein Router oder ein Server. Ein Link ist eine physische oder logische Verbindung zwischen zwei Knoten im Netzwerk. Netzwerke verfügen außerdem über Identifikationsressourcen (Adressen) und Bezeichnungstags. Außerdem ist häufig ein Mechanismus zum Identifizieren von Geräten (IP-Adresse und MAC-Adresse), Links (Flow-ID) und Netzwerken (VLAN-ID und VPN-ID) erforderlich, um eine virtualisierte Infrastruktur zu verwalten und zu überwachen. Übergeordnete Organisationsstrukturen, z. B. Netzwerktopologien, werden durch Zusammenstellung dieser Ressourcen erstellt.
Designer großer Rechenzentrumsnetzwerke müssen sich mit mehreren (manchmal widersprüchlichen) Anforderungen1 auseinandersetzen. Sie müssen u. a. folgende Anforderungen erfüllen:
- Sicherstellen, dass die verwendete Topologie skalierbar ist, um den zukünftigen Bedarf zu bewältigen
- Maximieren des Durchsatzes und gleichzeitiges Minimieren der Hardwarekosten
- Sicherstellen, dass der Aufbau auch bei Ausfällen Verfügbarkeit und Integrität des Systems garantiert
- Senken der Betriebskosten durch (umweltfreundliche) Energiesparfunktionen
Ein wichtiger Aspekt bei der Gestaltung des Netzwerks für ein großes Rechenzentrum ist die Auswahl der richtigen Netzwerkfabric. Mögliche Fabrics sind Ethernet, InfiniBand und andere Hochgeschwindigkeitsfabrics wie Myrinet. Jede Fabric weist andere Kriterien für Kosten, Latenz, Bandbreite und Kommunikation auf, sodass die Auswahl mit Sorgfalt erfolgen muss. Ein technischer Vergleich dieser Fabrics liegt außerhalb des Rahmens dieses Moduls. Wesentlich interessanter für uns sind Topologie und Adressierungsschema für die Vernetzung dieser Ressourcen. Wenn wir z. B. ein Netzwerk mit Ethernet-Adressierung verwenden, in dem Endpunkte mit einer flachen 6-Byte-MAC-Adresse identifiziert werden, ist ein solches Netzwerk wahrscheinlich ebenfalls flach. Dies bedeutet, dass jeder Schnittstelle eine MAC-Adresse zugewiesen ist, die nicht von ihrer Position abhängt. Bei einer solchen Konfiguration ist das Routing schwierig und Weiterleitungstabellen sind umfangreich, da alle Adressen gespeichert werden müssen.
Aus diesem Grund wird meistens ein hierarchisches Routing verwendet, um skalierbare Netzwerke zu erstellen. Adressierung und Routing basieren häufig auf einem IP-basierten Routing, bei dem jedem Endpunkt abhängig von seiner Position in der Hierarchie eine IP-Adresse zugewiesen wird. Dies schränkt jedoch die Mobilität virtueller Computer ein: für die Migration einer VM von einem Host zu einem anderen ist eine andere Strategie erforderlich. Außerdem ist es oft schwierig, IP-Adressen deterministisch zuzuordnen, weil dadurch Informationen über den Standort des VM-Servers offen gelegt werden können. Im Bereich der geeigneten Netzwerktopologie von Rechenzentren wird derzeit intensiv geforscht. Dabei liegt der Schwerpunkt auf festen und flexiblen Topologien, die strukturbasiert oder rekursiv sein können.
Neben der Topologie und dem Adressierungsschema muss der Routingmechanismus festgelegt werden. Beim zentralisierten Routing erstellt ein einzelner zentraler Controller Lookuptabellen, um die Weiterleitungsaktion zu bestimmen. Diese Methode ist theoretisch optimal, da der zentrale Controller über eine umfassende Sicht über das Rechenzentrumsnetzwerk verfügt sowie Konfiguration und das Verständnis der Auswirkungen von Ausfällen erleichtert. Der Controller bildet jedoch einen Engpass und einen Single Point of Failure und bewirkt einen erheblichen Verwaltungsaufwand für die Weitergabe der Weiterleitungstabellen. Anstelle des zentralisierten Routings können verteilte Methoden verwendet werden, bei denen Entscheidungen auf lokalen Informationen der einzelnen Router und Switches basieren.
Der Datenverkehr in großen Rechenzentren muss sorgfältig ausgelegt werden, um Überlastung und Latenz zu minimieren. Gruppen von Paketen werden als "Flows" kategorisiert, wenn sie sequenziell oder logisch in Beziehung stehen. Die Routingprotokolle sorgen für einen Lastenausgleich, indem Daten, die zwischen zwei Knoten übertragen werden, auf mehrere parallele Pfade verteilt werden. Der Aufbau eines Rechenzentrums muss für die jeweiligen Flowmuster optimiert werden. Aus diesem Grund ist die Analyse des Datenverkehrs für einen Rechenzentrumsdesigner von hoher Bedeutung. Routingprotokolle müssen zustandsbestimmt sein, damit freie Routen ausgelasteten Routen gegenüber bevorzugt werden und Flows auf mehrere parallele Pfade verteilt werden.
Zu guter Letzt müssen Rechenzentrumsnetzwerke fehlertolerant ausgelegt werden. Solche Netzwerke verwenden häufig Gossip-Protokolle, bei denen Nachbarn miteinander sprechen, um Informationen über Fehler schnell zu teilen. Solche Mechanismen müssen unbedingt so ausgelegt sein, dass sie wenig Bandbreite verbrauchen. Darüber hinaus müssen Mechanismen zur Wiederherstellung nach Ausfällen und Wiedereingliederung ausgefallener Komponenten im Netzwerk vorhanden sein.
Netzwerkvirtualisierung
Mittlerweile ist klar, dass die Implementierung eines großen Rechenzentrumsnetzwerks komplex ist und eine übergeordnete Abstraktion erforderlich ist, um Aufbau und Konfiguration zu vereinfachen. Die Situation ist bei Cloudrechenzentren allerdings noch komplexer, insbesondere aufgrund von Anforderungen an die Mehrmandantenfähigkeit. Das Cloud Computing-Paradigma ist nur relevant, wenn eine Isolation zwischen mehreren Mandanten gewährleistet werden kann. Ein Clouddienstanbieter muss die Isolation des Datenverkehrs sicherstellen, damit der Datenverkehr eines Mandanten nicht für einen anderen Mandanten sichtbar ist. Beispielsweise dürfen Pakete, die an eine oder von einer Bankanwendung, die für einen Mandanten gehostet wird, übertragen werden, für eine Spieleanwendung eines anderen Mandanten nicht sichtbar sein. Der Adressraum muss ebenfalls isoliert sein, damit jeder Mandant Zugriff auf den eigenen privaten Adressraum hat.
Sowohl die Datenverkehrs- als auch die Adressraumisolation werden durch die Erstellung virtueller Netzwerke für jeden Mandanten erreicht, wobei der Datenverkehr zwischen diesen Netzwerken auf einige streng definierte Kanäle beschränkt ist. Diese virtuellen Netzwerke werden über physischen Netzwerken als "Overlay" erstellt. Ein Overlaynetzwerk ist ein virtuelles Netzwerk, in dem die Trennung von Mandanten in der zugrunde liegenden physischen Infrastruktur unsichtbar ist. Um den Datenverkehr ordnungsgemäß weiterzuleiten, benötigt das zugrunde liegende Transportnetzwerk keine Informationen über die verschiedenen Mandanten. Die Netzwerkvirtualisierung bezieht sich auf die Bereitstellung dieser Überlagerungen, das Zuordnen dieser Überlagerungen zu den Netzwerkschnittstellen des Mandanten und die Aufrechterhaltung des Lebenszyklus dieses Netzwerks, während VM-Instanzen gestartet, beendet und2 beendet werden.
Einer der wichtigen Vorteile der Virtualisierung von Netzwerken besteht darin, dass eine VM-Migration zwischen Hosts ohne Einfluss auf den jeweiligen Netzwerkzustand (IP-Adresse und MAC-Adressen) ermöglicht wird. Änderungen von MAC-Adressen verursachen viele unerwartete Störungen, z. B. weil Softwarelizenzen ungültig werden. Physischen Hosts können IP-Adressen hierarchisch zugewiesen werden, während ein virtueller Computer über eine IP-Adresse aus einem Pool gültiger Adressen für das betreffende Subnetz verfügen kann.
Ein weiteres Argument für die Netzwerkvirtualisierung ist die größere Komplexität bei der Verwaltung von Weiterleitungstabellen. Anstelle einer einzelnen MAC-Adresse für jeden physischen Server müssen Cloudrechenzentren eine MAC-Adresse für jeden virtuellen Computer verwalten. Dies führt zu einem erheblichen Kapazitätsbedarf des Weiterleitungsknotens.
Mithilfe der Virtualisierung können einzelne Mandanten auch die Kontrolle über die Adressen erhalten, die sie in ihrer Netzwerksicht verwenden. Daher muss das Overlaynetzwerk Mandanten die Möglichkeit bieten, jede gewünschte Adresse zu verwenden, ohne die Netzwerke aller benachbarten Mandanten überprüfen zu müssen. Diese Adressen müssen auch unabhängig von den Adressen sein, die von der Infrastruktur des Clouddienstanbieters verwendet werden. Virtuelle Netzwerke verwenden diese Adresstrennung, um den Geltungsbereich von Paketen einzuschränken, die in den Netzwerken gesendet werden. Pakete dürfen Netzwerkgrenzen nur über kontrollierte Ausgangspunkte überschreiten.
Schließlich machen das Vorhandensein mehrerer Mandanten und die Überbelegung der gemeinsam genutzten freigegebenen Netzwerkbandbreite eine anspruchsvolle Datenverkehrs- und Flowverwaltung erforderlich. Clouddienstanbieter müssen eine Servicequalität (QoS) gewährleisten, die den garantierten SLAs entspricht, und den Datenverkehr der einzelnen Mandanten der konfigurierten Spitzenauslastung entsprechend strukturieren.
Zusammenfassend gesagt ist die Netzwerkvirtualisierung einfach ein Freigabemechanismus, der es mehreren isolierten virtuellen Netzwerken ermöglicht, dieselbe physische Netzwerkinfrastruktur zu verwenden. Diese gemeinsame Nutzung ermöglicht eine dynamische Zuordnung und Bereitstellung von virtuellen Netzwerken wie bei virtuellen Computern3. Praktisch gesehen müssen Endkunden von Clouddiensten in der Lage sein, virtuelle Netzwerke zu implementieren, die alle Features physischer Netzwerke wie Subnetze, CIDR-Adressierung (Classless Inter-Domain Routine), Firewalls und Peering unterstützen, damit sich Cloud Computing als nützliches Computingparadigma erweist. Dies ist genau das, was Clouddienstanbieter wie Amazon, Microsoft und Google Ihnen bieten.
Fallstudie: Virtuelle Netzwerke in Azure
Alle großen Clouddienstanbieter unterstützen virtuelle Netzwerke, obwohl manchmal andere Begriffe und Abstraktionen verwendet werden. Azure bietet z. B. keine virtuellen Firewalls, unterstützt jedoch Netzwerksicherheitsgruppen (NSGs), die eine Abstraktion von Firewalls sind. Abbildung 10 zeigt ein virtuelles Azure-Netzwerk (VNet), das für die Bereitstellung von Inhalten für Kunden von einem virtuellen Webserver-Front-End durch einen virtuellen Load Balancer, dem eine virtuelle öffentliche IP-Adresse zugewiesen ist, konfiguriert ist. Der Load Balancer und die Webserver-VMs befinden sich in einem Subnetz, während Back-End-Datenbanken und andere Ressourcen in einem völlig anderen Subnetz isoliert sind. Jedes Subnetz befindet sich in einer anderen NSG, wobei jeweils unterschiedliche Firewallregeln angewendet werden. Das öffentlich zugängliche Subnetz öffnet z. B. die Ports 80 und 443 für die Außenwelt, um HTTP- und HTTPS-Datenverkehr zu unterstützen. Das private Subnetz ist demgegenüber nur aus dem anderen Subnetz zugänglich und öffnet nur die Ports, die von den Webservern für die Verbindung zu den Datenbanken benötigt werden. Nicht im Diagramm gezeigt sind andere virtuelle Netzwerkressourcen wie virtuelle Netzwerkschnittstellenkarten (NICs), die die VMs mit dem Netzwerk verbinden.

Abbildung 10: Virtuelles Netzwerk in Azure.
Dies spiegelt die Topologie wider, die Sie u. U. für ein physisches Netzwerk entwerfen, um Sicherheit und Skalierbarkeit zu unterstützen. Es veranschaulicht nur unzureichend, was fähige Cloudadministratoren mit virtuellen Netzwerken erreichen können. Azure unterstützt z. B. VNet-Peering. Diese Technologie ermöglicht die Verbindung von zwei oder mehr virtuellen Netzwerken, die sich auch in verschiedenen Azure-Regionen befinden können. Sie unterstützt auch Point-to-Site- und Site-to-Site-VPNs (virtuelle private Netzwerke), mit denen lokale Geräte und Netzwerkappliances eine sichere Verbindung mit virtuellen Netzwerken herstellen können. Schließlich ermöglicht Azure ExpressRoute sichere, dedizierte Verbindungen mit hoher Bandbreite zwischen lokalen Netzwerken und virtuellen Netzwerken. AWS und Google bieten das Gleiche über Dienste wie Virtual Private Cloud (AWS und Google), AWS Direct Connect und Google Cloud Interconnect.
Zusammenfassend gesagt ist das virtuelle Netzwerk eine ebenso ausgereifte Technologie wie virtuelle Computer und im Zusammenhang mit Cloud Computing nicht weniger von Bedeutung. Während die Details für Benutzer weitgehend unsichtbar sind, werden Rechenzentren und deren Netzwerke von Fachleuten zielgerichtet für die Unterstützung virtueller Netzwerke und sämtlicher darin enthaltenen Komponenten konzipiert.
Verweise
Liu, Yang und Muppala, Jogesh K und Veeraraghavan, Malathi und Lin, Dong und Hamdi, Mounir (2013). „Data Center Networks: Topologies, Architectures and Fault-Tolerance Characteristics“ (Rechenzentrumsnetzwerke: Topologien, Architekturen und Fehlertoleranzmerkmale) Springer Science and Business Media
Liu, Yang und Muppala, Jogesh K und Veeraraghavan, Malathi und Lin, Dong und Hamdi, Mounir (2014). „Problemerklärung: Überlagerungen für die Netzwerkvirtualisierung“ RFC 7364
Wen, Heming und Tiwary, Prabhat Kumar und Le-Ngoc, Tho (2013). „Wireless virtualization“ (Drahtlose Virtualisierung) Springer
Überprüfen Sie Ihr Wissen
Feedback
War diese Seite hilfreich?
No
Benötigen Sie Hilfe zu diesem Thema?
Möchten Sie versuchen, Ask Learn zu verwenden, um Sie durch dieses Thema zu klären oder zu leiten?