-
Hintergrund
-
Die vorliegende Erfindung betrifft die Infrastruktur von Rechenzentren und insbesondere betrifft diese Erfindung Ethernet-Switches, die ohne Verwendung einer Nachschlagetabelle eine Paketvermittlung auf der Ebene 2 durchführen können.
-
In Vermittlungsstellen (Switches) von paketvermittelten Netzwerken wird eine Tabellensuche (Lookup) üblicherweise an einer Medienzugriffssteuerungs-(MAC-)Adresse eines Ziels oder einer Internet-Protocol-(IP-)Adresse eines Ziels durchgeführt, um einen tatsächlichen Zielport einer Vermittlungseinheit für die Weiterleitung des Pakets aufzufinden. Für diese Feststellung verwenden die meisten Systeme einen Vermittlungsprozessor irgendeiner Art, wie zum Beispiel eine anwendungsspezifische integrierte Schaltung (ASIC). Der Vermittlungsprozessor verwaltet Nachschlagetabellen zur Durchführung des Nachschlagemechanismus (look-up resolution), die in typischen Netzwerken ziemlich lang sein und möglicherweise Tausende von Einträgen haben können. Die Nachschlagetabellen werden entweder auf dem Chip oder chipextern gespeichert. In beiden Fällen macht die Verwendung einer Nachschlagetabelle die Logik deutlich komplexer und sie erhöht den Platz- sowie den Speicherbedarf auf dem Chip. Diese zusätzliche Komplexität erhöht letztendlich die Latenzzeit und macht den Chip teurer als gewünscht. Es wäre folglich vorteilhaft, ohne Verwendung einer Nachschlagetabelle einen tatsächlichen Zielport aufzufinden.
-
In diesem Kontext gibt es bereits bekannte Veröffentlichungen. So ist im Dokument US 2010 / 0 135 219 A1 ein Netzwerk inklusive eines Hub und mindestens einem unverbundenen Peripheriegerät beschrieben. Das unverbundene Peripheriegerät sendet eine Anschlussanforderung mit einer ausgewählten Adresse an den Hub und empfängt eine neue Adresse von dem Hub. Außerdem beschreibt das Dokument
US 7 724 747 B2 ein Verfahren, um eine MAC-Adresse für eine Vorrichtung zu erzeugen. Dazu werden ein oder mehrere Kennzeichner und eine erste MAC-Adresse (media access control) erhalten, woraus eine zweite MAC-Adresse erzeugt wird.
-
KURZDARSTELLUNG
-
Details des hier vorgestellten Konzeptes sind durch die unabhängigen Ansprüche spezifiziert. Weitere Ausgestaltungen sind durch die jeweils abhängigen Ansprüche beschrieben. Weitere Aspekte und die Ausführungsformen der vorliegenden Erfindung gehen aus der folgenden ausführlichen Beschreibung hervor, die, wenn sie in Verbindung mit den Zeichnungen gelesen werden, anhand eines Beispiels die Grundgedanken der Erfindung veranschaulichen.
-
Figurenliste
-
- 1 stellt eine Netzwerkarchitektur gemäß einer Ausführungsform dar.
- 2 zeigt eine repräsentative Hardware-Umgebung gemäß einer Ausführungsform, die zu den Servern und/oder den Clients von 1 gehören kann.
- 3 ist eine vereinfachte Darstellung einer Vermittlungseinheit gemäß einer Ausführungsform.
- 4 zeigt eine Zuordnungstabelle für Medienzugriffssteuerungs-(MAC-)-Adressen gemäß einer Ausführungsform.
- 5 ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform.
- 6 ist ein Ablaufplan eines Verfahrens gemäß einer weiteren Ausführungsform.
-
Ausführliche Beschreibung
-
Die folgende Beschreibung erfolgt zu dem Zweck, die allgemeinen Grundgedanken der vorliegenden Erfindung zu veranschaulichen, und sie ist nicht als Einschränkung der hier beanspruchten erfindungsgemäßen Konzepte zu verstehen. Darüber hinaus können bestimmte hier beschriebene Merkmale in Verbindung mit anderen beschriebenen Merkmalen in einer jeden der verschiedenen möglichen Kombinationen und Permutationen verwendet werden.
-
Sofern hier nicht ausdrücklich anders definiert, sind alle Begriffe in ihrer weitestmöglichen Auslegung zu verstehen, die Bedeutungen, welche sich aus der Spezifikation ergeben, sowie Bedeutungen, die der Fachmann versteht und/oder die in Wörterbüchern, Abhandlungen usw. definiert sind, einschließt.
-
Es ist auch anzumerken, dass die Singularformen „ein“, „eine“, „einer“ und „der/die/das“ in der in der Spezifikation und den beigefügten Ansprüchen verwendeten Weise Pluraldenotationen einschließen, sofern nichts anderes angegeben ist.
-
Bei einem Lösungsansatz kann eine Medienzugriffssteuerungs-(MAC-)Adresse für an ein Vermittlungssystem angeschlossene Einheiten ermittelt werden, die sich an ein System halten, bei dem jede MAC-Adresse einem bestimmten Hash-Wert entspricht, wenn ein Hash-Algorithmus auf sie angewendet wird, so dass jeder Hash-Wert einem Port der Vermittlungseinheit entspricht, wodurch die Art und Weise, in der MAC-Adressen Einheiten zugewiesen werden, vereinfacht und verbessert wird.
-
In einer allgemeinen Ausführungsform enthält ein System mindestens einen Prozessor, der Logik, die so konfiguriert ist, dass sie eine Anforderung für die Zuweisung einer Medienzugriffssteuerungs-(MAC-)Adresse zu einer Einheit an einem Port empfängt, Logik, die so konfiguriert ist, dass sie die der Einheit zuzuweisende MAC-Adresse zumindest teilweise auf der Grundlage des Ports ermittelt, und Logik, die so konfiguriert ist, dass sie eine Antwort mit der MAC-Adresse auf die Anforderung sendet, enthält.
-
In einer weiteren allgemeinen Ausführungsform enthält ein Computerprogrammprodukt zum Zuweisen einer MAC-Adresse ein von einem Computer lesbares Speichermedium, das über damit realisierten, von einem Computer lesbaren Programmcode verfügt, wobei der von einem Computer lesbare Programmcode von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er eine einer Einheit zuzuweisende MAC-Adresse ohne die Verwendung einer Nachschlagetabelle ermittelt, sowie von einem Computer lesbaren Programmcode enthält, der so konfiguriert ist, dass er die MAC-Adresse an die Einheit sendet.
-
Gemäß einer weiteren allgemeinen Ausführungsform beinhaltet ein Verfahren zum Zuweisen einer MAC-Adresse den Empfang einer Anforderung von einer Einheit für eine MAC-Adresse an einem Port einer Vermittlungseinheit, das zumindest teilweise auf der Grundlage des Ports erfolgende Ermitteln einer der Einheit zuzuweisenden MAC-Adresse und das Antworten mit der MAC-Adresse auf die Anforderung.
-
In noch einer weiteren allgemeinen Ausführungsform beinhaltet ein Verfahren zum Abrufen einer MAC-Adresse das Senden einer Anforderung für eine MAC-Adresse an einen MAC-Zuordnungsserver (MAC allocation server (MAAS)), das Warten über eine vorher festgelegte Zeitspanne auf den Empfang einer Antwort auf die Anforderung, wobei die Antwort die MAC-Adresse enthält, und das Verwenden der MAC-Adresse, wenn die Antwort auf die Anforderung innerhalb der vorher festgelegten Zeitspanne empfangen wird.
-
Wie der Fachmann verstehen wird, können Aspekte der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt ausgebildet sein. Folglich können Aspekte der vorliegenden Erfindung die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als „Logik“, eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren von einem Computer lesbaren Datenträgern enthalten ist, auf dem beziehungsweise denen sich von einem Computer lesbarer Programmcode befindet.
-
Jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Datenträgern kann verwendet werden. Der von einem Computer lesbare Datenträger kann ein von einem Computer lesbarer Signaldatenträger oder ein nicht flüchtiges, von einem Computer lesbares Speichermedium sein. Ein nicht flüchtiges, von einem Computer lesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder-einheit oder jede beliebige geeignete Kombination des Vorstehenden sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das nicht flüchtige, von einem Computer lesbare Speichermedium gehören folgende: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), ein Blu-Ray-Disk-Nur-Lese-Speicher (BD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige geeignete Kombination des Vorstehenden. Im Kontext dieses Schriftstücks kann es sich bei einem nicht flüchtigen, von einem Computer lesbaren Speichermedium um jedes physisch greifbare Medium handeln, das ein Programm oder eine Anwendung zur Verwendung durch oder zur Verwendung in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder -einheit enthalten oder speichern kann.
-
Ein von einem Computer lesbarer Signaldatenträger kann ein weitergegebenes Datensignal mit darin enthaltenem, von einem Computer lesbarem Programmcode, beispielsweise im Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein weitergegebenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne darauf beschränkt zu sein, annehmen. Bei einem von einem Computer lesbaren Signaldatenträger kann es sich um jeden beliebigen von einem Computer lesbaren Datenträger handeln, der kein nicht flüchtiges, von einem Computer lesbares Speichermedium ist und der ein Programm zur Verwendung durch ein Anweisungsausführungssystem, eine Anweisungsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder - einheit, wie zum Beispiel eine elektrische Verbindung mit einer oder mehreren Leitungen, ein Lichtwellenleiter usw., übertragen, weitergeben oder befördern kann.
-
Auf einem von einem Computer lesbaren Datenträger enthaltener Programmcode kann mittels eines geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw. oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden, ohne darauf beschränkt zu sein, übertragen werden.
-
Computerprogrammcode zur Durchführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java, Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache „C“ oder in ähnlichen Programmiersprachen geschrieben sein. Die Ausführung des Programmcodes kann vollständig auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server erfolgen. Im letzteren Szenario kann der ferne Computer oder Server mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzes (LAN), eines Speicherbereichsnetzes (SAN) und/oder eines Weitverkehrsnetzes (WAN) verbunden sein oder die Verbindung kann zu einem externen Computer, zum Beispiel über das Internet mit Hilfe eines Internet-Dienstanbieters (Internet Service Provider (ISP)), hergestellt werden.
-
Aspekte der vorliegenden Erfindung werden hier mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern mittels Anweisungen eines Computerprogramms realisiert werden können. Diese Anweisungen eines Computerprogramms können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
-
Diese Anweisungen eines Computerprogramms können auch auf einem von einem Computer lesbaren Datenträger gespeichert werden, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem von einem Computer lesbaren Datenträger gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen enthält, die die Funktion/den Vorgang ausführen, welche beziehungsweise welcher in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
-
Die Anweisungen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Computer ausgeführten Prozess so zu erzeugen, dass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
-
1 stellt eine Netzwerkarchitektur 100 gemäß einer Ausführungsform dar. Wie in 1 gezeigt ist, ist eine Vielzahl von fernen Netzwerken 102 bereitgestellt, zu der ein erstes fernes Netzwerk 104 und ein zweites fernes Netzwerk 106 gehören. Ein Gateway-Rechner 101 kann zwischen den fernen Netzwerken 102 und einem nahen Netzwerk 108 angeschlossen sein. Im Kontext der vorliegenden Netzwerkarchitektur 100 kann jedes der Netzwerke 104, 106 eine beliebige Form annehmen, einschließlich, ohne darauf beschränkt zu sein, eines LAN, eines WAN wie beispielsweise des Internets, eines öffentlichen Telefonnetzes, eines internen Telefonnetzes usw.
-
Im Betrieb dient der Gateway-Rechner 101 als ein Eintrittspunkt von den fernen Netzwerken 102 in das nahe Netzwerk 108. Somit kann der Gateway-Rechner 101 die Funktion eines Routers, der in der Lage ist, ein bestimmtes Datenpaket weiterzuleiten, das an dem Gateway-Rechner 101 ankommt, und einer Vermittlungsstelle übernehmen, die den tatsächlichen Pfad in den und aus dem Gateway-Rechner 101 für ein bestimmtes Paket bereitstellt.
-
Überdies ist mindestens ein Datenserver 114 enthalten, der mit dem nahen Netzwerk 108 verbunden ist und auf den die fernen Netzwerke 102 über den Gateway-Rechner 101 zugreifen können. Es sei angemerkt, dass zu dem beziehungsweise den Datenservern 114 jede beliebige Art einer Datenverarbeitungseinheit/Groupware gehören kann. Mit jedem Datenserver 114 ist eine Vielzahl von Benutzereinheiten 116 verbunden. Zu diesen Benutzereinheiten 116 kann ein Desktop-Computer, ein Laptop-Computer, ein Handheld-Computer, ein Drucker und/oder jede beliebige andere Art einer Einheit, die Logik enthält, gehören. Es sei angemerkt, dass eine Benutzereinheit 111 in manchen Ausführungsformen auch mit einem beliebigen der Netzwerke direkt verbunden sein kann.
-
Ein Peripheriegerät 120 oder eine Reihe von Peripheriegeräten 120, z.B. Telefaxgeräte, Drucker, Scanner, Festplattenlaufwerke, vernetzte und/oder lokale Speichereinheiten oder -systeme usw. können mit einem oder mehreren der Netzwerke 104, 106, 108 verbunden sein. Es sei angemerkt, dass Datenbanken und/oder zusätzliche Komponenten mit einer beliebigen Art eines Netzelements, das mit den Netzwerken 104, 106, 108 verbunden ist, verwendet werden oder darin integriert sein können. Im Kontext der vorliegenden Beschreibung kann sich ein Netzelement auf eine beliebige Komponente eines Netzwerks beziehen.
-
Manchen Lösungsansätzen entsprechend können hier beschriebene Verfahren und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen realisiert werden, die ein oder mehrere andere Systeme emulieren, wie zum Beispiel einem UNIX-System, das eine IBM-z/OS-Umgebung emuliert, einem UNIX-System, das eine MICROSOFT-WINDOWS-Umgebung virtuell hostet, einem MICROSOFT-WINDOWS-System, das eine IBM-z/OS-Umgebung emuliert, usw. Diese Virtualisierung und/oder Emulation kann in manchen Ausführungsformen durch die Verwendung von VMWare-Software verbessert werden.
-
Bei weiteren Lösungsansätzen können ein oder mehrere Netzwerke 104, 106, 108 einen Systemverbund darstellen, der gemeinhin als „Cloud“ bezeichnet wird. Beim Cloud-Computing werden jedem beliebigen System in der Cloud nach Bedarf gemeinsam genutzte Ressourcen wie zum Beispiel Verarbeitungsleistung, Peripheriegeräte, Software, Daten, Server usw. bereitgestellt, was den Zugriff auf Dienste und die Verteilung von Diensten über viele Datenverarbeitungssysteme hinweg ermöglicht. Das Cloud-Computing schließt üblicherweise eine Internetverbindung zwischen den Systemen, die in der Cloud betrieben werden, ein, doch können auch andere Verfahren zum Verbinden der Systeme verwendet werden, wie in der Technik bekannt ist.
-
2 zeigt eine repräsentative Hardware-Umgebung gemäß einer Ausführungsform, zu der eine Benutzereinheit 116 und/oder ein Server 114 von 1 gehört. 2 zeigt eine typische Hardware-Konfiguration einer Workstation, die über eine Zentraleinheit (CPU) 210 wie zum Beispiel einen Mikroprozessor und mehrere andere Einheiten verfügt, welche über einen oder mehrere Busse 212, die unterschiedlicher Art sein können, wie zum Beispiel einen lokalen Bus, einen parallelen Bus, einen seriellen Bus usw. gemäß mehreren Ausführungsformen untereinander verbunden sind.
-
Die in 2 gezeigte Workstation enthält einen Direktzugriffsspeicher (RAM) 214, einen Nur-Lese-Speicher (ROM) 216, einen E/A-Adapter 218, um Peripheriegeräte wie zum Beispiel Plattenspeichereinheiten 220 mit dem einen oder den mehreren Bussen 212 zu verbinden, einen Benutzerschnittstellenadapter 222, um eine Tastatur 224, eine Maus 226, einen Lautsprecher 228, ein Mikrofon 232 und/oder andere Benutzerschnittstelleneinheiten wie zum Beispiel einen berührungsempfindlichen Bildschirm, eine Digitalkamera (nicht gezeigt) usw. mit dem einen oder den mehreren Bussen 212 zu verbinden, einen Kommunikationsadapter 234, um die Workstation mit einem Übertragungsnetzwerk 235 (z.B. mit einem Datenverarbeitungsnetzwerk) zu verbinden, und einen Bildschirmadapter 236, um den einen oder die mehreren Busse 212 mit dem Bildschirm 238 zu verbinden.
-
Auf der Workstation kann sich ein Betriebssystem wie zum Beispiel das Betriebssystem WINDOWS von MICROSOFT, ein MAC-Betriebssystem, ein UNIX-Betriebssystem usw. befinden. Man wird als vorteilhaft erkennen, dass eine bevorzugte Ausführungsform auch auf anderen als den genannten Plattformen und Betriebssystemen realisiert werden kann. Eine bevorzugte Ausführungsform kann mittels der Sprache JAVA, XML, C und/oder C++ oder mittels anderer Programmiersprachen in Verbindung mit einem objektorientierten Programmieransatz geschrieben werden. Die objektorientierte Programmierung (OOP), die zunehmend für die Entwicklung komplexer Anwendungen verwendet wird, kann zum Einsatz kommen.
-
Derzeit weist IEEE Organisationen wie zum Beispiel Unternehmen, Bildungseinrichtungen usw. MAC-Adressen zu, denen es dann ihrerseits frei steht, die MAC-Adressen nach eigenem Ermessen in ihrem/ihren Netzwerk(en) zuzuweisen. Dieser Prozess ist jedoch ineffizient und in großem Umfang mit Latenzzeiten und Problemen behaftet. Bei der Ethernet-Vermittlung beispielsweise kann es in Abhängigkeit von der Größe der Tabelle mit den MAC-Adressen, die all die in Erfahrung gebrachten MAC-Adressen für eine bestimmte Vermittlungseinheit speichert, ein nicht unerhebliches Problem bei der Skalierung der Vermittlungsstelle zur Verwendung in einem expandierenden Netzwerk, hinsichtlich der Verarbeitungsleistung für die Auflösung der MAC-Adressen sowie der Aufrechterhaltung einer geringeren Latenzzeit bei der Tabellensuche geben.
-
Statt feste MAC-Adressen zuzuweisen, können die MAC-Adressen im Anschluss an das Booten einer Vermittlungseinheit, die mit Einheiten verbunden ist, welche MAC-Adressen benötigen, zugewiesen werden, um die Probleme und Latenzzeiten in Verbindung mit den derzeit verwendeten MAC-Adressierungsprotokollen zu überwinden. Diese MAC-Adressen können basierend auf der Beachtung einer algorithmischen Zuordnung ermittelt werden.
-
Gemäß einer Ausführungsform kann ein Zielport, an den ein empfangenes Paket vermittelt wird, eine Funktion der Ziel-MAC-Adresse sein, die als Dest_Port = F(Dest_MAC_Address,is_mirror,is_flow) geschrieben werden kann, wobei F eine Funktion bezeichnet, Dest_Port der Zielport ist, Dest_MAC_Address die von dem Paket bereitgestellte Ziel-MAC-Adresse ist, is_mirror angibt, ob das Paket an mehreren Ports gespiegelt werden darf oder nicht, und is_flow spezielle Operationen und die Ablaufsteuerung angibt. is_mirror und is_flow sind für die Paketvermittlung nicht notwendig, können auf Wunsch aber verwendet werden. Auf diese Weise wird die Zuordnung von MAC-Adressen im Vergleich zu herkömmlichen Methoden wirksamer und mit einem geringeren erforderlichen Verarbeitungsmehraufwand durchgeführt.
-
Nun Bezug nehmend auf 3 ist ein System 300, wie zum Beispiel eine Vermittlungseinheit, gemäß einer Ausführungsform dargestellt. Wie gezeigt ist, weist das System 300 einen Server wie zum Beispiel einen MAAS auf, der so ausgelegt ist, dass er die Zuweisung und die Verwaltung von MAC-Adressen für Einheiten 304, die mit dem System 300 elektrisch verbunden sind, durchführt. Der Server kann eine Komponente sein und/oder von mindestens einem Prozessor 306 wie beispielsweise einem Vermittlungsprozessor zur Ausführung von Logik verwaltet werden. In manchen Ausführungsformen kann das System 300 auch einen lokalen Prozessor 302 zur Ausführung von Logik aufweisen, der mit dem mindestens einen Prozessor 306 elektrisch verbunden ist. Jeder beliebige in der Technik bekannte Prozessortyp kann für den lokalen Prozessor 302 und/oder den mindestens einen Prozessor 306 verwendet werden, wie zum Beispiel eine Zentraleinheit (CPU), ein kundenprogrammierbarer Universalschaltkreis (field programmable gate array (FPGA)), eine integrierte Schaltung (IC), eine anwendungsspezifische integrierte Schaltung (application specific integrated circuit (ASIC)) usw. In einer weiteren Ausführungsform können sowohl ein Vermittlungs-ASIC als auch eine lokale CPU in dem System 300 enthalten sein, wobei der Vermittlungs-ASIC Vermittlungsoperationen und die lokale CPU Operationen zur Zuordnung von MAC-Adressen verwaltet.
-
Jeder neue Host, Server oder jede neue Einheit, die online geht, beschafft sich eine MAC-Adresse, um mit anderen Einheiten Daten auszutauschen. Dies unterscheidet sich von herkömmlichen Verfahren, bei denen eine Netzwerkschnittstellenkarte (network interface card (NIC)) der Einheiten vorab mit einer MAC-Adresse programmiert wird. Normalerweise verwendet die Einheit beim Booten diese MAC-Adresse für den Datenaustausch. Gemäß hier beschriebenen Ausführungsformen macht ein Verfahren zum Beschaffen von MAC-Adressen mittels eines MAC-Adressenbeschaffungsalgorithmus oder des MAC Address Acquisition Protocol (MAAP) die Notwendigkeit für vorab programmierte MAC-Adressen jedoch überflüssig, kann aber bei manchen Lösungsansätzen zusätzlich zu vorab programmierten MAC-Adressen verwendet werden.
-
Gemäß einer Ausführungsform weist der mindestens eine Prozessor 306 Logik auf oder hat Zugriff auf Logik, die so konfiguriert ist, dass sie eine Anforderung für die Zuweisung einer MAC-Adresse zu einer Einheit 304 an einem Port 308 empfängt. Die Anforderung kann von der Einheit 304 gesendet werden oder ihren Ursprung an einer anderen Stelle in dem Netzwerk oder in dem System 300 haben. Der Port 308, an dem die Anforderung empfangen wird, wird gespeichert oder in anderer Weise im Gedächtnis behalten, so dass er zukünftig zum Versenden des gesamten abgehenden Verkehrs verwendet werden kann, der für die Einheit 304 bestimmt ist. Der mindestens eine Prozessor 306 weist des Weiteren Logik auf oder hat Zugriff auf Logik, die so konfiguriert ist, dass sie die der Einheit zuzuweisende MAC-Adresse zumindest teilweise auf der Grundlage des Ports ermittelt, und Logik, die so konfiguriert ist, dass sie eine Antwort mit der MAC-Adresse auf die Anforderung sendet.
-
In einer Ausführungsform kann der mindestens eine Prozessor 306 des Weiteren Logik aufweisen oder Zugriff auf Logik haben, die so konfiguriert ist, dass sie eine MAC-Adressenzuordnungstabelle erzeugt. Nun Bezug nehmend auf 4 kann die MAC-Adressenzuordnungstabelle 400 eine Vielzahl von Hash-Werten 402 aufweisen, wobei jeder Hash-Wert 402 zu einem Port 404 und einer Vielzahl von MAC-Adressen 406 gehört. Bei einem Lösungsansatz und nun Bezug nehmend auf die 3 bis 4 ergibt das Anwenden eines Hash-Algorithmus auf eine beliebige der Vielzahl der MAC-Adressen 406 den zugehörigen Hash-Wert 402, so dass es ein systematisches Verfahren zum Zuweisen einer MAC-Adresse 406 zu einer Einheit 304 gibt, welche die MAC-Adresse 406 anfordert, die dem Port 404 entspricht, an dem die Einheit 304 mit dem System 300 verbunden ist.
-
Bei einem Lösungsansatz kann die Logik, die so konfiguriert ist, dass sie die der Einheit 304a zuzuweisende MAC-Adresse 406a ermittelt, Logik aufweisen, die so konfiguriert ist, dass sie die MAC-Adresse 406a aus der MAC-Adressenzuordnungstabelle 400 so auswählt, dass das Anwenden des Hash-Algorithmus auf die ausgewählte MAC-Adresse 406a einen Hash-Wert 402a ergibt, der zu dem Port 404a gehört, welcher mit der Einheit 304a verbunden ist.
-
Bei einem weiteren Lösungsansatz weist die Logik, die so konfiguriert ist, dass sie die MAC-Adresse 406a aus der MAC-Adressenzuordnungstabelle 400 auswählt, Logik auf, die so konfiguriert ist, dass sie eine nächste verfügbare MAC-Adresse 406a sequenziell oder zufällig aus einer Vielzahl von verfügbaren MAC-Adressen 406 auswählt, wobei eine verfügbare MAC-Adresse gerade keiner Einheit 304 zugewiesen ist. Umgekehrt ist eine nicht verfügbare MAC-Adresse natürlich gerade einer Einheit 304 zugewiesen.
-
Bei einem weiteren anderen Lösungsansatz kann die Logik des Weiteren im Anschluss an das Auswählen der MAC-Adresse 406a aus der MAC-Adressenzuordnungstabelle 400 Logik aufweisen, die so konfiguriert ist, dass sie die MAC-Adresse 406a als nicht verfügbar kennzeichnet, indem sie die MAC-Adresse 406a aus der MAC-Adressenzuordnungstabelle 400 entfernt und die MAC-Adresse zu einer Zuordnungstabelle für benutzte MAC-Adressen (nicht gezeigt, wäre aber ähnlich der MAC-Adressenzuordnungstabelle 400 mit der Ausnahme, dass sie nur zugewiesene MAC-Adressen enthielte) hinzufügt. Bei weiteren Lösungsansätzen kann die Logik, nachdem die Einheit 304a die ihr zugewiesene MAC-Adresse 406a freigegeben hat, des Weiteren Logik aufweisen, die so konfiguriert ist, dass sie die MAC-Adresse 406a als verfügbar kennzeichnet, indem sie die MAC-Adresse 406a zu der MAC-Adressenzuordnungstabelle 400 hinzufügt und die MAC-Adresse 406a aus der Tabelle für benutzte MAC-Adressen 400 entfernt.
-
In einer weiteren Ausführungsform kann die Logik so konfiguriert sein, dass sie ein Anzeigebit invertiert, das zu der MAC-Adresse 406a in der MAC-Adressenzuordnungstabelle 400 gehört, um anzuzeigen, dass die MAC-Adresse 406a verfügbar oder nicht verfügbar ist.
-
Gemäß verschiedenen Ausführungsformen kann der Hash-Algorithmus einen beliebigen vollständigen oder unvollständigen Hash-Algorithmus aufweisen, wie in der Technik bekannt ist. Bei einem Lösungsansatz kann der Hash-Algorithmus aufweisen: H(DM) = (DM[0]*1 XOR DM[1]*2 XOR DM[2]*3 XOR DM[3]*4 XOR DM[4]*5 XOR DM[5]*6) MOD P, wobei DM die MAC-Adresse ist, H(DM) der Hash-Wert von allen sechs Byte der MAC-Adresse DM ist und P eine Gesamtzahl von physischen Ports 308 des Systems 300 ist.
-
In einer weiteren Ausführungsform kann der Hash-Algorithmus aufweisen: H(DM) = (DM[0]*1 XOR DM[1]*2 ... XOR DM[N-1]*N) MOD P, wobei DM die MAC-Adresse ist, H(DM) der Hash-Wert der MAC-Adresse DM ist, DM[N-1] ein Byte der MAC-Adresse DM mit einer Anzahl N von Bytes ist und P eine Gesamtzahl von physischen Ports ist.
-
Gemäß einer weiteren Ausführungsform kann die MAC-Adressenzuordnungstabelle 400 während eines Startvorgangs von dem mindestens einen Prozessor 306 erzeugt werden. Bei diesem Startvorgang kann es sich um das Booten des Systems 300 oder um einen beliebigen anderen Vorgang handeln, der ein Mal stattfindet, um Komponenten hochzufahren.
-
In einer weiteren Ausführungsform kann die Anforderung ein Paket des MAC-Address Acquisition Protocol (MAAP) aufweisen, das über eine Quellenadresse verfügt. In diesem Fall kann die Antwort das empfangene MAAP-Paket enthalten, das so geändert wird, dass eine Zieladresse des geänderten MAAP-Pakets in die Quellenadresse des empfangenen MAAP-Pakets abgeändert wird. Auf diese Weise kann dasselbe MAAP-Paket mit einem einfachen Wechsel zwischen der Quellen- und der Zieladresse für die Anforderung und für die Antwort verwendet werden.
-
Nun Bezug nehmend auf 5 ist ein Ablaufplan eines Verfahrens 500 zum Zuweisen einer MAC-Adresse gemäß einer Ausführungsform gezeigt. In verschiedenen Ausführungsformen kann das Verfahren 500 gemäß der vorliegenden Erfindung unter anderem in einer beliebigen der in den 1 bis 4 gezeigten Umgebungen ausgeführt werden. Natürlich können mehr oder weniger Operationen als diejenigen, die in 5 ausdrücklich beschrieben sind, in das Verfahren 500 aufgenommen werden, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
-
Jeder der Schritte des Verfahrens 500 kann von einer beliebigen geeigneten Komponente der Betriebsumgebung durchgeführt werden. In einer Ausführungsform kann das Verfahren 500 zum Beispiel teilweise oder vollständig von einer Vermittlungseinheit und/oder einem MAAS einer Vermittlungseinheit durchgeführt werden.
-
Wie in 5 gezeigt ist, kann das Verfahren 500 mit der Operation 502 beginnen, bei der eine Anforderung von einer Einheit für eine MAC-Adresse an einem Port einer Vermittlungseinheit empfangen wird. Wie hier beschrieben ist, wird der Port, an dem die Anforderung empfangen wird, zur Verwendung bei der Ermittlung einer MAC-Adresse für die Einheit gespeichert.
-
Bei der Operation 504 wird eine der Einheit zuzuweisende MAC-Adresse zumindest teilweise auf der Grundlage des Port ermittelt.
-
Bei einem Lösungsansatz kann eine MAC-Adressenzuordnungstabelle erzeugt werden. Die MAC-Adressenzuordnungstabelle kann eine Vielzahl von Hash-Werten aufweisen, wobei jeder Hash-Wert zu einem Port gehört, der einer Vielzahl von MAC-Adressen entspricht. Überdies ergibt das Anwenden eines Hash-Algorithmus auf eine beliebige der Vielzahl der MAC-Adressen den zugehörigen Hash-Wert, der wiederum zu dem Port der MAC-Adresse gehört.
-
In einer Ausführungsform kann ein MAAS des Weiteren einen vorher festgelegten Satz von MAC-Adressen, die dem MAAS bereitgestellt werden, aus einer Eingabedatei verwenden, um die MAC-Adressenzuordnungstabelle zu erstellen. In diesem Fall ermittelt der MAAS die der Einheit zuzuweisende MAC-Adresse aus der MAC-Adressenzuordnungstabelle als Reaktion auf den Empfang eines Pakets des MAC Address Allocation Protocol (MAAP).
-
In einer Ausführungsform kann der Hash-Algorithmus ein vollständiger Hash-Algorithmus oder ein unvollständiger Hash-Algorithmus sein. Ein solcher vollständiger Hash-Algorithmus, der verwendet werden kann, lautet: H(DM) = (DM[0]*1 XOR DM[1]*2 XOR DM[2]*3 XOR DM[3]*4 XOR DM[4]*5 XOR DM[5]*6) MOD P, wobei DM die MAC-Adresse ist, H(DM) der Hash-Wert von allen sechs Byte der MAC-Adresse DM ist und P eine Gesamtzahl von physischen Ports der Vermittlungseinheit ist.
-
Gemäß einer weiteren Ausführungsform kann der Hash-Algorithmus H(DM) = (DM[0]*1 XOR DM[1]*2 ... XOR DM[N-1]*N) MOD P aufweisen, wobei DM die MAC-Adresse ist, H(DM) der Hash-Wert der MAC-Adresse DM ist, DM[N-1] ein Byte der MAC-Adresse DM mit einer Anzahl N von Bytes ist und P eine Gesamtzahl von Ports ist.
-
Wenn ein Paket von einer Einheit empfangen wird und das Anwenden des Hash-Algorithmus auf die MAC-Adresse keinen passenden Port der Vermittlungseinheit ergibt, wenn beispielsweise die Ziel-MAC-Adresse nicht von dem MAAP bereitgestellt wurde, kann bei manchen Lösungsansätzen ein normaler Suchalgorithmus verwendet werden, um den Zielport zu finden. Anschließend kann das Paket an den Zielport weitergeleitet werden. Um MAC-Adressen zu erkennen, die nicht von dem MAAS mittels des MAAP bereitgestellt werden, können die MAC-Adressen hinsichtlich des Bereichs und der Felder mit dem Universally Unique Identifier (UUID) verglichen werden. MAAP ordnet MAC-Adressen innerhalb eines bestimmten vorab programmierten Bereichs zu.
-
Bei einem Lösungsansatz kann die MAC-Adressenzuordnungstabelle während eines Startvorgangs der Vermittlungseinheit wie zum Beispiel während des Bootens erzeugt werden. Auch kann die MAC-Adressenzuordnung eine Liste, eine Zuordnung, eine Datei oder ein anderes Instrument sein, das die Zuordnung von einer oder mehreren MAC-Adressen zu einem einzelnen Port und einem einzelnen Hash-Wert ermöglicht.
-
Bei einem weiteren Lösungsansatz kann das Verfahren 500 des Weiteren das Auswählen der MAC-Adresse aus der MAC-Adressenzuordnungstabelle in der Weise aufweisen, dass das Anwenden des Hash-Algorithmus auf die ausgewählte MAC-Adresse einen Hash-Wert ergibt, der zu dem Port der Vermittlungseinheit gehört, welcher mit der Einheit verbunden ist. Wenn die Einheit beispielsweise an den Port 4 der Vermittlungseinheit angeschlossen ist, ergibt das Anwenden des Hash-Algorithmus auf die für die Einheit ausgewählte MAC-Adresse einen Hash-Wert, der zu dem Port 4 gehört. Der Hash-Wert kann 4 oder eine beliebige andere Zahl sein, die dem Port der Vermittlungseinheit vor der Zuweisung der MAC-Adressen zugeordnet wird, welche auf diesen bestimmten Hash-Wert gehasht werden.
-
Bei einem weiteren anderen Lösungsansatz kann das Auswählen der MAC-Adresse aus der MAC-Adressenzuordnungstabelle das sequenzielle oder zufällige Auswählen einer nächsten verfügbaren MAC-Adresse aus einer Vielzahl von verfügbaren MAC-Adressen aufweisen. Eine verfügbare MAC-Adresse ist eine MAC-Adresse, die gerade keiner Einheit zugewiesen ist, während eine nicht verfügbare MAC-Adresse eine MAC-Adresse ist, die gerade einer Einheit zugewiesen ist.
-
In einer anderen weiteren Ausführungsform kann das Verfahren 500 das Kennzeichnen der MAC-Adresse als nicht verfügbar oder das Entfernen der MAC-Adresse aus der MAC-Adressenzuordnungstabelle und das Hinzufügen der MAC-Adresse zu einer Tabelle für benutzte MAC-Adressen im Anschluss an das Auswählen der MAC-Adresse aus der MAC-Adressenzuordnungstabelle aufweisen. Nachdem die Einheit die ihr zugewiesene MAC-Adresse freigegeben hat, kann die MAC-Adresse des Weiteren zu der MAC-Adressenzuordnungstabelle hinzugefügt und aus der Tabelle für benutzte MAC-Adressen entfernt werden oder die MAC-Adresse kann als verfügbar gekennzeichnet werden. Natürlich können in einigen weiteren Ausführungsformen sowohl getrennte Zuordnungstabellen als auch das Kennzeichnen verwendet werden.
-
Bei einem weiteren Lösungsansatz kann das Kennzeichnen das Invertieren eines Anzeigebits, das zu der MAC-Adresse in der MAC-Adressenzuordnungstabelle gehört, oder ein beliebiges anderes Verfahren zum Kennzeichnen eines Eintrags in der Tabelle beinhalten, wie in der Technik bekannt sein dürfte.
-
Bei der Operation 506 wird auf die Anforderung mit der MAC-Adresse geantwortet. Jedwede Antwort kann verwendet werden, die die MAC-Adresse enthält, wie zum Beispiel ein Ethernet-Paket. In einer solchen Situation kann die Anforderung ein MAAP-Paket aufweisen, das über eine Quellenadresse verfügt. In diesem Fall kann die Antwort das empfangene MAAP-Paket enthalten, das so geändert wird, dass eine Zieladresse des geänderten MAAP-Pakets in die Quellenadresse des empfangenen MAAP-Pakets abgeändert wird. Auf diese Weise kann dasselbe MAAP-Paket mit einem einfachen Wechsel zwischen der Quellen- und der Zieladresse für die Anforderung und für die Antwort verwendet werden.
-
Gemäß einer Ausführungsform kann ein Paket beim Booten mit D-MAC = 01:00:5e:00:00:xx, S-MAC = NIC- MAC-Adresse und EtherType = 0xFFFF oder 0xXXXX gebildet werden, wobei XX oder xx noch nicht definiert sind, aber von einem Netzwerkadministrator ermittelt und zum Zeitpunkt der Konfiguration einem Host-Betriebssystem übergeben werden können. Daher kann es sich bei diesen Werten um einen beliebigen Wert handeln, der beiden Entitäten bekannt ist.
-
Daraufhin wird das Ethernet-Paket (vorzugsweise ein MAAP-Paket) auf dem angeschlossenen NIC-Port an den MAAS versendet, der Teil einer Vermittlungseinheit sein kann. Als Nächstes empfängt die Vermittlungseinheit das Paket an einem der Ports der Vermittlungseinheit. Folglich wird das MAAP-Anforderungspaket zusammen mit den Informationen über den Quellen-Port an den lokalen MAAS gesendet. An diesem Punkt führt der lokale MAAS einen Adressenzuordnungsalgorithmus aus und ermittelt eine MAC-Adresse H-MAC für das Host-Betriebssystem.
-
Bei einem Lösungsansatz kann der Adressenzuordnungsalgorithmus die Entnahme der Nummer‚p‘ des Vermittlungsports, an dem die MAAP-Anforderung ankam, und die Weitergabe dieses Ports an den MAAS unter Verwendung von Steuersoftware aufweisen. Daraufhin wird die MAC-Adressenzuordnungstabelle syntaktisch analysiert und eine erste verfügbare (nicht zugeordnete) MAC-Adresse wird ermittelt. Diese Adresse wird dann zu dem MAAP-Paket hinzugefügt und die Adresse wird als nicht verfügbar (zugeordnet) gekennzeichnet.
-
Als Nächstes ändert der MAAS das MAAP-Paket, indem er die H-MAC-Adresse in das MAAP-Paket schreibt und die Zieladresse in die ursprüngliche Quellenadresse der ursprünglichen MAAP-Anforderung abändert. Das Paket wird von dem Quellenport aus versendet. Das anfordernde Host-Betriebssystem empfängt das Antwort-MAAP-Paket innerhalb einer vorher festgelegten Wartezeit (t_wait) und beginnt dann damit, die H-MAC als seine Quellen-MAC-Adresse für den gesamten weiteren Datenaustausch zu verwenden.
-
Wenn die MAAP-Antwort nicht innerhalb der Wartezeit (t_wait) ankommt, kann das Host-Betriebssystem den Vorgang zwei- oder mehrmals wiederholen. Nachdem auf die wiederholten Versuche keine Antwort empfangen wurde, beginnt das Host-Betriebssystem damit, die vorab programmierte NIC-MAC-Adresse als seine Quellen-MAC-Adresse für den gesamten weiteren Datenaustausch zu verwenden.
-
Gemäß den meisten Ausführungsformen können die hier beschriebenen Verfahren und Systeme in einfachen Netzwerken der Ebene 2 initialisiert werden, in denen allen Hosts, Einheiten oder Servern IP-Adressen desselben Teilnetzes zugewiesen sind.
-
Nun Bezug nehmend auf 6 ist ein Ablaufplan eines Verfahrens 600 zum Abrufen einer MAC-Adresse gemäß einer Ausführungsform gezeigt. In verschiedenen Ausführungsformen kann das Verfahren 600 gemäß der vorliegenden Erfindung unter anderem in einer beliebigen der in den 1 bis 4 gezeigten Umgebungen ausgeführt werden. Natürlich können mehr oder weniger Operationen als diejenigen, die in 6 ausdrücklich beschrieben sind, in das Verfahren 600 aufgenommen werden, wie der Fachmann verstehen dürfte, nachdem er die vorliegenden Beschreibungen gelesen hat.
-
Jeder der Schritte des Verfahrens 600 kann von einer beliebigen geeigneten Komponente der Betriebsumgebung durchgeführt werden. In einer Ausführungsform kann das Verfahren 600 zum Beispiel teilweise oder vollständig von einer Vermittlungseinheit und/oder einem MAAS einer Vermittlungseinheit durchgeführt werden.
-
Wie in 6 gezeigt ist, kann das Verfahren 600 mit der Operation 602 beginnen, bei der eine Anforderung für eine MAC-Adresse an einen MAAS gesendet wird. Bei einem Lösungsansatz kann die Anforderung ein MAAP-Paket sein.
-
Bei der Operation 604 wird auf eine Antwort auf die Anforderung gewartet. Wenn die Antwort auf die Anforderung nicht während einer vorher festgelegten Zeitspanne empfangen wird, können andere Maßnahmen durchgeführt werden.
-
Bei der Operation 606 wird die MAC-Adresse verwendet, wenn die Antwort auf die Anforderung innerhalb der vorher festgelegten Zeitspanne empfangen wird. Die Antwort weist die MAC-Adresse auf und nach deren Empfang wird die MAC-Adresse entweder von der Einheit, welche die Anforderung anfangs gesendet hat, oder von einer anderen Einheit, die mit dieser Einheit verbunden ist, verwendet.
-
In einer Ausführungsform kann eine vorab programmierte MAC-Adresse von der Einheit verwendet werden, welche die Anforderung für eine MAC-Adresse gesendet hat, wenn die Antwort auf die Anforderung nicht während der vorher festgelegten Zeitspanne empfangen wird. Gemäß einem Lösungsansatz wird diese MAC-Adresse bei der Herstellung vorab in die Einheit programmiert.
-
Gemäß hier aufgezeigten Ausführungsformen und Lösungsansätzen können Vermittlungsentscheidungen ohne die Verwendung einer Nachschlagetabelle getroffen werden, da jede Einheit in dem Netzwerk eine MAC-Adresse hat, die einem Zielport der Vermittlungseinheit entspricht. Dies ermöglicht ferner einen äußerst schnellen Vermittlungsalgorithmus und sieht eine sehr geringe Latenzzeit vor. Auch wird die Cut-through-Latenzzeit drastisch verringert, indem die Vermittlungslogik vereinfacht wird, und die Kosten werden reduziert.
-
Während vorstehend verschiedene Ausführungsformen beschrieben wurden, sollte es sich verstehen, dass sie lediglich anhand eines Beispiels und nicht mittels einer Einschränkung aufgezeigt wurden. Folglich sollte die Breite und der Umfang einer Ausführungsform der vorliegenden Erfindung nicht durch irgendwelche der vorstehenden beschriebenen beispielhaften Ausführungsformen beschränkt werden, sondern deren Definition sollte lediglich gemäß den folgenden Ansprüchen und ihren Äquivalenten erfolgen.