-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft im Allgemeinen Netzwerkvirtualisierung und insbesondere Systeme und Verfahren, um ein virtuelles Netzwerk auf ein physisches Netzwerk aufzusetzen.
-
HINTERGRUND
-
Servervirtualisierung in Rechenzentren oder dazu in Beziehung stehenden Umgebungen ist eine Schlüsseltechnologie für Cloud-Computing. Im Allgemeinen beschreibt Servervirtualisierung eine Software-Abstraktion, die eine physische Ressource und deren Verwendung von der zugrunde liegenden physischen Maschine trennt. Die meisten physischen Ressourcen können abstrahiert und als virtualisierte Entitäten bereitgestellt werden. Dementsprechend kann eine einzige physische Maschine eine Vielzahl von virtuellen Maschinen betreiben, von denen jede ihr eigenes Betriebssystem hat, das als Gastbetriebssystem bezeichnet wird, wodurch es mehreren Benutzern ermöglicht wird, die physische Maschine gemeinsam zu nutzen.
-
Der Wunsch, virtuelle Netzwerke auf physische Netzwerke in einer Rechenzentrumsumgebung aufzusetzen, bietet mehrere Vorteile. Ein bekannter Vorteil ist, dass virtuelle Netzwerke die Netzwerkbereitstellung für den Rechenzentrumskunden in öffentlichen, privaten oder Multi-Tenant-Cloud-Umgebungen vereinfachen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
In einem Aspekt weist die vorliegende Erfindung ein Verfahren zum Aufsetzen eines virtuellen Netzwerks auf ein physisches Netzwerk in einer Datenzentrumsumgebung auf. Das Verfahren weist ein Anordnen eines Überlagerungssystems auf, das in einem aufgesetzten virtuellen Netzwerk angeordnet ist, das einen Überlagerungs-Agent und ein Überlagerungs-Hilfeprogramm (helper) enthält. Der Überlagerungs-Agent wird in einem Zugriffsschalter umgesetzt. Das Überlagerungs-Hilfeprogramm wird in einer Endstation umgesetzt, die mit dem Zugriffsschalter Daten austauschen kann. Überlagerungsparameter werden in Übereinstimmung mit einem Inband-Protokoll zwischen dem Überlagerungs-Agent und dem Überlagerungs-Hilfeprogramm übertragen.
-
In einem weiteren Aspekt weist die vorliegende Erfindung ein Verfahren zur Datenübertragung in einem aufgesetzten virtuellen Netzwerk auf. Ein erstes Überlagerungssystem ist so angeordnet, dass es einen Überlagerungs-Agent enthält, der in einem ersten Zugriffsschalter umgesetzt wird, und ein Überlagerungs-Hilfeprogramm, das in einer ersten Endstation umgesetzt wird, die mit dem ersten Zugriffsschalter Daten austauschen kann. Ein zweites Überlagerungssystem ist so angeordnet, dass es einen Überlagerungs-Agent enthält, der in einem zweiten Zugriffsschalter umgesetzt wird, und ein Überlagerungs-Hilfeprogramm, das in einer zweiten Endstation umgesetzt wird, die mit dem zweiten Zugriffsschalter Daten austauschen kann. Überlagerungsparameter werden von dem Überlagerungs-Agent des ersten Überlagerungssystems zu dem Überlagerungs-Hilfeprogramm des ersten Überlagerungssystems übertragen. Die Überlagerungsparameter enthalten Daten zum Übertragen eines Datenpakets von der ersten Endstation zu der zweiten Endstation.
-
In einem weiteren Aspekt weist die vorliegende Erfindung ein Überlagerungssystem für eine Netzwerkvirtualisierungsumgebung auf. Das Überlagerungssystem enthält einen Überlagerungs-Agent an einem Zugriffsschalter an der Kante eines Netzwerks. Der Überlagerungs-Agent ist so konfiguriert, dass er ein Überlagerungskapselungsfeld erzeugt, das Überlagerungsparameter enthält, die zu einer Zielendstation in Beziehung stehen. Das Überlagerungssystem enthält auch ein Überlagerungs-Hilfeprogramm an einem Host-Computer, der mit dem Zugriffsschalter Daten austauschen kann. Das Überlagerungs-Hilfeprogramm ist so konfiguriert, dass es das Überlagerungskapselungsfeld zu einem ersten Paket hinzufügt und das erste Paket, welches das Überlagerungskapselungsfeld enthält, zu der Zielendstation überträgt.
-
In einem weiteren Aspekt weist die vorliegende Erfindung eine Rechenzentrumsumgebung auf. Die Rechenzentrumsumgebung weist einen Netzwerkkantenschalter, einen Host-Computer und ein Überlagerungssystem auf. Der Host-Computer kann mit dem Zugriffsschalter über eine lokale Netzwerkverbindung Daten austauschen. Das Überlagerungssystem weist einen Überlagerungs-Agent an dem Zugriffsschalter und ein Überlagerungs-Hilfeprogramm an dem Host-Computer auf. Der Überlagerungs-Agent ist so konfiguriert, dass er ein Überlagerungskapselungsfeld erzeugt, das Überlagerungsparameter enthält, die zu einer Zielendstation in Beziehung stehen. Das Überlagerungs-Hilfeprogramm ist so konfiguriert, dass es das Überlagerungskapselungsfeld zu einem Paket hinzufügt und das Paket, welches das Überlagerungskapselungsfeld enthält, zu der Zielendstation überträgt.
-
In einem weiteren Aspekt weist die vorliegende Erfindung ein Computerprogrammprodukt zum Aufsetzen eines virtuellen Netzwerks auf ein physisches Netzwerk in einer Datenzentrumsumgebung auf. Das Computerprogrammprodukt weist ein computerlesbares Speichermedium mit einem darin verkörperten computerlesbaren Programmcode auf. Der computerlesbare Programmcode weist einen computerlesbaren Programmcode auf, der so konfiguriert ist, dass er ein Überlagerungssystem in einem aufgesetzten virtuellen Netzwerk anordnet, das einen Überlagerungs-Agent und ein Überlagerungs-Hilfeprogramm (Hilfeprogramm) enthält. Der computerlesbare Programmcode weist ferner einen computerlesbaren Programmcode auf, der so konfiguriert ist, dass er den Überlagerungs-Agent in einem Zugriffsschalter umsetzt. Der computerlesbare Programmcode weist einen computerlesbaren Programmcode auf, der so konfiguriert ist, dass er das Überlagerungs-Hilfeprogramm in einer Endstation umsetzt, die mit dem Zugriffsschalter austauschen kann. Der computerlesbare Programmcode weist einen computerlesbaren Programmcode auf, der so konfiguriert ist, dass er Überlagerungsparameter in Übereinstimmung mit einem Inband-Protokoll zwischen dem Überlagerungs-Agent und dem Überlagerungs-Hilfeprogramm überträgt.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Im Folgenden werden eine bzw. mehrere Ausführungsformen der Erfindung allein zu Beispielzwecken unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei:
-
1 ein Blockschaubild einer Rechenzentrumsumgebung ist, in der Ausführungsformen der vorliegenden Erfindung eingesetzt werden können;
-
2 ein Blockschaubild einer Umgebung ist, in der sich zwei Endstationen gemäß einer Ausführungsform in einem selben aufgesetzten virtuellen Netzwerk befinden;
-
3 ein Blockschaubild ist, das eine Übersichts-Architekturansicht eines Überlagerungssystems gemäß einer Ausführungsform darstellt;
-
4 ein schematisches Blockschaubild ist, das einen Prozessablauf zum Austauschen von Daten zwischen den Endstationen und den Überlagerungssystemen von 2 gemäß einer Ausführungsform veranschaulicht;
-
5 ein Ablaufplan eines Prozesses zum Ausführen einer virtuellen Netzwerküberlagerungsoperation gemäß einer Ausführungsform ist;
-
6 ein Blockschaubild einer Umgebung ist, die einen Host-Computer und einen Zugriffsschalter enthält, der gemäß einer Ausführungsform mit einer virtuellen Netzwerküberlagerung konfiguriert ist;
-
7 ein Blockschaubild einer Umgebung ist, die einen Host-Computer und einen Zugriffsschalter enthält, der gemäß einer weiteren Ausführungsform mit einer virtuellen Netzwerküberlagerung konfiguriert ist;
-
8 ein Blockschaubild einer Umgebung ist, die einen Host-Computer und einen Zugriffsschalter enthält, der gemäß einer weiteren Ausführungsform mit einer virtuellen Netzwerküberlagerung konfiguriert ist;
-
9A ein schematisches Blockschaubild ist, das einen Prozessablauf zum Initialisieren eines Quellenüberlagerungssystems gemäß einer Ausführungsform veranschaulicht;
-
9B ein schematisches Blockschaubild ist, das einen Prozessablauf zum Initialisieren eines Zielüberlagerungssystems gemäß einer Ausführungsform veranschaulicht;
-
10 ein schematisches Blockschaubild ist, das einen Prozessablauf zum Austauschen von Daten mit einem Quellenüberlagerungssystems gemäß einer Ausführungsform veranschaulicht; und
-
11 ein schematisches Blockschaubild ist, das einen Prozessablauf zum Austauschen von Daten mit einem Zielüberlagerungssystems gemäß einer Ausführungsform veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden spezifische Details dargelegt, obwohl einem Fachmann klar sein sollte, dass die Systeme und Verfahren zumindest ohne einige der Details genutzt werden können. In einigen Fällen werden bekannte Merkmale oder Prozesse nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verundeutlichen.
-
Ein Überlagerungsnetzwerk enthält üblicherweise eine Vielzahl von Überlagerungs-Agents an der Kante eines physischen Netzwerks. Jeder Überlagerungs-Agent ist so konfiguriert, dass er Pakete, die durch eine entsprechende Endstation übertragen werden, zum Beispiel durch Zuordnen von Paketen von einer bestimmten Endstation zu einem virtuellen Netzwerk und umgekehrt klassifiziert. Die Überlagerungs-Agents können auch einen Überlagerungskopf (overlay header) zu den Paketen hinzufügen, die an eine Zielendstation gerichtet sind, die mit Überlagerungsparametern eines virtuellen Netzwerks aufgefüllt werden, die von einer Netzwerkverwaltungsstation oder einem Richtlinienserver bereitgestellt werden. Die Parameter können Informationen zum Identifizieren des virtuellen Netzwerks eines übertragenen Pakets enthalten und um zu gestatten, dass das Paket von einem Überlagerungs-Agent, der mit der Quellenendstation in Daten austauschen kann, über das physische Netzwerk zu einem anderen Überlagerungs-Agent übertragen wird, der mit der Zielendstation, die sich vorzugsweise in demselben virtuellen Netzwerk befindet wie die Quellenendstation, Daten austauschen kann. Der empfangende Überlagerungs-Agent kann die richtige Zielendstation aus dem Überlagerungskopf ermitteln, zum Beispiel aus der Kennung des virtuellen Netzwerks, die in dem Überlagerungskopf bereitgestellt wird.
-
Eine Einschränkung im Zusammenhang mit herkömmlichen Überlagerungskonfigurationen besteht darin, dass übernommene Netzwerkeinheiten, wie beispielsweise Ethernet-Schalter, nicht an einer Überlagerungsoperation teilnehmen können, da zum Beispiel herkömmliche Ethernet-Schalter den Überlagerungskopf nicht erkennen können, der durch einen Quellenüberlagerungs-Agent zu einem Paket hinzugefügt wird, und deshalb die Inhalte des Überlagerungskopfs wie beispielsweise die Kennung des virtuellen Netzwerks nicht verarbeiten können, die zum Ermitteln des richtigen Ziels für das Paket erforderlich sind.
-
Ein herkömmlicher Ansatz besteht darin, eine Servervirtualisierungsumgebung bereitzustellen, die virtuelle Schalter bzw. vSchalter enthält, die Ethernet- oder damit in Beziehung stehende Umschaltdienste zu virtuellen Maschinen hinzufügt. Da virtuelle Schalter in der Host-Server-Software umgesetzt werden und Zugriff auf ausreichende Speichermengen und die CPU haben, können sie so modifiziert werden, dass sie als Überlagerungs-Agents arbeiten. Zu Beispielen von Virtualisierungssoftwareprodukten, die sich zusammen mit virtualisierungsfähigen Netzwerkschaltern verwenden lassen, können XenSourceTM, hergestellt von Citrix Systems, Inc., Hyper-VTM, hergestellt von Microsoft Corp., VMware®, oder Open-Source-Software wie beispielsweise Kernal-Based Virtual Machine (KVM) gehören.
-
In einer herkömmlichen Servervirtualisierungsumgebung können nicht-virtualisierte Endstationen nicht Teile eines Überlagerungsnetzwerks sein. Außerdem bauen Lösungen auf Virtualisierungsgrundlage auf anbieterspezifischer Virtualisierungssoftware auf, um die virtuellen Maschinen auf dem physischen Host-Server umzusetzen, und stützen sich deshalb auf die Verfügbarkeit von proprietären virtuellen Schaltererweiterungen und deren Akzeptanz auf der jeweiligen virtuellen Schalterplattform. Zum Umsetzen und Verwalten einer derartigen Umgebung sind beträchtliche Entwicklungs- und Unterstützungsressourcen erforderlich.
-
In kurzem Überblick enthalten Aspekte der vorliegenden erfinderischen Konzepte ein Überlagerungssystem, das in einem Netzwerkzugriffsschalter und einem Host-Server umgesetzt wird und gestattet, dass virtualisierte und nicht-virtualisierte Netzwerkentitäten gleichermaßen Teil desselben aufgesetzten virtuellen Netzwerks sind. Das Überlagerungssystem enthält einen Überlagerungs-Agent und ein entsprechendes Überlagerungs-Hilfeprogramm. Der Überlagerungs-Agent läuft auf einem Zugriffsschalter oder einer anderen Netzwerkkanteneinheit, mit dem oder mit der eine oder mehrere virtuelle und/oder physische Endstationen verbunden sind. Das Überlagerungs-Hilfeprogramm läuft auf einem Host-Computer, zum Beispiel auf der Ethernet-Schicht eines Einheitentreibers eines Netzwerkschnittstellen-Controllers (NIC), einer Firmware oder Hardware in einem herkömmlichen nicht-virtualisierten Server oder in dem Einheitentreiber an einem Hypervisor eines virtualisierten Servers. Der Überlagerungs-Agent und das Überlagerungs-Hilfeprogramm kommunizieren miteinander durch Austauschen von Virtualisierungsparametern und dergleichen über ein Inband-Protokoll, zum Beispiel ein abschnittsweises (hop-by-hop) Layer-2-Protokoll.
-
Auf diese Weise kann eine in hohem Maße skalierbare virtuelle Netzwerkumgebung bereitgestellt werden durch das Umsetzen des Überlagerungssystems in einer Form eines Programmcodes oder einer Software in einem Zugriffsschalter und einem Endstations-NIC, beispielsweise unter dem Betriebssystem der Endstation, in dem Überlagerungsnetzwerkmerkmale als eine Alternative zu Firmware in Software definiert werden können. Dementsprechend ist es nicht erforderlich, dass sich eine Überlagerungskonfiguration vollständig an der Kante eines physischen Netzwerks befindet oder vollständig in einem Virtualisierungsserver befindet. Solange daher eine Endstation mit einem Überlagerungs-Hilfeprogramm konfiguriert ist, der mit dem Überlagerungs-Agent in dem Zugriffsschalter Daten austauschen kann, können virtualisierte und nicht-virtualisierte Endstationen Teil der virtuellen Netzwerkdomäne sein. Ein Umsetzen des Überlagerungssystems auf diese Weise kann ein Skalieren durch Zusammenschluss (pooling) der Ressourcen des Zugriffsschalters und des Netzwerkadapters verbessern. Wenn andererseits der Zugriffsschalter alleine in einer Überlagerungskonfiguration enthalten ist, müsste der Zugriffsschalter überlagerungsbezogene Datenübertragungen für mehrere Anschlüsse verarbeiten, was zu einer Zunahme von Hardware-Komplexität und Ressourcen führen würde. Da ein in einem Server befindlicher Netzwerkadapter einen untergeordneten Satz der hierfür lokalen Endstationen verarbeitet, sind die Anforderungen an den Adapter weniger intensiv; daher kann ein Zugriffsschalter die Handhabung von gewissen Überlagerungsfunktionen von Datenebenen an einen in einem Server befindlichen Adapter abgeben.
-
1 ist ein Blockschaubild einer Rechenzentrumsumgebung 100, in der Ausführungsformen der vorliegenden erfinderischen Konzepte eingesetzt werden können. Im Allgemeinen kann die Rechenzentrumsumgebung 100 einen oder mehrere Speicherorte enthalten, die als Datenverarbeitungs-, Speicherungs- und Vernetzungszentrale für eine Organisation dienen. Die Ausrüstung der Rechenzentrumsumgebung 100 kann sich insgesamt lokal an einem einzigen Standort befinden oder kann über zwei oder mehr separate Standorte verteilt sein.
-
Die Rechenzentrumsumgebung 100 kann einen oder mehrere Host-Computer 12 enthalten, die über einen Zugriffsschalter 16 mit einem Netzwerk 14 Daten austauschen können. Zwar ist dies nicht gezeigt, doch kann die Rechenzentrumsumgebung 100 einen oder mehrere Aggregator- und Gateway-Schalter, die zwischen dem Zugriffsschalter 16 und dem Netzwerk 14 zwischengeschaltet sind, und/oder andere bekannte Rechenzentrumsausrüstung enthalten.
-
Der Zugriffsschalter 16 und/oder dazu in Beziehung stehende Rechenzentrumsausrüstungen können als Teil des Netzwerks 14 betrachtet werden. Bei dem Netzwerk 14 kann es sich zum Beispiel um ein Intranet, ein Extranet, das Internet, ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN) oder ein Hochgeschwindigkeitsnetz (MAN) oder eine beliebige Kombination davon handeln. Der Host-Computer 12 kann mit dem Zugriffsschalter 16 über ein anderes Netzwerk 30 Daten austauschen, zum Beispiel ein Ethernet-LAN oder über eine direkte Verbindung. Alternativ kann das Netzwerk 30 Teil des Netzwerks 14 sein, sodass der Host-Computer 12 Daten direkt mit dem Netzwerk 14 austauscht. Der Host-Computer 12 kann eine Ausführungsform einer physischen Datenverarbeitungseinheit sein, wie beispielsweise ein Server oder ein Blade-Computer. Der Host-Computer 12 kann eigenständig sein oder in einen Rahmen zusammen mit anderen Host-Computern eingebaut sein, wie zum Beispiel in einem Rack-Server oder in einem Blade-Server. Der Zugriffsschalter 16 kann eigenständig sein oder in denselben Ausrüstungsrahmen wie der Host-Computer 12 eingebaut sein.
-
Der Host-Computer 12 kann eine oder mehrere Verarbeitungseinheiten 20 enthalten, wie beispielsweise eine CPU, und kann ferner eine Speichereinheit 22 und einen Eingabe/Ausgabe-(E/A)Adapter 24 eines physischen Netzwerks enthalten, der mindestens eine physische Netzwerkschnittstelle (NIC) hat. Die physischen Komponenten des Host-Computers 12, z. B. die CPU 20, die Speichereinheit 22 und der E/A-Adapter 24, können Daten über einen oder mehrere Busse, Anschlüsse, Adapter und dergleichen austauschen, die dem Fachmann bekannt sind. Der Host-Computer 12 kann ein Virtualisierungssystem 18 ausführen, das optional einen Hypervisor oder einen virtuellen Maschinenmanager (VMM) enthalten kann. In weiteren Ausführungsformen kann der Host-Computer 12 ein nicht-virtualisierter Server oder ein Server-Blade sein.
-
Der Speicher 22 kann flüchtigen Speicher enthalten, zum Beispiel RAM und dergleichen, und/oder nicht-flüchtigen Speicher, zum Beispiel ROM, Flash-Speicher und dergleichen. Der Speicher kann austauschbare und/oder nicht austauschbare Speichermedien enthalten, die gemäß Verfahren und Technologien umgesetzt sind, die dem Fachmann im Bereich Datenspeicherung bekannt sind. Im Speicher Gespeichertes kann Programmcode enthalten, wie beispielsweise Programmcode eines Betriebssystems 34, das durch den Prozessor 20 ausgeführt wird, und/oder Programmcode, der einem Virtualisierungssystem 18 entspricht.
-
Der NIC 24 stellt Unterstützung in Hardware, Software oder einer Kombination davon für jede beliebige Form von E/A-Virtualisierung bereit. Zu Beispielen zählen SR-IOV NICs (Einzelstamm-E/A-Virtualisierungs-NICs) und Nicht-SR-IOV NICs, NICs mit mehreren Warteschlangen, Netzwerkschnittstellen-Controller, E/A-Adapter und konvergente Netzwerkadapter. Der NIC 24 kann durch das Server-Betriebssystem 34, einen NIC-Treiber und dergleichen verwaltet werden, sodass der NIC 24 Daten zum Netzwerk 30 senden und von ihm empfangen kann, wie im Folgenden ausführlich beschrieben. Zusätzlich zum Handhaben der Netzwerk-E/A zu und von dem Zugriffsschalter 16 stellt der NIC 24 einen Datenübertragungspfad zwischen virtuellen Maschinen (nicht gezeigt) bereit, die zum Beispiel Pakete mit einem virtuellen NIC (vNIC) einer virtuellen Maschine austauschen.
-
Der Zugriffsschalter 16 enthält eine Vielzahl von physischen Uplink- und Downlink-Anschlüssen 26 (Anschlüsse für aufwärts und abwärts gerichtete Übertragung), die mit dem NIC 24 Daten austauschen können, insbesondere mit einem physischen Anschluss (nicht gezeigt) des NIC 24. Im Allgemeinen ist der Zugriffsschalter 16 ein Netzwerkelement, das zum Beispiel als ein Ethernet-Schalter umgesetzt ist, um Computer zwischen Uplink- und Downlink-Anschlüssen 26 und zwischen virtuellen Maschinen umzuschalten, die auf demselben Host-Computer 12 ausgeführt werden. Eine Beispielumsetzung des physischen Anschlusses zwischen dem Host-Computer 12 und dem Zugriffsschalter 16 ist eine 10-Gigabit-Ethernet-Verbindung. Eine Beispielumsetzung des Zugriffsschalters 16 ist ein Ethernet-Schalter, z. B. ein 10-Gigabit-Ethernet-Schaltermodul mit 24 Anschlüssen, hergestellt von Blade Network Technologies, Inc. in Santa Clara, Kalifornien. In weiteren Ausführungsformen kann das Umschalten an einem Netzwerkadapter erfolgen, der mit Elementen eines Überlagerungssystems konfiguriert ist. Hier kann das Umschalten zwischen virtuellen Maschinen erfolgen, die mit dem Netzwerkadapter und/oder mit einem Zugriffsschalter Daten austauschen können.
-
Der Zugriffsschalter 16 kann mit einem Verwaltungsmodul 28 zum Ausführen einer Intra-Hypervisor-Umschaltung von VM zu VM und dergleichen konfiguriert werden. Eine entfernt angeordnete Verwaltungsstation 32 kann den Zugriffsschalter 16 und/oder den Host-Computer 12 über das Verwaltungsmodul 28 steuern und verwalten. Der Zugriffsschalter 16 kann einen Überlagerungs-Agent 36 enthalten, der über ein Verwaltungsmodul 28 mit einem externen Richtlinienserver und/oder der Verwaltungsstation 32 Daten austauschen kann, um Netzwerktopologie-Informationen bereitzustellen, Pakete zu klassifizieren usw. Der Überlagerungs-Agent 36 ist so konfiguriert, dass er eine virtuelle Netzwerküberlagerungsoperation ausführt, die zum Beispiel zwei oder mehr Endstationen in die Lage versetzt, in dem aufgesetzten virtuellen Netzwerk Daten auszutauschen.
-
2 ist ein Blockschaubild einer Umgebung 200, in der sich zwei Endstationen 202, 206 gemäß einer Ausführungsform in einem gleichen aufgesetzten virtuellen Netzwerk befinden. Die Endstationen 202, 206 können über einen Router 212 untereinander Datenpakete austauschen. Ein oder mehrere Zugriffsschalter (nicht gezeigt) können zwischen den Endstationen 202, 206 und einem Router 210 positioniert werden. In einer Ausführungsform sind die Endstationen 202, 206 für verschiedene physische Teilnetze konfiguriert und können Mitglieder eines gemeinsamen virtuellen Netzwerks sein. Dementsprechend enthält der Router 212 eine erste Teilnetzschnittstelle R1 zum Bedienen eines ersten Teilnetzes, von dem die Endstation 202 ein Mitglied ist, und eine zweite Teilnetzschnittstelle R2 zum Bedienen eines zweiten Teilnetzes, von dem die Endstation 206 ein Mitglied ist. In weiteren Ausführungsformen sind die Endstationen 202, 206 als Teil eines gleichen physischen Netzwerks, zum Beispiel ein physisches Layer-2-Netzwerk, oder auf einem selben Teilnetz, zum Beispiel ein gleiches Layer-3-Teilnetz, z. B. IP, konfiguriert. Zum Zweck des Beschreibens von Operationen, die in der Umgebung 200 ausgeführt werden, kann das Überlagerungssystem 204 von 2 als ein Quellenüberlagerungssystem bezeichnet werden, und das Überlagerungssystem 208 von 2 kann als ein Zielüberlagerungssystem bezeichnet werden. In einer Ausführungsform wie in 2 gezeigt enthält die Umgebung 200 ein IP-Netzwerk. In weiteren Ausführungsformen enthält die Umgebung 200 ein Layer-2-Netzwerk.
-
Die Endstation 202 kann mit dem Überlagerungssystem A 204 Daten austauschen, und die Endstation 206 kann mit dem Überlagerungssystem B 208 Daten austauschen. Das Überlagerungssystem A 204 und/oder das Überlagerungssystem B 206 können mehrere Endstationen bedienen. Die Überlagerungssysteme 204, 206 können untereinander Daten austauschen, wenn zum Beispiel eine nachstehend beschriebene Überlagerungsoperation ausgeführt wird. Die Endstation 202 und/oder die Endstation 206 können virtualisierte Endstationen sein. Alternativ können die Endstation 202 und/oder die Endstation 206 nicht-virtualisierte Endstationen sein.
-
Die Umgebung 200 kann deshalb eine Kombination von virtualisierten und nicht-virtualisierten Endstationen enthalten.
-
3 ist ein Blockschaubild, das eine Übersichts-Architekturansicht eines Überlagerungssystems 300 gemäß einer Ausführungsform darstellt. Die unter Bezugnahme auf 3 beschriebene Überlagerungssystemarchitektur kann auf das Überlagerungssystem A 204 und/oder das Überlagerungssystem B 208 angewendet werden, die unter Bezugnahme auf 2 beschrieben wurden. Daher können das Überlagerungssystem A 204 und das Überlagerungssystem B 208 jeweils einige oder alle Elemente des Überlagerungssystems 300 enthalten. In der Beschreibung von 3 kann auf weitere Elemente von 1 und/oder 2 Bezug genommen werden. Das Überlagerungssystem 300 kann für ein IP-Netzwerk, ein Layer-2-Netzwerk oder weitere Netzwerke konfiguriert werden, die Fachleuten bekannt sind.
-
Das Überlagerungssystem 300 enthält einen Überlagerungs-Agent 302 und ein Überlagerungs-Hilfeprogramm 304. Der Überlagerungs-Agent 302 kann sich an dem Zugriffsschalter 16 von 1 oder dem Router 210 oder Kantenschalter (nicht gezeigt) von 2 befinden. Das Überlagerungs-Hilfeprogramm 304 kann sich an dem Host-Computer 12 von 1 oder der Endstation 202 und/oder der Endstation 206 von 2 befinden, zum Beispiel in einem Ethernet-Einheitentreiber.
-
Der Überlagerungs-Agent 302 enthält eine Verwaltungsschnittstelle 306, einen Richtlinien-Agent 308, eine Adressverarbeitungsroutine (address handler) 310 und einen Klassifikator 312A. Die Verwaltungsschnittstelle 306 stellt eine Schnittstelle zu der Verwaltungsstation 32 zum Konfigurieren von Überlagerungsparametern und Bereitstellen von verschiedenen Steuer- und Verwaltungsfunktionen für das aufgesetzte virtuelle Netzwerk bereit, in dem das Überlagerungssystem 300 umgesetzt ist. Zum Beispiel kann die Verwaltungsstation 32 über die Verwaltungsschnittstelle 306 virtuelle Netzwerke und ihre Mitglieder definieren. Die Verwaltungsstation 32 kann auch mit Einheiten und anderen spezialisierten Verwaltungsstationen in einem Rechenzentrum interagieren, wie beispielsweise Netzwerkschaltern, Virtualisierungsmanagern, Servermanagern und dergleichen, um Aufgaben auszuführen, die mit der Verwaltung eines aufgesetzten virtuellen Netzwerks in Beziehung stehen, wie beispielsweise Erstellen von Topologiezuordnungen, Ermitteln von Platzierungskriterien und dergleichen. In einer Ausführungsform ist die Verwaltungsschnittstelle 306 so konfiguriert, dass sie eine globale Ansicht des physischen Netzwerks und/oder des virtuellen Netzwerks für die Verwaltungsstation 32 bereitstellt. Die Verwaltungsschnittstelle 306 kann lokale Parameter, zum Beispiel Paketklassifizierungskriterien, an andere Komponenten des Überlagerungssystems 300 übermitteln. Zum Beispiel kann die Verwaltungsstation 32 eine Kennung konfigurieren, die einem virtuellen Netzwerk zugehörig ist. Der Überlagerungs-Agent 302 kann dann den Klassifikator 312A für eine vordefinierte Verkehrsklassifizierung auf der Grundlage einer physischen oder virtuellen Anschlussnummer, einer MAC-Adresse oder dergleichen konfigurieren.
-
Der Richtlinien-Agent 308 kann mit dem Richtlinien-Server 212, der auch als Richtlinien-Engine bezeichnet wird, Daten austauschen, um einen Richtlinienzwischenspeicher zu erstellen, der die IP-Adresse oder in Beziehung stehende Daten eines Zielüberlagerungs-Agent enthält, der einer Zielendstation in einem bestimmten virtuellen Netzwerk entspricht. Der Richtlinienzwischenspeicher enthält Zuordnungen für Zielendstationen, mit denen lokale Endstationen Daten austauschen möchten. Der Richtlinien-Server 212 kann den Speicherort für eine oder mehrere Endstationen in dem Überlagerungsnetzwerk ermitteln und deren IP-Adressen erhalten, indem er mit verschiedenen Komponenten einer Rechenzentrumsumgebung interagiert wie beispielsweise den Endstationen 202, 206, den Überlagerungssystemen 204, 208 und/oder Kantenschaltern (nicht gezeigt) in 2. In einer weiteren Ausführungsform tauscht die Verwaltungsstation 32 Daten mit dem Richtlinienserver 212 über die Verwaltungsschnittstelle 306 aus, um zur Zuordnung in Beziehung stehende Informationen zum Erstellen von Datenübertragungspfaden für die Endstationen 202, 206 bereitzustellen.
-
Die Adressverarbeitungsroutine 310 empfängt und verarbeitet Anforderungen für ein Adressauflösungsprotokoll (ARP) oder von Layer-2-bezogenen Datenübertragungen von den Endstationen 202, 206. Details des ARP-Protokolls werden hierin der Kürze halber nicht offenbart, da es sich beim ARP um ein bekanntes Protokoll handelt, das verwendet wird, um IP-Adressen zu MAC-Adressen oder anderen Layer-2-Adressen zuzuordnen. Die Adressverarbeitungsroutine 310 kann den Richtlinien-Agent 308 nach einer IP-Adresse des Zielüberlagerungs-Agent zum Austauschen von Daten mit einer Zielendstation abfragen, die sich in dem virtuellen Netzwerk der Quellenendstation befindet, und eine nächste MAC-Hop-Adresse gemäß dem ARP-Protokoll ermitteln, zum Beispiel für die IP-Adresse des Zielüberlagerungs-Agent. Die nächste Hop-Ermittlung kann über normale ARP-Mechanismen erfolgen, zum Beispiel in dem physischen Netzwerk. In Ausführungsformen, in denen ein Layer-2-Netzwerk und ein entsprechender virtueller Layer-2-Netzwerkdienst bereitgestellt werden, ist die Adressverarbeitungsroutine nicht Bestandteil des Überlagerungssystems 300. Hier können Pakete auf der Grundlage einer MAC-Zieladresse statt einer IP-Zieladresse klassifiziert werden. Eine Kennung eines virtuellen Netzwerks kann daher alternativ eine MAC-Adresse statt einer IP-Adresse bezeichnen.
-
Das Überlagerungs-Hilfeprogramm 304 des Überlagerungssystems 300 enthält eine IP-Verarbeitungsroutine (IP handler) 314 und einen Klassifikator 312B, der Teil des Klassifikators 312A des Überlagerungs-Agent 302 ist. Der Klassifikator 312A in dem Überlagerungs-Agent 302 verarbeitet empfangenen Datenverkehr, insbesondere Verkehr, der für eine der lokalen Endstationen bestimmt ist, die durch das Überlagerungssystem bedient werden. Der Klassifikator 312B in dem Überlagerungs-Hilfeprogramm 304 verarbeitet andererseits Pakete zur Übertragung. Zum Beispiel empfängt der Klassifikator 312B IP-Pakete über Layer-2-Daten und dergleichen von der Endstation, zum Beispiel der Endstation 202, und ordnet die Pakete einem virtuellen Netzwerk zu. Diese Zuordnung kann über die Verwaltungsschnittstelle 306 konfiguriert werden. Wie hierin verwendet, können der Klassifikator 312A des Überlagerungs-Agent 302 und der Klassifikator 312B des Überlagerungs-Hilfeprogramms 304 allgemein als ein Klassifikator 312 bezeichnet werden. Kurz gesagt, der Klassifikator 312 ordnet alle Pakete, die von einer lokalen Endstation kommen, zu einem virtuellen Netzwerk zu auf der Grundlage eines vorher konfigurierten virtuellen Anschlusses oder einer Klassifizierung auf MAC-Grundlage, die zum Beispiel durch die Verwaltungsstation 32 konfiguriert wurde. Daher werden alle Pakete, die durch die Endstation übertragen werden, über den Klassifikator 312 übertragen, wobei der Klassifikator 312 die empfangenen Pakete zu einem virtuellen Netzwerk zuordnet.
-
Die IP-Verarbeitungsroutine 314 empfängt IP-Pakete von der Endstation über den Klassifikator 312 und fügt eine Überlagerungskapselung zu jedem empfangenen IP-Paket hinzu. Die Überlagerungskapselung kann einen äußeren MAC-Überlagerungskopf, einen äußeren IP-Überlagerungskopf und einen überlagerungsspezifischen Kopf enthalten. Der äußere MAC-Überlagerungskopf kann eine MAC-Quellenadresse enthalten, die dem Überlagerungssystem A 204 entspricht, und eine MAC-Zieladresse, die der nächsten IP-Hop-Adresse der Zielüberlagerungs-IP-Adresse entspricht. Der äußere IP-Überlagerungskopf kann die IP-Adresse des Quellenüberlagerungssystems 204 und die IP-Adresse des Überlagerungssystems B 208 enthalten. Der überlagerungsspezifische Kopf kann eine eindeutige Kennung enthalten, die das virtuelle Netzwerk identifiziert.
-
Die IP-Verarbeitungsroutine 314 des Zielüberlagerungssystems 208 kann gekapselte IP-Pakete empfangen, die von dem Quellenüberlagerungssystem 204 gesendet wurden, und kann die Zielendstation 206, für die das Paket bestimmt ist, auf der Grundlage des inneren IP-Ziels, d. h. der IP-Adresse der Zielendstation 206, und der Kennung des virtuellen Netzwerks suchen. Die IP-Verarbeitungsroutine 314 des Zielüberlagerungssystems 208 kann mit dem Richtlinien-Agent 308 Daten austauschen, um Zuordnungsinformationen für die Zielendstation 206 abzurufen. Das lokale Ziel kann aus den Paketinhalten abgeleitet werden, und der Zielanschluss kann aus seinen Einstellungen identifiziert werden. Hier ist eine Suche gegebenenfalls nicht erforderlich. Andererseits kann eine Suche trotzdem erforderlich sein, wenn das Ziel geänderte Speicherorte aufweist. Die IP-Verarbeitungsroutine 314 kann den lokalen Richtlinien-Agent 308 abfragen, der wiederum den globalen Richtlinienserver 212 abfragt, wenn die Zuordnung nicht in dem lokalen Zwischenspeicher gefunden wird. Wenn die Endstation identifiziert ist, streift die IP-Verarbeitungsroutine 314 den Überlagerungskopf ab, bevor der Paket-Datenübertragungsblock an die Zielendstation 206 weitergeleitet wird.
-
4 ist ein schematisches Blockschaubild, das einen Prozessablauf 400 zum Austauschen von Daten zwischen den Endstationen 202, 206 und den Überlagerungssystemen 204, 208 von 2 gemäß einer Ausführungsform veranschaulicht. Beim Beschreiben des Prozessablaufs 400 wird auch auf 1 bis 3 Bezug genommen. Der Prozessablauf 400 kann durch Anweisungen gesteuert werden, die in einer Speichereinheit gespeichert sind und durch einen Prozessor von mindesten einem von Endstation 202, Endstation 206, Router 210, Richtlinienserver 212 und/oder einem oder mehreren Zwischenschaltern (nicht gezeigt) zwischen den Endstationen 202, 206 und dem Router 210 ausgeführt werden. In 4 kann die Endstation 202 als eine Quellenendstation bezeichnet werden, und die Endstation 206 kann als eine Zielendstation bezeichnet werden. Außerdem kann in 4 das Überlagerungssystem A 204 als ein Quellenüberlagerungssystem bezeichnet werden, und das Überlagerungssystem B 208 kann als ein Zielüberlagerungssystem bezeichnet werden. Obwohl hierin auf die Überlagerungssysteme 204, 208 verwiesen wird, trifft dies auch auf das Überlagerungssystem 300 zu, das in 3 beschrieben wurde.
-
Eine Zielanforderungsnachricht wird von der Endstation 202 an das Überlagerungssystem A 204 zum Beispiel als eine Rundsendung ausgegeben (402). Die Rundsendungsnachricht kann auf eine bekannte Weise ausgegeben werden, zum Beispiel einem Ausgeben gemäß dem ARP zur Adressauflösung. Alternativ kann die Zielanforderungsnachricht in einem Layer-2-Format ausgegeben werden. Hier kann der Richtlinienzwischenspeicher aktualisiert werden, wenn eine Unicast-Nachricht an den Zielendpunkt von dem Überlagerungssystem 300 empfangen wird.
-
Das Quellenüberlagerungssystem 204 kann die Zielanforderungsnachricht empfangen, wobei die Adressverarbeitungsroutine 310 des Überlagerungs-Agent 302 des Quellenüberlagerungssystems 204 den Richtlinien-Agent 308 nach der IP-Adresse des Zielüberlagerungssystems 208 abfragen kann, das mit der Zielendstation 206 in einem vordefinierten virtuellen Netzwerk in Beziehung steht. Der Richtlinien-Agent 308 des Quellenüberlagerungssystems 204 kann zuerst auf seinen Richtlinienzwischenspeicher (nicht gezeigt) zugreifen, der Zuordnungsinformationen speichern kann, die zu dem Zielüberlagerungssystem 208 der Zielendstation 206 in Beziehung stehen, mit dem die Quellenendstation 202 Daten austauschen möchte. Wenn in dem Richtlinienzwischenspeicher keine derartigen Zuordnungsinformationen gefunden werden, kann die Adressverarbeitungsroutine 310 eine Nachricht, zum Beispiel eine Unicast-Nachricht, an den Richtlinienserver 212 ausgeben (404), um die Zuordnungsinformationen zu erhalten. Insbesondere fragt das Überlagerungssystem 300 den Richtlinienserver 212 nach dem Speicherort des Zielüberlagerungssystems ab, mit dem der Zielendpunkt 206 in demselben virtuellen Netzwerk wie der Quellenendpunkt 202 verbunden ist. Der Richtlinienserver 212 kann den physischen Speicherort der Zielendstation 206 ermitteln, indem er mit Elementen des Rechenzentrums und mit dem Quellenüberlagerungssystem 204 interagiert.
-
Wenn angenommen wird, dass der Richtlinien-Server 212 den Speicherort der Zielendstation 206 ermittelt und die angeforderten Zuordnungsinformationen bereitstellen kann, kann der Richtlinienserver 212 die angeforderten Zuordnungsinformationen für das Zielüberlagerungssystem 208 bereitstellen (406), insbesondere eine Zuordnung der IP-Adresse der Zielendstation 206. Zum Beispiel kann die Adressverarbeitungsroutine 310 den Richtlinienzwischenspeicher abfragen, und wenn dort nichts gefunden wird, nimmt der Richtlinien-Agent 308 mit dem Richtlinienserver 212 Verbindung auf, um die Zuordnungsinformationen abzurufen und sie an die Adressverarbeitungsroutine 310 zurückzugeben. Die Adressverarbeitungsroutine 310 kann dann die ARP-Anforderung erfüllen, die von der lokalen Endstation stammt, d. h. dem Quellenendpunkt 202. Außerdem kann der Richtlinien-Agent 308 mit dem Richtlinienserver 212 Daten austauschen, um den Speicherort der Zielendstation 206 zu ermitteln und den Richtlinienzwischenspeicher mit den Zuordnungsinformationen zu aktualisieren.
-
Die Adressverarbeitungsroutine 310 des Quellenüberlagerungssystems 204 kann die IP-Adresse der Zielendstation 206 und eine entsprechende nächste MAC-Hop-Adresse ausgeben (408), die in Reaktion auf die ursprüngliche ARP-Anforderung an die Endstation 202 erzeugt wurde. Nach der Adressauflösung kann die Quellenendstation 202 ein Paket ausgeben (410), das einen Layer-2-Kopf, z. B. Ethernet-Kopf 411, einen IP-Kopf 412 und Nutzdaten (PL) 413 enthält. Der Layer-2-Kopf 411 kann die nächste MAC-Hop-Adresse (R1-MAC-Adr.) und die Ziel-IP-Adresse (ES2-IP-Adr.) enthalten, die von dem Richtlinienserver 212 und/oder dem Richtlinien-Agent 308 empfangen werden.
-
Das Überlagerungssystem A 204, insbesondere die IP-Verarbeitungsroutine 314, empfängt das Paket von der Endstation 202. Die IP-Verarbeitungsroutine 314 fügt eine Überlagerungskapselung 418 zum dem Paket hinzu und gibt das gekapselte Paket aus (414). Die Überlagerungskapselung 418 enthält einen äußeren MAC-Überlagerungskopf 415, einen äußere IP-Überlagerungskopf 416 und einen Überlagerungskopf 417. Ein optionaler Layer-4-Kopf (nicht gezeigt), zum Beispiel ein UDP-Kopf, kann zwischen dem IP-Kopf 416 und dem Überlagerungskopf 417 positioniert werden. Der äußere MAC-Überlagerungskopf 413 enthält eine MAC-Quellenadresse (omac1), die dem Quellenüberlagerungssystem 204 entspricht, und eine MAC-Zieladresse, z. B. die nächste MAC-Hop-Adresse (rmac1). Wenn das Ziel in einer Ausführungsform in demselben Teilnetz liegt wie die Quelle, ist die MAC-Zieladresse diejenige des Zielüberlagerungssystems 208. In einer weiteren Ausführungsform, wie in 2 gezeigt, ist die MAC-Zieladresse diejenige einer Gateway-Schnittstelle (R1), die Pakete jeweils zwischen den Teilnetzen der Endstationen 202, 206 weiterleitet.
-
Der äußere IP-Überlagerungskopf 416 kann die IP-Adresse des Quellenüberlagerungssystems 204 und die IP-Adresse des Zielüberlagerungssystems 208 enthalten. Der Überlagerungskopf 417 kann eine eindeutige Kennung enthalten, die das virtuelle Netzwerk identifiziert. Wenn die Überlagerungskapselung 418 zu dem Paket hinzugefügt wird, das von der Quellenendstation 202 empfangen wird, werden die Inhalte des ursprünglichen Pakets 411, 412, 413 kombiniert, um neue Nutzdaten PL1 419 zu bilden, die mit der Überlagerungskapselung 418 an den Router 210 oder alternativ an einen Kantenschalter oder einen in Beziehung stehenden Netzwerkschalter ausgegeben werden (414).
-
Der Router 210, insbesondere eine erste Teilnetzschnittstelle R1 des Routers 210, die aus der nächsten MAC-Hop-Adresse identifiziert wird, empfängt das Paket mit den Nutzdaten PL1 419 und gibt die Nutzdaten PL1 419 sowie Inhalte des Überlagerungskopfs 417 und des äußeren IP-Überlagerungskopfs 416 von einer zweiten Schnittstelle R2 aus (420), die ein zweites Teilnetz bedient, von dem die Zielendstation 206 und/oder das Zielüberlagerungssystem 208 ein Mitglied sind. Ein MAC-Adresskopf 421 wird hinzugefügt, der die MAC-Quellenadresse, d. h. die MAC-Adresse der zweiten Router-Schnittstelle R2, und die MAC-Adresse des Zielüberlagerungs-Agent 208 enthält, die der IP-Adresse des Zielüberlagerungssystems 208 in dem äußeren IP-Überlagerungskopf 416 entspricht.
-
Das Überlagerungssystem B 208 kann den Überlagerungskopf 417 aus dem Paket entfernen, das von dem Router 210 empfangen wird, und die ursprünglichen Nutzdaten 413 an die Zielendstation 206 ausgeben. Die IP-Verarbeitungsroutine 314 des Zielüberlagerungssystems 208 kann die beabsichtigte Zielendstation zum Empfangen des Pakets auf der Grundlage der inneren IP-Ziels (esip2), das in dem IP-Zieladressfeld 412 bereitgestellt wird, und aus virtuellen Netzwerkinformationen in dem Überlagerungskopf 417 ermitteln, zum Beispiel einer eindeutigen Kennung des virtuellen Netzwerks. Das Überlagerungssystem B 208 kann diese Informationen verwenden, um die Zielendstation 206 zu ermitteln und ein Datenpaket, das die ursprünglichen Nutzdaten 413 enthält, an die Zielendstation 206 auszugeben (422).
-
5 ist ein Ablaufplan eines Verfahrens 500 zum Ausführen einer Überlagerungsoperation gemäß einer Ausführungsform. Beim Beschreiben des Verfahrens 500 wird auch auf Elemente von 1 bis 4 Bezug genommen.
-
Im Block 502 kann der Überlagerungs-Agent 302 des Überlagerungssystems 300 in dem Zugriffsschalter 16 oder einer in Beziehung stehenden Netzwerkkanteneinheit umgesetzt werden. Wie oben beschrieben, kann der Überlagerungs-Agent 302 eine Verwaltungsschnittstelle 306, einen Richtlinien-Agent 308, eine Adressverarbeitungsroutine 310 und einen Klassifikator 312A enthalten.
-
Im Block 504 wird das Überlagerungs-Hilfeprogramm 304 in dem Host-Computer 12 umgesetzt. Wie oben beschrieben, kann das Überlagerungs-Hilfeprogramm 304 eine IP-Verarbeitungsroutine 314 und einen Klassifikator 312 enthalten. In einer Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in einem Hypervisor-NIC-Treiber umgesetzt. In einer weiteren Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in einem SR IOV NIC umgesetzt. In einer weiteren Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in einem übernommenen NIC, einem OS-NIC-Treiber und/oder NIC-Firmware oder Hardware umgesetzt.
-
Im Block 506 können Überlagerungsparameter über ein Inband-Protokoll von dem Überlagerungs-Agent 302 zu dem Überlagerungs-Hilfeprogramm 304 übertragen werden. Klassifizierungskriterien auf der Grundlage von physischen oder virtuellen Anschlussnummern, MAC-Adressen und dergleichen können vor dem Start eines Verkehrsflusses zwischen den beiden Endstationen ausgetauscht werden. Einträge des Richtlinienzwischenspeichers und dergleichen können beim Start des Verkehrsflusses ausgetauscht werden. Eine Kapselung kann durch Hinzufügen eines Überlagerungskopfs zu einem empfangenen Paket erfolgen, der IP- und/oder MAC-Adressinformationen, virtuelle Netzwerkinformationen und/oder in Beziehung stehende Informationen enthält, um die Zielendstation des Pakets in dem aufgesetzten virtuellen Netzwerk zu ermitteln. Dementsprechend kann durch Umsetzen eines Überlagerungssystems 300 sowohl in einem Zugriffsschalter als auch einer Endstation ein virtuelles Netzwerk so skaliert werden, dass es neben virtualisierten Einheiten auch übernommene Einheiten enthält, wodurch eine Abhängigkeit von Hypervisor-Plattformen und dergleichen verringert wird. Damit kann die Funktionalität des aufgesetzten virtuellen Netzwerks von dem Betriebssystem oder Hypervisor getrennt werden. Ferner können Hinzufügungs-, Lösch- oder Modifikationsvorgänge für den Überlagerungskopf, die durch das Überlagerungs-Hilfeprogramm ausgeführt werden, in einer Hardware-, Firmware- oder Softwareschicht unter dem Betriebssystem des Host-Computers erfolgen. Somit können Überlagerungsfunktionen ohne die Notwendigkeit erfolgen, das Betriebssystem zu modifizieren.
-
6 ist ein Blockschaubild einer Umgebung 600, die einen Host-Computer 612 und einen Zugriffsschalter 616 enthält, der gemäß einer Ausführungsform mit dem virtuellen Netzwerküberlagerungssystem 300 konfiguriert ist.
-
Der Host-Computer 612 enthält einen Hypervisor 606 zum Abstrahieren der Hardware des Host-Computers 12 in virtuelle Maschinen 602-1 bis 602-N (allgemein 602). Die virtuellen Maschinen 602 nutzen gemeinsam einen physischen Netzwerkschnittstellen-Controller (NIC) 614 zum Ausführen von externen Netzwerk-E/A-Operationen. Der Hypervisor 606 kann einen virtuellen Schalter 608 oder vSchalter auf Software-Grundlage enthalten, der eine hohe Vernetzungsfähigkeit zwischen den virtuellen Maschinen 602 bereitstellt. Der virtuelle Schalter 608 bildet eine Schnittstelle zwischen dem physischen NIC 614 und einer Vielzahl von virtuellen NICs 604 oder vNICs der virtuellen Maschinen 602 zum Weiterleiten von Paketen zwischen den virtuellen Maschinen 602 und dem physischen NIC 614.
-
Jeder virtuellen Maschine 602 können eine oder mehrere vNICs 604 zugehörig sein. Jede virtuelle Maschine kann auch einen VM-Netzwerkstapel 620 und einen VM-vNIC-Treiber 622 enthalten, der einen entsprechenden vNIC 604 steuert. Im Allgemeinen arbeitet jeder vNIC 604 wie eine physische Netzwerkschnittstelle. Zum Beispiel kann jedem vNIC 604 eine eindeutige MAC-(Media Access Control)Adresse zugewiesen werden.
-
Die vNICs 604 sind mit dem physischen NIC 614 über den Hypervisor-NIC-Treiber 610 und den virtuellen Schalter 608 logisch verbunden. In einer Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 des Überlagerungssystems 300 in dem Hypervisor-NIC-Treiber 610 oder alternativ in der NIC-Firmware oder Hardware umgesetzt. Der Überlagerungs-Agent 302 des Überlagerungssystems 300 kann in dem Zugriffsschalter 616 umgesetzt werden. In einer weiteren Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in dem VM-Netzwerkstapel 620 umgesetzt. In einer weiteren Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in dem VM-vNIC-Treiber 622 umgesetzt. In einer weiteren Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in einer Kombination aus dem VM-Netzwerkstapel 620, dem VM-vNIC-Treiber 622 und Hypervisor-NIC-Treiber 610 umgesetzt. Der Überlagerungs-Agent 302 und das Überlagerungs-Hilfeprogramm 304 tauschen über ein Inband-Protokoll miteinander Daten aus, um Überlagerungsparameter, zum Beispiel Klassifizierungskriterien und Daten des Richtlinienzwischenspeichers wie beispielsweise virtuelle Netzwerkzuordnungsinformationen, zwischen dem Überlagerungs-Agent 302 und dem Überlagerungs-Hilfeprogramm 304 zu übertragen.
-
7 ist ein Blockschaubild einer Umgebung 700, die einen Host-Computer 712 und einen Zugriffsschalter 716 enthält, der gemäß einer weiteren Ausführungsform mit dem virtuellen Netzwerküberlagerungssystem 300 konfiguriert ist. Die Umgebung 700 ähnelt der Umgebung 600, die in 6 beschrieben wurde, mit Ausnahme dessen, dass die Umgebung 700 einen SR-IOV NIC 714 enthält. Hier kann ein vNIC 704 mit dem physischen NIC 714 über eine virtuelle Funktions-(VF)Engine 730 logisch verbunden werden, die eine virtualisierte Instanz des NIC 714 enthalten kann. Ein Hypervisor-NIC-Treiber 710 kann eine physische Funktions-(PF)Engine steuern, ähnlich der Konfiguration von 6, sodass der Hypervisor 706 auf die PF 732 zugreifen kann, bei der es sich um die Schnittstelle zu der physischen Karte handelt. Die VF-Engines 730 gestatten ein Umschalten von Verkehrsleistung, die durch ein Umschalten des Verkehrs zwischen den virtuellen Maschinen 702 verbessert werden soll, indem der vSchalter 708 umgangen wird. Daher können die VMs 702A, 702D über die virtuellen Funktionen direkt auf den physischen NIC 714 zugreifen, ohne auf den Hypervisor 706 für Steuerungs- oder Datenoperationen zurückgreifen zu müssen.
-
In einer Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 des Überlagerungssystems 300 in dem NIC-Treiber 710, der die PF 732 steuert, oder in der NIC-Firmware oder Hardware umgesetzt. Der Überlagerungs-Agent 302 des Überlagerungssystems 300 kann in dem Zugriffsschalter 616 umgesetzt werden. In einer weiteren Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in einem VM-Netzwerkstapel 720 umgesetzt. In einer weiteren Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in dem VM-vNIC-Treiber 722 umgesetzt. In einer weiteren Ausführungsform wird das Überlagerungs-Hilfeprogramm 304 in einer Kombination aus dem VM-Netzwerkstapel 720, dem VM-vNIC-Treiber 722 und dem NIC-Treiber 710 umgesetzt.
-
8 ist ein Blockschaubild einer Umgebung 800, die einen Host-Computer 812 und einen Zugriffsschalter 816 enthält, der gemäß einer weiteren Ausführungsform mit dem virtuellen Netzwerküberlagerungssystem 300 konfiguriert ist. Der Host-Computer 812 kann ein herkömmliches Betriebssystem enthalten und erfordert keinen Hypervisor oder VMM.
-
Der Host-Computer 812 kann einen NIC 804 enthalten, der zum Beispiel für Netzwerkvirtualisierung konfiguriert ist und Warteschlangen enthält, die jeweils einer virtualisierten oder nicht-virtualisierten Entität auf dem physischen Host-Computer 12 fest zugeordnet sind. Hier kann jeder Warteschlange eine eindeutige MAC-Adresse zugewiesen werden, um die Entitäten voneinander zu unterscheiden. Das Überlagerungs-Hilfeprogramm 304 des Überlagerungs-Systems 300 kann in einem OS-NIC-Treiber 806, der den NIC 804 steuert, oder in der Firmware oder Hardware des NIC 804 umgesetzt werden. Der Überlagerungs-Agent 302 des Überlagerungssystems 300 kann in dem Zugriffsschalter 816 umgesetzt werden. Der Überlagerungs-Agent 302 und das Überlagerungs-Hilfeprogramm 304 tauschen Daten über ein Inband-Protokoll miteinander aus, das so konfiguriert werden kann, dass Überlagerungsparameter und dergleichen ausgetauscht werden. Daher können virtualisierte Endstationen und/oder nicht-virtualisierte Endstationen Teil eines skalierbaren aufgesetzten virtuellen Netzwerks sein.
-
9A ist ein schematisches Blockschaubild, das einen Prozessablauf 900 zum Initialisieren eines Quellenüberlagerungssystems gemäß einer Ausführungsform veranschaulicht. 9B ist ein schematisches Blockschaubild, das einen Prozessablauf 920 zum Initialisieren eines Zielüberlagerungssystems gemäß einer Ausführungsform veranschaulicht. Beim Beschreiben der Prozessabläufe 900 und 920 wird auch auf 1 bis 8 Bezug genommen. In 9A und 9B werden zwei Überlagerungssysteme initialisiert, die jeweils einer Quellenendstation (ES1) und einer Zielendstation entsprechen, um zu gestatten, dass eine Datenübertragung zwischen den beiden Endstationen in demselben aufgesetzten virtuellen Netzwerk erfolgt. Jedes der beiden Überlagerungssysteme kann auf das Überlagerungssystem 300 von 3 und/oder jeweils die Überlagerungssysteme 204, 208 von 2 verweisen.
-
In 9A erfolgt der Prozessablauf 900 zwischen dem Quellenüberlagerungs-Hilfeprogramm 304, das in der Quellenendstation 202 umgesetzt wird (allgemein 902), dem Quellenüberlagerungs-Agent 302, der in einem Quellenzugriffsschalter umgesetzt wird (allgemein 904), einer Verwaltungsstation, die mit dem Quellenzugriffsschalter Daten austauschen kann (allgemein 906), und einer Topologiezuordnungsfunktion (topology mapper), die für den Richtlinienserver 212 konfiguriert ist (allgemein 908).
-
Die Verwaltungsstation 906 kann eine Anforderung zum Aktivieren einer Überlagerung an den Quellenzugriffsschalter 904 ausgeben (910). Die Verwaltungsstation 906 kann mit der Verwaltungsschnittstelle 306 des Quellenüberlagerungs-Agent 904 Daten austauschen, um das Quellenüberlagerungssystem 300 in die Lage zu versetzen, Pakete zu klassifizieren, einen Überlagerungskopf zu einem empfangenen Paket hinzuzufügen, mit dem Quellenüberlagerungs-Hilfeprogramm 902 über ein Inband-Protokoll Daten auszutauschen und/oder andere Funktionen des Überlagerungssystems 300 auszuführen, wie diejenigen, die hierin beschrieben werden. Die Verwaltungsstation 906 kann die Anforderung zum Aktivieren eines vordefinierten Anschlusses des Quellenzugriffsschalters konfigurieren, um Pakete zu verarbeiten, die zu dem aufgesetzten virtuellen Netzwerk in Beziehung stehen, zu dem die Quellenendstation 202 gehört. Der Anschluss kann so gekennzeichnet werden, dass er in dem benutzerdefinieren virtuellen Netzwerk liegt. Daher werden Pakete, die aus diesem Anschluss ausgegeben werden, automatisch als zu dem gekennzeichneten virtuellen Netzwerk zugehörig klassifiziert. Das Quellenüberlagerungssystem 300 kann die erforderliche Kapselung wie hierin beschrieben ausführen, um das Paket durch das physische Netzwerk zu dem Zielüberlagerungssystem zu übertragen.
-
Der Überlagerungs-Agent 904 kann in Reaktion darauf, dass er für eine virtuelle Überlagerungsoperation aktiviert wird, Adressinformationen, zum Beispiel die MAC-Adresse und/oder die IP-Adresse des Quellenüberlagerungs-Agent 904, an das Quellenüberlagerungs-Hilfeprogramm 902 ausgeben (912).
-
Die Verwaltungsstation 906 kann über die Verwaltungsschnittstelle 306 eine Anforderung an die Topologiezuordnungsfunktion 908 für physische Speicherorte der Endstationen senden (914), um eine Topologiezuordnung zu erstellen oder Platzierungskriterien zu ermitteln, die mit dem aufgesetzten virtuellen Netzwerk (OVNX) in Beziehung stehen, dem die Quellenendstation 202 zugehörig ist, d. h., die Quellenendstation 902 kann ein Mitglied von OVNX sein.
-
Die Verwaltungsstation 906 kann Topologiezuordnungsinformationen, die von der Topologiezuordnungsfunktion 908 empfangen wurden, an den Quellenüberlagerungs-Agent 904, insbesondere an den Richtlinien-Agent 308 ausgeben (916). Diese Informationen können von anderen Überlagerungs-Agents in einer virtuellen Netzwerkoperation verwendet werden, wobei Datenübertragungen erfolgen können, wenn zum Beispiel die Endstation 902 ein Paket von einer anderen Endstation empfängt, d. h., die Endstation 902 ist eine Zielendstation. Die Topologiezuordnungsinformationen können eine MAC-Adresse einer Quellenendstation, Zugriffsschalter-Anschlussinformationen, eine Kennung eines virtuellen Netzwerks und dergleichen enthalten.
-
Einige oder alle Elemente der Topologiezuordnungsdaten, zum Beispiel MAC-Adresse der Quellenendstation und Kennung des virtuellen Netzwerks, können an das Überlagerungs-Hilfeprogramm 902 ausgegeben werden (918), um einen Speicherort der Quellenendstation 202 zu erstellen.
-
In 9B erfolgt ein Prozessablauf 920 zwischen dem Überlagerungs-Hilfeprogramm 304, das in der Zielendstation 206 umgesetzt wird (allgemein 922), dem Überlagerungs-Agent 302, der in einem Zielzugriffsschalter umgesetzt wird (allgemein 924), einer Verwaltungsstation, die mit dem Zielzugriffsschalter Daten austauschen kann (allgemein 926), und der Topologiezuordnungsfunktion, die für den Richtlinienserver 212 konfiguriert ist (allgemein 928). Der Zielzugriffsschalter 924 kann derselbe Schalter oder ein ähnlicher Schalter wie der Quellenzugriffsschalter 904 von 9A sein. Die Verwaltungsstation 926 kann dieselbe oder ähnlich der Verwaltungsstation 906 von 9A sein. Die Topologiezuordnungsfunktion 928 kann dieselbe wie die Topologiezuordnungsfunktion 908 von 9A sein.
-
Die Verwaltungsstation 926 kann eine Anforderung zum Aktivieren einer Überlagerung an den Zielzugriffsschalter 924 ausgeben (930). Die Verwaltungsstation 926 kann mit der Verwaltungsschnittstelle 306 des Zielüberlagerungs-Agent 924 Daten austauschen, um das Überlagerungssystem 300 in die Lage zu versetzen, Pakete zu klassifizieren, einen Überlagerungskopf zu einem empfangenen Paket hinzuzufügen, mit dem Zielüberlagerungs-Hilfeprogramm 922 über ein Inband-Protokoll Daten auszutauschen und/oder andere Funktionen des Überlagerungssystems 300 auszuführen, wie diejenigen, die hierin beschrieben werden. Die Verwaltungsstation 926 kann die Anforderung zum Aktivieren eines vordefinierten Anschlusses Q des Zielzugriffsschalters konfigurieren, um Pakete zu verarbeiten, die zu dem aufgesetzten virtuellen Netzwerk in Beziehung stehen, zu dem die Zielendstation 222 gehört.
-
In Reaktion darauf, dass er für eine virtuelle Überlagerungsoperation aktiviert wird, kann der Überlagerungs-Agent 924 Adressinformationen, zum Beispiel die MAC-Adresse und/oder die IP-Adresse des Zielüberlagerungs-Agent 924, an das Zielüberlagerungs-Hilfeprogramm 922 ausgeben (932).
-
Die Verwaltungsstation 926 kann über die Verwaltungsschnittstelle 306 eine Anforderung an die Topologiezuordnungsfunktion 928 für Endstations-Speicherplatzinformationen senden (934), um eine Topologiezuordnung zu erstellen, Platzierungskriterien zu ermitteln usw., die mit dem aufgesetzten virtuellen Netzwerk (OVNX) in Beziehung stehen, dem die Zielendstation 206 zugehörig ist, d. h., die Zielendstation 922 kann ein Mitglied von OVNX sein. Die Verwaltungsstation 926 kann Topologiezuordnungsinformationen an den Richtlinienserver 928 ausgeben (936), der von dem Überlagerungs-Agent 924 abgefragt wird, um einen Übertragungspfad zu erstellen. Diese Informationen können von anderen Überlagerungs-Agents in einer virtuellen Netzwerkoperation verwendet werden, wenn zum Beispiel die Endstation eine Zielendstation ist. Die Topologiezuordnungsinformationen können eine MAC-Adresse einer Zielendstation, Zugriffsschalter-Anschlussinformationen, eine Kennung eines virtuellen Netzwerks und dergleichen enthalten.
-
Einige oder alle Elemente der Topologiezuordnungsdaten, zum Beispiel MAC-Adresse der Zielendstation und Kennung des virtuellen Netzwerks, können an das Überlagerungs-Hilfeprogramm 922 ausgegeben werden (938), um einen Speicherort der Zielendstation 206 zu erstellen.
-
10 ist ein schematisches Blockschaubild, das einen Prozessablauf 1000 zum Austauschen von Daten mit einem Quellenüberlagerungssystems gemäß einer Ausführungsform veranschaulicht. Beim Beschreiben des Prozessablaufs 1000 wird auch auf Elemente von 1 bis 9 Bezug genommen. Insbesondere wird der Prozessablauf 1000 so beschrieben, dass er zwischen der ersten Endstation 202, dem Router 210 und dem Richtlinienserver 212 von 2 und dem Quellenüberlagerungs-Hilfeprogramm 304, der in der Quellenendstation 202 umgesetzt wird (allgemein 902), und dem Quellenüberlagerungs-Agent 302 erfolgt, der in dem Quellenzugriffsschalter von 9 umgesetzt wird (allgemein 904). Der Prozessablauf 1000 kann jedoch ebenfalls zwischen Endstationen und den Zugriffsschaltern erfolgen, auf die in 6 bis 8 oder in anderen hierin beschriebenen Figuren Bezug genommen wird.
-
Eine Zielanforderungsnachricht wird von der Endstation 202 an den Quellenüberlagerungs-Agent 904 zum Beispiel als eine Rundsendungsnachricht ausgegeben (1002). Die Rundsendungsnachricht kann auf eine bekannte Weise ausgegeben werden, zum Beispiel einem Ausgeben gemäß dem ARP zur Adressauflösung.
-
Die Adressverarbeitungsroutine 310 des Quellenüberlagerungs-Agent 904 kann die Anforderung über den Klassifikator 312 empfangen und den Richtlinien-Agent 308 nach der IP-Adresse der Zielendstation 206 abfragen, zum Beispiel das virtuelle Netzwerk (OVNX) der Quellenendstation 202. Der Richtlinien-Agent 308 des Quellenüberlagerungs-Agent 904 kann zuerst auf seinen Richtlinienzwischenspeicher (nicht gezeigt) zugreifen, der Zuordnungsinformationen speichern kann, die zu der Zielendstation 206 in Beziehung stehen, mit der die Quellenendstation 202 Daten austauschen möchte. Die Adressverarbeitungsroutine 310 kann mit dem Richtlinien-Agent 308 Daten austauschen, der einen lokalen Zwischenspeicher überprüfen kann. Wenn die Zuordnungsinformationen nicht gefunden werden, kann der Richtlinienserver 212 die Zuordnungsinformationen bereitstellen. Eine Unicast-Nachricht kann an den Richtlinienserver 212 ausgegeben werden (1004), um die Zuordnungsinformationen zu erhalten.
-
Der Richtlinienserver 212 kann den physischen Speicherort der Zielendstation 206 gemäß Ansätzen ermitteln, die denjenigen ähnlich sind, die oben unter Bezugnahme auf 4 beschrieben wurden. Derartige Ansätze werden der Kürze halber hier nicht wiederholt. Der Richtlinienserver 212 kann die angeforderten Zuordnungsinformationen, insbesondere eine Zuordnung der IP-Adresse der Zielendstation 206 an das Zielüberlagerungssystem ausgeben (1006). Außerdem kann der Richtlinien-Agent 308 mit dem Richtlinienserver 212 Daten austauschen, um den Speicherort der Zielendstation 206 zu ermitteln und den Richtlinienzwischenspeicher mit den Zuordnungsinformationen zu aktualisieren. Der Quellenüberlagerungs-Agent 904 kann Überlagerungsparameter wie Klassifizierungsdaten und Daten des Richtlinienzwischenspeichers an das Quellenüberlagerungs-Hilfeprogramm 902 senden (1008). Zum Beispiel kann der Quellenüberlagerungs-Agent 904 beispielsweise nächste MAC- und IP-Hop-Adressdaten sowie in Beziehung stehende Überlagerungskapselungsinformationen senden, die hierin beschrieben werden. Der Quellenüberlagerungs-Agent 904 kann mit dem Quellenüberlagerungs-Hilfeprogramm 902 über ein Inband-Protokoll Daten austauschen. Der Quellenüberlagerungs-Agent 904 kann die IP-Adresse der Zielendstation 206 und eine entsprechende nächste MAC-Hop-Adresse an die Endstation 202 ausgeben (1010).
-
Die Endstation 202 kann ein Paket ausgeben (1012). Das Paket kann ein Netzwerkpaket enthalten, zum Beispiel einen Datenübertragungsblock oder ein IP-Paket. Das Paket kann eine MAC-Zieladresse 1013 und eine IP-Zieladresse 1014 enthalten, die von dem Quellenüberlagerungs-Hilfeprogramm 902 empfangen werden. Das Paket kann auch Nutzdaten (PL) 1015 und/oder weitere Felder mit Inhalten enthalten, die einem Fachmann bekannt sind.
-
Die IP-Verarbeitungsroutine 314 des Quellenüberlagerungs-Hilfeprogramms 902 empfängt das Paket von der Endstation 202. Die IP-Verarbeitungsroutine 314 fügt eine Überlagerungskapselung 1020 zu dem Paket hinzu und gibt das gekapselte Paket an den Quellenzugriffsschalter aus (904). Die Überlagerungskapselung 1020 enthält einen äußeren MAC-Überlagerungskopf 1017, einen äußeren IP-Überlagerungskopf 1018 und einen Überlagerungskopf 1019. Der äußere MAC-Überlagerungskopf 1017 enthält eine MAC-Quellenadresse (omac1), die dem Anschluss des Quellenzugriffsschalters entspricht, und eine nächste MAC-Hop-Adresse (rmac1). Wenn das Ziel in einer Ausführungsform in demselben Teilnetz liegt wie die Quelle, ist die MAC-Zieladresse diejenige des Zielüberlagerungssystems 208. In einer weiteren Ausführungsform, wie in 2 gezeigt, ist die MAC-Zieladresse diejenige eines Routers oder einer Gateway-Schnittstelle (R1), die Pakete jeweils zwischen den Teilnetzen der Endstationen 202, 206 weiterleitet. Der äußere IP-Überlagerungskopf 1018 kann die IP-Adresse des Quellenüberlagerungs-Agent 904 und die IP-Adresse des Zielüberlagerungs-Agent enthalten. Der Überlagerungskopf 1019 kann eine eindeutige Kennung enthalten, die das virtuelle Netzwerk identifiziert. Wenn die Überlagerungskapselung 1020 zu dem Paket hinzugefügt wird, das von der Quellenendstation 202 empfangen wird, werden die Inhalte des ursprünglichen Pakets 1013, 1014, 1015 kombiniert, um neue Nutzdaten PL1 1021 zu bilden, die mit der Überlagerungskapselung 1020 von dem Überlagerungs-Hilfeprogramm 902 an den Quellenzugriffsschalter mit dem Quellenüberlagerungs-Agent 904 ausgegeben werden (1016), der wiederum das Paket 1020, 1021 an den Router 210 oder an einen Netzwerkschalter oder eine in Beziehung stehende Netzwerkeinheit ausgibt (1022).
-
11 ist ein schematisches Blockschaubild, das einen Prozessablauf 1100 zum Austauschen von Daten mit einem Zielüberlagerungssystem gemäß einer Ausführungsform veranschaulicht. Beim Beschreiben des Prozessablaufs 1100 wird auch auf Elemente von 1 bis 10 Bezug genommen. Insbesondere wird der Prozessablauf 1100 so beschrieben, dass er zwischen der zweiten Endstation 206, dem Router 210 und dem Richtlinienserver von 2 und dem Zielüberlagerungs-Hilfeprogramm 304, das in der Zielendstation 206 umgesetzt wird (allgemein 922), und dem Zielüberlagerungs-Agent 302 erfolgt, der in dem Zielzugriffsschalter von 9 umgesetzt wird (allgemein 924). Der Prozessablauf 1100 kann jedoch ebenfalls zwischen Endstationen und den Zugriffsschaltern erfolgen, auf die in 6 bis 8 oder in anderen hierin beschriebenen Figuren Bezug genommen wird.
-
Der Prozessablauf 1100 beginnt damit, dass der Router 210 die Paketnutzdaten PL1 1021, den Überlagerungskopf 1019 und den äußeren IP-Überlagerungskopf 1018, die in dem Prozessablauf 1000 bereitgestellt werden, an den Zielzugriffsschalter mit dem Überlagerungs-Agent 924 ausgibt (1102), der wiederum diese Paketdaten an den Zielüberlagerungskopf 922 ausgibt (1104). Ein MAC-Adresskopf 1103 wird hinzugefügt, der die MAC-Quellenadresse enthalten kann, d. h. die MAC-Adresse der Router-Schnittstelle oder des Zugriffsschalteranschlusses, die bzw. der die Paketnutzdaten PL1 1021 ausgibt (1102). Der MAC-Adresskopf 1103 enthält auch die MAC-Adresse des Zielüberlagerungs-Agent 924.
-
Das Zielüberlagerungs-Hilfeprogramm 304 kann den Überlagerungskopf 1019 aus dem empfangenen Datenübertragungsblock entfernen und ermittelt die Zielendstation 206 aus dem inneren IP-Ziel, d. h. der ES2-IP-Adresse 1014 in den Paketnutzdaten PL1 1021 und oder der Kennung des virtuellen Netzwerks in dem Kopf 1019. Ein MAC-Kopf 1107 wird hinzugefügt, der die MAC-Adresse der Zielendstation enthält, die dem Überlagerungs-Hilfeprogramm 302 während des in 9 beschriebenen Initialisierungsprozesses bereitgestellt werden kann.
-
Dementsprechend können die ursprünglichen Nutzdaten PL 1015 zu der beabsichtigten Zielendstation 206 geleitet werden.
-
Wie einem Fachmann klar sein wird, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung in der Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Schaltung”, „Modul” oder „System” Bezug genommen werden kann. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darin ausgeführten computerlesbaren Programmcode verkörpert ist.
-
Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würde Folgendes zählen: eine elektrische Verbindung mit einer oder mehreren Drahtleitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein derartiges verbreitetes Signal kann jede einer Vielfalt von Formen annehmen, einschließlich elektromagnetisch, optisch oder jede geeignete Kombination davon, es ist aber nicht darauf beschränkt. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung übertragen, verbreiten oder transportieren kann. In einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination des Vorgenannten, er ist aber nicht darauf beschränkt.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C” oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden sein, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters).
-
Aspekte der vorliegenden Erfindung werden im hierin unter Bezugnahme auf Veranschaulichungen des Ablaufplans und/oder der Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Ablaufplan-Veranschaulichungen und/oder Blockschaubildern und Kombinationen von Blöcken in den Ablaufplan-Veranschaulichungen und/oder Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsartikel erzeugen, einschließlich Anweisungen, die die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen. Die Computerprogrammanweisungen können auch auf einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen Vorrichtung, die programmierbare Daten ausführt, oder anderen Einheiten zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Handlungen bereitstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Es ist ebenfalls anzumerken, dass in einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge auftreten können als in den Figuren angegeben. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block in den Blockschaubildern und/oder in der Ablaufplan-Veranschaulichung und Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Veranschaulichung durch spezielle Systeme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
-
Die Erfindung wurde zwar unter Bezugnahme auf spezifische Ausführungsformen gezeigt und beschrieben, doch sollte einem Fachmann klar sein, dass verschiedene Änderungen in Form und Detail daran vorgenommen werden können, ohne von dem Umfang der Erfindung abzuweichen.