24.11.2006 | Autor / Redakteur: Cormac Long / Andreas Donner
Das IP-Adressierungsschema ist die Grundlage für ein erfolgreiches und logisches Netzwerk-Design. Daher beschreibt der zweite Teil des SearchNetworking-Specials rund um die erfolgreiche Netzwerkplanung, wie ein skalierbares, also mit dem Netzwerk wachsendes, IP-Adressierungsschema entwickelt werden kann.
Teil 2 der Serie über das IP-Netzwerkdesign erklärt den Einsatz und die Bedeutung von Schlüsselwerkzeugen wie Subnetzmasken variabler Länge und Route-Summarization, sowie die Auswahl des geeigneten Routingprotokolls. Außerdem werden die zur Beurteilung der Eignung eines Routingprotokolls verwendeten Parameter, die verschiedenen Eigenschaften von IP-Routingprotokollen und die Funktionsweise von Industriestandardprotokollen wie dem Routing Information Protocol (RIP) und dem Protokoll Open Shortest Path First (OSPF) beschrieben.
Variable Length Subnet Masking (VLSM) bedeutet, dass in derselben Hauptklasse eines Netzwerks mehr als eine Maske implementiert wird. Dies ermöglicht eine effizientere Ausnutzung des IP-Adressraums, sowohl im Hinblick auf die Hosts als auch auf die Subnetze. In einem Netzwerk, dem kein großer IP-Adressraum zur Verfügung steht, kann dies unerlässlich sein.
Um im selben Hauptnetzwerk verschiedene Masken zu implementieren, muss ein Routingprotokoll verwendet werden, das VLSM unterstützt. Solche Routingprotokolle werden als klassenlose Routingprotokolle bezeichnet. Sie übertragen die Maskendaten zusammen mit den Routenbenachrichtigungen und erlauben somit die Unterstützung von mehr als einer Maske. Beispiele für klassenlose Routingprotokolle sind OSPF, RIP Version 2, Ciscos EIGRP, BGP und IS-IS.
Ein Beispiel: Um ein Netzwerk mit insgesamt 200 Standorten zu unterstützen, ist die Class-B-Adresse 172.16.0.0 erforderlich. Die am intensivsten genutzten LANs enthalten bis zu 100 Hosts, und es gibt ein geschätztes Maximum von 400 Point-to-Point-WAN-Links. Daher werden 600 Subnetze mit maximal 100 Hosts in jedem Subnetz benötigt. Selbst mit einer Class-B-Adresse ist nicht genug Adressraum vorhanden, um diese Anforderungen ohne Nutzung von VLSM zu erfüllen.
Die Planung einer VLSM-Lösung sollte mit der kürzesten Maske beginnen, oder anders gesagt, zuerst sollten die Subnetze mit den meisten Hosts geplant werden. Dies ist typischerweise die Maske, die mit den meisten oder allen LAN-Segmenten verwendet wird. In diesem Beispiel gibt es 200 LAN-Segmente, die jeweils bis zu 100 Hosts unterstützen. Während sieben Host-Bits bzw. die Subnetzmaske /25 diese Anforderung erfüllen würden, ist es aus Administrationssicht wahrscheinlich sauberer, eine Maske der Länge /24 zu verwenden. Dieser Luxus ist nur möglich, weil in diesem Fall VLSM verwendet wird. Die LAN-Segmente können von 172.16.1.0/24 bis 172.16.200.0/24 durchnummeriert werden.
Im zweiten Schritt der Nutzung des VLSM-Protokolls werden einige der verfügbaren Subnetze ausgewählt und kleinere Subnetze eingerichtet: Man legt quasi „Subnetze in den Subnetzen“ fest. Es ist wichtig, dass dies nur mit einem oder mehreren Subnetzen erfolgen kann, die noch nicht verwendet werden. Der Bereich 172.16.201.0 ist frei und könnte mit einer Maske der Länge /30 in Subnetze eingeteilt werden, wodurch in diesem Bereich 64 zusätzliche Subnetze definiert werden. Ähnlich werden durch die Maske 172.16.202.x/30 weitere 64 Subnetze festgelegt, die für Point-to-Point-Links geeignet sind. Jeder Bereich bis einschließlich 172.16.207.x/30 könnte verwendet werden, um genügend Subnetzadressen für 400 serielle Links bereitzustellen. Dies bedeutet, dass die Adressierungsanforderungen erfüllt wurden und noch immer eine beträchtliche Menge freier Adressraum vorhanden ist.
Wann immer möglich, sollten zusammenhängende Subnetze verwendet werden: Es ist sinnvoll, einen zusammenhängenden Bereich von Adressen zu wählen und eine bestimmte Maske für sie zu verwenden. Wie im nächsten Abschnitt, in der Diskussion der Route-Summarization beleuchtet wird, wird die effiziente Zuweisung von IP-Adressen nicht allein für ein sauberes Adressierungsschema durchgeführt – oft ist sie für ein gutes Netzwerkdesign unerlässlich.
Route-Summarization bedeutet, dass eine Gruppe von Routen zu einem einzigen Route-Advertisement zusammengefasst wird. Das Nettoergebnis und der offensichtlichste Nutzen von Route-Summarization sind kleinere Routingtabellen im Netzwerk. Dies wiederum reduziert die Latenzzeit jedes Router-Hops, da die durchschnittliche Geschwindigkeit für das Nachschlagen in der Routingtabelle aufgrund der geringeren Zahl von Einträgen erhöht wird. Der Overhead des Routingprotokolls kann ebenfalls signifikant verringert werden, da weniger Routingeinträge abgearbeitet werden müssen. Dies kann bei einem wachsenden Gesamtnetzwerk (und somit wachsenden Subnetzen) wichtig werden.
Abgesehen von der Reduktion der Größe der Routingtabelle kann durch Route-Summarization auch die Stabilität des Netzwerks verbessert werden, da nach dem Ausfall eines Netzwerklinks der für die Übertragung der Routingdaten erforderliche Traffic geringer ist. Wenn ein Router nur eine zusammengefasste Route an den nächsten Downstream-Router weiterleitet, wird er keine Veränderungen spezifischer Subnetze weiterleiten müssen, die in dem zusammengefassten Bereich enthalten sind. Wenn ein Router zum Beispiel nur die zusammengefasste Route 172.16.0.0/16 an seinen Nachbarn weiterleitet, wird er diesen Nachbarn nicht aktualisieren, wenn er einen Ausfall im LAN-Segment 172.16.10.0/24 entdeckt. Dieses Prinzip kann nach einer Veränderung der Netzwerktopologie alle unnötigen Routingupdates signifikant reduzieren. Vor allem beschleunigt dies die Konvergenz, was zu einem stabileren Netzwerk führt.
Um Route-Summarization zu implementieren, die willkürlich konfiguriert werden kann, ist ein klassenloses Routingprotokoll erforderlich. Dies allein ist jedoch noch nicht genug. Es ist unerlässlich, das IP-Adressierungsschema so zu planen, dass an strategischen Punkten des Netzwerks eine konfliktfreie Zusammenfassung erfolgen kann. Diese Bereiche werden als zusammenhängende Adressblöcke bezeichnet.
Zum Beispiel könnte ein Router, der zur Anbindung einer Gruppe von Zweigstellenbüros an den Hauptsitz verwendet wird, alle von diesen Zweigstellenbüros verwendeten Subnetze zu einem einzigen Route-Advertisement zusammenfassen. Wenn alle Subnetze in den Bereich von 172.16.16.0/24 bis 172.16.31.0/24 fallen, könnte der Bereich zu 172.16.16.0/20 zusammengefasst werden. Dies ist ein zusammenhängender Bereich, der auch perfekt mit einer Bitgrenze zusammenfällt, was sicherstellt, dass der Adressbereich in einem einzigen Statement zusammengefasst werden kann. Somit wird klar, dass zur Maximierung der Vorteile von Route-Summarization eine sorgfältige Adressbereichsplanung wesentlich ist.
Die Bedeutung der Auswahl des richtigen IP-Routingprotokolls wurde schon angeschnitten. Ein Routingprotokoll wird anhand folgender Eigenschaften beurteilt:
Das Routingprotokoll muss Stabilität gegenüber Routingschleifen aufweisen, die ein Netzwerk als Folge temporärer Routinginformationen, die direkt nach einer Topologieveränderung bearbeitet werden, in die Knie zwingen können. Von den weniger ausgefeilten Protokollen wie RIP werden Hold-down-Timer verwendet, um die Stabilität zu erhöhen. Wenn ein Subnetz ausfällt, werden alle Router während der Dauer des Hold-down-Timers alle weiteren Updates, die dieses Subnetz betreffen, ignorieren. Im Prinzip verwendet das Routingprotokoll nach einer Topologieveränderung einen „Erst mal abwarten“-Ansatz, damit sich das Netzwerk stabilisieren kann. Der Nachteil eines Hold-down-Timers ist die langsame Konvergenz, dennoch kann er ein notwendiges Übel sein, da Protokolle wie RIP nicht genügend Informationen über das Netzwerk führen, um schnell und zuverlässig konvergieren zu können.
Wenn eine Topologieveränderung eintritt, wie etwa der Ausfall oder das Hinzukommen eines Subnetzes, dann verstreicht eine gewisse Zeit, bevor jedem Router des Netzwerks diese Veränderung bekannt ist. Während dieser Konvergenzzeit arbeiten einige Router mit inkonsistenten Informationen. Daher kann man sich die Konvergenzzeit als die Zeitverzögerung vorstellen, die von einer auftretenden Topologieveränderung bis zu dem Zeitpunkt verstreicht, an dem alle Router im Netzwerk konsistente Routinginformationen in Bezug auf das betroffene Subnetz besitzen.
Die Konvergenzgeschwindigkeit in einem Netzwerk kann dramatisch variieren, abhängig von mehreren Faktoren, von denen die Betriebscharakteristik des Routingprotokolls selbst nicht der geringste ist. Ausgefeilte Link-State-Routingprotokolle wie etwa Open Shortest Path First (OSPF) führen eine Link-State-Datenbank aller Subnetze des Netzwerks, die detaillierte Daten über die an sie angeschlossenen Router enthält.
Wenn ein Link ausfällt, sendet der direkt angeschlossene Router sofort ein Link State Advertisement (LSA) an seine benachbarten Router, und das Netzwerk wird mit dieser Information geflutet. Jeder Router kann beim Empfang des LSA seine Datenbank konsultieren und die Routingtabelle nach der Topologieveränderung selbstständig neu berechnen. Die Konvergenz ist schnell und zuverlässig, da beim OSPF umfangreiche Daten über die Netzwerktopologie oberhalb und jenseits einer Routingtabelle geführt werden. Dies unterscheidet sich von einfacheren Protokollen wie RIP, die, wie schon angesprochen, nach einer Topologieveränderung für eine schleifenfreie Konvergenz einen Hold-down-Timer einsetzen.
Ein Router, der (über ein Routingprotokoll) verschiedene Pfade zu einem bestimmten Zielnetzwerk erfährt, wählt den Pfad mit der besten Metrik aus und trägt diesen in seine Routingtabelle ein. Wenn die beste Metrik für mehr als einen Pfad gilt, werden alle diese Least-Cost-Pfade in die Routingtabelle eingetragen und es wird ein Equal-Cost-Load-Balancing durchgeführt.
Verschiedene Routingprotokolle nutzen verschiedene Metriken, also entscheiden verschiedene Routingprotokolle jeweils auf ihre eigene Art und Weise, welches der beste Pfad zu einem Ziel ist. Die Metrik sollte genügend ausgeklügelt sein, um sicherzustellen, dass die Interpretation des Routingprotokolls realistisch ist.
RIP verwendet den Hop-Count als Metrik – eine weitere Beschränkung dieses Routingprotokolls. Wenn sich ein Router beispielsweise zwischen zwei Pfaden zu einem Ziel entscheiden muss, wobei der eine Pfad ein 56k-Link und der andere eine T1-Leitung ist, würde RIP beiden Pfaden dieselben Kosten zuweisen, da die Zahl der Router-Hops gleich ist. Daher würde RIP ein Load Balancing durchführen, obwohl der eine Pfad 23-mal schneller ist als der andere.
Das OSPF-Protokoll verwendet eine Metrik der administrativen Kosten, die beliebig konfiguriert werden kann. Bei Cisco-Routern wird sie automatisch so berechnet, dass sie umgekehrt proportional zur Bandbreite des Links ist. Nortel verwendet einen anderen Ansatz, bei dem die OSPF-Kosten standardmäßig zunächst bei allen Links gleich sind. Der Netzwerkadministrator konfiguriert den Wert der Routerschnittstelle dann so, dass er mit der Geschwindigkeit des Links in einer umgekehrten Beziehung steht.
Die Bedeutung von VLSM wurde schon beschrieben. Klassenlose Routingprotokolle unterstützen VLSM, da sie die Masken in den Routingupdates mitteilen. Zu den standardisierten klassenlosen IP-Routingprotokollen gehören OSPF und RIP Version 2. RIP Version 1 wird als ein klassenorientiertes Routingprotokoll angesehen, da es die Subnetzmaske im Routingupdate nicht mitteilt.
Ein Routingprotokoll sollte die konfigurierbare Route-Summarization unterstützen. Die Bedeutung der Möglichkeit, an strategischen Punkten im Netzwerk Route-Summarization zu konfigurieren, wurde schon beschrieben. Abgesehen von der konfigurierbaren Route-Summarization führen einige Protokolle eine automatische Route-Summarization durch. Diese Funktion ist nicht unbedingt so gut wie sie klingt, in einigen Fällen kann sie sogar problematisch sein.
Klassenorientierte Routingprotokolle wie etwa RIP Version 1 führen bei Topologieveränderungen über eine größere Netzwerkgrenze hinweg, basierend auf der Klasse, eine automatische Summarization durch. Zum Beispiel würden Subnetze von 172.16.0.0 als eine einzige Route zum Class-B-Netzwerk 172.16.0.0/16 angesehen, wenn der Router seine Meldung über einen Link absetzt, der Teil einer Adresse außerhalb dieses Class-B-Netzwerkes ist. Dies ist bei klassenorientierten Routingprotokollen erforderlich: Da die Maske nicht mitgeteilt wird, hat der Downstream-Router keine Möglichkeit, die Subnetzmaske zu erraten, wenn er keine Schnittstellen in diesem Hauptnetzwerk besitzt. Daher muss angenommen werden (meistens fälschlicherweise), dass keine Einteilung in Subnetze vorgenommen wurde.
Die automatische Route-Summarization kann Probleme verursachen, wenn sie an mehr als einem Punkt im Netzwerk erfolgt, da die zusammengefassten Routen miteinander in Konflikt stehen können. Dieses Szenario tritt ein, wenn ein Router identische zusammengefasste Routen aus entgegengesetzten Richtungen erhält, was im Allgemeinen als „Discontiguous Network“ (nicht zusammenhängendes Netzwerk bzw. nicht benachbarte Netzwerke) bezeichnet wird. Ein Discontiguous Network ist sozusagen durch ein anderes Netzwerk „abgetrennt“.
Wäre ein Hauptnetzwerk, wie etwa 172.16.0.0, nicht zusammenhängend, würden die Router in dem die Teilnetze verbindenden Netzwerk (z.B. wenn dieses als Teil des Class-B-Netzwerks 181.40.0.0 adressiert wird) die zusammengefasste Route 172.16.0.0/16 aus entgegen gesetzten Richtungen erhalten. Diese Routen würden zu dem Versuch führen, ein Load Balancing über diese Routen durchzuführen. Tatsächlich entstünden dadurch jedoch schwerwiegende Erreichbarkeitsprobleme. TCP-Anwendungen würden für jede falsche Routing-Entscheidung einen erneuten Versand des Pakets anfordern. UDP-Anwendungen würden ganz einfach nicht funktionieren.
Der Unterschied zwischen einem klassenorientierten und einem klassenlosen Routingprotokoll ist schnell erklärt: Klassenlose enthalten im Gegensatz zu klassenorientierten Protokollen die Maske in der Updatemeldung. Die Folgen dieses einfachen Unterschieds sind jedoch weit reichend. Klassenorientierte Protokolle wie RIP Version 1 unterstützen kein VLSM, keine Discontiguous Networks und keine konfigurierbare Route-Summarization – daher sind sie für moderne Netzwerke ungeeignet.
Die Frage der Skalierbarkeit bezieht sich auf die Fähigkeit des Routingprotokolls, den Netzwerkbetrieb zu unterstützen, wenn das Netzwerk durch Hinzufügen weiterer IP-Subnetze wächst. Eigenschaften wie die Konvergenzgeschwindigkeit, die Unterstützung von VLSM und konfigurierbare Route-Summarization bestimmen letztlich die Skalierbarkeit des Routingprotokolls.
Die Effizienz, mit der Routinginformationen ausgetauscht werden, ist ebenfalls relevant. Distanzvektorprotokolle wie RIP senden die gesamte Routingtabelle periodisch zu benachbarten Routern. Die höher entwickelten Protokolle behandeln Topologieveränderungen nach dem anfänglichen Austausch der Routinginformationen nur noch ereignisgesteuert, was ganz klar ein effizienterer Mechanismus ist.
OSPF ist ein sehr komplexes IP-Routingprotokoll, eine vollständige Erklärung seiner Funktionsweise würde den Rahmen dieses Artikels sprengen. Dennoch lohnt es sich, die Vorteile zusammenzufassen, die es gegenüber Distanzvektor-Routingprotokollen wie RIP bietet. Der Einsatz von OSPF ließe sich mit dem Wort „Skalierbarkeit“ argumentieren.
OSPF unterstützt die Möglichkeit, das Netzwerk in mehrere Bereiche (Areas) zu unterteilen, die eine gewisse Autonomie voneinander besitzen. In einer solchen Struktur gibt es einen Backbonebereich (der immer als Area 0 bezeichnet wird) und eine Anzahl anderer Bereiche, die, außer in Sonderfällen, direkt an Area 0 angeschlossen sein müssen. In einem gut geplanten hierarchischen Design können die Routen jedes Bereichs in zusammenhängenden Blöcken zusammengefasst werden. OSPF unterstützt auch die Möglichkeit, Routen zusammenzufassen, die von einem anderen Routingprotokoll weitergeleitet werden.
Jeder Router, der mit OSPF arbeitet, führt eine Datenbank mit der logischen Topologie des Netzwerks. Die Datenbankeinträge präzisieren jeden Link, jedes LAN-Segment und jeden Router des Netzwerks. Diese erhöhte Intelligenz von OSPF bedeutet, dass das Protokoll schneller konvergieren kann, ohne auf die groben Konvergenzmethoden von Distanzvektorprotokollen zurückgreifen zu müssen.
Bei Veränderungen der Netzwerktopologie werden statt periodischen Updates inkrementelle Updates gesendet. OSPF verwendet auch statt Broadcasts die bekannten Multicast-Adressen, um Routinginformationen zu übertragen.
Da OSPF ein klassenloses Protokoll ist, wird VLSM von OSPF unterstützt, was eine effiziente Nutzung des IP-Adressraums erlaubt.
OSPF bietet also viele Vorteile. Leider ist fast jedes Netzwerkprotokoll – zumindest in einem gewissen Maße – ein zweischneidiges Schwert. OSPF ist da keine Ausnahme. Es gibt zwei Nachteile von OSPF, die unbedingt berücksichtigt werden sollten:
OSPF erhöht den Speicherbedarf des Routers aufgrund der Tatsache, dass jeder OSPF-Router eine topologische Datenbank des Netzwerks führt. Die Routingtabelle wird aus dieser Datenbank errechnet, die mehr Speicher benötigt als die Routingtabelle selbst.
Die Ausführung des OSPF-Protokolls erhöht auch die durchschnittliche CPU-Auslastung des Routers. Um die Routingtabelle nach einer Topologieveränderung neu zu berechnen, wird der Shortest-Path-First-Algorithmus (SPF) ausgeführt. Dies ist eine prozessorintensive Aktivität, die die Leistung von Low-End-Routern einschränken könnte.
Für ein großes Netzwerk, das auch Wachstumsmöglichkeiten bieten muss, sollten normalerweise mehrere OSPF-Bereiche verwendet werden. Es gibt bestimmte Regeln, wie sich der Traffic zwischen diesen Bereichen bewegen sollte. Dies kann das Design einschränken.
OSPF bietet die Möglichkeit, ein Netzwerk in mehrere Bereiche zu unterteilen. Die Idee hinter diesem Konzept ist, den mit dem Betrieb des Protokolls verbundenen Speicher- und CPU-Bedarf zu reduzieren. Ein Router, auf dem OSPF in einer Implementierung mit mehreren Bereichen läuft, verwendet die Datenbank nur für seinen lokalen Bereich, nicht für das gesamte Netzwerk. Dadurch wird der Speicherverbrauch verringert, und es wird die Tatsache genutzt, dass ein Router in einem gut geplanten Netzwerk normalerweise nicht alle Details über sehr entfernt liegende Abschnitte des Netzwerks zu wissen braucht. Aus demselben Grund fließen Updates nach einer Topologieveränderung nur in den lokalen Bereich, wodurch der Routingtraffic und die mit häufigen und oft unnötigen Routen-Neuberechnungen verbundene CPU-Belastung reduziert werden.
Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 2001124)