Internet Protokoll (IP) und network adresses Seminar Internet-Protokolle November 2002 Patrick Mai / Sebastian Elsner [email protected] [email protected] Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 1 / 56 Schichten-Modell Applikation Layer (FTP, telnet, HTTP, SMTP, ...) Transport Layer (TCP, UDP, ...) Network Layer (IP, ICMP, ...) Data Link Layer (Ethernet, ARP, RARP, ...) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 2 / 56 Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 3 / 56 Eigenschaften des Internet Protokolls • Paketorientiert • connectionless (verbindungslos) • best effort (nicht garantiert) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 4 / 56 Connectionless • keine direkte Verbindung zwischen dem Sender und dem Empfänger • kein Verbindungsaufbau • Weg dynamisch von Routern festgelegt Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 5 / 56 Best effort • Keine Garantie • Checksumme (CS) im Header • bei Fehlern - vernichten des Pakets - ICMP – Nachricht (nicht bei CS Fehlern) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 6 / 56 Paketorientiert • Fragmentierung der Daten in Datagramms • Unabhängigkeit der Pakete • Größe abhängig von der Maximum Transfer Unit (MTU) und Daten • Mindestpaketlänge 21 Bytes • Maximalpaketlänge 65.535 Bytes Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 7 / 56 Aufbau der Pakete • Header - Größe 20 – 60 Byte • Daten - Größe 1 – 65515 Byte (abhängig vom Header) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 8 / 56 Header • Einteilung in 32-Bit-Wörter • ersten 5 Wörter fest • Mindestens 20 Byte • Maximal 60 Byte Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 9 / 56 Version • Länge 4 Bit • IP – Versionsnummer • In Bit Darstellung Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 10 / 56 Header Length (IHL) • • • • Länge 4 Bit Anzahl der Wörter im Header Mindestens 5 Wörter Maximal 15 Wörter Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 11 / 56 Type of Service (TOS) • Länge 8 Bit • Ersten 3 Bit Precendece Field • 4 TOS Bits bevorzugte Funktion • Letzte Bit muß 0 • Heutzutage irrelevant Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 12 / 56 Total Length • Länge 16 Bit • Gesamtlänge des Datagramms (Header + Daten) - 2^16 = 65 535 Byte Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 13 / 56 Identification • Länge 16 Bit • Eindeutige Kennzeichnung der Datagramms • Vergabe erfolgt durch höheres Protokoll Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 14 / 56 Flags • • • • Länge 3 Bit Erste immer 0 2. Bit DF (=Don`t fragment) 3. Bit MF (=More Fragments) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 15 / 56 Fragment Offset • Länge 13 Bit • Lage des Fragmentes innerhalb des Datagramms • Keine Fragmente = 0 Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 16 / 56 Time-to-Live (TTL) • • • • Länge 8 Bit Lebensdauer in Sekunden (Hops) Jeder Router dekrementiert TTL Bei 0 : - ICMP-Nachricht an Sender - Paket wird gedroppt Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 17 / 56 Protocol • Länge 8 Bit • Protkolltyp der nächst höheren Schicht (UDP =17, TCP = 6, ICMP = 1, ...) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 18 / 56 Header Checksum • Länge 8 Bit • Wird bei Ankunft errechnet • Ergebnis ungleich 0 (checksum error): - droppen des Pakets Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 19 / 56 Source IP-Address • Länge 32 Bit • IP-Addresse des sendenen Rechners Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 20 / 56 Destination IP-Address • Länge 32 Bit • IP-Addresse des Empfangsrechners Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 21 / 56 Options • Länge variable bis zu 40 Byte (ein vielfaches von 32 Bit, sonst padding) • Kein Pflichtbestandteil des Headers • Seltene Nutzung z.B. security, record route, timestamp, loose source routing, strict source routing, ... Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 22 / 56 Security = hohe Sicherheit • Militärische Zwecke • RFC 1108 [Kent 1991] Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 23 / 56 Record route = Routenaufzeichnung • Jeder Router trägt seine IP-Addresse ein • Heutzutage zu klein (max 15 Router) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 24 / 56 Timestamp = Zeitstempel • record route + Zeitangabe Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 25 / 56 Loose source routing = lockeres Quellen routing • Liste von IP-Addressen • Müssen durchlaufen werden • Auch andere Router möglich Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 26 / 56 Strict source routing = stricktes Quellen routing • Liste von IP-Addressen • Genauer IP-Addressen-Weg • Keine andere Router dürfen durchlaufen werden Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 27 / 56 Internet Adresse oder IP-Adresse • wird jedem einzelnen Host zugeteilt • bestehen aus ganzen Zahlen • werden systematisch vergeben von der ICAN (Internet Corporation for Assigned Names And Numbers) 1.schnelle Verwaltung 2.effizientes Routing Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 28 / 56 Adressenbeschreibung • 32-bit Internetadresse • besteht aus "netid" und "hostid" • hostid "0" bezeichnet immer das Netzwerk selbst Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 29 / 56 Notation • 4 dezimale Zahlen mit Punkten getrennt • jede Zahl steht für ein Oktett der Binärdarstellung • Anschaulich: Binärnotation: 10000000 00001010 00000010 00011110 Dezimalnotation: 128.10.2.30 Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 30 / 56 IP-Adressklassen • Adressen sind in 3 Hauptklassen eingeteilt: A, B, C • 2 für uns jetzt eher nebensächliche Klassen D und E Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 31 / 56 Klasse A • erstes Bit (0) zeichnet die Klasse A • netid besteht aus 7 Bits, hostid aus 24 Bits • 126 Klasse-A Netze mit über 16Mio Hosts Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 32 / 56 Klasse B • ersten 2 Bits (1,0) zeichnen die Klasse B • netid besteht aus 14 Bits, hostid aus 16 Bits • 16.382 Klasse-B Netze mit bis zu 64.000 Hosts Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 33 / 56 Klasse C • ersten 3 Bits (1,1,0) zeichnen die Klasse C • netid besteht aus 21 Bits, hostid aus 8 Bits • 2Mio Klasse-C Netze mit bis zu 254 Hosts Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 34 / 56 Klasse D • sog. Multicast Adressen • ersten 4 Bits (1,1,1,0) zeichnen die Klasse D • sendet Datagramme an mehrere spezielle Hostadressen gleichzeitig Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 35 / 56 Klasse E • wurde für zukünftige Nutzungen reserviert • ersten 5 Bits (1,1,1,1,0) zeichnen die Klasse E Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 36 / 56 IP-Adressklassen Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 37 / 56 Adressbereiche nach Klassen Class A B C D E Range 1.0.0.0 128.1.0.0 192.0.1.0 224.0.0.0 240.0.0.0 Patrick Mai / Sebastian Elsner to 126.0.0.0 to 191.255.0.0 to 223.255.255.0 to 239.255.255.255 to 255.255.255.254 Internetprotokolle / Internetprotokoll (IP) 38 / 56 Beispiele für Klasse-B Netze 129.65.0.0 129.66.0.0 129.67.0.0 129.68.0.0 129.69.0.0 129.70.0.0 California Polytechnic State University (NETCALPOLY) Alabama Supercomputer Network (NET-ASC-UNIVALABAMA) Oxford University, England (NET-OXFORDNET) Saint Joseph's University, PA (NET-SJU-NET) University of Stuttgart, Germany (NET-RUS-NET) University of Bielefeld, Germany (NET-UNIBI) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 39 / 56 Grosser Nachteil: Adressknappheit • Ursache: unvorhergesehenes Wachstum des Internets • bald alle Adressbereiche vergeben • Klasse-B Netze sind zum grössten Teil betroffen • Wie kann man die Vergabe von Adressbereichen besser gestalten? Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 40 / 56 mögliche, vorrübergehende Lösung: Subnetze • mehrere physikalische Netze teilen sich eine netid durch "subnetting" • Senkung der Vergabe von Klasse-B Adressbereichen durch Ausweichen auf mehrere C-Klassen Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 41 / 56 Subnet adressing oder subnetting • mit einer netid mehrere physikalische Netze ansprechbar • Host muss subnetting unterstützen • benutzt einige Bits der hostid als physische Netzadresse • hostid wird zweigeteilt in subnetid und hostid • bei Klasse-B meist 8 Bit-subnetid, 8 Bit-hostid • Einteilung aber sonst beliebig Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 42 / 56 Quelle: Douglas Comer und David L. Stevens. Internetworking with TCP/IP, Band 1 Prentice Hall Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 43 / 56 Subnetzmaske • mittlerweile obligatorisch in permanenten Netzwerken • ordnet einem Subnetz unter • alle Bits der net- und subnetid werden auf "1" gesetzt, hostid auf "0" • hexadezimale Darstellung (4 Bit-Blöcke) ergibt die subnetmask Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 44 / 56 Subnetzmaske Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 45 / 56 Quelle: Douglas Comer und David L. Stevens. Internetworking with TCP/IP, Band 1 Prentice Hall Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 46 / 56 Broadcasting • gleichzeitige Adressierung aller Stationen eines Subnets (Rundfunk) • broadcastadress wird allen Hosts des Netzwerks zugewiesen • hostid besteht ausschl. aus "EinserBits", ist damit reserviert für broadcasting Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 47 / 56 Broadcasting • Nutzen: 1. Erkennung der eigenen IP-Adresse über die Hardware 2. Pakettransmission kann u.U. sehr effizient abgewickelt werden 3. Multicast ähnlich, z.B. VideoKonferenz mit wenig Traffic Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 48 / 56 Der Befehl "ifconfig" • dient zur Konfiguration der Netzwerkschnittstellen zur Nutzung von TCP/IP Verbindungen • wird normal beim Systemboot gestartet • MTU zeigt den max. Durchsatzwert (Grösse des Datagramms) der Schnittstelle in Bytes an Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 49 / 56 ifconfig- Ausgabe pmai@antipasto cd /usr/sbin/ pmai@antipasto ifconfig -a ("-a" zeigt alle Devices/Schnittstellen an) lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 ge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.133.3 netmask ffffff00 broadcast 192.168.133.255 hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3 inet 129.70.131.113 netmask ffffff00 broadcast 129.70.131.255 lo0: flags=2000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 inet6 ::1/128 hme0: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 3 inet6 fe80::a00:20ff:fefc:c670/10 Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 50 / 56 Der Befehl "netstat" • zeigt Informationen über einzelne Schnittstellen, darunter: - MTU-Grössen - Anzahl ein- und ausgehender Pakete - Fehlermeldungen - Kollisionen - Pakete in Warteschlange Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 51 / 56 netstat- Ausgabe pmai@antipasto netstat –i Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue lo0 8232 loopback localhost 6569662 0 6569662 0 0 0 ge0 1500 SunRay-ge0 3.133.168.192.in-addr.arpa 397831150 0 1322734838 0 0 0 hme0 1500 gzi-ether antipasto.TechFak.Uni-Bielefeld.DE 789512800 0 770765691 0 00 Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis lo0 8252 localhost localhost 6569662 0 6569662 0 0 hme0 1500 fe80::a00:20ff:fefc:c670/10 fe80::a00:20ff:fefc:c670 789512802 0 770765694 0 0 Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 52 / 56 netstat- Ausgabe Pmai@antipasto netstat -ni ("-i" gibt alle Interfaces an, "-n" löst die Hostnamen auf) Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue lo0 8232 127.0.0.0 127.0.0.1 6568631 0 6568631 0 0 0 ge0 1500 192.168.133.0 192.168.133.3 397692599 0 1322283415 0 0 0 hme0 1500 129.70.131.0 129.70.131.113 789298220 0 770556699 0 0 0 Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 53 / 56 Schwächen von IP-Adressen • lokal gebunden: bezieht sich auf Netze, nicht auf einzelne Hosts • Wachstum von einzelnen Netzen kann den "Klassenrahmen" sprengen (Bsp.: Klasse C) Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 54 / 56 RFC`s • RFC 791 erstmalige Veröffentlichung • RFC 1122 (Host Network Requirements) - Beseitigung aller Unklarheiten von RFC 791 Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 55 / 56 Quellen • 1 - Richard W. Stevens. TCP/IP Illustrated, Band 1 Addison Wesley • 2 - Douglas Comer und David L. Stevens. Internetworking with TCP/IP, Band 1 Prentice Hall Patrick Mai / Sebastian Elsner Internetprotokolle / Internetprotokoll (IP) 56 / 56