IP Internet Protokoll Adressierung und Routing fürs Internet von Stephan Senn
Inhalt Orientierung: Die Netzwerkschicht (1min) Aufgabe des Internet Protokolls (1min) Header eines Datenpakets (1min) Fragmentierung und Assembling (1min) Adressierung (5min) Aufbau der Adressen Subnetze und Netzmasken Routing (5min) Aufgabe Routing-Verfahren Beispiel Probleme mit IPv4 (für spätere Diskussion) 2. Mai 2003 2
Die Netzwerkschicht Das IP entspricht im ISO/OSI-Modell der Netzwerkschicht. Merke: Keine Flusskontrolle möglich! Keine Fehlerkorrektur der Daten möglich! ICMP: Fehlererkennung nur im Rahmen der Netzwerkschicht! Betrifft nur den Internet Header und nicht die eigentlichen Daten! Kein automatisch erneutes Senden von fehlerhaften Daten! ISO/OSI-Modell Application Layer Presentation Layer Session Layer Transport Layer Network Layer Datalink Layer Physical Layer IP: Internet Protocol Standard-Internet- Protokollarchitektur Application Layer TCP / UDP IP / ICMP Link Layer ICMP: Internet Control Message Protocol TCP: Transmission Control Protocol UDP: User Datagram Protocol 2. Mai 2003 3
Aufgabe des Internet Protokolls Hauptaufgabe: Datenpakete an Subnetze weiterleiten Jetzige Version: IPv4 (seit 1980) IP Next Generation (IPng): IPv6 Stellt zwei grundlegende Funktionen zur Verfügung: Adressierung: Prinzip der Adressvergabe Systematisches Auffinden von Adressen im Netz Fragmentierung: Aufsplittung eines Datenpakets in kleinere Datenpakete Anschliessendes Assembling (Zusammenfügen) der Datenpakete 2. Mai 2003 4
Internet Header Next-Level-Protokolle Internet Header Length Für Fragmentierung und Assembling Version IHL Type of Service Total Length Identification Flags Fragment Offset Time to Live Protocol Header Checksum Selbstzerstörungsmechanismus : Beschreibt die Lebensdauer eines Datenpakets im Netz Source Address Destination Address Options Optionen: variables Feld Route-Tracking, Sicherheitsaspekte, usw. Dienste zur Beeinflussung der Übertragungsqualität: Verzörgerung, Durchsatz, usw. Padding Datenpaket Header Daten Ausgleichsfeld: variables Feld 2. Mai 2003 Internet Headers müssen ein Vielfaches von 32Bits sein. 5
Fragmentierung Datenpakete werden in Fragmente aufgeteilt. Übertragungskanal beeinflussen: Für das Zusammenspiel von schwachen und starken Netzen untentbehrlich! Merke: Jedes Fragment enthält wiederum einen Header! Fragment Offset als Angabe für die Reihenfolge! Eindeutige Kennung mit Identification! Header Daten 3Bytes Identification: 111 Header Fragment #1 1Byte Header 1Byte Header Fragment #3 1Byte Fragment Offset: 0Bytes More Fragments: 1 Identification: 111 Fragment Offset: 1Byte More Fragments: 1 Identification: 111 Fragment Offset: 2Bytes More Fragments: 0 Identification: 111 2. Mai 2003 6
Adressierung 2. Mai 2003 7
Die Internetadresse Jede Internetadresse besteht aus vier Zahlen von 0 bis 255 (1Byte). z.b. 129.132.200.35 Sie hat eine Länge von 32Bits (4Bytes). Aufbau jeder Internetadresse: Präfix Netzadresse Hostadresse 2. Mai 2003 8
Adressklassen Es gibt drei Adressklassen: Klasse Präfix Netzadresse Anzahl Netzadressen Hostadresse Anzahl Hostadressen A 0 7Bits 126 24Bits 16777214 B 10 14Bits 16382 16Bits 65534 C 110 21Bits 2097150 8Bits 254 Klasse von bis feste Bitstellen A 1.0.0.0 126.0.0.0 00000000.00000000.00000000.00000000 B 128.0.0.0 191.255.0.0 10000000.00000000.00000000.00000000 C 192.0.0.0 223.255.255.0 11000000.00000000.00000000.00000000 2. Mai 2003 9
Welche Adressklassen sind für welche Netzwerke? Klasse A: für grosse Netzwerke mit vielen Hosts Klasse B: für mittlere Netzwerke mit einer mittleren Anzahl Hosts Klasse C: für kleine Netzwerke mit einer geringen Anzahl Hosts 2. Mai 2003 10
Beispiel: ETH-Netz Mit dem Befehl ping [URL] kann die Internetadresse ermittelt werden. z.b. ping www.ee.ethz.ch www.ethz.ch 129.132.200.35 www.ssd.ethz.ch 129.132.185.100 ETHZ-Netz 129.132.0.0 www.ee.ethz.ch 129.132.2.198 www.math.ethz.ch 129.132.148.197 2. Mai 2003 11
Subnetze bilden Anwendung: ein Netz von einem anderen Netz abgrenzen, Teilnetze bilden Nur Hosts mit einer spezifischen Netzkennung werden im Netz erlaubt. z.b. nur 149.76.6.X Netzmaske für verschiedene Adressklassen: Klasse Netzmaske Netzmaske in Binärform A 255.0.0.0 11111111.00000000.00000000.00000000 B 255.255.0.0 11111111.11111111.00000000.00000000 C 255.255.255.0 11111111.11111111.11111111.00000000 2. Mai 2003 12
Subnetze bilden (2) Vorgehen: Bitweise Addition der Internetadresse mit der Netzmaske Internetadresse 149.76.6.4 10010101.01001100.00000110.00000100 Maskierung 255.255.0.0 11111111.11111111.00000000.00000000 AND 149.76.0.0 10010101.01001100. 00000000.00000000 Ziel: Netzadresse herausstanzen. 2. Mai 2003 13
Beispiel: Subnetze bilden Aufgabe: Eine Firma besitzt drei grosse Abteilungen A, B und C mit den Netzadressen 149.76, 149.77 und 149.78 (Adressklasse B). Die einzelnen Abteilungen werden als Subnetze geführt; d.h. ein Host aus der Abteilung A kann nicht mit einem Host der Abteilung B kommunizieren. Die Subnetzmaske lautet dann: 255.255.0.0. Access-Bereich 149.76 149.78 149.77 149.76 149.77 149.78 2. Mai 2003 14
Symbolische Internetadressen Numerische Internetadresse: 129.132.200.35 Symbolische Internetadresse: www.ethz.ch Domain: Bereich eines Netzes z.b..ch,.li,.ethz.ch,.google.ch Alias-System Query-Abfrage auf einer globalen Datenbank (Baumstruktur) Domain Name System (DNS) ethz.ch.ch Wurzel google.ch.de ee.ethz.ch 2. Mai 2003 15
Routing 2. Mai 2003 16
Was ist Routing? Definition: Datenpakete von einer Quelladresse zur richtigen Zieladresse führen Merke: Ein Datenpaket enthält keine Informationen, wie es zum Ziel gelangt! Aus der Sicht der Datenpakete: Es gibt keine vordefinierten Pfade! Routing: betrifft Network-Layer (IP-Adresse) Switching: betrifft Link-Layer (MAC-Adresse) 2. Mai 2003 17
Was ist ein Router? Definition: Gerät, bestehend aus Link- und Network-Layer, das für das Routing zuständig ist Router: 2. Mai 2003 18
Beispiel: Router im Netz Beispiel: Host #1 will ein Datenpaket nach Host #3 schicken! Host #1 Router #2 Netz #2 Router #3 Netz #5 Router #5 Netz #1 Netz #3 Netz #6 Server #1 Router #1 Netz #4 Router #4 Netz #7 Router #6 Host #2 Server #2 Host #3 2. Mai 2003 19
Routing-Verfahren Es gibt mehrere Routing-Konzepte mit spezifischen Routing-Verfahren, die in Protokollen beschrieben sind: Distanz-Vektor-Routing: z.b. Routing Information Protocol (RIP) Link-State-Routing: z.b. Open Shortest Pass First (OSPF) Es werden Routing-Tabellen verwendet. Border Gateway Protocol (BGP): Grundrouting-Protokoll, das die Kommunikation zwischen den einzelnen Routing- Protokollen gewährleistet. 2. Mai 2003 20
Statisches und dynamisches Routing Statisches Routing: Netztopologie oder Teile daraus zu Beginn bekannt, kein Hinzufügen von Netzkomponenten während der Laufzeit möglich! Dynamisches Routing: kein Vorwissen über die Netztopologie nötig, Erkennen der Netztopologie zur Laufzeit (dynamisch) 2. Mai 2003 21
Routing-Tabellen Grundfrage des Routers: An wen leite ich meine Daten weiter? Inhalt der Routing-Tabellen: Beschreibung der gesamten Netztopologie oder Teile daraus, je nach Routing-Verfahren Unterschiedliche Verfahren zur Beschreibung von Netzen: Zeitmessung (z.b. Hello-Protokolle), Distanzangaben (z.b. Hops), u.a. Zusätzliche Informationen (Routing-Metriken): Durchsatz, Verzögerung, Zuverlässigkeit, finanzielle Kosten, usw. Grundkonzept: zyklischer Austausch der Routing-Tabellen zur Laufzeit (Informationsaustausch) 2. Mai 2003 22
Routing-Tabellen So könnte etwa eine Routing-Tabelle eines Routers aussehen: Netz Hops Router Host/Server Hops Router #1 0 - Host #1 0 - #2 0 - Host #2 1 #1 #3 1 #3 Host #3 3 #1 #4 1 #1 Server #1 1 #1 #5 1 #3 Server #2 2 #1 #6 2 #2 #7 2 #1 Wo soll das Datenpaket hin? Distanzangaben: Ist dies die kürzeste Distanz? Gibt es eine kürzere Verbindung? Was sagen die erhaltenen Routing-Tabellen der anderen Router? An welchen Router muss ich die Daten weiterleiten? 2. Mai 2003 23
Beispiel: Routing Aufgabe: Host #1 möchte Daten an Server #2 schicken. Netz #1,4: grosse Netze mit 8 Routern Datenübertragung nach Router Datenübertragung #1 erfolgt. Dieser nach Router #3 erfolgt. Dieser Netz wird #3,2: die Daten kleine an Router wird Netze #4 mit weiterleiten. die Daten an je 3 Routern Router #4 #4 weiterleiten, da dies wird die Daten an den Server der kürzeste #2 weiterreichen. Weg sei. Router #4 wird die Daten an den Server #2 weiterreichen. Router #1 schickt seine Routing-Tabelle Netz #2 Netz #5 Router #2 Router an Router #3 #2: Router #5 Host #1 Von: Distanz: Nach: Status: Router #2 Server #2 5Hops (Annahme) Router #1 Netz #1 Netz #3 Von: Distanz: Nach: Netz #6 Router #1 wieder OK! Alter Server Status: #2 10Hops Router (Annahme) #2 Router #3 Von: Distanz: Nach: Server #1 Router #1 sei defekt! XOK! Router #1 Host #2 Netz #4 Netz #7 Server #2 10Hops Router (Annahme) #4 Router #3 5Hops sind kürzer als 10Hops daher: Neuer Status: Router #2 Server #2 Von: Distanz: Nach: Server #2 5Hops (Annahme) Router #1 Router #6 Host #3 2. Mai 2003 24
Probleme mit IPv4 Ausgehende Internet-Adressen Unterschiedliche Datenstrukturen Sicherheitsaspekt Dynamic Host Configuration Protocol (DHCP) 2. Mai 2003 25
Fragen... 2. Mai 2003 26
Vielen Dank für eure Aufmerksamkeit! 2. Mai 2003 27