-
HINTERGRUND
-
Datenkommunikationsnetzwerke können verschiedene Computer, Server, Knoten, Router, Schalter, Verteiler, Proxys und andere Geräte aufweisen, die miteinander gekoppelt und so konfiguriert sind, dass sie Daten weitergeben. Diese Geräte werden hier als ”Netzwerkelemente” bezeichnet und können eine Vielzahl von Netzwerk-Ressourcen in einem Netzwerk bereitstellen. Die Daten werden durch Datenkommunikationsnetzwerke kommuniziert, indem Protokolldateneinheiten (wie zum Beispiel Pakete, Zellen, Frames oder Segmente) zwischen den Netzwerkelementen über Kommunikations-Links im Netzwerk weitergegeben werden. Eine bestimmte Protokolldateneinheit kann von mehrfachen Netzwerkelementen und übergreifenden mehrfachen Kommunikations-Links abgewickelt werden, während sie zwischen ihrer Quelle und ihrem Ziel durch das Netzwerk wandert. Hosts, wie zum Beispiel Computer, Telefone, Mobiltelefone, Personal Digital Assistants und andere Arten von Verbraucherelektronik verbinden sich mit dem Kommunikationsnetzwerk und übermitteln/empfangen Daten über das Kommunikationsnetzwerk und sind daher Anwender der vom Kommunikationsnetzwerk angebotenen Kommunikationsdienste.
-
Netzwerkelemente sind typischerweise so implementiert, dass sie eine Steuerungsebene haben, welche den Betrieb des Netzwerkelements steuert, und eine Datenebene, welche den durch das Netzwerk fließenden Verkehr abwickelt. Die Datenebene hat typischerweise eine Sammlung von Leitungskarten mit Ports, die sich mit Links im Netzwerk verbinden. Die Daten werden an einem bestimmten Port empfangen, innerhalb der Datenebene geschaltet und an einem oder mehreren anderen Ports auf andere Links im Netzwerk ausgegeben. Um eine schnelle Abwicklung der Daten zu ermöglichen, ist die Datenebene typischerweise in Hardware implementiert, so dass alle Entscheidungen darüber, wie die Daten abzuwickeln sind, unter Verwendung von Hardware-Lookups usw. durchgeführt werden.
-
Die Pakete werden gemäß einem bestimmten Protokoll, wie zum Beispiel dem Internet-Protokoll (IP), durch das Netzwerk übertragen. Das Internet-Protokoll Version 4 (IPv4) ist der vierte Änderungsstand in der Entwicklung des Internet-Protokolls (IP), und es ist die erste Version des Protokolls, deren Einsatz weit verbreitet ist. Zusammen mit IPv6 ist sie der Kernpunkt standardbasierter Internetworking-Verfahren des Internets. IPv4 ist noch immer das bei Weitem verbreitetste Internet-Schichtenprotokoll.
-
IPv4 ist ein verbindungsloses Protokoll zur Verwendung in paketvermittelten Link-Layer-Netzwerken (z. B. Ethernet). Es arbeitet mit einem Modell der Best-Effort-Übermittlung, dahingehend, dass es weder die Übermittlung garantiert noch ein einwandfreies Sequentialisieren zusichert oder Doppelübermittlungen vermeidet. Diese Aspekte, einschließlich Datenintegrität, werden von einem Upper-Layer-Transportprotokoll (z. B. dem Transmission Control Protocol) angesprochen.
-
IPv6 (Internet-Protokoll Version 6) ist eine Menge von Spezifikationen der Internet Engineering Task Force (IETF), die ein Upgrade der IP-Version 4 (IPv4) sind. Die Grundlagen von IPv6 sind ähnlich denen von IPv4-Geräte können IPv6 als Quell- und Zieladresse zur Weitergabe von Paketen über ein Netzwerk verwenden, und Werkzeuge wie Ping arbeiten beim Netzwerktest genauso wie im IPv4, mit einigen kleinen Abweichungen.
-
Eine der Verbesserungen von IPv6 gegenüber IPv4 besteht darin, dass die IP-Adressen von 32 Bits auf 128 Bits verlängert wurden. Diese Erweiterung nimmt ein erhebliches zukünftiges Wachstum des Internets vorweg und schafft Abhilfe für eine erwartete drohende Knappheit von Netzwerkadressen. IPv6 unterstützt auch die Auto-Konfiguration, um dazu beizutragen, die meisten Nachteile der Version 4 zu überwinden, und es besitzt integrierte Sicherheits- und Mobilitätsmerkmale.
-
Zu den weiteren Merkmalen des IPv6 gehören die Unterstützung von 128 Bits (16 Bytes) langen Quell- und Zieladressen, die Verwendung von Multicast-Neighbor-Solicitation-Nachrichten, um IP-Adressen zu Link-Layer-Adressen aufzulösen, die Verwendung von Multicast-Listener-Discover(MLD)-Nachrichten, um die Mitgliedschaft in örtlichen Teilnetzgruppen zu verwalten, und die Verwendung von ICMPv6-Router-Solicitation-and-Router-Advertisement-Nachrichten, um die IP-Adresse des besten Standard-Gateways zu ermitteln.
-
Netzwerkgeräte können MultiLink Trunks (MLTs) verwenden, um miteinander zu kommunizieren. MLT ist ein Verfahren der Link-Aggregation, die es ermöglicht, dass mehrfache Punkt-zu-Punkt-Links zusammen aggregiert werden, um eine einzige logische Verbindungsleitung bereitzustellen. Ein MLT stellt die kombinierte Bandbreite der mehrfachen Links sowie den physikalischen Schichtenschutz gegen den Ausfall eines einzelnen Links bereit. Split MultiLink Trunk (SMLT) ist eine MLT, bei dem ein Ende zwischen mindestens zwei Aggregationsgeräten aufgeteilt ist.
-
Die derzeitige SMLT-Lösung bietet Redundanz und einen schnellen Failover nur in Schicht 2 – die Peers tauschen ihre Media-Access-Control(MAC)-Adressen aus, jedoch nicht ihre IPv6-Adressen. Das Virtual Router Redundancy Protocol (VRRP)v3 verwendet einen anderen Mechanismus, um Redundanz bereitzustellen. Das VRRPv3 nutzt periodische Bekanntmachungen, die es ermöglichen, dass mehrfache Router den einzelnen Master auswählen, der die redundanten IPv6- und MAC-Adressen instanziiert. Ein Failover wird erreicht durch Auswahl eines neuen Masters in Situationen, in denen eine bestimmte Anzahl von Bekanntmachungen von den Backup-Routern nicht empfangen wird.
-
ZUSAMMENFASSUNG
-
Herkömmliche Mechanismen, wie zum Beispiel die weiter oben erläuterten, weisen eine Vielzahl von Mängeln auf. Einer dieser Mängel besteht darin, dass beim herkömmlichen SMLT die IPv6-Weiterleitungslogik gegenüber ihrem normalen Verhalten nicht modifiziert wird. Bei Ausfall eines Aggregationsknotens wird die IPv6-Konnektivität erst wiederhergestellt, wenn das dynamische IPv6-Routing rekonvergiert oder die Erkennung der Nichterreichbarkeit des Nachbarn abgeschlossen ist, so dass keine Wiederherstellung in Sekundenbruchteilen erreicht werden kann. Außerdem wird, falls die Aggregationsschalter als Standard-Router für IPv6-Hosts verwendet werden, die Konnektivität erst wiederhergestellt, wenn der neue Standard-Router dynamisch oder durch Konfiguration zugewiesen wird.
-
Zwar kann das VRRPv3-Protokoll theoretisch einen Failover in Sekundenbruchteilen bieten, dies kann jedoch nur erreicht werden, indem ein sehr kurzes Intervall für die erneute Übertragung der VRRPv3-Bekanntmachung (höchstens 300 Millisekunden, typischerweise viel weniger) konfiguriert wird. Diese Lösung führt zu einem Multicast-Verkehrs-Overhead, das signifikant werden kann, wenn mehrfache VRRPv3-VLANs dasselbe Ethernet-Segment gemeinsam nutzen. Die VRRPv3-Lösung umfasst ein separates eigenständiges Protokoll, sie erfordert eine explizite Konfigurierung aller teilnehmenden Knoten, während die RSMLT-Lösung auf IPv6-Ebene arbeitet und einen einzigen Freigabe-/Sperr-Konfigurationsparameter erfordert. Der Lastausgleich mit VRRPv3 erfordert eine komplexere Konfiguration, die alle IPv6-Knoten auf demselben Link betrifft. Beim IPv6-RSMLT erfolgt der Lastausgleich auf SMLT-Ebene (Schicht 2), und es ist keine zusätzliche Konfigurierung erforderlich.
-
Die Ausführungsformen der Erfindung überwinden solche Mängel in signifikanter Weise und geben Mechanismen und Techniken an, welche Redundanz, verbesserten Lastausgleich und schnellen (in Sekundenbruchteilen erfolgenden) Failover für über Router geleiteten IPv6(Internet-Protocol-Version-6)-Verkehr in Split-Multilink-Trunking(SMLT)-Konfigurationen bereitstellen. Eine typische SMLT-Konfiguration umfasst einen Flankenknoten, der sich über ein MLT(Multi-Link-Trunking)-Link mit zwei SMLT-Aggregationsknoten verbindet. In dieser Konfiguration kann der IPv6-Datenverkehr vom Flankenknoten an einen der zwei Aggregationsknoten MLT-gehasht werden. Wird ein IPv6-Paket an den Knoten gehasht, der nicht der nächste Hop-Gateway für die Ziel-IPv6-Adresse ist, wird das Paket an seinen Peer-Knoten überbrückt und wird erst dann zu seinem endgültigen Ziel IPv6-geleitet. Mit dieser Technologie föhnt ein Knoten ein IPv6-Lookup und eine Weiterleitung im Auftrag seines SMLT-Peers durch – selbst wenn der Knoten nicht der nächste Hop-Gateway für die empfangenen IPv6-Pakete ist. Das erspart den extra Überbrückungs-Hop in der oben beschriebenen Konfiguration und verbessert den Lastausgleich zwischen den zwei Aggregationsknoten. Bei Ausfall eines der Aggregationsknoten wird der IPv6-Verkehr weiterhin von seinem Peer weitergeleitet. Außerdem erfährt das Netzwerk eine nur kurze Dienstunterbrechung, da keine Routing- oder Überbrückungs-Rekonvergenz erforderlich ist. Die vorgeschlagene Lösung wird auf der IPv6-Ebene angewandt und ist deshalb unabhängig vom verwendeten IPv6-Routing-Protokoll.
-
In einer bestimmten Ausführungsform eines Verfahrens für die Durchführung eines Routed Split Multilink Trunking für IPv6 beinhaltet das Verfahren die Kopplung eines ersten Aggregationsgeräts mit einem zweiten Aggregationsgerät unter Verwendung eines Inter-Switch Trunk (IST), wobei das erste und das zweite Aggregationsgerät gleichzeitig in Betrieb sind und als ein einziges Gerät arbeiten. Das Verfahren beinhaltet auch das Lernen, seitens des ersten Aggregationsgeräts, einer Media-Access-Control(MAC)-Adresse des zweiten Aggregationsgeräts und das Lernen, seitens des zweiten Aggregationsgeräts, einer MAC-Adresse des ersten Aggregationsgeräts. Zusätzlich beinhaltet das Verfahren die Synchronisierung von Internet-Protocol-Version-6(IPv6)-Adressen zwischen dem ersten Aggregationsgerät und dem zweiten Aggregationsgerät. Wenn das erste Aggregationsgerät ein für das zweite Aggregationsgerät bestimmtes IPv6-Paket empfängt, führt das erste Aggregationsgerät auf einer Zieladresse des IPv6-Pakets ein IPv6-Route-Lookup durch und leitet das Paket zu einem nächsten Hop für das IPv6-Paket weiter, und wenn das zweite Aggregationsgerät ein für das erste Aggregationsgerät bestimmtes IPv6-Paket empfängt, führt das zweite Aggregationsgerät auf einer Zieladresse des IPv6-Pakets ein IPv6-Route-Lookup durch und leitet das Paket zu einem nächsten Hop für das IPv6-Paket weiter.
-
Weitere Ausführungsformen beinhalten ein computerlesbares Medium, auf dem sich ein computerlesbarer Code befindet, um ein Routed Split Multilink Trunking für das Internet-Protokoll Version 6 (IPv6) bereitzustellen. Das Medium enthält Befehle zum Lernen, seitens eines ersten Aggregationsgeräts, einer Media-Access-Control(MAC)-Adresse eines zweiten Aggregationsgeräts, wobei das erste Aggregationsgerät unter Verwendung eines Inter-Switch Trunk (IST) mit dem zweiten Aggregationsgerät gekoppelt ist und wobei das erste und das zweite Aggregationsgerät gleichzeitig in Betrieb sind und als ein einziges Gerät arbeiten. Das computerlesbare Medium enthält auch Befehle zum Lernen, seitens des zweiten Aggregationsgeräts, einer MAC-Adresse des ersten Aggregationsgeräts und zur Synchronisierung von Internet-Protocol-Version-6(IPv6)-Adressen zwischen dem ersten und dem zweiten Aggregationsgerät. Der Ausdruck ”Synchronisierung von IPv6-Adressen” bezeichnet hier das Szenario, in dem das erste Gerät die Menge von IPv6-Adressen des zweiten Geräts lernt und bei dem das zweite Gerät die Menge von IPv6-Adressen des ersten Geräts lernt. Das computerlesbare Medium enthält außerdem Befehle, wobei das erste Aggregationsgerät, wenn es ein für das zweite Aggregationsgerät bestimmtes IPv6-Paket empfängt, auf einer Zieladresse des IPv6-Pakets ein IPv6-Route-Lookup durchführt und das Paket zu einem nächsten Hop für das IPv6-Paket weiterleitet, und das zweite Aggregationsgerät, wenn es ein für das erste Aggregationsgerät bestimmtes IPv6-Paket empfängt, auf einer Zieladresse des IPv6-Pakets ein IPv6-Route-Lookup durchführt und das Paket zu einem nächsten Hop für das IPv6-Paket weiterleitet.
-
Weitere Ausführungsformen beinhalten ein rechnergestütztes Gerät (z. B. einen Aggregator), das so konfiguriert ist, dass es alle hier als Ausführungsformen der Erfindung offengelegten Verfahrensoperationen verarbeitet. In diesen Ausführungsformen beinhaltet das rechnergestützte Gerät ein Speichersystem, einen Prozessor, eine Kommunikationsschnittstelle in einem diese Komponenten miteinander verbindenden Kopplungsmechanismus. Das Speichersystem ist mit einem Prozess codiert, der ein Routed Split Multilink Trunking für IPv6, wie hier erläutert, bereitstellt, das, wenn es auf dem Prozessor durchgeführt wird (z. B. dort abläuft), innerhalb des rechnergestützten Geräts so arbeitet, wie hier erläutert, um alle hier als Ausführungsformen der Erfindung erläuterten Verfahrensausführungsformen und Operationen durchzuführen. Somit ist jedes rechnergestützte Gerät, das eine hier erläuterte Verarbeitung durchführt oder für eine solche Durchführung programmiert ist, eine Ausführungsform der Erfindung.
-
Weitere hier offengelegte Anordnungen von Ausführungsformen der Erfindung beinhalten Software-Programme, um die weiter oben zusammengefasst und weiter unten im Einzelnen offengelegten Schritte und Operationen der Verfahrensausführungsformen durchzuführen. Im Besonderen ist ein Computerprogrammprodukt eine Ausführungsform, die ein computerlesbares Medium aufweist, auf dem eine Computerprogrammlogik codiert ist, die, wenn sie in einem rechnergestützten Gerät durchgeführt wird, zugeordnete Operationen bereitstellt, die ein Routed Split Multilink Trunking für IPv6, wie hier erläutert, bereitstellen. Wenn die Computerprogrammlogik auf mindestens einem Prozessor mit einem Datenverarbeitungssystem ausgeführt wird, veranlasst sie, dass der Prozessor die hier angegebenen Operationen (z. B. die Verfahren) als Ausführungsformen der Erfindung durchführt. Derartige Anordnungen der Erfindung werden typischerweise als Software, Code und/oder sonstige Datenstrukturen angegeben, die auf einem computerlesbaren Medium angeordnet oder codiert sind, wie zum Beispiel einem optischen Medium (z. B. einer CD-ROM), einer Diskette oder Festplatte oder einem anderen Medium, wie zum Beispiel einer Firmware oder einem Mikrocode in einem oder mehreren ROM- oder RAM- oder PROM-Chips oder als anwendungsspezifische integrierte Schaltung (ASIC) oder als herunterladbare Software-Bilder in einem oder mehreren Modulen, gemeinsam genutzten Bibliotheken, usw. Die Software oder Firmware oder die sonstigen derartigen Konfigurationen können auf einem rechnergestützten Gerät installiert werden, um zu veranlassen, dass einer oder mehrere Prozessoren in dem rechnergestützten Gerät die hier erläuterten Techniken als Ausführungsformen der Erfindung durchführen. Software-Prozesse, die in einer Sammlung rechnergestützter Geräte, wie zum Beispiel einer Gruppe von Datenkommunikationsgeräten oder anderen Entitäten arbeiten, können ebenfalls das System der Erfindung bereitstellen. Das System der Erfindung kann zwischen vielen Software-Prozessen auf mehreren Datenkommunikationsgeräten verteilt sein, oder alle Prozesse können auf einer kleinen Menge dedizierter Computer oder auf einem einzigen Computer laufen.
-
Es ist zu verstehen, dass die Ausführungsformen der Erfindung streng als Software-Programm, als Software und Hardware oder als Hardware und/oder als Schaltungen allein, wie zum Beispiel in einem Datenkommunikationsgerät, ausgeführt sein können. Die hier erläuterten Merkmale der Erfindung können in Datenkommunikationsgeräten und/oder Software-Systemen für solche Geräte, wie den von Avaya, Inc., Lincroft, New Jersey, hergestellten, verwirklicht werden.
-
Man beachte, dass jedes der in dieser Offenlegung erörterten unterschiedlichen Merkmale, Techniken, Konfigurationen usw. einzeln oder in Kombination ausgeführt sein kann. Dementsprechend kann die vorliegende Erfindung auf viele verschiedene Arten ausgeführt und aufgefasst werden.
-
Man beachte ferner, dass dieses Zusammenfassungskapitel nicht jede Ausführungsform und/oder jeden dazukommenden neuartigen Aspekt der vorliegenden Offenlegung oder beanspruchten Erfindung spezifiziert. Vielmehr stellt diese Zusammenfassung lediglich eine vorläufige Erörterung unterschiedlicher Ausführungsformen und entsprechender Neuheitselemente gegenüber herkömmlichen Techniken dar. Bezüglich weiterer Einzelheiten, Elemente und/oder möglicher Perspektiven (Permutationen) der Erfindung wird der Leser auf das Kapitel der ausführlichen Beschreibung und die entsprechenden Figuren der vorliegenden Offenlegung, wie sie weiter unten erörtert werden, verwiesen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die vorstehenden Ausführungen werden deutlich aus der folgenden, mehr ins Einzelne gehenden Beschreibung bevorzugter Ausführungsformen der Erfindung, wie in den beigefügten Zeichnungen veranschaulicht, in denen gleiche Bezugsnummern in allen unterschiedlichen Ansichten dieselben Teile bezeichnen. Die Zeichnungen sind nicht unbedingt maßstabsgerecht, es wurde vielmehr der Schwerpunkt darauf gelegt, die Prinzipien der Erfindung zu veranschaulichen.
-
1 ist ein Blockdiagramm, das ein beispielhaftes Split-Multilink-Trunk-Netzwerk gemäß den Ausführungsformen der Erfindung zeigt;
-
2A und 2B umfassen ein Ablaufdiagramm, das eine spezielle Ausführungsform eines Verfahrens für Routed Split Multilinktrunking für IPv6 gemäß den Ausführungsformen der Erfindung veranschaulicht; und
-
3 veranschaulicht eine beispielhafte Architektur eines Computersystems für einen Aggregator, der ein Routed Split Multilinktrunking für IPv6 gemäß den Ausführungsformen der Erfindung durchführt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Logische Verbindungen zwischen bestimmten Knoten werden hier als Inter-Switch Trunks (ISTs) bezeichnet. ISTs können physikalische Links sein, die sich von einem Netzwerkelement zu einem benachbarten Netzwerkelement im Cluster erstrecken, oder sie können logische Links sein, die durch ein oder mehrere dazwischenliegende Netzwerkelemente im Cluster tunneln. Der Knoten, der ein Paket von einem nicht-IST-Port empfängt, wird als lokaler Knoten bezeichnet. Alle anderen Knoten in dem Cluster werden in Bezug auf das empfangene Paket als Fern-Knoten bezeichnet. Wird ein IST zur Verwendung angesteuert, so wird der IST auf Rotationsbasis angesteuert. Dies erfolgt, um zu vermeiden, dass derselbe IST wiederholt angesteuert wird und wird anstelle einer Hashing-Funktion verwendet.
-
Zwei oder mehr Links können gruppiert sein, um einen Multi-Link Trunk (MLT) zu bilden. Jedem MLT ist eine MLT-Gruppen-ID (MLT-ID) zugewiesen, die ein globaler Wert im Cluster ist und cluster-knoten-übergreifend eindeutig ist. Ein MLT, dessen Port-Elemente sich alle auf einem einzigen Knoten befinden, wird als normale MLT-Gruppe bezeichnet. Eine MLT-Gruppe, deren Port-Elemente sich auf zwei oder mehr Knoten befinden, wird als Split MLT oder SMLT-Gruppe bezeichnet.
-
Wenn ein logischer Port als MLT oder SMLT implementiert ist, gibt es tatsächlich mehrfache physikalische Ports, die in der Lage sind, ein Paket an seinen nächsten Hop im Netzwerk weiterzuleiten. Dementsprechend wäre es, wenn einer der Ports eines MLT/SMLT ausfällt, vorteilhaft zu veranlassen, dass das Paket an einen der übrigen Ports weitergeleitet wird, so dass das Paket das Netzwerk durchlaufen kann, anstatt fallengelassen zu werden. Ebenso wäre es vorteilhaft, anstatt für jeden Port im MLT/SMLT einen primären und einen Sicherungs-Port zu bestimmen, die Last der Pakete auf die übrigen Ports des MLT/SMLT zu verteilen, so dass die Pakete auf die übrigen Ports, die UP sind, zu verteilen. Gemäß einer Ausführungsform ist dieser Prozess in Hardware implementiert, so dass der Fastpath (Datenebene) automatisch einzelne und mehrfache Port-Ausfälle aufnehmen und den Paketverkehr in angemessener Weise automatisch auf die übrigen Ports umleiten kann.
-
1 zeigt eine weitere beispielhafte Art, wie Netzwerkelemente gekoppelt sein können. Insbesondere sind in diesem Beispiel die Knoten A und B durch einen Inter-Switch Trunk (IST) 26, der ein einzelnes Link oder selbst ein Multi-Link Trunk sein kann, gekoppelt. Wenn die Links eines Multi-Link Trunk physikalisch mit zwei verschiedenen Netzwerkelement verbunden sind, wird der MLT Split Multi-Link Trunk (SMLT) genannt. Die Knoten A und B haben jeweils einen oder mehrere Links, die sich mit dem Knoten C verbinden und die zusammen gruppiert sein können, um einen SMLT 23 zu bilden. Wenn also der Knoten A Daten (z. B. einen Frame/ein Paket) an den Knoten C zu senden hat, kann der Knoten A entweder einen der mit ihm verbundenen SMLT-Links ansteuern oder das Paket an einen der dem Inter-Switch Trunk 26 zugeordneten Links übermitteln, um den Knoten B in die Lage zu versetzen, die Daten auf einem seiner dem SMLT zugeordneten Links an den Knoten C weiterzuleiten.
-
Die Knoten A und B dienen als die nächsten Hops für IPv6-Leitwege, die gelernt oder auf dem Knoten C und/oder auf den IPv6-Knoten im Netzwerk hinter C statisch konfiguriert sind. Eine Redundanz auf Schicht 3 (d. h. IPv6) und ein Failover in Sekundenbruchteilen werden erreicht durch Synchronisierung der IPv6-Weiterleitungsdatensätze auf den Aggreations-Peer-Knoten A und B.
-
Die Aggregations-Peer-Knoten A und B kommunizieren miteinander mittels über den IST-Link 22 gesendeten Nachrichten. Jeder Knoten gibt seine MAC-Adresse und die Menge der auf dem SMLT-Link konfigurierten IPv6-Adressen und Präfixen an den Peer weiter. Sobald ein Aggregationsknoten die MAC-Adresse seines Peers lernt, modifiziert er seine IPv6-Weiterleitungslogik wie folgt. Wenn der Knoten ein für die MAC-Adresse seines Peers bestimmtes IPv6-Paket empfängt, führt er ein IPv6-Route-Lookup an der Zieladresse durch und leitet das Paket an den nächsten Hop des Leitwegs weiter (bei Fehlen dieser logischen Modifikation wäre das Paket fallengelassen oder an den Peer überbrückt worden). Bei Ausfall eines der Aggregationsknoten, zum Beispiel des Knotens B, ist die MLT-Funktionalität auf dem Knoten C in der Lage, diesen Zustand in weit unter einer Sekunde zu erkennen und somit zu erklären, dass der C-B-Link down ist (dies ist eine reguläre MLT-Operation). Infolgedessen nimmt der gesamte IPv6-Verkehr, der von C ausgeht oder von C weitergeleitet wird, den Pfad A–C. Da dynamische IPv6-Routing-Protokolle mehrere Sekunden benötigen können, um zu rekonvergieren, wird möglicherweise ein Teil des IPv6-Verkehrs weiterhin an die MAC-Adresse von B gesendet, da C und andere Knoten unwirksame IPv6-Leitwege, deren nächster Hop weiterhin der Knoten B ist, beibehalten. Wegen der weiter oben beschriebenen Modifikation der Weiterleitungslogik wird dieser IPv6-Verkehr jedoch erfolgreich durch den Knoten A weitergeleitet. Infolgedessen erfährt das IPv6 eine nur Sekundenbruchteile dauernde Dienstunterbrechung.
-
Zusätzlich dazu, dass ein Aggregationsknoten stets eine IPv6-Weiterleitung im Auftrag des Peers durchführt, wie weiter oben beschrieben, beendet er das IPv6 auch im Auftrag des Peers, falls der Peer-Knoten ausfällt. Ein Ausfall des IST-Links oder ein Totalausfall eines der Aggregationsknoten wird sofort durch Überwachung des IST-Status durch seinen Peer erkannt; die folgende Logik wird angewandt. Wenn ein Knoten einen IST-Ausfall erkennt, modifiziert er die örtlichen IPv6-Weiterleitungs- und Neighbor-Discovery-Datensätze, um den an eine der auf dem SMLT-Link konfigurierten IPv6-Adressen des Peers gesendeten IPv6-Verkehr zu beenden. Der Knoten übermittelt auch freilaufende Neighbor-Advertisement-Nachrichten für alle Adressen des Peers und freilaufende Router-Advertisement-Nachrichten für alle Präfixe des Peers. Wenn der Knoten ein für eine der IPv6-Adressen des Peers bestimmtes Paket empfängt, gibt er das Paket an das örtliche IPv6-Protokollprofil weiter. Im Besonderen emuliert der Knoten vollständig die Neighbor-Discovery-Operation seines Peers: er beantwortet die Neighbor- und Router-Abfragen für die Adressen und Präfixe des Peers und übermittelt freilaufende Neighbor- und Router-Advertisements, wie im IPv6-Neighbor-Discover-RFC spezifiziert; er erzeugt ICMPv6-Ereignisse, wie im ICMPv6-RFC beschrieben. Infolge dieses Verhaltens brauchen die IPv6-Hosts, die den Knoten A oder B als ihren Standard-IPv6-Router verwenden, im Falle eines Ausfalls eines Aggregationsknotens keinen anderen Standard-Router zu finden oder zu einem anderen Standard-Router zu schalten – dies ermöglicht einen Failover in Sekundenbruchteilen für den IPv6-Host-Verkehr.
-
In den 2A und 2B ist ein Ablaufdiagramm einer bestimmten Ausführungsform des hier offengelegten Verfahrens der Durchführung eines Routed Split Multilink Trunking für IPv6 dargestellt. Die rechteckigen Elemente werden hier als ”Verarbeitungsblöcke” bezeichnet und stellen Befehle oder Gruppen von Befehlen der Computer-Software dar. Alternativ stellen die Verarbeitungsblöcke Schritte dar, die von funktionell gleichwertigen Schaltungen, wie zum Beispiel einer Schaltung eines digitalen Signalprozessors oder einer anwendungsspezifischen integrierten Schaltung (ASIC) durchgeführt werden. Die Ablaufdiagramme zeigen nicht die Syntax einer bestimmten Programmiersprache, sondern veranschaulichen die funktionellen Informationen, die der durchschnittliche Fachmann benötigt, um Schaltungen herzustellen oder Computer-Software zu erzeugen, um die gemäß der vorliegenden Erfindung erforderliche Verarbeitung durchzuführen. Man beachte, dass viele Routine-Programmelemente, wie zum Beispiel die Initialisierung von Schleifen und Variablen und die Verwendung vorübergehender Variablen nicht dargestellt sind. Der durchschnittliche Fachmann wird verstehen, dass, sofern hier nichts Anderes angegeben ist, die beschriebene bestimmte Reihenfolge von Schritten lediglich veranschaulichend ist und variiert werden kann, ohne vom Gedanken der Erfindung abzuweichen. Somit sind die weiter unten beschriebenen Schritte, sofern nichts Anderes angegeben ist, ungeordnet, d. h. die Schritte können, wenn möglich, in jeglicher geeigneten oder gewünschten Reihenfolge ausgeführt werden.
-
Es wird nun Bezug genommen auf die 2A und 2B, in denen eine bestimmte Ausführungsform eines Verfahrens 100 der Durchführung eines Routed Split Multilink Trunking für IPv6 dargestellt ist. Das Verfahren 100 beginnt mit dem Verarbeitungsblock 102, der die Kopplung eines ersten Aggregationsgeräts mit einem zweiten Aggregationsgerät unter Verwendung eines Inter-Switch Trunk (IST) offenlegt, wobei das erste Aggregationsgerät und das zweite Aggregationsgerät gleichzeitig in Betrieb sind und als ein einziges Gerät arbeiten. Das erste Aggregationsgerät und das zweite Aggregationsgerät sind Aggregations-Peers und kommunizieren mittels eines IST miteinander.
-
Der Verarbeitungsblock 104 beschreibt das Lernen, seitens des ersten Aggregationsgeräts, einer Media-Access-Control(MAC)-Adresse des zweiten Aggregationsgeräts, und der Verarbeitungsblock 106 beschreibt das Lernen, seitens des zweiten Aggregationsgeräts, einer MAC-Adresse des ersten Aggregationsgeräts. Sobald ein Aggregationsknoten die MAC-Adresse seines Peers lernt, modifiziert er seine IPv6-Weiterleitungslogik. Wenn der Knoten ein für die MAC-Adresse seines Peers bestimmtes IPv6-Paket-empfängt, führt er ein IPv6-Route-Lookup an der Zieladresse durch und leitet das Paket an den nächsten Hop des Leitwegs weiter.
-
Der Verarbeitungsblock 108 beschreibt die Synchronisierung von Internet-Protocol-Version-6(IPv6)-Adressen zwischen dem ersten und dem zweiten Aggregationsgerät. Der Verarbeitungsblock 110 beschreibt, dass das erste Aggregationsgerät, wenn es ein für das zweite Aggregationsgerät bestimmtes IPv6-Paket empfängt, auf einer Zieladresse des IPv6-Pakets ein IPv6-Route-Lookup durchführt und das Paket zu einem nächsten Hop für das IPv6-Paket weiterleitet, und dass das zweite Aggregationsgerät, wenn es ein für das erste Aggregationsgerät bestimmtes IPv6-Paket empfängt, auf einer Zieladresse des IPv6-Pakets ein IPv6-Route-Lookup durchführt und das Paket zu einem nächsten Hop für das IPv6-Paket weiterleitet. Der Verarbeitungsblock 112 beschreibt die Durchführung eines Failover in Sekundenbruchteilen, wenn entweder das erste oder das zweite Aggregationsgerät ausfällt.
-
Der Verarbeitungsblock 114 beschreibt die Abwicklung aller Pakete, die das andere der zwei Aggregationsgeräte von einem ausgefallenen der zwei Aggregationsgeräte empfängt und die das andere der zwei Aggregationsgeräte an ein ausgefallenes der zwei Aggregationsgeräte überträgt. Bei Ausfall eines der Aggregationsknoten A und B, zum Beispiel des Knotens B, ist die MLT-Funktionalität auf dem Knoten C in der Lage, diesen Zustand in weit unter einer Sekunde zu erkennen und somit zu erklären, dass der C-B-Link down ist (dies ist eine reguläre MLT-Operation). Infolgedessen nimmt der gesamte IPv6-Verkehr, der von C ausgeht oder von C nach B weitergeleitet wird, den Pfad A–C. Da dynamische IPv6-Routing-Protokolle mehrere Sekunden benötigen können, um zu rekonvergieren, wird möglicherweise ein Teil des IPv6-Verkehrs weiterhin an die MAC-Adresse von B gesendet, da C und andere Knoten unwirksame IPv6-Leitwege beibehalten, deren nächster Hop weiterhin der Knoten B ist. Wegen der weiter oben beschriebenen Modifikation der Weiterleitungslogik wird dieser IPv6-Verkehr jedoch erfolgreich durch den Knoten A weitergeleitet.
-
Die Verarbeitung wird mit dem Verarbeitungsblock 116 fortgesetzt, der angibt, dass durch ein erstes der zwei Aggregationsgeräte IPv6-Pakete im Auftrag eines zweiten der zwei Aggregationsgeräte beendet werden, wenn das zweite der zwei Aggregationsgeräte ausfällt.
-
Der Verarbeitungsblock 118 beschreibt die Erkennung, durch ein erstes der zwei Aggregationsgeräte, eines IST-Ausfalls und die Modifizierung der örtlichen IPv6-Weiterleitungs- und Neighbor-Discovery-Datensätze, um den an ein zweites der zwei Aggregationsgeräte gesendeten IPv6-Verkehr zu beenden, wenn das zweite Gerät ausfällt.
-
Der Verarbeitungsblock 120 beschreibt die Übermittlung, durch das erste der zwei Aggregationsgeräte, von freilaufenden Neighbor-Advertisement-Nachrichten für alle Adressen des zweiten der zwei Aggregationsgeräte, wenn das zweite Gerät ausfällt.
-
Der Verarbeitungsblock 122 beschreibt die Übermittlung, durch das erste der zwei Aggregationsgeräte, von freilaufenden Router-Advertisement-Nachrichten für alle Präfixe des zweiten der zwei Aggregationsgeräte, wenn das zweite Gerät ausfällt.
-
Der Verarbeitungsblock 124 beschreibt den Empfang, durch das erste der zwei Aggregationsgeräte, eines für eine der IPv6-Adressen des zweiten der zwei Aggregationsgeräte bestimmten Pakets und die Weitergabe des Pakets an ein örtliches IPv6-Protokollprofil. Wenn ein Knoten einen IST-Ausfall erkennt, modifiziert er die örtlichen IPv6-Weiterleitungs- und Neighbor-Discovery-Datensätze, um den an eine der auf dem SMLT-Link konfigurierten IPv6-Adressen des Peers gesendeten IPv6-Verkehr zu beenden. Wenn der Knoten ein für eine der IPv6-Adressen des Peers bestimmtes Paket empfängt, gibt er das Paket an das örtliche IPv6-Protokollprofil weiter. Im Besonderen emuliert der Knoten vollständig die Neighbor-Discovery-Operation seines Peers: er beantwortet die Neighbor- und Router-Abfragen für die Adressen und Präfixe des Peers und übermittelt freilaufende Neighbor- und Router-Advertisements, wie im IPv6-Neighbor-Discover-RFC spezifiziert; er erzeugt ICMPv6-Ereignisse, wie im ICMPv6-RFC beschrieben. Infolge dieses Verhaltens brauchen die IPv6-Hosts, die diese Knoten als ihre Standard-IPv6-Router verwenden, im Falle eines Ausfalls eines Aggregationsknotens keinen anderen Standard-Router zu finden oder zu einem anderen Standard-Router zu schalten – dies ermöglicht für den IPv6-Host-Verkehr einen Failover in Sekundenbruchteilen.
-
3 ist ein Blockdiagramm, das eine beispielhafte Architektur eines Computersystems (z. B. eines Aggregators) 210 veranschaulicht, die ein Routed SMLT Trunking für die IPv6-Anwendung 240-1 und ein Routed SMLT Trunking für den IPv6-Prozess 240-2 ausführt, ablaufen lässt, auswertet, betreibt oder sonstwie durchführt, die geeignet sind, die hier offengelegten Beispielkonfigurationen zu erklären. Wie in diesem Beispiel dargestellt ist, beinhaltet das Computersystem 210 einen Kopplungsmechanismus 211, wie zum Beispiel einen Datenbus oder andere Schaltungen, der ein Speichersystem 212, einen Prozessor 213, eine Ein-/Ausgabeschnittstelle 214 und eine Kommunikationsschnittstelle 215 miteinander koppelt. Die Kommunikationsschnittstelle 215 versetzt das Computersystem 210 in die Lage, mit anderen Geräten (d. h. anderen Computern) in einem (nicht abgebildeten) Netzwerk zu kommunizieren.
-
Das Speichersystem 212 ist eine beliebige Art von computerlesbarem Medium und ist in diesem Beispiel mit einem Routed SMLT Trunking für die IPv6-Anwendung 240-1 codiert, wie hier erklärt wird. Das Routed SMLT Trunking für die IPv6-Anwendung 240-1 kann als Software-Code realisiert sein, wie zum Beispiel als Daten- und/oder logische Befehle (z. B. ein im Speicher oder auf einem anderen computerlesbaren Medium, wie zum Beispiel einer ausbaubaren Platte, gespeicherter Code), der die Verarbeitungsfunktionalität gemäß den hier beschriebenen verschiedenen Ausführungsformen unterstützt. Während des Betriebs des Computersystems 210 greift der Prozessor 213 über den Kopplungsmechanismus 211 auf das Speichersystem 212 zu, um die logischen Befehle eines Routed SMLT Trunking für die IPv6-Anwendung 240-1 zu starten, ablaufen zu lassen, auszuführen, auszuwerten oder sonstwie durchzuführen. Die Ausführung eines Routed SMLT Trunking für die IPv6-Anwendung 240-1 stellt auf diese Weise die Verarbeitungsfunktionalität im Routed SMLT Trunking für den IPv6-Prozess 240-2 her. Mit anderen Worten, das Routed SMLT Trunking für den IPv6-Prozess 240-2 stellt einen oder mehrere Abschnitte oder Laufzeitinstanzen eines Routed SMLT Trunking für die IPv6-Anwendung 240-1 (oder das gesamte Routed SMLT Trunking für den IPv6-Prozess 240-2) dar, das während der Laufzeit in oder auf dem Prozessor 213 im rechnergestützten Gerät 210 arbeitet oder abläuft.
-
Man beachte, dass die hier offengelegten Beispielkonfigurationen das Routed SMLT Trunking für die IPv6-Anwendung 240-1 selbst (d. h. in Form von nicht ausgeführten oder nicht durchführenden logischen Befehlen und/oder Daten) aufweisen. Das Routed SMLT Trunking für die IPv6-Anwendung 240-1 kann auf einem computerlesbaren Medium, wie zum Beispiel einer Diskette, einer Festplatte, einem elektronischen, magnetischen, optischen oder anderen computerlesbaren Medium, gespeichert sein. Ein Routed SMLT Trunking für die IPv6-Anwendung 240-1 kann auch in einem Speichersystem 212, wie zum Beispiel in Firmware, in einem Festspeicher (ROM) oder, wie in diesem Beispiel, als ausführbarer Code in zum Beispiel einem Direktzugriffsspeicher (RAM) gespeichert sein. Zusätzlich zu diesen Ausführungsformen ist auch zu beachten, dass andere hier genannte Ausführungsformen die Ausführung eines Routed SMLT Trunking für die IPv6-Anwendung 240-1 im Prozessor 213 als Routed SMLT Trunking für den IPv6-Prozess 240-2 beinhalten. Der Fachmann wird verstehen, dass das Computersystem 210 weitere Prozesse und/oder Software- und Hardware-Komponenten, wie zum Beispiel ein in diesem Beispiel nicht dargestelltes Betriebssystem, aufweisen kann.
-
Während des Betriebs greift der Prozessor 213 des Computersystems 200 über den Kopplungsmechanismus 211 auf das Speichersystem 212 zu, um die logischen Befehle des Routed SMLT Trunking für die IPv6-Anwendung 240-1 zu starten, ablaufen zu lassen, auszuführen, auszuwerten oder sonstwie durchzuführen. Die Durchführung eines Routed SMLT Trunking für die IPv6-Anwendung 240-1 stellt die Verarbeitungsfunktionalität im Routed SMLT Trunking für den IPv6-Prozess 240-2 her. Mit anderen Worten, das Routed SMLT Trunking für den IPv6-Prozess 240-2 stellt einen oder mehrere Abschnitte des Routed SMLT Trunking für die IPv6-Anwendung 240-1 (oder die gesamte Anwendung) dar, die in oder auf dem Prozessor 213 im Computersystem 200 arbeiten.
-
Man beachte, dass zusätzlich zum Routed SMLT Trunking für den IPv6-Prozess 240-2 die hier genannten Ausführungsformen das Routed SMLT Trunking für die IPv6-Anwendung 240-1 selbst (d. h. die nicht ausgeführten oder nicht durchführenden logischen Befehle und/oder Daten) beinhalten. Das Routed SMLT Trunking für die IPv6-Anwendung 240-1 kann auf einem computerlesbaren Medium, wie zum Beispiel einer Diskette, einer Festplatte oder einem optischen Medium gespeichert sein. Das Routed SMLT Trunking für die IPv6-Anwendung 240-1 kann auch in einer Art Speichersystem, wie zum Beispiel in Firmware, in einem Festspeicher (ROM) oder, wie in diesem Beispiel, als ausführbarer Code im Speichersystem 212 (z. B. in einem Direktzugriffsspeicher oder RAM) gespeichert sein.
-
Zusätzlich zu diesen Ausführungsformen ist auch zu beachten, dass weitere hier genannte Ausführungsformen die Ausführung eines Routed SMLT Trunking für die IPv6-Anwendung 240-1 im Prozessor 213 als Routed SMLT Trunking für den IPv6-Prozess 240-2 beinhalten. Der Fachmann wird verstehen, dass das Computersystem 200 weitere Prozesse und/oder Software- und Hardware-Komponenten, wie zum Beispiel ein Betriebssystem, das die Zuweisung und Verwendung der dem Computersystem 200 zugeordneten Hardware-Ressourcen steuert, aufweisen kann.
-
Die Bezugnahme auf ”einen Mikroprozessor” und ”einen Prozessor” oder ”den Mikroprozessor” und ”den Prozessor” kann so verstanden werden, dass diese einen oder mehrere Mikroprozessoren enthalten, die in einer oder mehreren dezentralen und/oder verteilten Umgebungen kommunizieren können und somit so konfiguriert sein können, dass sie über drahtgebundene oder drahtlose Kommunkationen mit anderen Prozessoren kommunizieren, wobei ein oder mehrere Prozessoren so konfiguriert sein können, dass sie auf einem oder mehreren prozessorgesteuerten Geräten, welche gleiche oder unterschiedliche Geräte sein können, arbeiten. Die Verwendung dieser Terminologie ”Mikroprozessor” oder ”Prozessor” kann somit so verstanden werden, dass sie eine Zentraleinheit, eine Arithmetik-Logik-Einheit, einen anwendungsspezifischen integrierten Schaltkreis (IC) und/oder eine Aufgabenmaschine beinhaltet, wobei diese Beispiele der Veranschaulichung und nicht der Einschränkung dienen.
-
Ferner kann die Bezugnahme auf einen Speicher, sofern nichts Anderes angegeben ist, ein oder mehrere prozessorlesbare und -zugängliche Speicherelemente und/oder -komponenten beinhalten, die sich innerhalb des prozessorgesteuerten Geräts befinden können, außerhalb des prozessorgesteuerten Geräts befinden können und/oder unter Verwendung einer Vielzahl von Kommunikationsprotokollen über ein drahtgebundenes oder drahtloses Netzwerk zugänglich sein können und, sofern nichts Anderes angegeben ist, so angeordnet sein können, dass sie eine Kombination externer und interner Speichergeräte beinhalten, wobei ein solcher Speicher zusammenhängend und/oder je nach der Anwendung aufgeteilt sein kann. Ebenso kann die Bezugnahme auf eine Datenbank so verstanden werden, dass diese eine oder mehrere Speicherzuordnungen beinhaltet, wobei eine solche Bezugnahme handelsübliche Datenbankprodukte (z. B. SQL, Informix, Oracle) und auch gesetzlich geschützte Datenbanken, sowie auch weitere Strukturen für die Speicherzuordnung, wie zum Beispiel Links, Warteschlangen, Graphen, Bäume, beinhalten kann, wobei diese Strukturen der Veranschaulichung und nicht der Einschränkung dienen.
-
Die Bezugnahme auf ein Netzwerk kann, sofern nichts Anderes angegeben ist, ein oder mehrere Intranets und/oder das Internet sowie ein virtuelles Netzwerk beinhalten. Die Bezugnahme in dieser Beschreibung auf Mikroprozessorbefehle oder mikroprozessorausführbare Befehle kann gemäß den obigen Ausführungen so verstanden werden, dass diese eine programmierbare Hardware aufweisen.
-
Sofern nichts Anderes angegeben ist, kann die Verwendung des Ausdrucks ”im Wesentlichen” so ausgelegt werden, dass er eine genaue Beziehung, Bedingung, Anordnung, Ausrichtung und/oder ein anderes Merkmal sowie Abweichungen davon beinhaltet, wie es der durchschnittliche Fachmann versteht, soweit solche Abweichungen keine wesentliche Auswirkung auf die offengelegten Verfahren und Systeme haben.
-
In der gesamten vorliegenden Offenlegung kann die Verwendung der Artikel ”ein” oder ”eine” zur näheren Bestimmung eines Substantivs so verstanden werden, dass sie lediglich der Bequemlichkeit halber verwendet werden und eines oder mehr als eines des näher bestimmten Substantivs beinhalten, sofern nicht ausdrücklich etwas Anderes angegeben ist.
-
Elemente, Komponenten, Module und/oder Teile davon, die so beschrieben werden und/oder sonstwie durch die Figuren so dargestellt werden, dass sie mit etwas Anderem kommunizieren, etwas Anderem zugeordnet sind und/oder auf etwas Anderem basieren, können so verstanden werden, dass sie auf diese Weise direkt und/oder indirekt kommunizieren, zugeordnet sind und/oder darauf basieren, sofern hier nichts Anderes angegeben ist.
-
Zwar wurden die Verfahren und Systeme mit Bezug auf eine spezielle Ausführungsform derselben beschrieben, jedoch sind sie nicht darauf beschränkt. Es ist offensichtlich, dass viele Modifikationen und Variationen vor dem Hintergrund der obigen Lehren offenkundig werden können. Der Fachmann kann viele zusätzliche Änderungen an den hier beschriebenen und veranschaulichten Einzelheiten, Materialien und der Anordnung von Teilen vornehmen.
-
Nachdem die bevorzugten Ausführungsformen der Erfindung beschrieben worden sind, wird es nun für den durchschnittlichen Fachmann offenkundig werden, dass weitere Ausführungsformen, welche diese Konzepte beinhalten, verwendet werden können. Außerdem kann die als Teil der Erfindung enthaltene Software in einem Computerprogrammprodukt, das ein computerverwendbares Medium aufweist, realisiert werden. Zu solchen computerverwendbaren Medien gehören zum Beispiel ein lesbares Speichergerät, wie zum Beispiel ein Festplattenlaufwerkgerät, eine CD-ROM, eine DVD-ROM oder eine Computer-Diskette, auf der computerlesbare Programm-Code-Segmente gespeichert sind. Das computerlesbare Medium kann ferner ein optisches, drahtgebundenes oder drahtloses Kommunikations-Link aufweisen, auf dem Programm-Code-Segmente als digitale oder analoge Signale gespeichert sind. Dementsprechend wird vorgetragen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen, sondern nur durch den Gedanken und Umfang der beigefügten Ansprüche beschränkt sein soll.