SUBNETTING UND VARIABLE LENGTH OF SUBNETTING (VLSM) Inhalt 1. AUFBAUSTRUKTUR VON NETZEN ................................................................ 3 2. KONFIGURATION VON IP-NETZWERKEN.................................................... 3 2.1. Wachstumsprobleme des Internet............................................................ 3 2.1.1. Klassenweise IP-Adressierung ................................................... 4 2.1.2. Primäre Adressklassen ................................................................ 5 2.1.3. Klasse-A Netzwerke (/8 Präfixe)................................................. 5 2.1.4. Klasse-B Netzwerke (/16 Präfixe)............................................... 6 2.1.5. Klasse-C Netzwerke (/24 Präfixe) .............................................. 6 2.1.6. Andere Klassen ............................................................................. 6 2.1.7. Dezimalpunkt-Schreibweise ........................................................ 6 2.1.8. Probleme der klassenorientierten Adressierung ...................... 7 2.2. Verwendung von priv. Adressen und NAT, PAT, IP-Masquerading .. 7 2.2.1. Private IP-Hostadressen .............................................................. 7 2.2.2. Network Address Translation ...................................................... 8 2.2.2.1 Network Address Translation (NAT) ............................. 8 2.2.2.2 IP-Masquerading / PAT................................................... 9 2.3. Subnetting................................................................................................... 11 2.3.1. Aufteilung in Subnetze................................................................ 13 2.3.2. Vorteile von Subnetting .............................................................. 16 2.3.3. Bemerkungen zur Subnetzplanung .......................................... 17 2.4. Variable Length of Subnetting (VLSM) .................................................. 18 2.4.1. Effektive Nutzung des IP-Adressraums................................... 19 2.4.2. Zusammenfassen von Routen (Route Aggregation) ............. 20 2.4.3. VLSM Planungsempfehlungen.................................................. 21 2.4.4. Anforderungen für die Umsetzung von VLSM ........................ 21 2.4.4.1 Senden des erweiterten Netzwerkpräfixes ................ 22 2.4.4.2 Weiterleitungsalgorithmus ............................................ 22 2.4.4.3 Topologieabhängige Adresszuweisungen ................. 23 2.4.5. VLSM Entwurfsbeispiel 1 ........................................................... 23 2.5. Classless Interdomain Routing (CIDR) .................................................. 27 2.5.1. CIDR für die effiziente Nutzung des IPv4 Adressraumes..... 29 2.5.2. Rechneranforderungen für die CIDR-Adressierung .............. 30 2.5.3. Effiziente Adresszuweisung....................................................... 31 1 2.5.4. Beispiel für CIDR Adresszuweisung ........................................ 31 2.5.5. CIDR ist VLSM ähnlich............................................................... 32 2.5.6. Kontrollieren des Wachstums der Internet-Routingtabellen. 33 2.5.7. Routing in einer klassenlosen Umgebung............................... 34 2.6. Erweiterte Nutzung des IPv6- Adressraumes....................................... 35 2.6.1. Die Internet Protokoll Version 6 ................................................ 35 2.6.1.1 Die Merkmale von IPv6................................................. 36 2.6.1.2 Aufbau des IPv6-Basis-Headers ................................. 37 2.6.1.3 Authentication Options Header (AH) .......................... 40 2.6.1.4 Encapsulating Security Payload (ESP) ...................... 40 2.7. Übungsaufgabe zu VLSM (siehe Praktikumsversuch) ........................ 41 Document History Version, Date Author(s) email address 27.10.2006 [email protected] Changes and other notes 2 1. AUFBAUSTRUKTUR VON NETZEN 2. KONFIGURATION VON IP-NETZWERKEN Das seit den 80er Jahren aufgebaute Internet stellt heute das größte öffentliche Datennetz der Welt dar. Durch die große Popularität des World Wide Web (WWW) und die vielfältigen Möglichkeiten im Geschäftsbereich (B2B, B2C etc.) verdoppelt sich die Anzahl der Zugänge zum Internet derzeit alle 9 Monate. Mit der Anzahl der am Internet angeschlossenen Institutionen wächst ebenso der „Wert“ des Internets, da die Institution immer mehr Benutzer bzw. Kunden über diesen Anschluss erreichen kann. 2.1. Wachstumsprobleme des Internet In letzter Zeit traten durch das kontinuierliche Wachstum des Internets zwei Probleme auf, nämlich • der unzureichende Adressraum von IPv4 und • die Fähigkeit, das Datenaufkommen zwischen den Netzen zu routen. Networks (in thousands) Das erste Problem hängt mit dem zur Neige gehenden IP-Adressraum zusammen. In der aktuellen Version IP Version 4 (IPv4) wird die Adresse eines Internetteilnehmers durch eine 32-Bit-Adresse repräsentiert. Theoretisch sind hiermit 232 = 4.294.967.296 IP-Adressen möglich. Das Problem der unzureichenden Anzahl von Adressen ergibt sich jedoch durch ineffiziente Verteilung der Adressen selbst, da durch die traditionelle klassenorientierte Nutzung der Adressraum nicht optimal genutzt wird. 70 60 50 Class A 40 Class B 30 Class C 20 10 1995 1993 1991 1989 1987 1985 1983 0 Bild: Zugewiesene Netzwerknummern Die Arbeitsgruppe Address Lifetime Expectancy (ALE) der IETF hat zum Ausdruck gebracht, dass bei der aktuellen Adressvergabepolitik kurz bis mittelfristig alle Adressen aufgebraucht sein werden. Falls das Problem des Adressraums nicht gelöst wird, könnten so in Zukunft keine weiteren Benutzer mehr an das Internet angeschlossen werden. Das zweite Problem wird durch das schnelle Wachstum der Routingtabellen in den Routern des Internet verursacht. Die Backbone-Router müssen vollständige Routing-Informationen über das Internet besitzen. Mit dem Anschluss vieler Unternehmen und Institutionen in den letzten Jahren sind die Routingtabellen in den Routern exponentiell gewachsen. Im Dezember 1990 gab es beispielsweise ca. 2190 3 35 30 25 20 15 1995 1994 1993 1992 5 0 1991 10 1990 Routing Table Entries ( in thousands ) Router, im Dezember 1992 ca. 8500 und im Dezember 1995 bereits mehr als 30000 Router. Bild: Wachstum der Internet-Routingtabellen Das Routing-Problem kann letztlich nicht mehr dadurch gelöst werden, dass mehr Speicher in den Routern installiert wird, um so beispielsweise immer größere Routingtabellen aufnehmen zu können. Ein anderer Faktoren betrifft die notwendige CPU-Leistung, um Änderungen der Tabellen und der Topologie nachzuvollziehen. Falls die Routingtabellen in den zentralen Routern beliebig wachsen, werden die Router irgendwann gezwungen sein, Routen zu vergessen (discarded routes). Damit wären Teile des Internet zunächst nicht mehr erreichbar. Die langfristige Lösung dieser Probleme ist in der allgemeinen Verwendung von IP Next Generation (IPng oder IPv6) zu sehen. Bis die Software zur Verarbeitung der IPv6 Pakete in den Kommunkationsstacks und den Netzwerkkomponenten überall verfügbar ist, muss mittels spezieller Methoden versucht werden den IPv4Adressraum effizient zu nutzen, um so eine weitergehende Konnektivität des Internets sicherzustellen. 2.1.1. Klassenweise IP-Adressierung Als IP 1981 standardisiert wurde, forderte die Spezifikation, dass jedem System, das an das Internet angeschlossen ist, eine eindeutige 32-Bit Internetadresse zugewiesen wird. Einige Systeme mit Routerfunktionalität, die Schnittstellen zu mehreren Netzwerken haben, benötigen für jede Netzwerkschnittstelle eine IPAdresse. Der erste Teil der Internetadresse gibt das Netzwerk an, in dem der Rechner steht. Der zweite Teil gibt den Rechner innerhalb des Netzwerkes an. Dies erzeugt eine zweistufige Adresshierarchie, die in Bild 3 dargestellt ist. Bild 3: Zweistufige Internet-Adresshierarchie Das Feld mit der Netzwerknummer wird auch als "Netzwerk-Präfix" bezeichnet, da die Netzwerknummer bzw. Netzwerkadresse einer IP-Adressangabe immer vorne steht. Alle Rechner innerhalb eines Netzwerkes müssen die gleiche Netzwerkadresse, aber eine eindeutige Hostadresse (Hostadresse) haben. Analog können zwei Rechner in 4 verschiedenen Netzen unterschiedliche Netzwerk-Präfixe haben, jedoch aber gleiche Hostadressen aufweisen. 2.1.2. Primäre Adressklassen Um unterschiedlich große Netze zu unterstützen, wurde der IP-Adressraum in drei Klassen aufgeteilt, wie das Bild 4 zeigt. Dies wird als klassenweise Adressierung bezeichnet, da der Adressraum in drei vordefinierte Klassen bzw. Kategorien aufgeteilt wird. Eine der grundlegenden Eigenschaften der klassenorientierten IP-Adressierung ist, dass jede Adresse implizit angibt, welcher Teil der Adresse Netzwerk-Präfix ist und welcher Teil Hostadresse. Beginnen z. B. die ersten beiden Bits einer Adresse mit 10, dann sind die ersten 16 Bit Netzwerk-Präfix und die zweiten 16-Bit sind die Hostadresse. Bild 4: Formate der klassenweisen IP-Adressierung Dies vereinfachte das Routing-System in den ersten Jahren, da die RoutingProtokolle keine Netzmaske benötigten, die mit jeder Route angegeben werden, um die Länge des Netzwerk-Präfixes festzulegen. 2.1.3. Klasse-A Netzwerke (/8 Präfixe) Jedes Klasse-A Netzwerk hat ein Netzwerk-Präfix von 8 Bit, bei dem das erste Bit 0 und die restlichen sieben Bit die Netzwerknummer angeben. Dem folgt dann eine Hostadresse von 24-Bit Länge. Klasse-A-Netzwerke werden heute als "/8" (ausgesprochen “Schrägstrich acht“ oder “Präfix 8“ oder einfach "achter") Netzwerke bezeichnet, da das Netzwerk-Präfix 8 Bit beträgt. Es können maximal 126 (27 - 2) /8 Netzwerke definiert werden. Bei der Berechnung der Anzahl müssen zwei abgezogen werden, da das Netzwerk 0.0.0.0/8 als Standard-Route und das Netzwerk 127.0.0.0/8 für die "loopback"-Funktion reserviert ist. Jedes /8-Netzwerk unterstützt maximal 16.777.214 (= 224 - 2) Rechner im Netz. Bei dieser Berechnung müssen wieder zwei abgezogen werden, da Hostadressen, die nur Nullen enthalten ("Netzwerkadresse"), und Hostadressen, die nur Einsen enthalten ("broadcast" = Rundruf) nicht einem einzelnen Rechner zugewiesen werden können. 5 Da der /8-Adressblock 231 (=2,147,483,648) individuelle Adressen und der IPv4 Adressraum maximal 232 (=4,294,967,296) umfasst, belegt der /8-Adressraum 50% des IPv4 Adressraumes. 2.1.4. Klasse-B Netzwerke (/16 Präfixe) Jedes Klasse-B-Netzwerk hat ein Netzwerk-Präfix von 16 Bit, das mit den beiden Bits 10 beginnt und weitere 14 Bit als Netzwerkadresse enthält. Dem folgt schließlich eine Hostadresse von 16 Bit Länge. Klasse-B Netzwerke werden als /16-Netzwerke bezeichnet, da das Netzwerk-Präfix 16 Bit lang ist. Es können maximal 16,384 (=214) /16-Netzwerke mit bis zu 65,534 (=216-2) Rechnern pro Netzwerk angegeben werden. Der /16-Adressblock enthält 230 (=1.073.741.824) Adressen. Dies entspricht 25% des IPv4-Adressraumes. 2.1.5. Klasse-C Netzwerke (/24 Präfixe) Jedes Klasse-C Netzwerk hat ein Netzwerk-Präfix von 24 Bit, die Netzwerkadresse beginnt mit den Bits 110, die restlichen 21 Bit geben die Netzwerknummer an. Dem folgt eine Hostadresse von 8 Bit Länge. Klasse-C Netzwerke werden als /24-Netzwerke bezeichnet, da das Netzwerk-Präfix 24 Bit lang ist. Es können maximal 2,097,152 (=221) /24-Netzwerke mit bis zu 254 (=28-2) Rechnern pro Netzwerk angegeben werden. Der /24-Adressblock enthält 229 (=536,870,912) Adressen. Dies entspricht 12,5% des IPv4-Adressraumes. 2.1.6. Andere Klassen Zusätzlich zu den drei bekannten Klassen gibt es die beiden Klassen D und E. Bei der Klasse D sind die obersten vier Bit auf 1110 gesetzt. Die Adressen der Klasse D werden für IP-Multicast verwendet. Bei Klasse-E-Adressen sind die obersten vier Bit auf 1111 gesetzt. Dieser Adressraum ist für experimentelle Anwendungen reserviert. 2.1.7. Dezimalpunkt-Schreibweise Aufgrund der besseren Lesbarkeit werden die Adressen häufig in der "DezimalpunktSchreibweise" als vier Dezimalzahlen, die durch Punkte voneinander getrennt sind, angegeben. Die Dezimalpunkt-Schreibweise teilt die 32-Bit Internet-Adresse in vier 8 Bit Felder (sog. Oktetts). Das Beispiel in Bild 5 zeigt eine /16 Adresse in Dezimalpunkt-Schreibweise. Bild 5: Dezimalpunkt-Schreibweise Das Bild 6 gibt die Bereiche der drei Adressklassen in Dezimalpunkt-Schreibweise an, "xxx" bezeichnet hier die Hostadresse, die von dem Netzadministrator zugewiesen wird. Address Class Dotted-Decimal Notation Ranges A (/8 prefixes) 1.xxx.xxx.xxx through 126.xxx.xxx.xxx 6 B (/16 prefixes) 128.0.xxx.xxx through 191.255.xxx.xxx C (/24 prefixes) 192.0.0.xxx through 223.255.255.xxx Bild 6: Adressbereich jeder Klasse in dezimaler Punkt Schreibweise 2.1.8. Probleme der klassenorientierten Adressierung Die klassenorientierte Adressierung weist u. a. folgende Beschränkungen auf • In den frühen Tagen des Internets wurde Organisationen aus dem scheinbar unerschöpflichen Adressraum des Internet, Adressen entsprechend den Anforderungen und nicht entsprechend dem tatsächlichen Bedarf zugewiesen. • Die Einteilung in die Klassen A, B und C mit ihren Beschränkungen war einfach zu implementieren, man benötigte keine Subnetzmasken. Dies war aber für eine effiziente Belegung des Adressraumes nicht sinnvoll. • Es fehlt insbesondere eine Netzwerkklasse für z. B. mittelgroße Organisationen. Ein /24-Netz ist mit 254 Rechner zu klein, während ein /16-Netz mit 65534 Rechnern zu groß ist. In der Vergangenheit wurden Organisationen mit mehreren hundert Rechnern ein /16-Netz anstatt mehrerer /24-Netze zugewiesen. Das Ergebnis war, dass die /16-Adressen schnell knapp wurden. Die einzigen noch verfügbaren Adressen sind die /24-Netze, die den negativen Effekt haben, dass die globalen Routingtabellen schnell wachsen. Konzepte zum ressourcenschonendem Umgang des IPv4-Adressraums sind: • die Verwendung von privaten Adressen • der Einsatz von NAT und PAT • der Einsatz von Subnetting und Variable Length of Subnetting (VLSM) • Erweiterte Nutzung des IPv6- Adressraumes • Classless Interdomain Routing (CIDR) 2.2. Verwendung von priv. Adressen und NAT, PAT, IP-Masquerading 2.2.1. Private IP-Hostadressen Jeder Rechner benötigt zur Kommunikation im Internet unter Intranet eine IPAdresse. Ist die IP-Adresse aus den Bereichen 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix) so wird diese als “privat“ bezeichnet. Siehe hierzu auch das RFC 1918 - Address Allocation for Private Internets (ftp://ftp.rfc-editor.org/in-notes/rfc1918.txt) 7 Datenpakete von privaten IP-Adressen werden im Internet nicht weitergeleitet d. h. geroutet Hat ein Rechner eine private IP-Adresse, so kann kein Paket aus dem Internet diesen direkt erreichen. Rechner mit privaten Adressen sind damit automatisch gegen „Hacker“-Angriffe aus dem Internet geschützt. Allerdings kann immer noch ein Angriff von einem anderen Rechner innerhalb des Intranets erfolgen, wie dies bei den sog. Internet-Würmern der Fall ist. Ebenso kann zunächst kein Datenpaket mit einer privaten IP-Adresse das Intranet verlassen. Für die Nutzung der wichtigen Internetdienste E-Mail, WWW, FTP, Streaming Video, Internettelefonie (H.323) etc müssen daher sog. Proxy-Server verwenden werden. Anm.: In der entsprechenden Software (z. B. Browser) müssen diese Proxies konfiguriert werden. Für Serversysteme, die selbst weltweit Dienste anbieten, kommen dagegen private Adressen nicht in Frage. Zur Erhöhung der Sicherheit sollten im Intranet möglichst private IP-Adressen verwendet werden. 2.2.2. Network Address Translation Die begrenzte Verfügbarkeit von IP-Adressen hat dazu geführt, dass man sich Gedanken über verschiedene Möglichkeiten machen musste, wie man mit den existierenden Adressen ein größeres Umfeld abdecken kann. Eine Möglichkeit, um private Netze mit mehr als einem PC unter Verwendung möglichst weniger öffentlicher Adressen an das Internet anzukoppeln stellen NAT, PAT und IP-Masquerading dar. Alle Verfahren bilden private Adressen gemäss RFC 1918 oder einen proprietären (= nicht registrierten) Adressraum eines Netzes auf öffentliche registrierte IP-Adressen ab. 2.2.2.1 Network Address Translation (NAT) Beim NAT (Network Address Translation) werden die Addressen eines privaten Netzes über Tabellen öffentlich registrierten IP-Adressen zugeordnet. Dieses hat den Vorteil, dass Rechner, die innerhalb eines privaten Netzes miteinander kommunizieren müssen keine öffentlichen IP-Adressen benötigt werden. IP-Adressen interner Rechner, die eine Kommunikation mit Zielen im Internet aufbauen müssen, erhalten in dem Router, der zwischen dem Internet Service Provider (ISP) und dem privaten Netzwerk steht, einen Tabelleneintrag. Durch diese „1-zu-1“-Zuordnung, sind diese Rechner nicht nur in der Lage, eine Verbindung zu Zielen im Internet aufzubauen, sondern sie sind auch aus dem Internet erreichbar. Die interne Struktur des Firmennetzwerkes bleibt jedoch nach außen verborgen. INTERNET öffentliche Adressen I I INTRANET private Adressen 8 Bild: Zuordnungstabelle beim NAT 2.2.2.2 IP-Masquerading / PAT Beim IP-Masquerading, das manchmal auch als „Port and Address Translation“ (PAT), Network and Port Address Translation (NPAT) oder 1-to-n-NAT bezeichnet wird, werden alle Adressen eines privaten Netzwerkes auf eine einzelne öffentliche IP-Adresse abgebildet. Diese öffentliche IP-Adresse wird oft als dynamische IPAdresse von einem Internet Service Provider (ISP) zugewiesen. Möglich wird dies dadurch, dass bei einer existierenden Verbindung zusätzlich zu den Adressen auch die Portnummern ausgetauscht werden. Auf diese Weise benötigt ein gesamtes privates Netz minimal nur eine einzige registrierte öffentliche IP-Adresse. Bild: Aufbau des IPv4-Frames 9 Bild: Aufbau des TCP-Frames Senderport (Source Port), Empängerport (Destination Port) Der Sender adressiert den Partner über IP-Adresse des Zielrechners und eine 16-Bit lange Portnummer. Um den Empfänger adressieren zu können, muss der Sender dessen Portnummer kennen. Der Sender wiederum kann (meist) eine beliebige freie Portnummer wählen, da er seine eigene Nummer dem Kommunikationspartner mitteilt. Für die Standarddienste stehen die Portnummern in der Datei /etc/services. UDP verwendet einen eigenen Adressraum, so dass gleiche Portnummern sich somit nicht überschneiden. Sequenznummer (Sequence Number) Dieser 32-Bit Wert kennzeichnet eindeutig die Stellung eines Pakets innerhalb des Datenstroms in Senderichtung. Die initiale Sequenznummer wird zu Beginn des Verbindungsaufbaus von jedem Kommunikationspartner festgelegt, wobei gilt, dass sie für die maximal mögliche Lebensdauer des Pakets (TimetoLive des Internet Protokolls) bzgl. der verbundenen Rechner eindeutig ist. Die Sequenznummer eines folgenden Pakets berechnet sich aus der initialen Sequenznummer und der Anzahl bisher gesendeter Bytes. Somit ist es möglich, bei Verlust oder Beschädigung eines Pakets gezielt dieses wiederholt zu senden. Nachteil des IP-Masquerading: Die Rechner im privaten Netzwerk können nicht aus dem Internet angewählt werden. Diese Methode eignet sich daher hervorragend dazu, zwei und mehr Rechner eines privaten Anschlusses per DFÜ-Netzwerk an das Internet zukoppeln. INTERNET öffentliche Adressen I I INTRANET private Adressen 10 Bild: Zuordnungstabelle beim IP- Masquerading / PAT Anmerkungen: • Sollen im privaten Netz befindliche Rechner (z. B. ein Web-Server) auch von dem Internet erreichbar sein, muss der diesem Service zugeordnete TCPPort, hier Port 80, für den eingehenden Verkehr statisch einem bestimmten Rechner (hier dem Web-Server) zugeordnet werden. Dies funktioniert jedoch nur mit einem Server pro Service-Port! • IP-Masquerading wird ebenso von den LINUX-Kernels unterstützt. • Empfohlen wird an dieser Stelle die Verwendung von IP-Adressen aus dem privaten Bereich (RFC 1918) für interne Verbindungen und die Verwendung eines Network Address Translators (NAT), um externen Zugriff auf das Internet zu ermöglichen. 2.3. Subnetting Eine gute Hilfe zur Berechnung von Subnetzen, Subnetzmasken und Anzahl der Hosts bietet der IP Subnet Calculator. (siehe http://www.wildpackets.com/support/downloads) 1985 definierte der RFC 950 einen Weg um ein Klasse-A-, B- oder C-Netzwerk in kleinere Netze aufzuteilen. Subnetze wurden eingeführt, um einen Teil der Probleme zu beseitigen, die sich aus der zweistufigen Adressierungsart ergeben hatten, nämlich das • Anwachsen der Routingtabellen in den Routern des Internets. • Lokale Systemverwalter mussten ein neues Netzwerk vom Internet anfordern, um ein weiteres Netz installieren zu können. Man versuchte die Probleme durch Einführung von Subnetzen zu lösen und spricht hier von einer durch Subnetze realisierte dreistufigen Hierarchie. Das nachfolgende 11 Bild zeigt die Hostadresse, die in eine Subnetzadresse und eine Hostadresse innerhalb dieses Subnetzes aufgeteilt wird. Bild: Adresshierarchie beim Subnetting Die Bildung von Subnetzen dient dazu, ein bestehendes Netz in weitere, kleinere Netze zu unterteilen. Weitere Eigenschaften und Ziele des sog. „Subnettings“ sind. • Subnetze bieten eine weitere Strukturierungsmöglichkeit für Netze, ohne dass ein zusätzliche Klasse A, Klasse B oder Klasse C Netz benötigt wird. • Die Standardprozedur, ein Netz in Subnetze zu unterteilen, nennt man "Subnetting". • Die Hostadresse des A-, B- oder C-Netzes teilt sich in die Bereiche Subnetzadresse (Subnet-ID, Subnetz-ID) und Hostadresse (verbleibende, verkürzte Host-ID). Ein Teil des Hostadressbereiches wird also genutzt, um die Subnetze zu unterscheiden. • Die Netzadresse und den Subnetzanteil des Hostadressraumes bezeichnet man als erweiterte Netzadresse (extended network prefix). • Die interne Subnetz-Struktur von A-, B- oder C-Netzen ist nach außen hin unsichtbar. • Damit Router in der Lage sind, Datagramme in das richtige Netz zuzustellen, müssen sie bei der IP-Adresse den Netz- und Hostanteil unterscheiden können. Dies geschieht traditionell durch die Netzmaske bzw. Subnetzmaske (subnet mask). Die Subnetzmaske dient dem Rechner dazu, die Zuordnung von Netzwerk-Teil und Host-Teil vorzunehmen. Sie hat denselben Aufbau wie eine IP-Adresse (32 Bit bzw. 4 Byte). Per Definition sind alle Bit des "Netzwerk-Teils" auf 1 zu setzen, alle Bit des "Host-Teils" auf 0. Für die o.a. Adressklassen hat die Subnetzmaske demnach folgendes Aussehen: Netzklasse Subnetzmaske (binär) Subnetzmaske (dezimal) Class A 11111111.00000000.00000000.00000000 255.0.0.0 Class B 11111111.11111111.00000000.00000000 255.255.0.0 Class C 11111111.11111111.11111111.00000000 255.255.255.0 12 Bild: Subnetzmasken der Standard Netzklassen A, B und C Diese Subnetzmaske (auch "Default Subnetzmaske" genannt) kann manuell überschrieben werden. 2.3.1. Aufteilung in Subnetze Netzwerkanteil in Bit Hostanteil in Bit Subnetzanzahl *) Hostanzahl **) Subnetzmaske 8 24 1 16777216 255.0.0.0 9 23 2 128*65536 255.128.0.0 10 22 4 64*65536 255.192.0.0 11 21 8 32*65536 255.224.0.0 12 20 16 16*65536 255.240.0.0 13 19 32 8*65536 255.248.0.0 14 18 64 4*65536 255.252.0.0 15 17 128 2*65536 255.254.0.0 16 16 1 65536 255.255.0.0 17 15 2 128*256 255.255.128.0 18 14 4 64*256 255.255.192.0 19 13 8 32*256 255.255.224.0 20 12 16 16*256 255.255.240.0 21 11 32 8*256 255.255.248.0 22 10 64 4*256 255.255.252.0 23 9 128 2*256 255.255.254.0 24 8 1 256 255.255.255.0 25 7 2 128 255.255.255.128 26 6 4 64 255.255.255.192 27 5 8 32 255.255.255.224 28 4 16 16 255.255.255.240 29 3 32 8 255.255.255.248 30 2 64 4 255.255.255.252 Klasse A Klasse B Klasse C Bild: Aufteilung in Subnetze 13 Anmerkungen: *) Die erste und letzte bei der Unterteilung entstehenden Adressen dürfen nicht verwendet werden (Verwechslung mit Netz- und Broadcast-Adresse des übergeordneten Netzes). Die Anzahl der Subnetze verringert sich somit jeweils um zwei: Ist der Netzwerkanteil der IP-Adresse n Bits, dann erhält man (2n) - 2 Subnetze. **) Die Rechneranzahl verringert sich ebenfalls um zwei wegen Subnetz-Adresse (alle Rechnerbits auf 0) und Broadcast-Adresse (alle Rechnerbits auf 1): Ist der Hostanteil der IP-Adresse m Bits, dann erhält man (2m) - 2 Hosts pro Subnetz. Beispiel 1: Ein Unternehmen besitzt z.B. ein Netz der Klasse C und möchte dieses in zwei Segmente unterteilen, die voneinander getrennt sind. Der Broadcastverkehr des ersten Segments kann so das andere nicht beeinträchtigen. In diesem Fall kommt die Subnetz-Maske zum Einsatz, welche die Hostadressen in zwei Bereiche gliedert. Sollen die Rechner in vier gleich große Subnetze mit je 64 Knoten eingeteilt werden, lautet die Subnetz-Maske 255.255.255.192. Es gilt die folgende Formel für die Subnetzmaske: Bytewert = 256 - (Anzahl der Knoten im Segment) Als das Subnetting erstmals standardisiert wurde, war es zunächst verboten, die Subnetze zu nutzen, in denen alle Subnetzbits den Wert 0 oder 1 hatten. Damit ergeben sich im Beispiel nur zwei Subnetze mit je 62 Hosts. Inzwischen beherrschen nahezu alle Netzwerkkomponenten korrektes "classless routing“; diese Option muss bei vielen Netzwerkkomponenten explizit konfiguriert werden. Beispiel 2: Aufteilung in 4 Subnetze Ein Netz der Klasse C soll in vier gleich große Subnetze für die Rechner des Vertriebs, des Einkaufs, der Entwicklung und die Rechner für das Entwicklungsnetz aufgeteilt werden. Die Netzadresse beträgt 192.168.98.0. Dabei soll „classless routing“ vorausgesetzt werden können. Lösung: Der Administrator wählt zur Unterteilung die Subnetz-Maske 255.255.255.192. Die vier Rechner mit den IP-Adressen 192.168.98.3, 192.168.98.73, 192.168.98.156 und 192.168.98.197 befinden sich daher in vier Subnetzen zwischen denen geroutet werden muss. Broadcasts in Subnetz 1 werden nicht in die anderen Subnetze übertragen, Störungen in einzelnen Subnetzen bleiben lokal auch auf diese beschränkt. 14 Bild: Aufteilung des C-Netzes in vier gleich große Subnetze Subnetze eines C-Netzes In Klammern die reduzierte Anzahl der Subnetze (Anzahl - 2). Die rot unterlegten Möglichkeiten sind dann in der Praxis nicht einsetzbar. Subnetzbit s Hostbit s mögliche Subnetze Hostadresse n Subnetzmaske 1 7 2 (0) 126 (0) 255.255.255.128 2 6 4 (2) 62 255.255.255.192 3 5 8 (6) 30 255.255.255.224 4 4 16 (14) 14 255.255.255.240 5 3 32 (30) 6 255.255.255.248 6 2 64 (62) 2 255.255.255.252 7 1 128 0 255.255.255.254 Bild: Anzahl Subnetze in Abhängigkeit der Anzahl Subnetzbits Von den acht variabel verwendbaren Bits werden die drei höchstwertigen Bits für das Subnetz und die fünf letzten Bits für die Hostadresse benutzt. Die erste Adresse jedes Subnetz ist die Adresse in der alle Hostbits den Wert 0 haben. Subnetz Subnetzbits Hostbits dezimal Dezimale Wertigkeit des Bit 128 64 32 16 8 4 2 1 erstes Subnetz 0 0 0 0 0 0 0 0 0 zweites Subnetz 0 0 1 0 0 0 0 0 32 drittes Subnetz 0 1 0 0 0 0 0 0 64 15 viertes Subnetz 0 1 1 0 0 0 0 0 96 fünftes Subnetz 1 0 0 0 0 0 0 0 128 sechstes Subnetz 1 0 1 0 0 0 0 0 160 siebtes Subnetz 1 1 0 0 0 0 0 0 192 achtes Subnetz 1 1 1 0 0 0 0 0 224 Bild: Aufteilung in 8 Subnetze Damit ergeben sich die acht zur Verfügung stehenden Subnetze wir folgt: 192.168.0.0/27 192.168.0.32/27 192.168.0.64/27 192.168.0.96/27 192.168.0.128/27 192.168.0.160/27 192.168.0.192/27 192.168.0.224/27 2.3.2. Vorteile von Subnetting Subnetze reduzieren die Routeranforderungen im Internet In Bild wird ein /16-Adresse (Klasse B) in mehrere logische Subnetze aufgeteilt. Der Router akzeptiert den gesamten IP-Verkehr, der an das /16-Netz 130.5.0.0 gerichtet ist, und verteilt diesen intern aufgrund des dritten Oktetts in der Adresse. Bild: Subnetze reduzieren die Routeranforderungen im Internet Die Verwendung von Subnetzen innerhalb eines privaten Netzwerkes hat mehrere Vorteile: • Die Größe der globalen Internet-Routingtabellen wächst nicht, da der Systemverwalter keine neuen Netzwerkadressen für die neue Netzwerke benötigt. Die Routing-Information für alle Subnetze kann in einem einzelnen Eintrag zusammengefasst werden. • Der Systemverwalter hat die Freiheit, neue Subnetze einzuführen, ohne neue öffentliche Netzwerkadressen anfordern zu müssen. 16 • 2.3.3. "Routenflattern" (d. h. häufiges Ändern der Routen) innerhalb eines lokalen Netzes betrifft nicht die Routingtabellen des Internet, da das Internet nicht bezüglich der Subnetzadresse routet, sondern bezüglich des Netzwerk-Präfixes. Internet-Router benutzen nur das Netzwerk-Präfix der Zieladresse, um den Datenverkehr in eine Umgebung mit Subnetzen weiterzuleiten. Router innerhalb des Subnetzes (z. B. im Intranet) benutzen das erweiterte Netzwerk-Präfix, um den Verkehr zwischen den Subnetzen zu routen. Das erweiterte Netzwerk-Präfix besteht aus dem Netzwerk-Präfix der Netzklasse und der Subnetzadresse. Bemerkungen zur Subnetzplanung Die Erstellung eines Adressplanes erfordert eine sorgfältige Planung des Netzwerkes durch den Netzwerkadministrator. Vier zentrale Fragen müssen beantwortet werden, bevor mit der Planung begonnen werden kann: 1) Wieviele Subnetze benötigt die Organisation heute? 2) Wieviele Subnetze wird die Organisation in der Zukunft benötigt? 3) Wieviele Rechner sind heute in dem größten Subnetz enthalten? 4) Wieviele Rechner werden jemals in dem größten Subnetz voraussichtlich enthalten sein ? Im ersten Planungsschritt muss die Anzahl der benötigten Subnetze festgestellt werden und auf die nächste Zweierpotenz aufgerundet werden. Wenn eine Organisation 9 Subnetze benötigt, dann muss auf 2 hoch 4 (16) aufgerundet werden. Dabei müssen zukünftige Erweiterungen berücksichtigt werden. Wenn heute z. B. 14 Subnetze gebraucht werden, so sollten nicht 16 (2 hoch 4) sondern besser 32 (2 hoch 5) Subnetze eingerichtet werden, um Raum für Erweiterungen zu lassen. Im zweiten Schritt muss sichergestellt werden, dass im größten Subnetz der Organisation genügend Hostadressen verfügbar sind. Wenn z. B. im größten Netz 50 Hostadressen benötigt werden, muss auf 2 hoch 6 (64) aufgerundet werden. Im letzten Schritt ist festzustellen, ob der Adressbereich der Organisation ausreichend ist, um die oben festgestellten Anforderungen zu erfüllen. Hat die Organisation z. B. ein einziges /16-Netz, so können problemlos 4 Bit für die Subnetznummer und 6 Bit für die Hostnummer geplant werden. Hat die Organisation aber mehrere /24-Netze und sollen weitere 9 Subnetze gebildet werden, so muss jedes der /24Netze in vier Subnetze (mittels 2 Bit) aufgeteilt werden. Aus drei in dieser Art aufgeteilten /24-Netzen kann dann das Netz der Organisation gebildet werden. Eine Alternative wäre die Verwendung von Adressen aus dem privaten Bereich (RFC 1918) für interne Verbindungen und die Verwendung eines Network Adress Translators (NAT), um externen Internet Zugriff zu ermöglichen. Übung 1: Einer Organisation wurde die Netzwerknummer 193.1.1.0/24 zugewiesen, und es müssen sechs Subnetze angelegt werden. Im größten Subnetz werden 25 Hostadressen benötigt. Aufgaben: 1.) Definieren der Subnetzmaske / der erweiterten Präfixlänge 2.) Im nächsten Schritt muss die Subnetzmaske und die erweiterte Netzwerkpräfix festgelegt werden 17 3.) Alle Subnetze bestimmen 4.) Definieren der Hostadressen für jedes Subnetz 5.) Definieren der Broadcast-Adresse für jedes Subnetz Übung 2: Einer Organisation wurde die Netzwerknummer 140.25.0.0/16 zugewiesen. Es soll eine maximale Anzahl von Subnetzen gebildet werden. Die einzelnen Subnetze können bis zu 60 Rechner umfassen. 1.) Definieren der Subnetzmaske / des erweiterten Netzwerkpräfixes 2.) Im nächsten Schritt muss die Subnetzmaske und die erweiterte Netzwerkpräfix festgelegt werden 3.) Definieren der Subnetzmaske 4.) Definieren der Hostadressen für jedes Subnetz 5.) Definieren der Broadcast-Adresse für jedes Subnetz 2.4. Variable Length of Subnetting (VLSM) Im Jahr 1987 wurde durch RFC 1009 die Variable Length Subnet Masks (variabel lange Subnetzmasken) eingeführt. Dieses neue Verfahren behob den Missstand, dass innerhalb eines Netzes nur eine Subnetzmaske verwendet werden konnte und ermöglichte die weitergehende individuelle Aufteilung von zugeteilten Netzen. Bild: Beispiel für die Variable Length Subnet Masks VLSM bezieht sich hierbei wiederum nur auf die unternehmensinterne Verwaltung; im globalen Routing spielen diese verfeinerten Subnetzaufteilungen keine Rolle. VLSM erleichtert und verbessert die Nutzung des zugeteilten Adressbereichs innerhalb des Unternehmens, da Subnetze effizienter gestaltet werden konnten und darüber hinaus Routing-Informationen unternehmensintern auf Subnetze delegiert werden können. VLSM verbessert die Ausnutzung zugeteilter Subnetze enorm. Die RFC 1009 erläutert, wie in einem Subnetz mehr als eine Subnetzmaske zugewiesen werden können. Wird einem IP-Netz mehr als eine Subnetzmaske zugewiesen, 18 so ist dies ein IP-Netz mit einer "variabel langen Subnetzmaske", da die erweiterten Netzwerkpräfixe unterschiedliche Längen haben. Mehrere Subnetzmasken erlauben die effizientere Nutzung des IP-Adressraumes, der einer Organisation zugewiesen wurde. Mehrere Subnetzmasken erlauben ebenso das Zusammenfassen von Routen. Damit kann in dem Bereich einer Organisation die Routinginformation für den Backbone deutlich reduziert werden. 2.4.1. Effektive Nutzung des IP-Adressraums VLSM unterstützt die effektivere Nutzung des einer Organisation zugewiesenen IPAdressraums. Eines der Hauptprobleme bei der Beschränkung auf eine Subnetzmaske pro Netzwerk war, dass nach der Festlegung der Subnetzmaske die Organisation auf eine feste Anzahl von in der Größe fest definierten Subnetzen festgelegt war. Nehmen wir an, ein Netzwerkverwalter konfiguriert das Netzwerk 103.5.0.0/16 mit einem /22-Netzwerkpräfix. Bild: Netzwerk 130.5.0.0/16 mit einem /22 erweiterten Netzwerkpräfix Das obige Bild zeigt ein /16-Netzwerk, bei dem mit einem erweiterten /22Netzwerkpräfix 64 (26 ) Subnetze erzeugt werden, wobei jedes maximal 1022 (210 -2) Rechner im Subnetz unterstützt. Wenn neben einem großen Subnetz weitere Subnetze mit nur ca. 20 - 30 Rechnern benötigt werden, muss der Netzwerkadministrator trotzdem ein Netz mit einem /22Präfix zuweisen. Durch diese Zuweisung an dieses kleine Subnetz werden ca. 1000 IP-Adressen verschwendet. Die Beschränkung auf eine einzige Netzmaske fördert daher nicht die effiziente Nutzung des zugewiesenen Adressraumes einer Organisation. Bild: Netzwerk 130.5.0.0/16 mit einem /26 Netzwerkpräfix Die Verwendung mehrerer Subnetzmasken wäre eine Lösung für dieses Problem. Der Netzwerkadministrator würde auch in dem 130.5.0.0/16 Netzwerk zusätzlich ein Netzwerk mit einem /26-Netzwerkpräfix konfigurieren, wie das obige Bild zeigt. Ein /16-Netzwerk mit einem /26-Präfix erlaubt 1024 (210) Subnetze, von denen jedes maximal 62 (26 -2) Rechner haben kann. Ein /26-Subnetz wäre ideal für ein Subnetz mit weniger als 60 Rechnern, während ein /22-Subnetz passend für ein Subnetz mit bis zu 1000 Rechnern ist. 19 2.4.2. Zusammenfassen von Routen (Route Aggregation) VLSM erlaubt auch die rekursive Aufteilung des Adressraumes einer Organisation, so dass er wieder zusammengefasst werden kann, damit die Menge an Routinginformation auf der obersten Ebene reduziert werden kann. Zuerst wird ein Netzwerk in Subnetze geteilt. Dann wird ein Teil des Subnetzes wieder geteilt und davon wieder ein Teil. Damit kann die detaillierte Routinginformation über ein Subnetz vor den Routern eines anderen Subnetzes verborgen werden. 11.0.0.0./8 11.1.0.0/16 11.2.0.0/16 11.3.0.0/16 : 11.252.0.0/16 11.253.0.0/16 11.254.0.0/16 11.1.1.0/24 11.1.2.0/24 11.1.253.0/24 11.1.254.0/24 11.253.32.0/19 11.253.64.0/19 11.253.96.0/19 : 11.253.128.0/19 11.253.160.0/19 11.253.192.0/19 11.1.253.32/27 11.1.253.64/27 : 11.1.253.160/27 11.1.253.192/27 Bild: VLSM erlaubt die rekursive Aufteilung eines Netzwerkbereiches 20 In obigem Bild wird das 11.0.0.0/8-Netzwerk zuerst mit einem /16-Netzwerkpräfix konfiguriert. Das Subnetz 11.1.0.0/16 wird dann mit einem /24-Netzwerkpräfix konfiguriert. Genauso wird dann das Subnetz 11.253.0.0/16 mit eine /19Netzwerkpräfix konfiguriert. Wichtig bei diesem Prozess ist, dass auf gleicher Rekursionsebene nicht unbedingt das gleiche Netzwerkpräfix benutzt werden muss. Die Unterteilung des Adressraumes kann solange wie notwendig vom Netzwerkadministrator vorgenommen werden. 2.4.3. VLSM Planungsempfehlungen Wenn man ein Netzwerk mit VLSM plant, muss sich der Netzwerkplaner immer wieder die gleichen Fragen stellen wie bei der Planung eines traditionellen Subnetzes. Dieselben Planungsentscheidungen müssen auf jeder Ebene der Hierarchie getroffen werden: 1) Wie viele Subnetze werden heute auf dieser Ebene gebraucht? 2) Wie viele Subnetze werden in Zukunft auf dieser Ebene gebraucht? 3) Wie viele Rechner sind im größten Subnetz dieser Ebene heute? 4) Wieviele Rechner werden im größten Subnetz dieser Ebene in der Zukunft sein? Auf jeder Ebene muss das Planungsteam sicherstellen, dass genügend Reserve an Subnetzen und Rechnern in den Subnetzen für die Zukunft vorhanden ist. Nehmen wir an, dass ein Netzwerk auf mehrere Standorte verteilt ist. Wenn eine Organisation heute drei Standorte hat, wird sie für die Subnetze drei Bits (2 hoch 3 = 8) benötigen, damit noch weitere Standorte hinzugefügt werden können. An jedem Standort wiederum wird es wahrscheinlich wieder eine Aufteilung in Subnetze für jedes Gebäude geben. Schließlich kann es innerhalb eines Gebäudes eine dritte Ebene von Subnetzen geben, wobei jeder Arbeitsgruppe ein Subnetz zugeordnet wird. Bei dieser Hierarchie wird die oberste Ebene durch die Anzahl der Standorte bestimmt, die zweite Ebene durch maximale Anzahl der Gebäude an den Standorten und die dritte Ebene wird durch die maximale Anzahl Subnetze pro Gebäude und der maximalen Anzahl Benutzer in einem Subnetz bestimmt. Die Planung einer hierarchischen Anordnung der Subnetze muss sehr sorgfältig erfolgen. Es ist wichtig, dass der Netzwerkplaner die Subnetze rekursiv absteigend bis zur untersten Ebene plant. Wenn er an der untersten Ebene angekommen ist, muss er sicher sein, dass die entstandenen Subnetze genügend Adressen haben, um alle Rechner anschließen zu können. Wenn dieser Adressplan dann umgesetzt wird, können die Adressen der Subnetze zu einzelnen Adressblöcken zusammengefasst werden, so dass die Routing-Tabellen des Backbone klein bleiben. 2.4.4. Anforderungen für die Umsetzung von VLSM Für eine erfolgreiche Umsetzung von VLSM gibt es drei Voraussetzungen: • Das Routing-Protokoll muss die erweiterten Netzwerkpräfixe bei jeder Routenbekanntgabe mitschicken. • Alle Router müssen einen Weiterleitungsalgorithmus implementieren, der auf dem längsten möglichen Vergleich basiert. 21 • Damit Routen zusammengefasst werden können, müssen die Adressen entsprechend der Topologie vergeben werden. 2.4.4.1 Senden des erweiterten Netzwerkpräfixes Moderne Routing-Protokolle wie OSPF und I-IS-IS erlauben den Einsatz von VLSM, indem sie das erweiterte Netzwerkpräfix oder die entsprechende Netzwerkmaske mit jeder Route mitschicken. Damit kann jedes Subnetz mit seinem Netzwerkpräfix oder Netzwerkmaske bekannt gemacht werden. Falls das Routing-Protokoll kein Netzwerkpräfix mittransportiert, muss der Router entweder annehmen, dass das lokal definierte Netzwerkpräfix verwendet werden soll, oder er sieht in einer Tabelle nach, in der die Maske stehen muss. Bei der ersten Möglichkeit kann nicht sicher gestellt werden, dass das korrekte Netzwerkpräfix verwendet wird. Die zweite Möglichkeit mit statischen Tabellen ist nicht sinnvoll, da sie schwer zu warten sind und der Mensch u.U. falsche Informationen eingibt. Die Konsequenz daraus ist, dass beim Einsatz von VLSM in einer komplexen Umgebung OSPF oder I-IS-IS als das Interior Gateway Protocol (IGP) anstatt von RIP-1 verwendet werden muss! Es sollte bemerkt werden, dass RIP-2, definiert im RFC 1388, das RIP-Protokoll durch den Transport des Netzwerkpräfix verbessert. RIP-2 unterstützt daher VLSM. 2.4.4.2 Weiterleitungsalgorithmus Alle Router müssen einen Weiterleitungsalgorithmus benutzen, der auf dem längsten möglichen Vergleich basiert. Der Einsatz von VLSM bedeutet, dass es eine Menge von Netzwerken mit Netzwerkpräfix gibt, die eine Teilmengenbeziehung haben. Eine Route mit einem längeren Netzwerkpräfix beschreibt eine kleinere Menge von Zieladressen als eine Route mit einem kürzeren Netzwerkpräfix. Eine Route mit einem längeren Netzwerkpräfix ist daher spezifischer als eine Route mit einem kürzeren Netzwerkpräfix. Wenn Router Pakete weiterleiten, müssen sie die spezifischte Route (d. h. mit dem längsten Netzwerkpräfix) benutzen. Wenn z. B. die Zieladresse eines IP-Paketes 11.1.2.5 lautet und es in der Routingtabelle drei Netzwerkpräfixe gibt (11.1.2.0/24, 11.1.0.0/16, und 11.0.0.0/8), wählt der Router die Route 11.1.2.0/24. Die Route 11.1.2.0/24 wird ausgewählt, da sie größtmöglich mit der Zieladresse des IP-Paketes übereinstimmt. Dies wird im nächsten Bild dargestellt. Bild: Beste Übereinstimmung der Route mit dem längsten Netzwerkpräfix (höcht spezifische Route) Da die Zieladresse mit allen drei Routen übereinstimmt, muss sie einem Rechner zugewiesen werden, der im 11.1.2.0/24-Subnetz angeschlossen ist. Falls die Adresse einem Rechner zugewiesen werden würde, der in dem 11.1.0.0/16- oder dem 11.0.0.0/8-Subnetz angeschlossen ist, würde der Router niemals den Datenverkehr an den Rechner weiterleiten, da der Algorithmus, der auf dem längsten möglichen Vergleich basiert, annimmt, dass der Rechner im Subnetz 11.1.2.0/24 angeschlossen ist. 22 2.4.4.3 Topologieabhängige Adresszuweisungen Da OSPF und RIPv2 die erweiterte Netzwerkpräfixinformation mit jeder Route weiter verbreiten, können VLSM-Subnetze willkürlich in der Topologie einer Organisation verteilt sein. Um aber ein hierarchisches Routing zu unterstützen und die Größe der Routingtabellen klein zu halten, sollten die Adressen so zugewiesen werden, dass dabei die Topologie berücksichtigt wird. Hierarchisches Routing erfordert, dass bei der Zuweisung von Adressen die aktuelle Netzwerktopologie berücksichtigt wird. Indem ein Bereich von mehreren Adressgruppen zusammengefasst und einer Region in der Topologie zugewiesen wird, kann dieser Bereich zu einer einzigen Routinginformation zusammengefasst werden. Hierarchisches Routing erlaubt dann die rekursive Anwendung dieses Verfahrens an verschiedenen Punkten innerhalb der Routingtopologie. Wenn die Adressen nicht unter Berücksichtigung der Topologie zugewiesen wurden, kann die Zusammenfassung von Adressbereichen nicht vorgenommen werden und die Routingtabellen können nicht verkleinert werden. 2.4.5. VLSM Entwurfsbeispiel 1 Einer Organisation wurde die Netzwerkadresse 140.25.0.0/16 zugewiesen und sie plant die Verwendung von VLSM. Das nachfolgende Bild zeigt bildlich den VLSMEntwurf für die Organisation. Bild 20: Addressverteilung für das VLSM-Beispiel Im ersten Schritt wird die Netzwerkadresse in 16 gleich große Adressblöcke aufgeteilt. Das Subnetz Nummer eins wird dann in 32 gleich große Blöcke aufgeteilt, während das Subnetz Nummer 14 in 16 gleich große Blöcke aufgeteilt wird. Zum Schluss wird das Subnetz Nummer 14->14 in acht gleich große Blöcke zerlegt. Definieren der 16 Subnetze von 140.25.0.0/16 Im ersten Schritt wird, wie das nachfolgende Bild demonstriert, die Basisnetzwerkadresse in 16 gleich große Adressblöcke geteilt. 23 Bild: Definieren der 16 Subnetze für 140.25.0.0/16 Es reichen vier Bits, um jedes der 16 Subnetz eindeutig zu identifizieren; es wird somit ein Netzwerkpräfix /20 gebraucht, um die 16 Subnetze innerhalb des Netzes 140.25.0.0/16 zu definieren. Jedes dieser Subnetze hat einen fortlaufenden Block von 212 (= 4096) Netzwerkadressen. Die 16 Subnetze des Netzes 140.25.0.0/16 sind nachstehend angegeben. Die Subnetze werden von 0 bis 15 durch nummeriert. Basisnetzwerk: 10001100.00011001.00000000.00000000 = 140.25.0.0/16 Subnetz #0: 10001100.00011001.00000000.00000000 = 140.25.0.0/20 Subnetz #1: 10001100.00011001.00010000.00000000 = 140.25.16.0/20 Subnetz #2: 10001100.00011001.00100000.00000000 = 140.25.32.0/20 Subnetz #3: 10001100.00011001.00110000.00000000 = 140.25.48.0/20 Subnetz #4: 10001100.00011001.01000000.00000000 = 140.25.64.0/20 : Subnetz #13: 10001100.00011001.11010000.00000000 = 140.25.208.0/20 Subnetz #14: 10001100.00011001.11100000.00000000 = 140.25.224.0/20 Subnetz #15: 10001100.00011001.11110000.00000000 = 140.25.240.0/20 Definieren der Hostadressen für das Subnetz Nummer drei (140.25.48.0/20) Festlegen der Hostadressen, die in Subnetz Nummer drei zugewiesen werden können (140.25.48.0/20). Bild: Definieren der Hostadressen für Subnetz drei (140.25.48.0/20) Da das Hostadressenfeld des Subnetzes #3 insgesamt 12 Bit aufweist, gibt es 4094 (=212 - 2) Hostadressen in dem Adressblock; die gültigen Hostadressen für das Subnetz #3 werden unten angegeben. Subnetz #3: 10001100.00011001.00110000.00000000 = 140.25.48.0/20 Rechner #1: 10001100.00011001.00110000.00000001 = 140.25.48.1/20 Rechner #2: 10001100.00011001.00110000.00000010 = 140.25.48.2/20 : Rechner #4093: 10001100.00011001.00111111.11111101 = 140.25.63.253/20 Rechner #4094: 10001100.00011001.00111111.11111110 = 140.25.63.254/20 Bei der Broadcast-Adresse des Subnetzes #3 sind alle Bits der Hostadresse auf eins gesetzt: 10001100.00011001.00111111.11111111 = 140.25.63.255 Die Broadcast-Adresse des Subnetzes drei ist genau um eins kleiner als die Basisadresse des Subnetzes vier: (140.25.64.0). Definieren der Subnetze für Subnetz Nummer 14 (140.25.224.0/20) 24 Nachdem das Basisnetzwerk in 16 Subnetze unterteilt wurde, wird das Subnetz #14 wiederum in 16 Subnetze unterteilt. Bild: Definieren der Subnetze des Subnetzes 14 (140.25.224.0/20) Es werden vier weitere Bits benötigt, um die erforderlichen Subnetze zu adressieren; ein Netzwerkpräfix /24 wird hierfür verwendet. Die 16 Subnetze des Adressblockes 140.25.224.0/20 sind unten angegeben. Die Subnetze werden von 0 bis 15 durchnummeriert. Subnetz #14: 10001100.00011001.11100000.00000000 = 140.25.224.0/20 Subnetz #14-0: 10001100.00011001.11100000.00000000 = 140.25.224.0/24 Subnetz #14-1: 10001100.00011001.11100001.00000000 = 140.25.225.0/24 Subnetz #14-2: 10001100.00011001.11100010.00000000 = 140.25.226.0/24 Subnetz #14-3: 10001100.00011001.11100011.00000000 = 140.25.227.0/24 Subnetz #14-4: 10001100.00011001.11100100.00000000 = 140.25.228.0/24 : Subnetz #14-14: 10001100.00011001.11101110.00000000 = 140.25.238.0/24 Subnetz #14-15: 10001100.00011001.11101111.00000000 = 140.25.239.0/24 Definieren der Hostadressen für Subnetz 14->3 (140.25.227.0/24) Festlegen der Hostadressen, die in Subnetz Nummer 14->3 zugewiesen werden können (140.25.227.0/24). Bild: Definieren der Hostadressen für Subnetz 14-3 (140.25.227.0/24) Jedes der Subnetze des Subnetzes 14->3 hat acht Bits für die Hostadressen. Damit hat jedes Subnetz einen Block von 254 (=28-2) gültigen Hostadressen. Die Rechner werden von eins bis 254 durchnumeriert. Die gültigen Hostadressen ergeben sich so zu: Subnetz #14-3: 10001100.00011001.11100011.00000000 = 140.25.227.0/24 Rechner #1 10001100.00011001.11100011.00000001 = 140.25.227.1/24 Rechner #2 10001100.00011001.11100011.00000010 = 140.25.227.2/24 Rechner #3 10001100.00011001.11100011.00000011 = 140.25.227.3/24 Rechner #4 10001100.00011001.11100011.00000100 = 140.25.227.4/24 25 Rechner #5 10001100.00011001.11100011.00000101 = 140.25.227.5/24 . Rechner #253 10001100.00011001.11100011.11111101 = 140.25.227.253/24 Rechner #254 10001100.00011001.11100011.11111110 = 140.25.227.254/24 Bei der Broadcast-Adresse des Subnetzes 14->3 sind alle Bits der Hostadresse auf eins gesetzt: 10001100.00011001.11100011.11111111 = 140.25.227.255 Die Bradcastadresse des Subnetzes 14->3 ist genau um eins kleiner als die Basisadresse des Subnetzes 14->4 (140.25.228.0). Definieren der Subnetze des Subnetzes 14->14 (140.25.238.0/24) Nachdem das Subnetz 14 in 16 Subnetze unterteilt wurde, wird das Subnetz 14->14 nochmals in acht gleich große Adressblöcke unterteilt. Bild: Definieren der Subnetze des Subnetzes 14-14 (140.25.238.0/24) Es werden drei weitere Bits gebraucht, um die acht Subnetze zu adressieren; es muss daher ein Netzwerkpräfix /27 verwendet werden. Die acht Subnetze des Adressblocks 140.25.238.0/24 ergeben sich damit wie folgt: Subnetz #14-14: 10001100.00011001.11101110.00000000 = 140.25.238.0/24 Subnetz#14-14-0: 10001100.00011001.11101110.00000000 = 140.25.238.0/27 Subnetz#14-14-1: 10001100.00011001.11101110.00100000 = 140.25.238.32/27 Subnetz#14-14-2: 10001100.00011001.11101110.01000000 = 140.25.238.64/27 Subnetz#14-14-3: 10001100.00011001.11101110.01100000 = 140.25.238.96/27 Subnetz#14-14-4: 10001100.00011001.11101110.10000000 = 140.25.238.128/27 Subnetz#14-14-5: 10001100.00011001.11101110.10100000 = 140.25.238.160/27 Subnetz#14-14-6: 10001100.00011001.11101110.11000000 = 140.25.238.192/27 Subnetz#14-14-7: 10001100.00011001.11101110.11100000 = 140.25.238.224/27 Definieren der Hostadressen für das Subnetz 14->14->2 (140.25.238.64/27) Festlegen der Hostadressen die in Subnetz Nummer 14->14->2 zugewiesen werden können (140.25.238.64/27). 26 Bild: Definieren der Hostadressen für Subnetz 14-14-2 (140.25.238.64/27) Jedes der Subnetze 14->14 hat fünf Bits in dem Feld für Hostadressen. Dies bedeutet, dass jedes Subnetz einen Block von 30 gültigen Adressen (25 -2) hat. Die Rechner werden von 1 bis 30 durchnumeriert. Die gültigen Rechneradressen für das Subnetz 14-14-2 sind unten angegeben. Subnetz#14-14-2: 10001100.00011001.11101110.01000000 = 140.25.238.64/27 Rechner #1 10001100.00011001.11101110.01000001 = 140.25.238.65/27 Rechner #2 10001100.00011001.11101110.01000010 = 140.25.238.66/27 Rechner #3 10001100.00011001.11101110.01000011 = 140.25.238.67/27 Rechner #4 10001100.00011001.11101110.01000100 = 140.25.238.68/27 Rechner #5 10001100.00011001.11101110.01000101 = 140.25.238.69/27 . Rechner #29 10001100.00011001.11101110.01011101 = 140.25.238.93/27 Rechner #30 10001100.00011001.11101110.01011110 = 140.25.238.94/27 Bei der Broadcast-Adresse des Subnetzes 14->14->2 sind alle Bits der Hostadresse auf eins gesetzt: 10001100.00011001.11011100.01011111 = 140.25.238.95 2.5. Classless Interdomain Routing (CIDR) Allgemeine Informationen über die CIDR Deployment (CIDRD) Arbeitsgruppe innerhalb der IETF und ihren Auftrag: http://www.ietf.cnri.reston.va.us/html.charters/cidrd-charter.html Um 1992 hat das exponentielle Wachstum des Internets unter den Mitgliedern der IETF ernsthafte Bedenken ausgelöst, ob das Routingsystem des Internet mit dem abzusehenden Wachstum Schritt halten kann. Folgende Probleme waren absehbar: • Die absehbare vollständige Belegung des Klasse-B-Adressraumes • Das schnelle Wachsen der globalen Routingtabellen des Internets • Die unter Umständen vollständige Belegung des 32-Bit IPv4 Adressraumes CIDR wurde offiziell im September 1993 in den RFC 1517, 1518, 1519 und 1520 dokumentiert. CIDR unterstützt zwei wichtige Eigenschaften, mit denen das globale Routing-System des Internet unterstützt wird: • CIDR eliminiert das traditionelle Konzept der Klasse-A-, B- und C-Adressen. Mit CIDR können nun auch bisherige Class-A-Netzwerke auch innerhalb des Internets und außerhalb von Organisationen in kleinere Subnetze aufgeteilt 27 werden. Damit kann der IPv4-Adressraum effizienter vergeben werden und das Internet wachsen, bis IPv6 umfassend zur Verfügung steht. • CIDR unterstützt das Zusammenfassen von unter Umständen Tausenden von Klassenrouten zu einem einzigen Eintrag in der Routingtabelle. Damit kann durch einen einzigen Routingeintrag der Verkehr zu vielen verschiedenen Netzen angegeben werden. Durch die Zusammenfassung von Routen kann die Menge an Routen in den Hauptroutern des Internet besser kontrolliert werden. Das Routenflattern (häufiges Ändern der Verfügbarkeit einzelner Routen) wird reduziert und die Administration der Router wird vereinfacht. Ohne die schnelle Verfügbarkeit des CIDR hätten die Routingtabellen mehr als 70000 statt heute 30000 Einträge. Die Abschaffung des Klassenschemas sprengte buchstäblich die Ketten, die die IPAdressierung bis dato fesselten. Bisher reservierte Class-A-Netzwerke können nun von den Regional Internet Registries effizient zur Vergabe von Subnetzen an Provider genutzt werden, die dann diese Subnetze ohne Einschränkungen in verschieden große Subnetze aufteilen konnten. Z.B. können Provider einen /20-Adressblock von einer Regional Internet Registries erhalten. Der Provider kann diesen Block je nach Bedarf frei "portionieren" und z.B. dem Kunden A daraus ein /24-Adressblock, Kunde B ein /29-Block etc. zugewiesen werden, ohne dass es zu Über- oder Unterschneidungen im Adressblock kommt. Die Verwaltung des IP-Adressraums wurde somit für alle Beteiligten erheblich übersichtlicher und transparenter, obwohl nun bei jedem Subnetz die Angabe der entsprechenden Subnetzmaske Pflicht wurde, um so die Größe des jeweiligen Subnetzes definieren zu können. Die frappierende Ähnlichkeit von CIDR und VLSM ist übrigens nicht zufällig, sondern durchaus eine gewollte Weiterentwicklung einer bewährten Idee. Während die flexiblen Subnetzaufteilungen von VLSM nur innerhalb einer Organisation bekannt waren und das Internet weiterhin nur das gesamte, der Organisation zugeteilte Subnetz kannte, ermöglicht CIDR auch die Bekanntgabe der organisationsinternen Subnetze nach außen zum Internet hin. Um diese neue Flexibilität nicht mit völlig aus den Fugen geratenden Routing Tabellen zu bezahlen, die so groß sein würden, dass das Internet schlicht nicht mehr funktionieren würde, bezog sich das zweite Konzept von CIDR auch auf das Zusammenfassen von Routen zu autonomen Netzwerken. Vereinfacht gesagt bedeutet dies, dass Organisationen, die einen IP-Adressblock zugewiesen bekommen haben, diesen autonom verwalten und aufteilen können, nach außen jedoch nur den gesamten IP-Adressblock propagieren. 28 Bild: CIDR erlaubt die Zusammenfassung von Routen und reduziert damit die Routingtabellen Das obige Bild zeigt, wie die durchdachte Nutzung von CIDR die Größe der Routingtabellen reduziert. Router D kann durch die Angabe einer Route (11.1.253.0/24) sechs Subnetze zusammenfassen. Genauso können der Router B alle dahinterliegenden Subnetz und der Router C alle sechs Subnetz zu einer Route (11.253.0.0/16) zusammenfassen. Schließlich, da die Subnetzstruktur nicht außerhalb der Organisation bekannt ist, gibt der Router A dem globalen Internet nur eine Route bekannt (11.0.0.0/8 oder 11/8). Schematisch ähnlich verläuft das Routing mit dem Routing-Tabellenschema, wie es mit CIDR eingeführt wurde. Der zentrale Router einer Organisation mit einem autonomen IP-Adressblock propagieren ihren gesamten Adressblock im Idealfall mit einem einzigen Routing-Eintrag und geben damit allen anderen zentralen Router aller Organisationen mit eigenen, autonomen IP-Adressblöcken genug Informationen, wohin der Datenverkehr zu einer bestimmten IP-Adresse zur Weitergabe gesendet werden muss. 2.5.1. CIDR für die effiziente Nutzung des IPv4 Adressraumes CIDR eliminiert das traditionelle Konzept der Klasse-A-, B- und C- Netwerkadressen und ersetzt es durch das allgemeine Konzept eines Netzwerkpräfixes. Router benutzen ein Netzwerkpräfix anstatt der ersten drei Bits einer IP-Adresse, um festzustellen, welcher Teil der Adresse die Netzwerknummer und welcher Teil die Hostadresse ist. CIDR erlaubt damit die Vergabe von Netzwerken einer beliebigen Größe, anstatt der 8-, 16- oder 24-Bit Netzwerknummer, die durch die Klassen vorgegeben werden. Eine Adresse, die beispielweise eine 20 Bit Netzwerkadresse und eine 12 Bit Hostadresse hat, wird mit einer Präfixlänge von 20 (/20) angegeben. Das Geschickte ist, dass eine /20-Adresse eine frühere Klasse-A-, B- oder C-Adresse sein kann. Router, die CIDR unterstützen, interpretieren nicht die ersten drei Bit der Adresse, sondern benutzen ausschließlich das mit der Route mitgelieferte Längenpräfix. In der klassenlosen Umgebung geben Präfixe homogene Adressblöcke des IPAdressraumes an. Beispielsweise geben alle Präfixe mit einem /20-Präfix die gleichen Adressräume an (212 oder 4096 Hostadressen). Ein /20-Präfix kann einer Klasse-A-, B- oder C-Adresse zugewiesen werden. 29 Bild: /20 homogene Adressblöcke Die nachstehende Tabelle gibt die am meisten verwendeten CIDR-Adressblöcke an. Aus der Tabelle ist ersichtlich, dass eine /15-Adresse auch in der traditionellen Punkt-Notation 255.254.0.0 angegeben werden kann. Ein /15-Bereich ist ein linearer Block von 128k (exakt 131072) Adressen. In der klassenweisen Notation entspräche dies zwei Klasse-B-Netzwerke oder 512 Klasse-C-Netzwerke. Tabelle: CIDR Adressblöcke 2.5.2. Rechneranforderungen für die CIDR-Adressierung Es ist wichtig zu bemerken, dass bei der Verwendung von CIDR-Adressen es einige Anforderungen an die Rechner gibt. Da viele Rechner klassenweise arbeiten, können sie nicht mit einer Maske konfiguriert werden, die kürzer ist als die der entsprechenden Klasse. Beispielweise können Probleme auftreten, wenn man die Adresse 200.25.16.0 als /20 verwenden will, um 4094 (2 hoch 12 - 2) Rechner im Netzwerk zu unterstützen. Die Software auf jeder Station erlaubt es unter Umständen nicht, dass man eine klassische Klasse-C-Adresse (200.25.16.0) mit einer 20-BitMaske konfiguriert, da die natürliche Maske für eine solche Adresse ein 24-Bit-Maske ist. Falls die Rechner-Software CIDR unterstützt, können auch kürzere Masken definiert werden Es wird aber keine Probleme mit den Rechnern geben, wenn man einen Adressblock 200.25.16.0/20 (eine klassische Klasse-C-Adresse) als einen Block von 16 /24Adressen benutzen will, da die Rechner ihre lokale /24-Adresse als eine Klasse-CAdresse behandeln. Genauso kann der Adressblock 130.14.0.0/16 (eine klassische Klasse-B-Adresse) als 255 /24 benutzt werden, da die Rechner die /24-Adresse als Subnetze des /16 interpretieren werden. Falls die Netzwerksoftware es erlaubt, kürzere als die erwarteten Masken zu verwenden, ist der Netzwerkverwalter sehr flexibel bezüglich des Netzwerkdesigns und der Adresszuweisung. 30 2.5.3. Effiziente Adresszuweisung In einer klassenorientierten Umgebung kann ein Internet Service Provider (ISP) nur /8-, /16- oder /24-Adressbereiche belegen. In einer CIDR-Umgebung kann er genau die Adressbereiche belegen, die der Kunde benötigt. Damit wird eine knappe Ressource nicht verschwendet. Nehmen wir an, ein ISP hat den Adressblock 206.0.64.0/18 zugewiesen bekommen. Dieser Block beinhaltet 16384 (214) IP-Adressen oder auch 64 /24-Adressblöcke. Falls ein Kunde 800 Adressen benötigt, kann er vom ISP anstelle einer Klasse-BAdresse (ca. 64700 Adressen würden verschwendet) oder vier verschiedenen Klasse-C-Adressen (wobei vier Routen in den internationalen Routingtabellen eingetragen werden müssten) der Block 206.0.68.0/22 zugewiesen werden. Dieser Block von 1024 Adressen besteht aus vier aufeinanderfolgenden /24Adressblöcken. Die Effizienz dieser Zuweisung wird nachstehend dargestellt. Bild: CIDR unterstützt effiziente Adresszuweisung 2.5.4. Beispiel für CIDR Adresszuweisung In diesem Beispiel nehmen wir an, dass der ISP den Adressblock 200.25.0.0/16 zugewiesen bekommen hat. Dieser Block enthält 65536 (216) IP-Adressen (oder 256 /24). Aus dem 200.25.0.0/16-Block soll der 200.25.16.0/20-Block zugewiesen werden. Dieser kleinere Block umfasst 4096 (212) Adressen (oder 16 /24) dar. Adressblock 11001000.00011001.00010000.00000000 200.25.16.0/20 In einer klassenweisen Adressierung ist der ISP gezwungen, diesen /20-Block als 16 individuelle /24-Blöcke zu behandeln. Bild: Aufteilen der Adressen - Klassenweise Umgebung 31 In einer klassenlosen Umgebung kann der ISP den Adressraum nach Belieben aufteilen. Er kann den Adressraum halbieren und den einen Teil der Organisation A zuweisen. Den Rest kann er ebenso halbieren und einen Teil der Organisation B zuweisen. Das restliche Viertel kann wiederum in zwei Teile geteilt werden und zwei Organisationen C und D zugewiesen werden. Jede der Organisationen kann den zugewiesenen Adressbereich innerhalb ihres "Intranet" nach Bedarf zuweisen. Dies wird nachfolgend grafisch dargestellt. Bild: Aufteilen der Adressen - Klassenlose Umgebung 1. Schritt: Aufteilen des Adressblocks 200.25.16.0/20 in zwei gleich große Teile. Jeder der Blöcke stellt die Hälfte des Adressraumes oder 2048 IP-Adressen dar. ISP's Block 11001000.00011001.00010000.00000000 200.25.16.0/20 Organisation A: 11001000.00011001.00010000.00000000 200.25.16.0/21 Reserviert: 11001000.00011001.00011000.00000000 200.25.24.0/21 2. Schritt: Teilen des reservierten Blockes (200.25.24.0/21) in zwei gleich große Teile. Jeder der Blöcke stellt ein Viertel des Adressraumes oder 1024 IP-Adressen dar. Reserviert: 11001000.00011001.00011000.00000000 200.25.24.0/21 Organisation B: 11001000.00011001.00011000.00000000 200.25.24.0/22 Reserviert: 11001000.00011001.00011100.00000000 200.25.28.0/22 3. Schritt: Teilen des reservierten Blockes (200.25.28.0/20) in zwei gleich große Teile. Jeder der Blöcke stellt ein Achtel des Adressraumes oder 512 IP-Adressen dar. Reserviert: 11001000.00011001.00011100.00000000 200.25.28.0/22 Organisation C: 11001000.00011001.00011100.00000000 200.25.28.0/23 Organisation D: 11001000.00011001.00011110.00000000 200.25.30.0/23 2.5.5. CIDR ist VLSM ähnlich Wenn Sie sagen, das CIDR dem VLSM ähnlich ist, dann haben Sie recht. CIDR und VLSM sind im Grunde das Gleiche, da sie es beide ermöglichen, dass ein IPAdressbereich beliebig in kleinere Teile aufgeteilt werden kann. VLSM unterscheidet sich dadurch, dass die Aufteilung nur in dem einer Organisation zugeteilten Adressbereich erfolgt und damit für das globale Internet nicht sichtbar ist. Bei CIDR kann die rekursive Aufteilung eines Adressblocks von der Internet-Registrierung über 32 einen großen ISP, von dort über einen mittleren und kleinen ISP bis zum Netzwerk einer privaten Organisation erfolgen. Genauso wie VLSM ist die erfolgreiche Verwendung von CIDR an drei Voraussetzungen geknüpft: 2.5.6. • Die Routing-Protokolle müssen die Netzwerkpräfixinformation mit jeder Routinginformation mitschicken. • Alle Router müssen einen konsistenten Weiterleitungsalgorithmus basierend auf "der längsten Übereinstimmung" verwenden. • Damit die Zusammenfassung von Routen erfolgen kann, müssen die Adressen entsprechend der Netzwerktopologie verteilt werden. Kontrollieren des Wachstums der Internet-Routingtabellen Ein anderer wichtiger Vorteil des CIDR ist, dass es eine entscheidende Rolle bei der Kontrolle des Wachstums der Internet-Routingtabellen spielt. Um die RoutingInformationsmenge zu reduzieren, ist es notwendig, dass das Internet in Adressierungs-Domains aufgeteilt wird. Innerhalb einer Domain gibt es detaillierte Informationen über die Netze, die in der Domain sind. Außerhalb der Domain ist nur das Netzwerkpräfix der Domain bekannt. Damit kann mit Hilfe eines einzigen Eintrages in der Routingtabelle ein Weg zu vielen Netzwerkadressen erreicht werden. Bild: CIDR reduziert die Größe der Internet Routing Tabellen. Das obige Bild zeigt, wie mit Hilfe des vorher beschriebenen CIDR-Beispiels die Größe der Internet-Routingtabellen reduziert werden kann. Nehmen Sie an, dass ein Teil des Adressblocks des ISP (200.25.16.0/20) entsprechend dem obigen Beispiel zugewiesen wurde. Die 8 /24-Adressbereiche der Organisation A können dann zu einer einzigen Route (200.25.16.0/21) zusammengefasst werden. Die vier /24-Bereiche der Organisation B können dann zu (200.25.24.0/22), die zwei /24-Adressbereiche der Organisation C zu (200.25.28.0/23) und die zwei /24Adressbereiche der Organsation D zu (200.25.30.0/23) zusammengefasst werden. 33 Schließlich kann der ISP alle 256 /24-Adressbereiche mit einer einzigen Route (200.25.0.0/16) im Internet bekannt geben. Anm.: Die Zusammenfassung muss explizit in jedem Router programmiert. Durch den Einsatz von CIDR ist es möglich, dass die Anzahl der individuellen Netze im Internet wächst, während die Anzahl Routen in den Internet-Routingtabellen minimiert wird. 2.5.7. Routing in einer klassenlosen Umgebung Das unten stehende Bild zeigt die notwendigen Routen für die Organisation A aus dem vorhergehenden Beispiel. Bild: Routinginformationen für Organisation A Da alle Routen der Organisation A Teil des ersten Adressblocks des ISP sind, sind sie damit automatisch auch Teil der Routinginformation des ISP im Internet. Mit anderen Worten gesagt, die acht Netzwerke, die der Organisation A zugewiesen wurden, sind Teil der einen Route, die aus dem Internet zum ISP führt. Mit Hilfe des Weiterleitungsalgorithmus "der längsten Übereinstimmung" wird der Verkehr für den Rechner mit der Nummer 200.25.17.25 aus dem Internet zum ISP weitergeleitet, der wiederum leitet ihn an die Organisation A weiter. Nehmen wir nun an, dass die Organisation A aus beliebigen Gründen zum ISP 2 wechselt. Dies wird nachstehend illustriert. Bild: Organisation A wechselt zum Netzwerkprovider ISP 2 Das Beste für die Größe der Internet-Routingtabellen wäre, wenn die Organisation A einen neuen Adressblock von dem ISP 2 bekommt und umkonfiguriert. Damit wären die acht Netzwerke der Organisation A Bestandteil der gesamten Routinginformation des ISP 2. Nun ist die Neukonfiguration eines solchen Netzwerkes eine arbeitsintensive, schwierige, eventuell sogar undurchführbare Arbeit für die Organisation A. Am Günstigsten für die Organisation A wäre, wenn sie ihren Adressbereich behält und ISP 2 eine zusätzliche Routinginformation im Internet bekannt gibt. Durch diese zusätzliche Routinginformation wird mit Ausnahme des Verkehrs für 200.25.16.0/21 der gesamte Verkehr für die Adresse 200.25.0.0/16 an den ISP 1 geschickt. Dies 34 wird erreicht, indem der ISP 2 zusätzlich zu seinem Block 199.30.0.0/16 eine zweite Route für den Block 200.25.16.0/21 bekannt gibt, wie nachstehendes Bild veranschaulicht. Entsprechend dem Weiterleitungsalgorithmus "der längsten Übereinstimmung" werden die Internet-Router den Verkehr für den Rechner 200.25.17.25 an ISP 2 weiterleiten, der ihn wiederum an die Organisation A weiterleitet. Eine große Anzahl solcher Ausnahmerouten kann die Effektivität von CIDR erheblich reduzieren und zu größeren Routingtabellen führen. 2.6. Erweiterte Nutzung des IPv6- Adressraumes 2.6.1. Die Internet Protokoll Version 6 Internet Protokoll Version 6 = IPv6 = IP Next Generation = IPng Der vorrangige Grund für die Erweiterung des IP-Protokolls ist auf den begrenzten Adressraum und das Anwachsen der Routing-Tabellen zurückzuführen. CIDR schafft hier zwar wieder etwas Luft, dennoch ist klar absehbar, dass auch diese Maßnahme nicht ausreicht, um die Verknappung der Adressen für eine längere Zeit in den Griff zu bekommen. Weitere Gründe für eine Änderung des IP-Protokolls sind die neuen Anforderungen an das Internet, denen IPv4 nicht gewachsen ist. Streaming-Verfahren wie RealAudio oder Video-on-Demand erfordern das Festlegen eines Mindestdurchsatzes, der nicht unterschritten werden darf. Bei IPv4 kann so ein "Quality of Service" jedoch nicht definiert - und damit auch nicht sichergestellt - werden. Die IETF (Internet Engineering Task Force) begann deshalb 1990 mit der Arbeit an einer neuen Version von IP. Die wesentlichen Ziele des Projekts waren: • Unterstützung von Milliarden von Hosts, auch bei ineffizienter Nutzung des Adressraumes • Reduzierung des Umfangs der Routing-Tabellen • Vereinfachung des Protokolls, damit die Router - Pakete schneller verarbeitet werden können • Höhere Sicherheit (Authentifikation und Datenschutz) als das heutige IPv4 • Mehr Gewicht auf Dienstarten, insbesondere für Echtzeitanwendungen • Unterstützung von Multicasting durch die Möglichkeit, den Umfang zu definieren • Möglichkeit für Hosts, ohne Adressänderung auf Reise zu gehen (Laptop) • Möglichkeit für das Protokoll, sich zukünftig weiterzuentwickeln • Unterstützung der alten und neuen Protokolle in Koexistenz für Jahre 35 Im Dezember 1993 forderte die IETF mit RFC 1550 die Internet-Gemeinde dazu auf, Vorschläge für ein neues Internet Protokoll zu machen. Auf die Anfrage wurde eine Vielzahl von Vorschlägen eingereicht. Diese reichten von nur geringfügigen Änderungen am bestehenden IPv4 bis zur vollständigen Ablösung durch ein neues Protokoll. Aus diesen Vorschlägen wurde von der IETF das Simple Internet Protocol Plus (SIPP) als Grundlage für die neue IP-Version ausgewählt. Als die Entwickler mit den Arbeiten an der neuen Version des Internet Protokolls begannen, wurde ein Name für das Projekt bzw. das neue Protokoll benötigt. Angeregt durch die Fernsehserie "Star Trek - Next Generation" wurde als Arbeitsname IP Next Generation (IPng) gewählt. Schließlich bekam das neue IP eine offizielle Versionsnummer zugewiesen: IP Version 6 oder kurz IPv6. Die Protokollnummer 5 (IPv5) wurde bereits für ein experimentelles Protokoll verwendet. 2.6.1.1 Die Merkmale von IPv6 Viele der Merkmale von IPv4 bleiben in IPv6 erhalten. Trotzdem ist IPv6 im Allgemeinen nicht mit IPv4 kompatibel, wohl aber zu den darüberliegenden InternetProtokollen, insbesondere den Protokollen der Transportschicht (TCP, UDP). Die wesentlichen Merkmale von IPv6 sind: • Adressgröße: Statt bisher 32 Bit stehen nun 128 Bit für die Adressen bereit. Theoretisch lassen sich damit 2128 = 3.4*1038 Adressen vergeben. • Header-Format: Der IPv6-Header wurde vollständig geändert. Der Header enthält nur sieben statt bisher 13 Felder. Diese Änderung ermöglicht eine schnellere Verarbeitung der Pakete im Router. Im Gegensatz zu IPv4 gibt es bei IPv6 nicht mehr nur einen Header, sondern mehrere Header. Ein Datengramm besteht aus einem Basis-Header, sowie einem oder mehreren Zusatz-Headern, gefolgt von den Nutzdaten. Bild: Aufbau des IPv6-Datengramms • Erweiterte Unterstützung von Optionen und Erweiterungen: Die Erweiterung der Optionen ist notwendig geworden, da einige der bei IPv4 notwendige Felder nun optional sind. Darüber hinaus unterscheidet sich auch die Art, wie die Optionen dargestellt werden. Für Router wird es damit einfacher, Optionen, die nicht für sie bestimmt sind, zu überspringen. • Dienstarten: IPv6 legt mehr Gewicht auf die Unterstützung von Dienstarten. Damit kommt IPv6 den Forderungen nach einer verbesserten Unterstützung der Übertragung von Video- und Audiodaten entgegen, z. B. durch eine Option zur Echtzeitübertragung. • Sicherheit: IPv6 beinhaltet nun im Protokoll selbst Mechanismen zur sicheren Datenübertragung. Wichtige neue Merkmale von IPv6 sind hier Authentifikation, Datenintegrität und Datenverlässlichkeit. • Erweiterbarkeit: IPv6 ist ein erweiterbares Protokoll. Bei der Spezifikation des Protokolls wurde nicht versucht, alle möglichen Einsatzfelder für das Protokoll in die Spezifikation zu integrieren. Über Erweiterungs-Header kann das Protokoll erweitert werden. 36 2.6.1.2 Aufbau des IPv6-Basis-Headers Im IPv6 wird im Vergleich zum IPv4 auf eine Checksumme verzichtet, um den Routern die aufwendige Überprüfung und damit Rechenzeit zu ersparen. Ein Übertragungsfehler muss deshalb in den höheren Schichten erkannt werden. Bild: Aufbau des IPv4-Frames im Vergleich Bild: Aufbau des IPv6-Frames Version Mit dem Feld Version können Router überprüfen, um welche Version des Protokolls es sich handelt. Für ein IPv6-Datengramm ist dieses Feld immer 6 und für ein IPv4-Datengramm dementsprechend immer 4. Mit diesem Feld ist es möglich für eine lange Zeit die unterschiedlichen Protokollversionen IPv4 und IPv6 nebeneinander zu verwenden. Über die Prüfung des Feldes Version können die Daten an das jeweils richtige "Verarbeitungsprogramm" weitergeleitet werden. Priority Durch das Feld Priority (oder Traffic Class) kann angegeben werden, ob ein Paket bevorzugt behandelt werden muss. Dies ist für die Anpassung des Protokolls an die neuen Real Time Anwendungen nötig geworden. Damit können zum Beispiel Videodaten den E-Maildaten vorgezogen werden. Bei einem Router unter Last besteht damit die Möglichkeit der Flusskontrolle. 37 Pakete mit kleinerer Priorität werden verworfen und müssen wiederholt werden. Mit den vier Bit lassen sich 16 Prioritäten angeben, wovon 1 bis 7 für "Non Real Time"- und 8 bis 15 für "Real Time" - Anwendungen reserviert sind. Die Zahl Null gibt an, dass die Priorität des Verkehrs nicht charakterisiert ist. Flow Label Mit Hilfe des Feldes Flow Label können Eigenschaften des Datenflusses zwischen Sender und Empfänger definiert werden. Das Flow Label selbst ist nur eine Zufallszahl. Die Eigenschaften müssen durch spezielle Protokolle oder durch den Hop-by-Hop-Header in den Routern eingestellt werden. Eine Anwendung ist zum Beispiel, dass die Pakete eines Flusses immer den gleichen Weg im Netz nehmen. Durch Speichern der Informationen für das jeweilige Flow-Label, muss der Router bestimmte Berechnungen nur für das erste Paket ausführen, und kann danach für alle Folgepakete die Resultate verwenden. Erst die Einführung des Flow Labels ermöglicht die Einführung von Quality-of-Service-Parametern im IP-Verkehr. Payload Length Das Feld Payload Length (Nutzdatenlänge) gibt an, wie viele Bytes dem IPv6Basis-Header folgen, der IPv6-Basis-Header ist ausgeschlossen. Die Erweiterungs-Header werden bei der Berechnung der Nutzdatenlänge mit einbezogen. Das entsprechende Feld wird in der Protokollversion 4 mit Total Length bezeichnet. Allerdings bezieht IPv4 den 20 Byte großen Header auch in die Berechnung ein, wodurch die Bezeichnung "total length" gerechtfertigt ist. Next Header Das Feld Next Header gibt an, welcher Erweiterungs-Header dem IPv6-BasisHeader folgt. Jeder folgende Erweiterungs-Header beinhaltet ebenfalls ein Feld Next Header, das auf den nachfolgenden Header verweist. Beim letzten IPv6Header, gibt das Feld an, welches Transportprotokoll (z.B. TCP oder UDP) folgt. Hop Limit Im Feld Hop Limit wird festgelegt, wie lange ein Paket überleben darf. Der Wert des Feldes wird von jedem Router vermindert. Ein Datengramm wird verworfen, wenn das Feld den Wert Null hat. IPv4 verwendete hierzu das Feld Time to Live. Die Bezeichnung bringt mehr Klarheit, da schon in IPv4 die Anzahl Hops gezählt und nicht die Zeit gemessen wurde. Source Address, Destination Address Die beiden Felder für Quell- und Zieladresse dienen zur Identifizierung des Senders und Empfängers eines IP-Datengramms. Bei IPv6 sind die Adressen vier mal so groß wie IPv4: 128 Bit statt 32 Bit. Das Feld Length (Internet Header Length - IHL) von IPv4 ist nicht mehr vorhanden, da der IPv6-Basis-Header eine feste Länge von 40 Byte hat. Das Feld Protocol wird durch das Feld Next Header ersetzt. Alle Felder die bisher zur Fragmentierung eines IP-Datengramms benötigt wurden (Identification, Flags, Fragment Offset), sind im IPv6-Basis-Header nicht mehr vorhanden, da die Fragmentierung in IPv6 gegenüber IPv4 anders gehandhabt wird. Alle IPv6-kompatiblen Hosts und Router müssen Pakete mit einer Größe von 1280 Byte unterstützen. Empfängt ein Router ein zu großes Paket, so führt er keine Fragmentierung mehr durch, sondern sendet eine Nachricht an den Absender des Pakets zurück, in der er den sendenden Host anweist, alle weiteren Pakete zu diesem Ziel aufzuteilen. Es wird also vom Hosts erwartet, dass er von vornherein eine passende Paketgröße wählt. Die Steuerung der Fragmentierung erfolgt bei IPv6 über den Fragment Header. Das Feld Checksum ist nicht mehr vorhanden. 38 Erweiterungs-Header im IPv6 Bei IPv6 muss nicht mehr der ganze optionale Teil des Headers von allen Routern verarbeitet werden, womit wiederum Rechenzeit eingespart werden kann. Diese optionalen Header werden miteinander verkettet. Jeder optionale Header beinhaltet die Identifikation des folgenden Headers. Es besteht auch die Möglichkeit selber Optionen zu definieren. Derzeit sind sechs Erweiterungs-Header definiert. Alle Erweiterungs-Header sind optional. Werden mehrere Erweiterungs-Header verwendet, so ist es erforderlich, so sind diese in einer festen Reihenfolge anzugeben. Header Beschreibung IPv6-Basis-Header Zwingend erforderlicher IPv6-Basis-Header Optionen für Teilstrecken (Hop-by-Hop Options Header) Dies ist der einzige optionale Header, der von jedem Router bearbeitet werden muss. Bis jetzt ist nur die "Jumbo Payload Option" definiert, in der die Länge eines Paketes angegeben werden kann, das länger als 64 KByte ist. Optionen für Ziele (Destination Options Header) Zusätzliche Informationen für das Ziel Routing (Routing Header) Definition einer vollständigen oder teilweisen Route. Er wird für das Source-Routing in IPv6 verwendet. Fragmentierung (Fragment Header) In IPv6 wird, wie oben beschrieben, die Fragmentierung nur noch End to End gemacht. Die Fragmentierinformationen werden in diesem optionalen Header abgelegt. Authentifikation (Authentication Header) Er dient der digitalen Signatur von Paketen, um die Quelle eindeutig feststellen zu können. Verschlüsselte Sicherheitsdaten (Encapsulating Security Payload Header) Informationen über den verschlüsselten Inhalt. Optionen für Ziele (Destination Options Header) Zusätzliche Informationen für das Ziel (für Optionen, die nur vom endgültigen Ziel des Paketes verarbeitet werden müssen). Header der höheren Schichten (Upper Layer Header) Header der höheren Protokollschichten (TCP, UDP, ...) Bild: Mögliche Header-Extensions im IPv6-Frame Während Sicherheitsaspekte bei der Definition von IPv4 weitgehend keine Rolle gespielt haben, wurde diese Problematik bei IPv6 ausgiebig diskutiert. Dies geschah parallel zu den IPsec Erweiterungen von IPv4, so dass beide Protokolle in diesem Punkt große Ähnlichkeiten aufweisen. Sicherheit bleibt damit nicht allein den Anwendungsprogrammen überlassen. IPv6 bietet auf der IP-Ebene Möglichkeiten zur Verschlüsselung und Authentifikation. 39 2.6.1.3 Authentication Options Header (AH) Der Authentication Options Header hat den in Bild 30 beschriebenen Aufbau. Bild: Aufbau des Authentication Options Header (AH)^ Next Header und Hdr Ext Len geben wie üblich den Typ des nachfolgenden Extension-Headers bzw die Länge des AH in 32 Bit Einheiten an, wobei die ersten 8 Byte nicht gezählt werden. Bei dem Security Parameters Index (SPI) handelt es sich um einen 32-Bit Wert, der zusammen mit der Zieladresse des Paketes das gewünschte Verfahren zur Authentisierung festlegt. Für den SPI sind die Werte 1 bis 255 für eine spätere Verwendung durch die IANA reserviert. Der Wert 0 zeigt an, dass keine Authentisierung vorhanden ist und sollte im Normalfall nicht verwendet werden. Die Sequenznummer enthält einen monotonen Zähler, welcher vom Sender bei jedem Paket um eins erhöht werden muss. Der Empfänger verwendet dieses Feld zur Anti-Replay Protection. Beherrscht er diese Funktion nicht, wird das Feld ignoriert. Falls über eine Verbindung mehr als 232 Pakete laufen, ist ein Überlauf der Sequenznummer nicht vorgesehen. Statt dessen ist eine Initialisierung der Verbindung mit einem Austausch neuer Schlüssel vorgeschrieben. Das Datenfeld enthält die eigentliche Checksumme, Integrity Check Value (ICV). Dieses Feld muss als Länge ein Vielfaches von 64-Bit haben. Die genaue Verwendung der ICV hängt von dem gewählten Verfahren ab. Bei der Anwendung der Authentisierung wird, wie später auch bei der Verschlüsselung, zwischen zwei Verfahren unterschieden, dem Transportmodus und dem Tunnelmodus. 2.6.1.4 Encapsulating Security Payload (ESP) Encapsulating Security Payload (ESP) wird verwendet, um vertrauliche Daten zu verschlüsseln und ihre Unversehrtheit zu garantieren. Außerdem bietet ESP einen wirksamen Schutz vor Data-Replay Attacken. Bild: Aufbau des ESP Headers Wie schon beim AH erwähnt, unterscheidet man bei der Anwendung der Verschlüsselung zwischen dem Transportmodus und dem Tunnelmodus. Die erste Variante wird bei der Kommunikation zwischen zwei Rechnern verwendet. Im 40 Normalfall geht man hier davon aus, dass sich die Rechner nicht kennen bzw. keine gültigen Keys für eine Verbindung besitzen. Es muss daher von einem Trust-Center von beiden Rechnern ein One-Session-Key angefordert werden, welcher für eine begrenzte Zeit Gültigkeit besitzt. 2.7. Übungsaufgabe zu VLSM (siehe Praktikumsversuch) 41