RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 RST - Labor Architektur eines Routers Ausarbeitung von: Wolfgang Schüschke, 32780 Dimitri Zielke, 134793 Semester: I7I Ort: Hochschule Bremen – Fachbereich 4, Elektrotechnik & Informatik Datum: 12.05.2008 Email Kontakt: Wolfgang Schüschke [[email protected]] Dimitri Zielke [[email protected]] 1. Deckblatt Seite (1 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 2. Inhaltsverzeichnis 1. 2. 3. 4. 5. 6. 7. 8. 9. Deckblatt ......................................................................................................................................... 1 Inhaltsverzeichnis ............................................................................................................................ 2 Abbildungsverzeichnis ..................................................................................................................... 3 Tabellenverzeichnis ......................................................................................................................... 3 Motivation ....................................................................................................................................... 4 Geschichte ....................................................................................................................................... 5 Aufgaben des Routers ..................................................................................................................... 7 7.1. Arbeitsweise eines Routers ..................................................................................................... 7 7.2.1. RIP - Protokoll .................................................................................................................. 8 7.2.2. OSPF – Protokoll .............................................................................................................. 8 7.2.3. Arbeitsweise OSPF – Protokoll ........................................................................................ 9 7.2.4. BGP – Protokoll ................................................................................................................ 9 Architektur eines Routers.............................................................................................................. 12 8.1. Routingablauf ........................................................................................................................ 12 8.2. Unterschied Hochgeschwindigkeitsnetze ............................................................................. 12 8.3. Switching Fabric..................................................................................................................... 13 8.3.1. Shared Memory Switching ............................................................................................ 14 8.3.2. Shared Bus ..................................................................................................................... 15 8.3.3. Crossbar ......................................................................................................................... 15 8.3.4. Output Ports .................................................................................................................. 16 8.3.5. Probleme der Input / Output Ports ............................................................................... 16 8.4. Routing Table......................................................................................................................... 17 8.5. Suchalgorithmen in „Routing Table“ ..................................................................................... 17 8.5.1. Longest Matching Prefix ................................................................................................ 17 8.5.2. Binärbäume ................................................................................................................... 19 8.5.3. Dynamic Prefix Trie........................................................................................................ 19 8.5.4. Binary Tree with Chunks ................................................................................................ 20 8.5.5. Hashing mit Binary Search ............................................................................................. 21 8.5.6. Gegenüberstellung ........................................................................................................ 21 8.5.7. Fazit Suchstrategie......................................................................................................... 22 Routermodelle Small, Home Office / Business.............................................................................. 23 9.1. Chipsatz ................................................................................................................................. 26 9.2. 10. 11. Intel IXP2XXX Netzwerk Prozessoren [Quelle: RM92IXP] ..................................................... 27 Fazit ........................................................................................................................................... 31 Quellen ...................................................................................................................................... 32 Seite (2 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 3. Abbildungsverzeichnis Abbildung 1 – Honeywell DDP-516 ......................................................................................................... 5 Abbildung 2 – DEC pdp11/05 .................................................................................................................. 5 Abbildung 3 – Beispielgraph zum Pfadvektoralgorithmus .................................................................... 11 Abbildung 4 – Grundarchitektur eines Routers..................................................................................... 12 Abbildung 5 – Grundarchitektur eines Hochleistungsrouters............................................................... 13 Abbildung 6 – Input Port ....................................................................................................................... 13 Abbildung 7 – Switching Fabric ............................................................................................................. 14 Abbildung 8 – Switching Fabric als Shared Memory ............................................................................. 14 Abbildung 9 – Shared Bus Beispiel ........................................................................................................ 15 Abbildung 10 – Crossbar Beispiel .......................................................................................................... 16 Abbildung 11 – Output Port .................................................................................................................. 16 Abbildung 12 – Longest Matching Prefix ............................................................................................... 18 Abbildung 13 – Dynamic Prefix Trie ...................................................................................................... 19 Abbildung 14 – Binary Tree with Chunks .............................................................................................. 20 Abbildung 15 – Hashing mit Binary Search ........................................................................................... 21 Abbildung 16 – Small, Home Office Router ........................................................................................... 23 Abbildung 17 – AR7VWi Block Schaltbild .............................................................................................. 24 Abbildung 18 – Basic Bridge / Router based on AR7 ............................................................................. 24 Abbildung 19 – Cisco 7301 .................................................................................................................... 25 Abbildung 20 – Innenansicht Cisco 7301............................................................................................... 26 Abbildung 21 – Blockschaltbild BCM 1250 ............................................................................................ 26 Abbildung 22 – Intel IXP2400 Netzwerk Prozessor Blockschaltbild ...................................................... 28 Abbildung 23 – Intel XScale Blockschaltbild .......................................................................................... 29 Abbildung 24 – Blockschaltbild Microengine ........................................................................................ 30 4. Tabellenverzeichnis Tabelle 1 – Gegenüberstellung Suchalgorithmen ................................................................................. 21 Tabelle 2 – Intels Netzwerk Prozessoren .............................................................................................. 27 Seite (3 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 5. Motivation Das Thema Internet wird immer mehr zum Alltag. Fast jeder hat es mittlerweile zu Hause oder bei der Arbeit. Doch niemand macht sich Gedanken was ein Router überhaupt ist, was in diesem Gerät steckt, wie diese Geräte arbeiten. Uns hat das Thema interessiert, da wir selbst bei einem Internetprovider arbeiten, und täglich mit solchen Geräten konfrontiert werden, sei es, dass wir Kundenendgeräte per Telnet oder SSH-Zugang konfigurieren, oder auf einem der Backbone-Geräte Statistiken oder Konfigurationen prüfen. Interessant ist die Arbeit die so ein Backbone-Router verrichten muss, und das in einer möglichst kurzen Zeit. In den folgenden Abschnitten wollen wir speziell auf die Architektur eines Routers eingehen, Hardware vorstellen und die Leistung dieser Geräte verdeutlichen. Seite (4 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 6. Geschichte Die Entwicklung des Internets und der im Nachfolgenden entstehenden Technologien entstand mit der Entwicklung des ARPANET, durch die 1957 vom Department of Defense(DoD) ins Leben gerufene Advanced Research Projects Agency (ARPA). Die Entstehung der Abteilung wird als Antwort der USA auf die Sputnik Mission der Russen während des Kalten Krieges gesehen. Die USA wollten damit erreichen, dass sie auf der Technologie Seite einen Vorsprung erarbeiten können. Die Entwicklung und die Konzepte zur Umsetzung des Netzwerkes entstanden in den 60er Jahren, dies war der Grundstock für die ersten Paket Netzwerke (PSNetworks/Packetswitching Networks). Die ersten Paket-Verwaltungsrechner waren aus der "Honeywell Serie" einem 16Bit Computer mit klassischer Akkumulator Technik und einem zusätzlichen Register. [Quelle: G61] Diese Rechner waren die Vorfahren der heutigen Router und wurden „Interface Message Processor“ (IMP) genannt, Hersteller Quelle: http://www.series16.adrianwise.co.uk/history/ddp_516.html Abbildung 1 – Honeywell DDP-516 war BBN-Technologies. Der Honeywell 16 wurde im Verlauf der Entwicklung des Netzwerks durch den Pluribus Multiprozessor ersetzt, dies war die zweite Generation der IMP. Ein Pluribus mit 6 Prozessoren wurde als Netzwerkswitch genutzt um zwischen den unterschiedlich angebundenen Netzwerken zu verbinden. Der Baustein ist in der Lage, bis zu 378 unterschiedliche Verbindungen aufrecht zu halten und zu verwalten. Der Pluribus hatte MIMD für symmetrische Multiprozessorsysteme und zusätzlich ein Pseudo-Interrupt Device (PID) implementiert, um Prozesse abzuarbeiten und Prozesse zu priorisieren. Außerdem war bereits ein "STAGE" System als Quelle: http://www.museen-sh.de/ml/digi_einzBild.php?pi=485_0166 Betriebssystem implementiert um Fehler zu Abbildung 2 – DEC pdp11/05 erkennen, wenn möglich zu beseitigen und Deadlocks zwischen den einzelnen Prozessoren zu verhindern. Eine tiefgehende Erklärung des Betriebssystems würde den Rahmen sprengen. [Quelle: G62] Der erste Router wird an der Stanford University entwickelt. Das Grundsystem bildet ein DEC PDP11/05, der später durch einen Motorola68000 ersetzt wurde. [Quelle: G63] Seite (5 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 Das NCP-Protokoll (Network Control Protocol) wird Anfang 1983 im ARPANET durch TCP/IP vollends abgelöst. Im Jahr 1984 sind bereits über 1000 Hosts über das ARPANET miteinander verbunden, 1987 über 10.000 und 1989 bereits 100.000. Im Jahre 1990 hört das ARPANET auf zu existieren und wird durch das Internet vollends abgelöst. Das World Wide Web wird 1991 vom Schweizer CERN (Conseil Européen pour la Recherche Nucléaire) ans Netz gebracht. Mit der massiv ansteigenden Anzahl an Nutzern werden immer neuere Techniken für die Datenverarbeitung im Internet notwendig. Das Internet ist zu einem Medium für Jedermann geworden und nicht mehr nur für Firmen, Wissenschaftler und dem Militär. Seite (6 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 7. Aufgaben des Routers Die Hauptaufgabe eines Routers liegt darin, mehrere Rechnernetze zu koppeln. Das bedeutet, dass im Router eintreffende Netzwerkpakete eines Protokolls analysiert und auf der Basis der Netzwerk Layer-3 Schicht weitergeleitet werden. Diese Weiterleitung von Paketen nennt man auch „routen“. Desweiteren führen Router Routingalgorithmen durch, um geeignete Wege zu ermitteln. 7.1. Arbeitsweise eines Routers Klassische Router arbeiten auf der Schicht 3 des OSI-Referenzmodells. Ein Router besitzt für jedes an ihn angeschlossene Netz eine Schnittstelle. Beim Eintreffen von Daten muss ein Router den richtigen Weg zum Ziel und damit die passende Schnittstelle bestimmen, über welche die Daten weiterzuleiten sind. Um diese Funktion zu gewährleisten, bedient sich der Router einer lokal vorhandenen Routingtabelle, die angibt, über welchen Anschluss des Routers bzw. welche Zwischenstation welches Netz erreichbar ist. Eine Default-Route auf dem Router sorgt dafür, dass alle Pakete, die keinen geeigneten Eintrag in der Routingtabelle besitzen, dort hingeleitet werden. Höherwertige Router haben mittlerweile auch ein sogenanntes Policy Based Routing. Hierbei wird die Routingentscheidung nicht nur auf Layer-3 getroffen, sondern auch der gewünschte Dienst berücksichtigt. Damit ist gemeint, dass hier eine Default Route für HTTP eine andere sein kann als zum Beispiel die Route für SMTP. Routingprotokolle dienen der Verwaltung des Routing-Vorgangs und der Kommunikation zwischen den Routern. Die Router tauschen ihre Routing-Tabellen anhand von Routingprotokollen wie RIP oder OSPF untereinander aus. [Quelle: A71] Seite (7 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 7.2. Wichtige Routingprotokolle 7.2.1. RIP - Protokoll Das Routing Information Protokoll (RIP), ist ein Protokoll auf Basis des Distanzvektoralgorithmus (Seite 9). Es dient der dynamischen Erstellung der Routingtabellen von Routern. RIP wird in den Protokollen IP und IPX verwendet. Aktuell gibt es dieses Protokoll in drei Version RIP v1, RIP v2 und RIP NG. Das RIP v1 besaß seiner Zeit noch keine Subnetzmaske und wurde auch schnell gegen die RIP v2 Version getauscht. Das RIP NG Protokoll ist eine Erweiterung des RIP v2 und unterstützt IPv6. Sobald ein Router unter Strom steht und sein Bootvorgang abgeschlossen ist, befindet er sich in dem Zustand, dass er nur sich und seine direkt angeschlossenen Netzwerke kennt. Daraufhin sendet der Router seine Routingtabelle an benachbarte Router. Mit diesen Informationen ergänzt der Router seine Routingtabelle und lernt somit, welche Netzwerke jeweils über welche Router aus erreicht werden und welche Kosten damit verbunden sind. Um Änderungen im Netzwerk zu erkennen, wird das Senden der Routingtabellen (Advertisement) bei IP alle 30 Sekunden wiederholt. Dabei wird immer die gesamte Routingtabelle an alle Nachbarn gesendet. Die Informationen breiten sich relativ langsam im Netz aus. Bei zum Beispiel 15 Hops beträgt die Ausbreitung bereits 15 Minuten. Ein Hop ist der nächste Router in einem Netzwerk. Da die Advertisements über UDP gesendet werden, ist eine Übertragung auch nicht zuverlässig. Im Gegensatz zu anderen Routingprotokollen wie OSPF und NLSP kennt RIP immer nur seine direkten Nachbarn. Die Kosten, die auch als Metrik bezeichnet werden, bestimmen den Aufwand, um ein Netz zu erreichen. Beim IP Protokoll wird hierzu allein der Hop Count verwendet. Dieser bezeichnet die Anzahl der Router, die entlang eines Pfades bis zum Zielnetz durchlaufen werden müssen. Beim IPX Protokoll wird zusätzlich noch der Tick Count benutzt, dieser bezeichnet die Verzögerung eines Paketes durch alle Router bis zum Zielnetz. Nachteile des RIP Protokolls: RIP erlaubt nur Netze mit einer maximalen Länge von 15 Routern. Das bedeutet, dass der längste Pfad maximal über 15 Router gehen darf. Außerdem hat das Protokoll eine lange Konvergenzzeit. Damit ist die Zeit gemeint, die vergeht, bis eine Routingänderung allen Routern bekannt ist. Das Protokoll eignet sich nur bei kleinen bis mittleren Netzstrukturen. [Quelle: A72R] 7.2.2. OSPF – Protokoll Das OSPF (Open Shortest Path First) – Protokoll ist ein Link-State-Protokoll, das von der IETF (Internet Engineering Task Force) im Jahre 1988 entwickelt wurde, um die Anforderungen sehr großer Netzwerke zu erfüllen. Das Link-State-Protokoll arbeitet mit dem Link-State-Algorithmus, welcher eine Liste aller Nachbar-Router anlegt, mit denen er eine bidirektionale Verbindung hält. Die aktuelle Version OSPFv2 wird in RFC 2328 beschrieben. Das OSPF Protokoll ist ein dynamisches Routing-Protokoll innerhalb eines autonomen Systems. Besonders bei großen Netzen ist es leistungsstark. OSPF verwendet die Kosten eines Pfades als Metrik und kann bei gleichen Kosten lastverteilt arbeiten. Kosten werden bei OSPF standardmäßig aus der verfügbaren Bandbreite berechnet. Seite (8 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 Zur Berechnung der Kosten wird folgende Formel verwendet: 10 8 Kosten = 𝐵𝑎𝑛𝑑𝑏𝑟𝑒𝑖𝑡𝑒 Die Kosten addieren sich für jedes ausgehende Interface eines OSPF Routers. 7.2.3. Arbeitsweise OSPF – Protokoll Der Kernbestand von OSPF ist die Nachbarschaftsdatenbank, die eine Liste aller benachbarten Router enthält, zu denen eine bidirektionale Verbindung besteht. Die Routinginformationen werden mittels Flooding (Überschwemmen eines Netzwerkes mit Paketen) übermittelt. Um den Umfang der auszutauschenden Informationen möglichst gering zu halten, wählen OSPF Router einen designierten Router sowie einen Reserve Router, die als Schnittstellen für den Austausch dienen. Der OSPF-Router, dessen Multi-Access-Schnittstelle die höchste Router-Priorität besitzt, wird zum designierten Router ernannt. Haben zwei Router die gleiche Priorität, wird der Router mit der höheren Router-ID gewählt. Als Router-ID wird die IP-Adresse eines Loopback-Interfaces oder des Interfaces mit der numerisch höchsten IP-Adresse automatisch gewählt. Ein Loopback-Interface ist ein virtuelles Interface welches die Eigenschaft besitzt immer Up (verfügbar) zu sein. [Quelle: AR72O] OSPF Router tauschen ihre Informationen über die erreichbaren Netze mit sogenannten LSANachrichten (Link State Advertisements) aus. LSA Nachrichten sind Informationen, die ein Router über die Nachbarstationen und deren Pfadkosten enthält. Sie werden mittels BroadcastDatenpaketen an benachbarte Router gesendet. OSPF garantiert ein schleifenfreies Routing im Gegensatz zum RIP Protokoll, weil es das sogenannte Kreisrouting verhindert und defekte Wege vorzeitig erkennt. Damit ist ein Aufschaukeln der Zeit praktisch nicht möglich, da defekte Wege vorher kenntlich gemacht werden. Es besitzt außerdem ein „Hello Protokoll“ zur Überwachung der Nachbarn. Gut geeignet ist das OSPF Protokoll für große skalierbare Netze. Skalierbare Netze sind Netze, die zum Beispiel bei einer doppelten Last sich dieser Last anpassen können und nicht wegen dieser zusammenbrechen. Um die erhöhte Last zu bewerkstelligen, wird die Rechenleistung erhöht oder eine dynamische Zuordnung der Übertragungsbandbreite und Übertragungsgeschwindigkeit ausgehandelt. Bei der Zuordnung von Übertragungskapazitäten erreicht man durch die Skalierung eine hohe Flexibilität in der Anpassung der Übertragungskanäle an die jeweiligen Anwendungen. Der Nutzungsgrad der gesamten Übertragungsstrecke steigt beträchtlich gegenüber einer festen Bandbreitenzuordnung, was sich letzt endlich auf die Kosten auswirkt. [Quelle: AR72O] 7.2.4. BGP – Protokoll Das BGP (Border Gateway Protokoll) ist ein Routingprotokoll, das beschreibt, wie Router untereinander die Verfügbarkeit von Verbindungswegen zwischen Netzen autonomer Systemen handhaben. Dieses Protokoll ist pfadvektorbasierend. Seine Funktionsweise ist stark an Distanzvektoralgorithmen und an dem RIP Protokoll angelehnt. Jedoch wird dem vorkommenden Problem der Routingschleifen vorgebeugt. Ein BGP-Router teilt beim Senden von Verfügbarkeitsinformationen („Updates“) dem Kommunikationspartner nicht nur mit, dass er einen bestimmten Abschnitt des Internets erreichen kann, sondern auch die komplette Liste aller Autonomer Systeme, die IP-Pakete bis zu diesem Abschnitt passieren müssen. Dabei steht sein eigenes Autonomes System an erster Stelle und das Ziel des Autonomen Systems an letzter. Merkt der Kommunikationspartner nun, dass das Autonome System, dem er selbst angehört, Seite (9 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 bereits in dieser Liste vorhanden ist, so verwirft das System dieses Update und vermeidet die besagte Routingschleife. Die Stärke dieses Protokolls liegt darin, verschiedene optionale Routingpfade in einer einzigen Routingtabelle zu vereinen. Beim Einsatz innerhalb eines Autonomen Systems müssen BGPVerbindungen zwischen allen Routern des Autonomen Systems eingerichtet werden, so dass eine vollständige Vermaschung entsteht. Das bedeutet, dass der BGP Router seine Datenbank für die Routen zu allen erreichbaren Autonomen Systemen einrichtet, in dem er sich Routinginformationen von anderen Routern, insbesondere von den benachbarten Routern, bezieht. Da jeder BGP-Router über Routen-Informationen von anderen, insbesondere der benachbarten BGPRoutern verfügt, baut sich jeder BGP-Router eine Datenbank für die Routen zu allen erreichbaren Autonomen Systemen auf. Das Update der Routingtabelle zwischen den BGP-Routern geschieht mittels TCP Übertragung. Damit ist der Empfang von Änderungen gewährleistet. Es wird nur die jeweilige Änderung durchgeführt, die auch betroffen ist. Dadurch wird der hohe Durchsatz des Vergleichens in der Routingtabelle aufrecht erhalten, da diese mittels Updates nicht zu stark beeinträchtigt ist. Die Größe der Tabelle mit den Routen-Informationen lag Ende 2005 bei ca. 170.000 Einträgen bei über 26.000 Autonomen Systemen. Das derzeit eingesetzte BGP-Protokoll liegt bei Version 4. [Quelle: AR72B] Schwächen von BGP BGP weist eine Reihe von Schwächen auf. Das Protokoll besitzt kein Load Balancing (Lastverteilung), das heißt, es wird immer nur eine mögliche Route ausgewählt. Die Hop-Länge wird ebenfalls nicht berücksichtigt, nur die Anzahl der Autonomen Systeme ist wichtig. Unterschiedliche Linkgeschwindigkeiten werden ebenfalls nicht berücksichtigt, Routen werden hauptsächlich nach der Länge ausgewählt, es sei denn eine definierte Regel erlaubt diese Route nicht. Beispiel: Ein Knotenpunkt ist über einen Fremdprovider besser zu erreichen, aber eine vorgegebene Regel untersagt diesen Weg. Sicherheitsaspekte sind schwach berücksichtig. Beispielsweise könnte ein Angreifer durch Spoofing Routen zwischen Providern ändern oder löschen. Es wird aus Speicherplatz- und Skalierungsgründen immer nur eine beste Route an die Nachbarn übermittelt. Das Übertragen mehrerer guter Routen könnte bei Strecken oder Router-Ausfällen jedoch eine schnellere Reaktion ermöglichen. [Quelle: AR72B2] Distanzvektoralgorithmus Der Distanzvektoralgorithmus bestimmt den kürzesten Pfad von jedem Knoten zu jedem anderen Knoten, da eine kleine Distanz eine schnellere und kostengünstigere Verbindung beinhaltet. Um diese Information zu erfahren, führt jeder Knoten einen Vektor mit Distanzen zu seinen Nachbarknoten. In regelmäßigen Abständen wird diese Information aktualisiert. Dazu sendet jeder Knoten seinen eigenen Distanz-Vektor jeweils zu allen Nachbarknoten. Somit hat jeder Knoten die Distanz-Vektoren seiner Nachbarn. [Quelle: AR72D] Pfadvektoralgorithmus Ein pfadvektorbasierender Algorithmus hat eine ähnliche Struktur wie der Distanzvektoralgorithmus. Der Unterschied liegt darin, dass hier die Kosten der Distanz zu anderen Nachbarknoten nicht berücksichtigt werden. Das heißt wenn ein Weg zwar kurz, aber ausgelastet ist, wird er trotzdem gewählt. Zusätzlich wissen alle Knoten die günstigsten Pfade Ihrer Nachbarknoten, und tauschen diese untereinander aus. Mit dieser Information kann der benachbarte Knoten nach eigenen Seite (10 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 individuellen Bewertungskriterien den Nachbarn aussuchen, über den er einen bestimmten Knoten erreichen möchte. Beispiel: C D B A G F E H J I Quelle: http://et.ti.uni-mannheim.de/content/lehre/nt2/skript/NaTe2_Kap13.pdf Abbildung 3 – Beispielgraph zum Pfadvektoralgorithmus Wenn der Router im Knoten F den günstigsten Pfad zum Knoten D sucht, und er von seinen Nachbarn zuletzt die folgenden Informationen bekommen hat. Vom Knoten B: ich benutze den Pfad B-C-D Vom Knoten G: ich benutze den Pfad G-C-D Vom Knoten I: ich benutze den Pfad I-F-G-C-D Vom Knoten E: ich benutze den Pfad E-F-G-C-D dann läuft folgender Prozess ab. Verworfen werden sofort die beiden letzten Pfade, da sie den eigenen Knoten mit enthalten. Es bleiben somit die Pfade über B und G. Diese übrigen Pfade bewertet er nach eigenem Ermessen. Eventuell liegt eine Information vor, dass niemals über B gegangen werden darf, somit bleibt nur noch der Pfad: F-G-C-D übrig. [Quelle: AR72P] Seite (11 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 8. Architektur eines Routers Grundarchitektur eines Routers: Quelle: http://www.ibr.cs.tu-bs.de/courses/ws9798/seminar/hornburg/Routerstruktur.gif Abbildung 4 – Grundarchitektur eines Routers Ein Router besteht aus mehreren Netzwerkadaptern, die eine Verbindung zu den jeweiligen Netzen, die mit dem Router verbunden sind, herstellen. Diese Adapter sind meist über einen Systembus mit der CPU des Routers verbunden. Die CPU hält wiederum im Hauptspeicher des Rechners die Routingtabelle bereit. 8.1. Routingablauf Wenn ein Netzwerkadapter ein Datenpaket bekommt, so geschieht dieser Transport auf Schicht 2 des OSI Referenz Modells. Der Header des IP Pakets wird extrahiert und zur weiteren Verarbeitung an die CPU gereicht. Die CPU entnimmt aus dem Paketkopf die IP-Adresse des Zielrechners. Ist der Router nicht selbst das Ziel, sucht die CPU in der Routingtabelle nach einer passenden NextHop-Information. Die Next-Hop-Information beinhaltet die Nummer des Netzwerkadapters, über den das IP-Paket weitergeleitet werden soll, zum anderen aber auch die IP-Adresse des Next-Hop. Diese IP-Adresse übergibt die CPU nun zusammen mit dem IP-Paket an den entsprechenden Netzwerkadapter. Dieser Adapter generiert daraus ein Schicht-2 Paket und sendet es ab. 8.2. Unterschied Hochgeschwindigkeitsnetze Bei Hochgeschwindigkeitsnetzen zum Beispiel im Gigabitbereich ist die oben dargestellte Architektur eines Routers nicht mehr identisch. Die CPU und der Systembus müssten dabei die Summe der Übertragungsraten aller angeschlossenen Netzwerke verarbeiten können. Bei solchen Hochleistungsroutern übernimmt das Weiterleiten von IP-Paketen der jeweilige Netzwerkadapter. Die Netzwerkadapter erhalten zu diesem Zweck eine eigene CPU und einen eigenen Speicher, in dem sich eine Kopie der zentralen Routingtabelle des Routers befindet. Trifft bei diesem Routermodell ein IP-Paket bei einem der Adapter ein, bestimmt dieser den NextHop und leitet es direkt an den entsprechenden Ausgangsadapter weiter. Die CPU des Routers ist Seite (12 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 somit nur noch für die Ausführung der Routingprotokolle und die Verwaltung der zentralen Routingtabelle sowie anderer administrativer Aufgaben zuständig. Die zentrale Routingtabelle wird im Fall einer Änderung in die Speicher der einzelnen Netzwerkadapter kopiert. [Quelle: AR8] Grundarchitektur eines Hochleistungsrouters: Haupt CPU Netzadapter A Lokale CPU Lokale Routingtabelle Netz A Netzadapter B Routingtabelle Lokale CPU Lokale Routingtabelle Netz B Netzadapter C Lokale CPU Lokale Routingtabelle Netz C Abbildung 5 – Grundarchitektur eines Hochleistungsrouters 8.3. Switching Fabric Input Port Line Termination Data Link Processing Lookup and Forwarding Switching Fabric http://www.rrzn.uni-hannover.de/fileadmin/ful/vorlesungen/rechnernetze_2/ss_07/Rechnernetze_II_3_SS07.pdf Abbildung 6 – Input Port Line Termination ist die physikalische Anschlussleitung. Der „Datalink Processing“ Block arbeitet auf der Schicht-2 des OSI Referenzmodells (Sicherungsschicht). Aufgabe dieses Blocks ist es, die ankommenden Daten in Pakete zu teilen, und diese Pakete auf Übertragungsfehler zu prüfen. Das fehlerfreie Paket wird anschließend an den „Lookup and Forwarding“ Block geleitet. Die Aufgabe dieses Blocks ist das Auswerten der Zieladresse aus dem IP-Paket. Anschließend muss der geeignete Weg mit Hilfe der Routingtabelle ermittelt werden. Daraufhin wird das Paket über die Switching Fabric an den Ausgang geleitet. Seite (13 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 Bei einer Überlastung der Switching Fabric oder der Output Ports ist ein sogenanntes Queueing notwendig. Die Verarbeitung des Suchens in der Routingtabelle sollte mindestens mit „Line Speed“ erfolgen. Mit „Line Speed“ ist hier die Datenrate des Inputports gemeint. [Quelle: AR8] Input Port 1 Output Port 1 Switching Fabric Input Port n Output Port n Routing Prozessor http://www.rrzn.uni-hannover.de/fileadmin/ful/vorlesungen/rechnernetze_2/ss_07/Rechnernetze_II_3_SS07.pdf Abbildung 7 – Switching Fabric Es gibt mehrere Switchingarten, um die anliegenden Daten vom Inputport an den Output zu leiten. Der Unterschied zwischen den Switchingarten: - über Shared Memory - über Shared Bus - mittels Crossbar wird im folgenden Text genauer erklärt. 8.3.1. Shared Memory Switching Input Port 1 Output Port 1 Shared Memory Input Port n Output Port n Routing Prozessor http://www.rrzn.uni-hannover.de/fileadmin/ful/vorlesungen/rechnernetze_2/ss_07/Rechnernetze_II_3_SS07.pdf Abbildung 8 – Switching Fabric als Shared Memory Bei der Switching über Shared Memory Methode, werden die IP-Pakete in den Speicher des Routing Prozessors kopiert und dort ausgewertet. Nach Auswertung werden die Pakete in den Speicher des Output Port kopiert. Die Performance dieser Aktion wird folgendermaßen berechnet. Bandbreite ermittelt sich hier durch die Geschwindigkeit des Speichers. Da hier das Paket zweimal kopiert werden muss, einmal in den Speicher, ein weiteres Mal in den Ausgangsport, verringert sich die Bandbreite um die Hälfte. Seite (14 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 Vorteil dieser Architektur ist, dass Port und der Routing Prozessor sich gemeinsam den Speicher teilen. Dieser Ansatz erfordert lediglich den Austausch von Speicheradressen, nicht aber den Inhalt. Der Nachteil liegt darin, dass das Speicher-Management aufwändig ist, besonders bei Routern die modular aufgebaut sind. Dieses Verfahren wird in Routern mittlerer Leistungsklasse verwendet. Ein modularer „Shared Memory Router“ ist zum Beispiel der Cisco 4500-CH. [Quelle: AR83] 8.3.2. Shared Bus Bei der Shared Bus Methode wird das Switching über einen gemeinsamen Bus realisiert. IP-Pakete werden direkt von Input Port an den Output Port geleitet. Hier kann jeweils nur ein IP-Paket über den gesamten Bus übertragen werden. Die Performance wird dadurch bestimmt, indem die Angabe über den maximalen Durchsatz der Bandbreite des Busses angegeben wird. Dieses Verfahren setzt die Nutzung einer lokalen Routingtabelle in Input Ports voraus und wird in Routern einfacher und mittlerer Leistungsklassen eingesetzt. Shared Bus Input Port 1 Output Port 1 Input Port 2 Output Port 2 Input Port n Output Port n Routing Prozessor http://www.rrzn.uni-hannover.de/fileadmin/ful/vorlesungen/rechnernetze_2/ss_07/Rechnernetze_II_3_SS07.pdf Abbildung 9 – Shared Bus Beispiel Bei der Shared Bus Methode gelangt das IP-Paket (hier blau) vom Input Port direkt zum Output. Während dieses Vorgangs kann das IP-Paket in rot nicht durch geleitet werden (gelbes X). Erst wenn der Bus wieder frei ist, kann die Rote Verbindung zum Ausgangsport aufgebaut werden. 8.3.3. Crossbar Das Switching über Crossbar ist ein Verfahren, bei dem sämtliche Input und Output Ports über eine Matrix miteinander verknüpft sind. Es ermöglicht mehrere parallele Vermittlungen gleichzeitig. Sollte es aber vorkommen, dass zwei IP-Pakete von unterschiedlichen Eingangsports auf den gleichen Ausgang gelangen wollen, so kann jeweils nur ein IP-Paket bearbeiten werden. Die Performance hängt hierbei sehr stark vom Verkehrsmix ab. Im schlechtesten Fall entsteht ein Verkehr von allen Input Ports auf einen Output Port. Im besten Fall verkehren die Daten von allen Input Ports auf jeweils unterschiedliche Output Ports. Dieses Verfahren wird meist in Hochleistungsroutern eingesetzt. Eine Verbesserung dieses Verfahrens wäre mit parallel anliegenden Crossbars möglich. Alle Router der Cisco 12.000 Serie sind Crossbar-Switch-basierende Router. [Quelle: AR83C] Seite (15 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 Crossbar Input Port 1 Output Port 1 Input Port 2 Output Port 2 Input Port n Output Port n Routing Prozessor http://www.rrzn.uni-hannover.de/fileadmin/ful/vorlesungen/rechnernetze_2/ss_07/Rechnernetze_II_3_SS07.pdf Abbildung 10 – Crossbar Beispiel Im oberen Beispiel ist dargestellt, das ein IP Paket bei der Crossbar Variante nur dann in der Zustellung Probleme bekommt, wenn 2 Pakete gleichzeitig (hier gelb und rot) auf denselben Ausgangsport gelangen müssen. Output Port Switching Fabric Queueing Data Link Processing Line Termination http://www.rrzn.uni-hannover.de/fileadmin/ful/vorlesungen/rechnernetze_2/ss_07/Rechnernetze_II_3_SS07.pdf Abbildung 11 – Output Port 8.3.4. Output Ports Die Aufgabe der Output Ports ist das Auslesen der IP-Pakete aus dem Memory, Shared Memory, dem Bus oder aus der Crossbar. Bei ausgelasteten Ports wird eine Speicherung der IP-Pakete (Queueing) vorgenommen. Der „Datalink Processing“ Block verpackt das neue IP-Paket mit den Zielinformationen zu dem neuen Weg und sendet es über die Line Termination, die die physikalische Anschlussleitung darstellt. 8.3.5. Probleme der Input / Output Ports Die „Switching Fabric“ verteilt ankommenden Verkehr aller Input Ports auf die Output Ports. Bei einem Blockieren der „Switching Fabric“ ist eine Pufferung (Queueing) im Input Port notwendig. Dieses ist aufwendig und kostet Zeit. Außerdem hat ein Queueing zur Folge, dass Pakete, die gerade benötigt werden, hinter anderen festsitzen. Schaukelt sich dieses Blocking von Paketen auf, so entstehen Paketverluste, da die Queue überlastet ist. Dieses muss zwingend vermieden werden. Seite (16 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 Eine Vermeidungsstrategie ist es, zu jedem Input Port, N separate Queues für jeden Outputport zu führen. Damit erreicht man, dass die Pakete bereits im Input Port schon nach Zielen sortiert werden und hintereinander zugeführt werden können. [Quelle: AR83C] 8.4. Routing Table Eine Routing Table beinhaltet das Zielnetz mit ihrer Subnetzmaske und dem ausgehenden Zielport. 8.5. Suchalgorithmen in „Routing Table“ Eine lineare Suchstrategie kommt wegen der zahlreichen Einträgen in der „Routing Table“ nicht in Frage, da die Suche viel zu langsam wäre. Folgende Suchverfahren werden in Routingtabellen verwendet: - Longest Matching Prefix - Binärbäume - Dynamic Prefix Trie - Binary Tree with Chunks - Hashing mit Binary Search 8.5.1. Longest Matching Prefix Um in der Routingtabelle nicht einen Eintrag pro IP-Adresse zu verschwenden, werden bei dieser Methode mehrere hintereinander liegende IP-Adressen, die eine identische Next-Hop-Information aufweisen in einem Eintrag zusammengefasst. Ein Eintrag enthält dann neben der Next-Hop-Information einen Adresspräfix (Vorsilbe), der den Bereich der zusammengefassten Adressen beschreibt. Zum Beispiel werden die fiktiven Adressen 1110 und 1111, wenn sie identische Next-HopInformationen besitzen, in einem Eintrag mit dem Präfix 111 zusammengefasst. Auf diese Weise können allerdings nur Adressen zusammengefasst werden, die durch einen gemeinsamen Präfix eindeutig beschreibbar sind. So weisen die Adressen 1101 und 1110 zwar das gemeinsame Präfix 11 auf, allerdings beschreibt dieses Präfix auch andere Adressen wie z.B. 1100 und 1111. Die Zuordnung des Präfixes zu den beiden Adressen ist hier also nicht eindeutig. Trotzdem können auf diese Weise ganze Bereiche von Adressen in einem Eintrag zusammengefasst werden. In der Regel können immer mindestens alle Rechneradressen der einzelnen Organisation zusammengefasst werden. Das Adresspräfix des Eintrags entspricht dann der Netzadresse dieser Organisation. Nur wenn ein Router sich innerhalb einer Organisation befindet, muss er eine genauere Zuordnung vornehmen. Eine weitere Zusammenfassung von Einträgen ergibt sich wie folgt: Angenommen alle IP-Adressen, die das gemeinsame Präfix P1 = 111 aufweisen, besitzen identische Next-Hop-Informationen und werden in einem einzigen Eintrag in der Routingtabelle zusammengefasst. Dieser Eintrag deckt dann einen bestimmten Bereich (A) aus dem IP-Adressraum ab (siehe Abbildung 9). In diesem Bereich A befindet sich nun ein kleinerer Teilbereich B von IP-Adressen, die eine von den übrigen Adressen im Bereich A abweichende Next-Hop-Information besitzen. Dieser Bereich B sei Seite (17 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 durch das Präfix P2 = 11101 repräsentiert. Auf diese Weise würde der Bereich A in drei Teilbereiche aufgespalten, die durch drei Einträge in der Routingtabelle mit den Präfixen P1a = 11100, P2 = 11101 und P 1b = 1111 beschrieben werden müssten, wobei die Einträge mit P1a und P1b identische NextHop-Informationen enthalten würden. Stattdessen speichert man nur zwei Einträge mit den Präfixen P1 und P2. Wird nun für eine Adresse nach einem Eintrag mit passendem Präfix gesucht, so wählt man den Eintrag mit dem längsten passenden Präfix. Für Adressen aus dem Bereich B ist P2 der „Longest Matching Prefix“ und für Adressen aus den übrigen Teilbereichen von A ist es P1. Auf diese Weise ist eine eindeutige Zuordnung von Adressen zu einem bestimmten Tabelleneintrag sichergestellt. Abbildung 9: Longest Matching Prefix: P2 verdeckt im Bereich B das kürzere Präfix P1. Man könnte nun annehmen, eine Routingtabelle enthält zu jedem Next-Hop, den der Router kennt, nur genau ein Paar (Präfix, Next-Hop). Das wäre die Idealsituation. Vielmehr ist es so, dass wie oben angedeutet, bestimmte Adressen und Adressbereiche mit identischer Next-Hop-Information nicht durch ein gemeinsames Präfix eindeutig beschrieben werden können und daher mehrere Einträge belegen. Auch können Adressbereich mit identischer Next-HopInformation nicht zusammenhängend sein. Das führt dazu, dass Tabellen größer werden als einige tausend Einträge. Dies und die Tatsache, dass bei schnellen Netzen nur wenig Zeit zum Weiterleiten eines Paketes bleibt, fordert eine entsprechend schnellen Suchfunktion. Aber auch die Verwaltungsfunktionen der Tabelle, wie Einfügen oder Löschen von Präfixen, dürfen nicht zu aufwendig realisiert werden, da mit http://www.ibr.cs.tu-bs.de/courses/ws9798/seminar/hornburg/LMP.gif Abbildung 12 – Longest Matching Prefix Änderungen von Routinginformationen im Sekundenbereich oder häufiger zu rechnen ist. Auch spielt die Größe der Tabelle eine Rolle. Zum einen kostet Speicherplatz Geld. Zum zweiten kann die Ausführungsgeschwindigkeit der Operationen auf der Tabelle gesteigert werden, wenn diese klein genug ist, um in den Second-Level-Cache eines Prozessors zu passen. Eine andere wichtige Frage in diesem Zusammenhang ist, ob die Realisierung in Software oder in Hardware erfolgen soll. Denn bei hohen Datenübertragungsraten stellt sich die Frage, ob eine Realisierung in Software zur Zeit schnell genug ist. Andererseits ist eine Sofwarerealisierung einer Hardwarelösung vorzuziehen, da sie bei Änderungen einfacher angepasst werden kann, sei es, weil man eine bessere Datenstruktur für die Routingtabelle entwickelt hat, oder weil der Speicher erweitert werden muss, weil die Tabelle zu groß geworden ist. Die Erweiterung des Speichers kann bei einer Hardwarelösung schwierig sein, wenn die Anzahl der vorhandenen Adressleitungen erschöpft ist. [Quelle: AR8] Seite (18 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 8.5.2. Binärbäume Jeder Baumknoten entspricht einem Eintrag der Routingtabelle. Er ist folglich ein Paar aus dem Präfix und der Next-Hop Information. In der Wurzel befindet sich ein Defaulteintrag mit einem Präfix der Länge 0. Dieses Präfix passt somit zu jeder beliebigen Adresse. Der Next-Hop-Eintrag der Wurzel enthält die Adresse des sogenannten Default-Routers. Zu diesem Router werden alle IP-Pakete mit Adressen weitergeleitet, die der Router noch nicht kennt. Die Suche nach dem „Longest Matching Prefix“ beginnt bei der Wurzel. Wenn das Präfix des jeweils aktuellen Knotens zur IP-Adresse passt, wird der Knoten als bestes Ergebnis gemerkt. Passt das Präfix zur Adresse, wird die Suche im linken Teilbaum fortgesetzt, ansonsten im rechten. Die Suche ist beendet, sobald man ein Blatt erreicht hat. Der gemerkte Knoten enthält dann das Longest Matching Prefix. Ein Nachteil liegt jedoch im Binärbaum. Durch ungeschicktes Einfügen und Löschen von Einträgen kann ein Binärbaum aus der Balance geraten. Im schlimmsten Fall entwickelt er sich zu einer linearen Liste, die einen hohen Suchaufwand beinhaltet. Dieses muss durch entsprechende Balancemaßnahmen bei den Einfüge- und Löschoperationen verhindert werden. Das Ausbalancieren eines Binärbaumes ist jedoch recht komplex, da dabei unter Umständen die Struktur des ganzen Baumes verändert werden muss. Wünschenswert sind deshalb Einfüge- und Löschoperationen, die ein Ungleichgewicht des Baumes von vornherein weitgehend vermeiden. 8.5.3. Dynamic Prefix Trie Der Aufbau eines Baumknotens ist in Abbildung 10 dargestellt. Er enthält drei Zeiger, die auf den übergeordneten Knoten und auf den linken und rechten Unterbaum verweisen. Weiterhin enthält ein Knoten Zeiger auf zwei Präfixe (Keys). Das Indexfeld enthält die Nummer der Bitstelle, ab der die beiden Präfixe des Knotens einen Unterschied aufweisen. Dabei bildet das Präfix, das an dieser Stelle eine Null enthält, immer den LeftKey und das Präfix mit einer Eins an dieser Position den RightKey. Der Index erhöht sich mit jeder Baumebene um mindestens Eins. Da die Datenstruktur auf einem Trie beruht, ist eine maximale Tiefe des Baumes garantiert. Das sind bei IPv4 maximal 32 und bei IPv6 maximal 128 Ebenen. Die Präfixsuche läuft ab, indem man erst an einem Ast hinab bis zu einem Blatt wandert. Dabei entscheidet das Adressbit mit der Nummer, die durch das Indexfeld des jeweiligen Knoten beschrieben wird, ob mit dem linken oder rechten Unterbaum fortgefahren wird. Auf dem Rückweg ist dann das erste passende Präfix das gesuchte Longest Matchig Prefix. http://www.ibr.cs.tu-bs.de/courses/ws9798/seminar/hornburg/DP-Trie-Strukt.gif Dieser Suchalgorithmus ist sehr einfach, so dass eine Abbildung 13 – Dynamic Prefix Trie Beschleunigung der Suche durch eine Hardwarerealisierung möglich ist. Die Einfüge- und Löschoperationen haben lediglich lokal begrenzte Auswirkungen auf die Struktur des Baumes, da aufgrund der festen maximalen Tiefe des Baumes keine Ausgleichsoperationen benötigt werden. [Quelle: AR8] Seite (19 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 8.5.4. Binary Tree with Chunks Der Ansatz der „Binary Tree with Chunks“ Strategie beruht ebenfalls auf einen binären Trie. Vorstellen kann man sich zunächst einen Baum mit 32 Ebenen, der eine statische Struktur aufweist. An der Wurzel befindet sich der Defaulteintrag mit der Präfixlänge Null. Ebene 1 enthält die Präfixe der Länge 1, Ebene 2 die Präfixe der Länge 2, usw. In der untersten (32.) Ebene befinden sich dann 232 Blätter, die die Gesamtzahl der möglichen IP-Adressen repräsentieren. Diese Struktur wäre bei direkter Umsetzung viel zu groß. Zur Realisierung wird der Baum deshalb in drei Stufen unterteilt. Die erste Stufe umfasst die Ebenen 0 bis 16 des Baumes, die zweite Stufe die Ebenen 17 bis 24 und die dritte Stufe die Ebenen 25 bis 32 (Abbildung 11). http://www.ibr.cs.tu-bs.de/courses/ws9798/seminar/hornburg/BinBaumWChunks.gif Abbildung 14 – Binary Tree with Chunks Diese Struktur ist als Softwarelösung in Hochleistungsroutern auf Basis von IPv4 entwickelt worden. Sie ist auf eine möglichst schnelle Präfixsuche optimiert. Eine Hardwarelösung wäre durchaus möglich. Aufbau der Datenstruktur Die erste Stufe wird im Wesentlichen durch ein Bitfeld mit 216 Einträgen realisiert. Diese entsprechen den möglichen Blättern der ersten Stufe. Jeder nicht leere Eintrag repräsentiert entweder ein Präfix oder einen Verweis auf jeweils einen Unterbaum in der nächsten Stufe. Die zweite und dritte Stufe bestehen aus einer Anzahl Unterbäumen, die der Anzahl der Verweise in der jeweils nächst höheren Stufe entspricht. Die Unterbäume heißen Chunks und besitzen die gleiche Struktur, wie die erste Ebene mit dem Unterschied, dass das Bitfeld lediglich 28 = 256 Einträge umfasst. Da jede der unteren Ebenen 8 Bit einer IP-Adresse umfasst, muss für IPv6 die Anzahl der Ebenen um 12 weitere auf insgesamt 15 erhöht werden. Die Suche nach dem Longest Matching Prefix weist in den einzelnen Stufen einen konstanten Aufwand auf. Dadurch werden für die Suche in der gesamten Tabelle maximal 3 Schritte (IPv4) bzw. 15 Schritte (IPv6) benötigt. Eine weitere Beschleunigung der Suche entsteht durch die Kompaktheit dieser Datenstruktur. Bei einem Umfang der Tabelle (bei IPv4) von 30.000 - 40.000 Einträgen beträgt die Größe der Tabelle nur ca. 150 - 170 kBytes. Sie passt deshalb vollständig in den 2nd-Level-Cache einer Intelmaschine. Einfüge- und Löschoperationen sind nicht vorgesehen worden. Die Idee ist vielmehr, dass die Datenstruktur als reine Suchtabelle dient. Daneben befindet sich eine zweite Tabelle im Router, die zum Einfügen und Löschen von Präfixen besser geeignet ist. Wenn sich diese Tabelle geändert hat, wird aus ihr eine neue Suchtabelle generiert und gegen die alte ausgetauscht. [Quelle: AR8] Seite (20 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 8.5.5. Hashing mit Binary Search Dieses Verfahren basiert auf der Hashtabelle und ist ebenfalls als Softwarelösung für Hochleistungsrouter konzipiert. Doch auch hier ist eine Hardwarelösung durchaus möglich. Die Probleme bei der Suche nach dem „Longest Matchin Prefix“ in Hashtabellen wird bei dieser Datenstruktur vermieden, indem für jede Präfixlänge eine eigene Hashtabelle angelegt wird (Abbildung 12). Die Tabellen befinden sich der Präfixlänge nach sortiert in einem Feld mit 32 bzw. 128 Einträgen. Um das „Longest Matchin Prefix“ zu finden, wird eine binäre Suche (Intervallhalbierung) über dieses Feld von Hashtabellen durchgeführt. Für eine binäre Suche werden maximal log2 <#Hashtabellen> Schritte benötigt. Das heißt die Suche ist nach maximal 5 Schritten (IPv4) bzw. 7 Schritten (IPv6) abgeschlossen. Die Schwierigkeit bei diesem Ansatz liegt also im Auffinden einer möglichst optimalen Hashfunktion. Nachteilig ist der aufwendige innere Aufbau dieser Datenstruktur. Das http://www.ibr.cs.tu-bs.de/courses/ws9798/seminar/hornburg/Hashtab.gif Einfügen und Löschen von Präfixen ist bei Abbildung 15 – Hashing mit Binary Search dieser Strategie sehr komplex. Ähnlich wie bei der Hardware-Routingtabelle kann diese Komplexität noch etwas verringert werden, wenn in Kauf genommen wird, dass die Datenstruktur nach mehreren Änderungen mit Hilfe einer Referenztabelle neu aufgebaut wird. Die aufwendige Struktur schlägt sich auch in einem höheren Speicherverbrauch nieder. Bei 33.000 Einträgen (IPv4) verbraucht die Tabelle 1,2 bis 1,4 Mbyte. Das ist deutlich größer als die vorherige Möglichkeit. Das Hashing Verfahren wird in Hochleistungsroutern der Firma Juniper Networks (T Serie), sowie Cisco Systems eingesetzt. Diese sind jedoch softwarebasiert. [Quelle: AR83J] 8.5.6. Gegenüberstellung Zugrundeliegende Datenstruktur Max. Suchschritte IPv4 / IPv6 Aufwand Einfügen, Löschen Speicherverbrauch Realisierung Hardwarerealisierung möglich? Dynamic Prefix-Trie Binary Tree with Chunks Hashing with Binary Search Trie 64 / 256 niedrig mittel Software ja Trie 3 / 15 hoch sehr gering Software ja Hashtabelle 5/7 sehr hoch hoch Software ja Tabelle 1 – Gegenüberstellung Suchalgorithmen Seite (21 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 8.5.7. Fazit Suchstrategie Der Dynamic Prefix-Trie ist eine ausgewogene Lösung. Er bietet eine Suchfunktion mit garantierter maximaler Laufzeit und ebenso effizienter Einfüge- und Löschoperationen. Da die Suche aber bis zu 128 Schritte benötigt, eignet er sich eher für Router in Umgebungen mit niedrigeren Datenübertragungsraten oder als zentrale Routingtabelle in Hochleistungsroutern. Die beiden anderen Verfahren (Binary Tree with Chunks und Hashing with Binary Search) bieten aufgrund ihrer Auslegung als „Hochleistungstabellen“ die schnellsten Suchfunktionen. Sie machen jedoch das Einfügen und Löschen von einzelnen Einträgen sehr aufwendig. Deshalb setzen diese Verfahren eine zentrale Routingtabelle voraus, aus der bei Bedarf eine neue Suchtabelle erzeugt werden kann. Der „Binary Tree with Chunks“ scheint für IPv4 die sinnvollere Alternative zu sein, da er bei ungefähr gleicher Suchgeschwindigkeit eine einfachere Struktur aufweist und weniger Speicher verbraucht. Bei IPv6 steigt bei dieser Lösung die Suchdauer linear mit der Zahl der Adressbits an. Das „Hashing with Binary Search“ weist dabei einen logarithmischen Anstieg auf, so dass die Geschwindigkeit der Suche bei IPv6 hierbei dann höher liegt als beim „Binary Tree with Chunks“. Welches der beste Lösungsweg ist, hängt stark vom geplanten Einsatzgebiet ab. Seite (22 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 9. Routermodelle Small, Home Office / Business Modell: SMC7904WBRA [Quelle: RM9SMC] Der SMC 7904WBRA ist ein Wireless LAN-Router für den Home / Smalloffice Bereich (SOHO). Der Router ist ein Standard Gerät in der Klasse und ab knapp 70 € zu haben. Der Router hat vier 10/100 MBit/s Ethernet Ports, einen ADSL2+/ ADSL Port und unterstützt natürlich WLAN. Auf der DSL Seite sind verschiedene Einstellungen und Features möglich. Da über die DSL Schnittstelle ATM läuft, unterstützt der Router die unterschiedlichen Bit-Raten, die vom Provider eingestellt und gewährleistet werden. Es werden die folgenden Modi unterstützt: UBR - Unspecified Bit Rate (unbestimmte Bitrate), Abbildung 16 – Small, Home Office Router der Defaulttyp für „normalen“ Traffic. Hier bekommt man an Bandbreite, was übrig ist, nachdem der QoS-Traffic abgewickelt ist. CBR - Constant Bit Rate (konstante Bitrate), hier wird eine Spitzenrate (Peak Cell Rate, PCR) angefordert, die dann garantiert wird. VBR - Variable Bit Rate, hier „bestellt“ man eine durchschnittliche Zellenrate, die man aber um einen bestimmten Betrag für eine bestimmte Zeit überschreiten darf (gibt es in Echtzeit- (RT-VBR) und NonEchtzeit-Varianten (NRT-VBR)). Der VPI und VCI ist im Gerät konfigurierbar und ermöglicht somit auch das Einstellen von höher priorisierten Pfaden durch das Backbone des Providers. Der Chipsatz bietet auf der DSL/ATM Seite desweiteren noch OAM (Operation, Administration and Maintenance) zur Fehlerlokalisierung und Behebung auf ATM Strecken. Der Chipsatz stellt auf der WLAN-Seite WEP mit 64 und 128 Bit Schlüssellänge und WPA-PSK zur Verfügung. Im Gerät ist ein von Texas Instruments entwickeltes Board verbaut, welches sich in vielen Geräten dieser Kategorie befindet. Herzstück bildet ein TNETD7300 MIPS32 Prozessor, der die wesentlichen Aufgaben übernimmt. Seite (23 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 http://focus.ti.com/pdfs/vf/bband/ar7_wp.pdf Abbildung 17 – AR7VWi Block Schaltbild http://focus.ti.com/pdfs/vf/bband/ar7_wp.pdf Abbildung 18 – Basic Bridge / Router based on AR7 Bei der Recherche ist aufgefallen, dass dieser Prozessor in dieser Ausführung unter anderem in der Fritzbox! von AVM verwendet wird. Leider ist es sehr schwer gewesen nähere Informationen zum TNETD7300/AR7 zu erhalten. Texas Instruments hält sich mit den genauen Daten sehr bedeckt. Es gibt nur ein White-Paper [Quelle: RM9AR7], in dem die Eckdaten und die Möglichkeiten aufgezeigt werden. Genauere Informationen zur Struktur und zum Aufbau des Prozessors fehlen leider, so auch genauere Informationen zur Switching Fabric. Aufgrund der Architektur gehen wir von einem SharedBus aus, da hier der Input und Output Port direkt aufeinander geschaltet ist und so der Speicher nicht belastet wird. Seite (24 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 Cisco 7301 Series Router [Quelle: RM9C73SR] Der Preis für dieses Gerät, liegt knapp bei 10.000€. Der Router hat nur eine Höheneinheit, passt also in einen normalen 19 Zoll Schrank. Der Router kann bis zu 16.000 PPP-Sessions verwalten und verarbeiten. Die Praxis zeigt, dass hier bei knapp 12.000 Schluss ist. Gründe sind sogenannte „Heavy Subs“ Kunden, die sehr viele Connections aufbauen und damit sehr viel Traffic generieren. Der Router kann 1MPPS – „Million Packets per Second“ verarbeiteten. Das heißt, das Inspizieren des Header der IP-Pakete und das Berechnen der Routing Informationen erfolgt http://www.hardware.com/products/cnet/I166697.jpg „on the Fly“. Abbildung 19 – Cisco 7301 Das Gerät ist mit drei Gigabit Ethernet Ports ausgestattet, die wahlweise mit Glasfaser oder Kupfer angeschlossen werden können. Der Cisco7301 wird mit 256MB ausgeliefert, der Speicher kann auf bis zu einem 1GB aufgestockt werden. In diesem Speicher werden die Routing Tabellen abgelegt. Bei 1GB kann eine Routing Tabelle bis zu einer Million Einträge enthalten. Zusätzlich zum installierten DRAM ist es möglich, eine 256MB Flash-ROM Karte einzusetzen, um hier von einem sauberen IOS zu starten, bzw. um IOS Updates zu machen. Als CPU läuft ein BCM1250, zwei 64 BIT MIPS Prozessoren mit 700Mhz Takt, der in folgenden Seiten noch näher erläutert wird. Einsatzgebiete für diesen Router sind die „Campus Class/Carrier Class“, Bereiche mit vielen Nutzern, die allerdings noch nicht in der gehobenen „Carrier Class“ unterwegs sind. Mit dem Verwalten von bis zu 16.0000 Sessions kommt es bei größeren Providern schnell zum Erweitern der Lokation, da die Marke der zuvor genannten 12.000 Kunden in Ballungsgebieten sehr schnell erreicht ist. Das Switching zwischen dem Input und Output Port wird bei diesem Model über die Shared Memory Methode geregelt. In der 7000er Reihe von Cisco werden Crossbar Verfahren erst ab der Modelreihe 7600 angeboten. [Quelle: RM9C7SR] Die Router unterstützen mit Hilfe von Zusatzmodulen QoS „Quality of Service“. Mit der damit verbundenen Priorisierung ist es möglich, VoIP ohne großen Verlust netzintern anzubieten. Das Terminieren von Dial/UP Subscribern, die sich über das Telefonnetz anmelden, ist mithilfe des Vorschaltens eines Routers (z.B. EWSD“ Electronic World Switch Digital“, eine Provider Telefonanlage) möglich. Dieser Router stellt die Verbindung zum PSTN (Public Switched Telephone Network) her. Der Router ist außerdem in der Lage, zwischen IPv6 und IPv4 Netzwerken zu routen. Seite (25 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 Abbildung 20 – Innenansicht Cisco 7301 9.1. Chipsatz Der Chipsatz der in den Cisco Routern diese Klasse eingesetzt wird ist ein BCM1250 von der Firma Broadcom. [Quelle: RM91BCM] Es handelt sich hierbei um einen Dualprozessorkern mit zwei 64Bit MIPS Prozessoren. Die Taktfrequenz der CPU ist von 600MHz bis 1GHz einstellbar. Bei den Cisco Geräten werden 700Mhz angelegt. Jeder Prozessor hat einen 32KB großen Instruktions- und Daten Cache. Wie im Blockdiagramm zu sehen ist, werden der L2-Cache, die beiden Prozessoren, die DMA Controller und die I/O-Bridges mit einem 256Bit breiten Bus angebunden. Dieser „fast on chip multiprozessor bus“ arbeitet mit einer halben Taktfrequenz des CPU Taktes. Der L2-Cache ist ein Shared Cache der beiden Prozessoren. Der 4-Wege Assoziative Cache ist ECCProtected. Der 4-Wege Cache kann umgangen werden, um der CPU einen schnellen und direkten Zugriff auf den RAM zu ermöglichen. Der DDR-Memory Controller hat zwei je 64Bit breite Datenbuskanäle, die mit 200MHz Taktrate, bzw. 400 MHz Datenrate angesteuert werden. Abbildung 21 – Blockschaltbild BCM 1250 Seite (26 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 9.2. Intel IXP2XXX Netzwerk Prozessoren [Quelle: RM92IXP] Intel hat für den Netzwerkbereich eine Prozessorreihe entworfen die sich speziell um das Verarbeiten von Netzwerk spezifischen Paketen kümmert. Diese Prozessoren sind programmierbar und arbeiten laut Intel mit „Wire-Speed“. Anders als die in vielen „High End“ Routern eingesetzten ASIC s (Application Specific Integrated Circuit) sollen die von Intel entwickelten Prozessoren ähnliche Leistungen bringen. Updates und Änderungen an der Software sollen allerdings einfacher möglich sein. Die Anwendungsgebiete sind hier in der Netzwerktechnik vielfältig ausgelegt, Routing, Packet Inspection, Traffic Management usw. Intel hat in dieser Serie bisher fünf Netzwerkprozessoren veröffentlicht: Name Anwendungsgebiet Durchsatz Intel® IXP2855 Network Processor Intel® IXP2805 Network Processor Intel® IXP2400 Network Processor Intel® IXP2350 Network Processor Intel® IXP2350 Network Processor Secure applications Edge and core applications Access and edge applications Access and edge applications Access and edge applications OC-192/10 GbE OC-192/10 GbE OC-48/2.5 GbE 2 Gbps 1 Gbps Tabelle 2 – Intels Netzwerk Prozessoren Um auf diese Reihe einzugehen, schauen wir uns den Intel IXP2400 NP einmal genauer an. Der Prozessor hat acht programmierbare „Multithreaded Mircoengines“, die für Packet Forwarding und Trafficmanagement genutzt werden. Im folgenden Text werden die Implementierten „Features“ des Prozessors erläutert. In Abbildung 19 ist ein Blockschaltbild des Prozessors dargestellt, dass die einzelnen Busse, Busbreiten und Schnittstellen des Prozessors zeigt. • „Hyper Task Chaining processing Technoloy“ ermöglicht das Inspizieren von Paketen bei einem Durchsatz von 2,5Gb/s. Beim Hyper Task Chaining werden einige Weiterentwicklungen der IXP1XXX Reihe umgesetzt, um eine möglichst geringe Latenz beim Verarbeiten der Daten zu haben. Dies beinhaltet das Ansprechen der benachbarten Register, das Weiterleiten von Daten und Statusinformationen an die angrenzenden Microengines. • “Reflector mode pathways“ wird von Intel die Kommunikation zwischen den einzelnen Microengines genannt, die über 32 Bit breite unidirektionale Busse geführt wird. Über dieses Bussystem werden auch die internen Prozessor und Speicher-Resourcen angesprochen. • Außerdem sind Ring/Cycle-Buffer Register eingeführt worden, um Anforderungen an die Software Pipelines schnell und flexibel zu verteilen. Ein Ring-Buffer ist wie der Name bereits sagt, wie ein als Ring angeordneter Buffer – es gibt also keinen Anfang und kein Ende. Das Schreiben in den Buffer erfolgt nach dem FIFO-Prinzip. Wenn der Buffer voll ist, wird das erste hinzugefügte Element wieder entfernt. Zur Organisation werden drei Pointer benötigt, die den Anfang, das Ende der Daten und auf den Buffer selber zeigen. Für den Entwickler gibt es hier die Möglichkeit „Erzeuger-Verbraucher“ Beziehungen zwischen den Microengines aufzubauen und dadurch eine Beschleunigung der Bearbeitungszeit zu erreichen. • Um die Zugriffszeit auf die von außen angebundenen Speicher zu verringern, sind die Register um 16 Einträge für Content Addressable Memory (CAM) erweitert. Die Einträge sind den einzelnen Microengines zugewiesen, um eine schnellere Adressierung zu ermöglichen. Der CAM ist als verteilter Cache angelegt und erlaubt mehrfache Threads und das Seite (27 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 gleichzeitige Verändern voneinander abhängigen Daten, während gleichzeitig die Datenkohärenz gewährleistet ist. Abbildung 22 – Intel IXP2400 Netzwerk Prozessor Blockschaltbild Das Kernstück des IXP2400 ist ein Intel XScale Core mit einem 32Bit RISC Prozessor, der an die ARM Architektur angelehnt ist. [Quelle: RM92XS] Intel ist Lizenznehmer von ARM und ist anhand der erworbenen Lizenz auch berechtigt Veränderungen an der Architektur vorzunehmen. • Die MMU (Memory Management Unit) ermöglicht Zugriffschutz und die Übersetzung von virtueller zu physikalischer Adresse. • In der MMU werden außerdem die Caching Regeln für den Instruction Cache und den Data Cache festgelegt. • Identifizieren von Code als cachable oder non cachable. • Auswahl zwischen Data Cache und Mini Data Cache. • Write-back oder Write-through data caching. • Aktivieren der „Data-Write allocation policy“, zum Bestimmen wie und in welchen Cache Datenblöcke abgelegt werden. Dies wird im folgenden Absatz genauer erläutert. Der Instruction Cache ist bei der XScale Architektur als 32KByte, 32-Wege Satz Assoziativer Cache ausgelegt. Der Cache hat eine Breite von 32Byte. Alle Cache Anfragen die einen „miss“ liefern erstellen automatisch eine 32Byte Leseanfrage an den externen Speicher. Der Data Cache ist ebenfalls ein 32KByte, 32-Wege Satz Assoziativer Cache, wird allerdings noch durch einen Mini Data Cache erweitert, der 2Kbyte groß ist und 2-Wege Satz assoziativ ist. Daten können nur in einem der beiden Caches abgelegt werden. Allerdings werden die Daten in beiden Caches parallel gesucht. In welchem Cache load/store Operationen durchgeführt werden, hängt Seite (28 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 davon ab ob die Daten „bufferable“(B-Bit) oder „cacheable“ (C-Bit) sind. Die Bits B und C werden in der MMU gesetzt. Ist C=1 können die Daten in beiden Caches abgelegt werden, abhängig vom B-Bit für eine LoadOperation. Ist B=0 und C=1, bei einen Load-Miss schreibt die MMU den Datenblock in den Mini-Cache. Ist B=1 und C=1, bei einen Load-Miss schreibt die MMU den Datenblock in den normalen Cache. Beide Caches unterstützen Write Through und Write-Back als Schreibstrategien. Abbildung 23 – Intel XScale Blockschaltbild Die acht eingesetzten Microengines (Abbildung 21), setzen sich aus den folgenden Elementen zusammen: • Acht Hardware Threads pro Engine • 256 General Purpose-Register pro Microengine • 512 Transfer Register um mit dem Bus kommunizieren • 16-Wort “Next Neighbor Registers” Eine Microengine kann damit 2GB DDR-RAM und 32MB QDR-SRAM adressieren. Durch das Setzen des Pushbits ist es jeder Microengine möglich, direkt am XScale vorbei in den Hauptspeicher zu schreiben, um hier eine möglichst hohe Durchsatzrate zu erzielen. Damit ist zum Beispiel das Inspizieren und Verarbeiten von einer hohen Anzahl an Daten-Paketen möglich, ohne einen Einbruch in der Datentransferrate zu verzeichnen. Eine Anwendung im IXP2855 Prozessor, ist die Echtzeitverarbeitung von Verschlüsselungsalgorithmen, bei einen Durchsatz von bis zu 10Gbit/s. Die Berechnungen werden hierzu auf die einzelnen Microengines ausgelagert. [Quelle: RM92IXP18] Seite (29 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 Abbildung 24 – Blockschaltbild Microengine Seite (30 von 34) RST - Labor Semester: I7I 10. Architektur eines Routers Datum: 12.05.2008 Fazit Leider war es nicht so einfach Backbone Router miteinander zu vergleichen, da höherwertige Geräte in etwa identisch arbeiten und die wesentlichen Unterschiede in der Architektur der Prozessoren von den Herstellern nicht Preis gegeben werden. Es wäre schön gewesen direkte Benchmarks zwischen ähnlich teuren Geräten zu finden, um eine Aussage zu treffen, welche Router die beste Performance liefern. Ein Benchmark wurde von Intel gefunden, da aber kein direkter Vergleich mit einem anderen Gerät möglich war, ist dieser nicht aussagekräftig. [Quelle: F10IB] In unserer Ausarbeitung haben wir zwei Geräte in zwei unterschiedlichen Preisklassen angesprochen, den SMC7904WBRA für knapp 100€ und einen Cisco 7301 für knapp 10.000€. In der Preiskategorie zwischen diesen beiden Geräten, befindet sich zum Beispiel die Cisco 2800 Serie für mittlere bis große Firmen. [Quelle: F10C28SR] Diese Geräte sind modular aufgebaut und können nach Bedarf erweitert werden. Sie unterscheiden sich im grundlegenden Aufbau allerdings nicht viel von den kleineren Geräten. Nach oben hin ist den Geräten und den Preisen keine Grenze gesetzt. Beispiele für Hersteller solcher Geräte wären Redback 1 und Juniper2, die sich auf die Produktion und Herstellung von Hochleistungsroutern im Providerumfeld spezialisiert haben. Alles in allem kann man dieses Themengebiet als sehr umfangreich und schnelllebig bezeichnen. Die immer mehr auf Netzwerk beruhenden Systeme in einzelnen Firmen und Institutionen verursachen immer mehr Traffic und verlangen damit immer leistungsfähigere Geräte, die diese Flut an Daten verarbeiten können. 1 2 http://www.redback.com http://www.juniper.net Seite (31 von 34) RST - Labor Architektur eines Routers Semester: I7I 11. Datum: 12.05.2008 Quellen [Quelle: G61] URL: http://www.series16.adrianwise.co.uk/ Abruf: Februar 2008 [Quelle: G62] URL: http://research.microsoft.com/~gbell/computer_structures_principles_and_examples/csp0394.htm Abruf: Januar 2008 [Quelle: G63] URL: http://ufaqs.com/wiki/en/pd/PDP11.htm Abruf: Januar 2008 [Quelle: AR71] URL: http://www.itwissen.info/definition/lexikon//_RORO_ROrouterRO_RORouter.html Lexikon IT Wissen, Abruf: Januar 2008 [Quelle: AR72R] URL: http://www.at-mix.de/routing_information_protocol.htm Abruf: Januar 2008 [Quelle: AR72O] URL: http://www.pmgas.net/fhwork/ccnp/OSPFvsEIGRP.pdf, Seite 2 Abruf: 15. März 2008 [Quelle: AR72B] URL: http://de.wikipedia.org/wiki/Border_Gateway_Protocol Abruf: Januar 2008 [Quelle: AR72B2] URL: http://www.itwissen.info/definition/lexikon//_BGPBGP_BGPborder%20gateway%20protocolBGP_ BGPBGP-Protokoll.html Abruf: Januar 2008 [Quelle: AR72D] URL: http://et.ti.uni-mannheim.de/content/lehre/nt2/skript/NaTe2_Kap13.pdf Abruf: Februar 2007 [Quelle: AR72P] URL: http://et.ti.uni-mannheim.de/content/lehre/nt2/skript/NaTe2_Kap13.pdf Abruf: Februar 2007 [Quelle: AR8] URL: http://www.ibr.cs.tu-bs.de/courses/ws9798/seminar/hornburg/IPv6-Routing.html Abruf: Februar 2008 Seite (32 von 34) RST - Labor Architektur eines Routers Semester: I7I Datum: 12.05.2008 [Quelle: AR83] URL: http://www.rcionline.net/cisco_routers.htm Abruf: 15. März 2008 [Quelle: AR83C] URL: http://www.rrzn.unihannover.de/fileadmin/ful/vorlesungen/rechnernetze_2/ss_07/Rechnernetze_II_3_SS07.pdf Abruf: Januar 2008 [Quelle: AR83J] URL: http://www.juniper.net/products_and_services/t_series_core_platforms/ Abruf: März 2008 [Quelle: RM9SMC] URL: http://www.smc.com/files/AX/ds_7904WBRA.pdf Abruf: Januar 2008 [Quelle: RM9AR7] URL: http://focus.ti.com/pdfs/bcg/ar7_wp.pdf Abruf: Dezember 2007 [Quelle: RM9C73SR] URL: http://www.cisco.com/en/US/docs/routers/7300/install_and_upgrade/7301/7301_install_and_config_guide/5 418o.pdf Abruf: Februar 2008 [Quelle: RM9C70SR] URL: http://www.telnetworksusa.com/cisco/pdf/7000.pdf Abruf: Februar 2008 [Quelle: RM91BCM] URL: http://pdf1.alldatasheet.com/datasheet-pdf/view/85240/BOARDCOM/BCM1250.html Abruf: Januar 2007 [Quelle: RM92IXP] URL: http://www.intel.com/design/network/products/npfamily/ixp2xxx.htm Abruf: Dezember 2007 [Quelle: RM92XS] URL: ftp://download.intel.com/design/intelxscale/27347302.pdf Abruf: Januar 2008 [Quelle: RM92IXP18] URL: http://download.intel.com/design/network/ProdBrf/30943001.pdf Abruf: Januar 2008 Seite (33 von 34) RST - Labor Semester: I7I Architektur eines Routers Datum: 12.05.2008 [Quelle: RM9C70SR] URL: http://www.telnetworksusa.com/cisco/pdf/7000.pdf Abruf: Februar 2008 [Quelle: F10IB] URL: http://www.intel.com/design/network/products/npfamily/IXP2400_IPv6.pdf Abruf Januar 2008 [Quelle: F10C28SR] URL: http://www.cisco.com/en/US/products/ps5854/prod_models_home.html Abruf: März 2008 Seite (34 von 34)