WE C ERTIFIED WEB ADMINISTRATOR I Einführung in TCP/IP-Networking .................................................... Offizielles Curriculum des Europäischen Webmasterverbandes WE C ERTIFIED WEB ADMINISTRATOR I Einführung in TCP/IP-Networking .................................................... Art.-Nr. 011023013 Versionsnr. 4.0.1 vom 27.02.2012 Autoren: Dorian Karnbaum, Marc Remolt, Thorsten Schneider © webmasters akademie Nürnberg GmbH, Nürnberg, Germany Das vorliegende Schulungsskript ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne schriftliche Genehmigung der webmasters akademie GmbH urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder Verwendung in elektronischen Systemen sowie für die Verwendung in Schulungsveranstaltungen. Die Informationen in diesem Schulungsskript wurden mit größter Sorgfalt erarbeitet. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Autoren und Herausgeber übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene fehlerhafte Angaben und deren Folgen. Inhaltsverzeichnis 1 Allgemeine Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1 1.1.1 1.1.2 1.1.3 2 Entstehung der Computernetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1 2.2 2.3 2.3.1 2.4 2.5 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.6 3 Die ersten Netzwerke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 PC-basierte Netzwerke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Peer to Peer Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Client-Server-Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Entstehung des Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Verwaltung des Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 IAB (Internet Architecture Board) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ISOC (Internet Society) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 IETF (Internet Engineering Task Force) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ICANN (The Internet Corporation for Assigned Names and Numbers) . . . . . . . . . . . . 16 Regional Internet Registries (RIRs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Network Information Centers (NIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Einteilung von Computernetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Schichtenmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1 3.1.1 3.1.2 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.3 3.3.1 3.3.2 3.3.3 3.4 4 Allgemeine Vorbereitungen zum Lehrgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Einrichten der Arbeitsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Umgang mit diesem Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Schichtenmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Briefversand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Anfrage an einen Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 ISO/OSI-Schichtmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Physikalische Schicht (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Verbindungsschicht (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Netzwerkschicht (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Transportschicht (4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Sitzungsschicht (5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Darstellungsschicht (6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Anwendungsschicht (7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Netzzugangsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.3 4.3.1 Aufgaben der Netzzugansschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Klassifizierung von Netzwerken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Netzwerkstandards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Übertragungsmedien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Zugriffsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Topologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Warum kilo nicht gleich kilo ist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Technologien der Netzzugangsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.3.9 4.4 5 38 38 38 40 40 40 40 41 41 41 42 42 42 43 Logische und hardwarebasierte Netzwerkadressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Austausch von Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gruppierung von Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unterschiedliche Hardwarestandards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ARP - Address Resolution Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arbeitsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . arp-Kommando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RARP-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 44 44 45 45 45 46 47 47 Internetschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.1 7.2 7.2.1 7.2.2 7.3 7.3.1 7.3.2 7.3.3 7.3.4 7.4 8 Geschichte und Entwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Netzwerkhardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übertragungsmedien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bandbreite im Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Netzwerkkarte und MAC-Adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repeater . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ethernet-Paket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zugriffsverfahren CSMA/CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bus/Hub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.1 6.1.1 6.1.2 6.1.3 6.2 6.2.1 6.2.2 6.3 6.4 7 32 33 33 34 34 35 35 36 37 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.1 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.3 5.4 5.4.1 5.4.2 5.5 6 Token Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ISDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ATM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xDSL (Digital Subscriber Line) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weitere Technologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufgaben der Internetschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Protokolle der Internetschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Router und Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vorgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Routingtabellen und Standardroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Routingprotokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 48 48 48 48 48 49 49 50 50 IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 8.1 8.2 8.3 8.4 IP - Internet Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IP-Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufgaben von IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 53 54 54 8.4.1 8.4.2 8.4.3 8.5 9 IP-Adressierung und Subnetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.1 9.1.1 9.2 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.5 9.5.1 9.5.2 9.6 9.7 9.8 9.9 10 ICMP - Internet Control Message Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Nachrichtentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Traceroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Arbeitsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Transportschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 11.1 11.1.1 11.1.2 11.1.3 11.2 11.2.1 11.2.2 11.3 12 Aufbau einer IP-Adresse (IPv4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 IP-Adressen der Version 4 (IPv4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Binäre Darstellung von IP-Adressen (IPv4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Netzwerke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Bedeutung für den Routing-Vorgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Subnetzmaske . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Netzwerk-Adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Broadcast-Adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 IP-Adressklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 IP-Adressen der Klasse A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 IP-Adressen der Klasse B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 IP-Adressen der Klasse C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Klasse-D-Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Klasse-E-Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Classless Inter-Domain Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Problem der Einteilung in feste Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Subnetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Reservierte IP-Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Private IP-Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 IP-Protokoll Version 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 10.1 10.1.1 10.1.2 10.2 10.3 10.3.1 10.3.2 10.4 11 Validierung der IP-Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Prüfen der TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Fragmentierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Aufgaben der Transportschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Multiplexing/Demultiplexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Prüfsummen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Protokolle der Transportschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 12.1 12.2 12.3 12.3.1 12.3.2 UDP - User Datagram Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Aufgaben von UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Multiplexing/Demultiplexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Datenintegrität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 12.3.3 12.3.4 12.4 13 TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 13.1 13.2 13.3 13.3.1 13.3.2 13.3.3 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.4.5 13.4.6 13.4.7 13.5 14 TCP - Transmission Control Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP-Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-Wege-Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bidirektionale Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verbindungsabbau und halboffene Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funktionen von TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multiplexing/Demultiplexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufteilung der Daten der Anwendungsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datenintegrität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zuverlässigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Priorisierung von Paketen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flusssteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Überlastungssteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 83 86 86 87 87 87 87 87 88 88 89 90 90 91 Anwendungsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 14.1 14.2 14.2.1 14.2.2 14.2.3 14.2.4 14.2.5 14.2.6 14.2.7 14.2.8 14.3 15 Echtzeit-Datenübertragung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Aufgaben der Anwendungsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wichtige Protokolle der Anwendungsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 92 92 93 93 93 93 94 94 94 94 Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 15.1 15.1.1 15.1.2 15.1.3 15.2 15.2.1 15.2.2 15.2.3 15.2.4 15.3 Typen von Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Paketfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Stateful Inspection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Firewalls in den TCP/IP-Schichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 ARP-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 IP-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 TCP/UDP-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Application Layer Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 52 8 8 IP IP In dieser Lektion lernen Sie: h h h 8.1 das IP-Protokoll näher kennen. den Aufbau des IP-Headers. den Vorgang, wie IP-Pakete im Internet ihren Weg finden. IP - Internet Protocol Das Internet Protokoll IP deckt Schicht 3 des ISO/OSI-Referenzmodells (Netzwerkschicht) ab. Seine Aufgabe besteht darin, die Datenpakete des Absenders innerhalb eines Netzwerkes oder über mehrere Netzwerke hinweg zum Empfänger zu transportieren. In diesem Sinne kann es mit einem LogistikUnternehmen, z. B. der Post, verglichen werden. IP-Pakete werden auch als Datagramme22 bezeichnet, um sie von den Paketen anderer Netzwerkprotokolle bzw. darunterliegender Schichten (z. B. EthernetPakete) zu unterscheiden. Der Adresskopf (Header) des IP-Pakets enthält die Absender- und Empfänger-IP-Adresse der miteinander kommunizierenden Computer, den sogenannten Netzknoten. IP ist ein verbindungsloses Protokoll23, d. h. vor der Datenübertragung werden zwischen Sender und Empfänger keinerlei Kontrollinformationen ausgetauscht. IP kümmert sich nicht darum, ob der Zielhost erreichbar ist oder es ihn überhaupt gibt. IP ist nur für den eigentlichen Transport zuständig. IP ist ein unzuverlässiges Protokoll, da es selbst keinerlei Mechanismen zur Fehlererkennung und Korrektur besitzt und keine Empfangsquittungen anfordert. Wie gesagt, IP kümmert sich nur um den eigentlichen Transport. Dies bedeutet aber nicht, dass man sich auf IP nicht verlassen könnte, ganz im Gegenteil: Wenn das Netzwerk funktionstüchtig ist, liefert IP die Pakete auch korrekt aus. Es ist ähnlich wie mit Ihren Briefen: Die meisten Briefe senden Sie nicht per Einschreiben und trotzdem wissen Sie, dass diese in aller Regel auch beim Empfänger ankommen. Ohne Einschreiben jedoch können Sie sich nicht zu 100% sicher sein. Wirklich wichtige Post werden Sie daher wohl via Einschreiben versenden. Ähnlich ist es bei TCP/IP. Protokolle in anderen Schichten, vor allem TCP, können diese Art von Prüfung übernehmen. 22. Ich bevorzuge, die Pakete aller Schichten auch als Paket zu bezeichnen. Wo eine Verwechslung auftreten könnte, setze ich das Protokoll als Präfix vor den Begriff Paket, also zum Beispiel TCP-Paket oder IP-Paket. 23. Als verbindungsorientiert werden Protokolle bezeichnet, die vor dem Datenaustausch zu Kontrollzwecken bereits eine Kommunikation mit dem Empfänger aufbauen, z. B. um zu checken, ob der Empfänger überhaupt bereit ist, Daten entgegenzunehmen. 8.2 HEADER 8.2 53 Header Der Header eines IP-Pakets umfasst normalerweise 20 Byte, wobei bis zu 40 Byte weitere optionale Felder hinzukommen können. Das Maximum liegt also bei 60 Byte. Lassen Sie mich Ihnen den IP-Header zuerst in der Übersicht vorstellen. Abb. 8-1: Format eines IP-Datagramms Feldbezeichnung Länge des Feldes (Bits) Beschreibung Version 4 Gibt die IP-Versionsnummer an. Zur Zeit wird noch überwiegend IPv4 eingesetzt. IHL 4 Internet Header Length – gibt die Länge des IP-Headers an. Da dieser zwischen 20 und 60 Byte lang sein kann, ist es nötig, im Header die tatsächliche Länge festzuhalten. TOS 8 Type of Service – dient zur Festlegung, wie das Datenpaket behandelt wird (z. B. Priorität, Verzögerung, Durchsatz). Gesamtlänge 16 Gibt die Gesamtlänge des IP-Pakets, d. h. Header und Daten, an. Kennung 16 Router sind in der Lage, bei Bedarf IP-Pakete weiter zu zerlegen (fragmentieren), wenn diese für die Datenleitung zu groß sind. Dieses Feld dient zur Erkennung der einzelnen Fragmente eines Pakets, um diese beim Empfänger wieder korrekt zusammenzusetzen. Alle Fragmente eines Original-Pakets weisen dieselbe Kennung auf. Flags 3 Zeigt an, ob ein Datagramm fragmentiert werden darf und welches das letzte Fragment ist. Fragment-Offset 13 Legt die Position eines Fragmentes fest. Dies ist notwendig, um die IP-Fragmente beim Empfänger wieder in die richtige Reihenfolge zu bringen. TTL Time-to-Live – Gibt die maximale Lebensdauer eines Datagramms an. Der Maximalwert beträgt 255. 8 Tabelle 8-1: Felder des IP-Datagramms gemäß RFC 791. 54 8 IP Protokoll 8 In diesem Feld wird das Protokoll für die Transportschicht verschlüsselt, z. B. TCP, UDP, OSPF. Kopf-Prüfsumme 16 Über die Felder des IP-Headers wird eine Prüfsumme gebildet und in diesem Feld abgelegt. Damit kann ein Router prüfen, ob der Header beim Transport beschädigt wurde, und das Paket verwerfen. AbsenderIP-Adresse 32 Enthält die IP-Adresse des Absenders. Die IP-Adressierung wird im nächsten Kapitel beschrieben. Empfänger -IP-Adresse 32 Enthält die IP-Adresse des Empfängers. Optionen max. 32 IP kann durch verschiedene Optionen an die Protokolle der höheren Schichten angepasst werden. Die Feldlänge wird durch die Art und die Anzahl der Optionen bestimmt. Füllzeichen variabel Dieses Feld dient zum Auffüllen der leeren Bits, falls das Feld Optionen nicht vollständig genutzt wird. Daten variabel Enthält die eigentlichen Dateninformationen. Tabelle 8-1: Felder des IP-Datagramms gemäß RFC 791. 8.3 IP-Adressen Das wichtigste Merkmal des IP-Protokolls sind wohl die IP-Adressen. Diese werden im IP-Header zwar binär (also mit 0 und 1) abgelegt, wir kennen jedoch eher die dezimale Schreibweise. Eine IP-Adresse der Version 4 des Protokolls besteht aus vier Zahlen zwischen 0 und 255, die jeweils mit einem Punkt getrennt sind, also zum Beispiel 192.168.3.8 oder 12.17.100.0. IP-Adressen werden im Internet zur eindeutigen Identifizierung von Hosts verwendet. Jede IP-Adresse darf weltweit nur ein einziges Mal verwendet werden24. Die Router verwenden die Empfänger-IPAdresse eines Pakets, um es weltweit zu seinem Zielhost zu bringen. Da dem Thema IP-Adressen eine eigene Lektion 9 »IP-Adressierung und Subnetting« gewidmet ist, möchte ich an dieser Stelle nicht weiter auf das Thema eingehen. 8.4 Aufgaben von IP Den weltweiten Versand von Datenpaketen zu organisieren und zu verwalten ist eine enorme Aufgabe. Sehen wir uns doch einige Funktionen von IP an, die den Routern bei der Aufgabe helfen, IP-Pakete möglichst sicher ans Ziel zu bringen. Bedenken Sie dabei, dass diese Funktionen von jedem Router auf dem Weg durchgeführt werden. 8.4.1 Validierung der IP-Headers Wenn ein Router ein IP-Paket erhält, prüft dieser zuerst, ob das Paket auch nicht auf dem Transport beschädigt wurde. Dabei interessiert ihn nicht die Nutzlast des Pakets, sondern nur die Header-Informationen. Wenn ein IP-Paket beim Absender erzeugt wird, berechnet dieser aus den Feldern des IP-Headers eine Prüfsumme und legt sie im Header ab. Jeder Router, der dieses Paket erhält, führt diese Berechnung ebenfalls durch und vergleicht sein Ergebnis mit dem im Header eingetragenen Wert. Weicht dieser ab, wurde der Header offensichtlich beschädigt und der Router verwirft das Paket sofort. Wenn Sie sich jetzt fragen, warum IP nur den Header auf Beschädigungen prüft, nicht aber das ganze Paket, ist die Antwort ganz einfach. IP interessiert sich nicht dafür, was es transportiert, nur dass die Lie24. Ausgenommen die privaten IP-Adressen. Siehe Abschnitt 9.7 »Private IP-Adressen«. 8.4 AUFGABEN VON IP ferung ankommt. Erst auf dem Zielrechner wird auch der Inhalt auf Beschädigungen geprüft, was aber die Transportschicht übernimmt. Den Header auf jedem Router zu prüfen, ist eine sehr wichtige Aufgabe von IP. Stellen Sie sich vor, durch die Beschädigung würde das Feld mit der Absender-Adresse verändert. Das Paket wird korrekt zugestellt, doch die Antwort des Servers wird an den falschen Host versendet. Der ursprügliche Absender wird die Antwort niemals erhalten. 8.4.2 Prüfen der TTL Eine weitere wichtige Aufgabe von IP ist, den Müll wegzuräumen. Durch verschiedene Umstände, zum Beispiel falsch konfigurierte Router, kann es vorkommen, dass IP-Pakete ihr Ziel nicht erreichen können. Beispiel Der Router mit der IP-Adresse 12.14.5.1 erhält ein IP-Paket für den Empfänger 80.45.2.9. Gemäß seiner Konfiguration leitet er das Paket an einen weiteren Router (IP 12.25.2.255). Dieser prüft den Empfänger und leitet das Paket an einen dritten Router (IP 12.26.7.1) weiter. So weit an sich nichts Besonderes. Doch Router Nummer 3 ist falsch konfiguriert. Er leitet das Paket an den Router mit der IP-Adresse 12.14.5.1, also unseren ersten Router weiter. Dieser erhält das Paket, leitet es an Router 2, dieser leitet es an Router 3 ... Sie sehen das Problem. Dieses IP-Paket wird bis in alle Ewigkeit25 zwischen diesen Routern kreisen. Bei einem Paket ist dies kein Problem, aber stellen Sie sich vor, was passiert, wenn mit der Zeit tausende Pakete in dieser Schleife hängen. Um Pakete auszufiltern, die ihr Ziel nie erreichen werden, bedient sich IP eines einfachen Mechanismus. Im Header-Feld TTL, also Time To Live (Lebenszeit), wird beim Absender eine Zahl eingetragen. Jeder Router, der dieses Paket nun erhält und weiterschickt, öffnet den Header und verringert die Zahl um 1. Wenn ein Router ein IP-Paket mit einer TTL von 0 erhält, wirft er es sofort weg. Damit werden Pakete, die niemals ihr Zeit erreichen, zwar nicht sofort, aber zumindest nach einigen Sekunden, aus dem Datenstrom entfernt. Original-IP-Spezifikation wurde die TTL als Wert in Sekunden festgelegt, wobei der Wert ) Inbeiderjedem Hop um mindestens 1 verringert wird. Hat ein Hop länger gedauert, musste die TTL auch um mehr als 1 verringert werden. Da heutzutage kein Router auch nur annähernd eine Sekunde für einen Hop benötigt, betrachtet man die TTL inzwischen als einen reinen Hop-Zähler. Jeder Router verringert den Wert um 1 und ignoriert die tatsächlich benötigte Zeit. 8.4.3 Fragmentierung Darüber hinaus übernimmt IP auch die Fragmentierung eines Datenpakets und die Zusammensetzung der fragmentierten Pakete in der richtigen Reihenfolge beim Empfänger. Dies ist wichtig, da die maximale Paketgröße (Maximum Transfer Unit, MTU), die über ein Netzwerk transporiert werden kann, von dem zugrunde liegenden Netzwerkstandard abhängt. Die MTU eines Ethernet ist anders als die von ISDN oder ATM. Da das Internet sich aus den unterschiedlichsten Netzwerken zusammensetzt, muss die Paketgröße an jedem Übergang von einem zum anderen Netzwerktyp angepasst werden. Um das zu illustrieren, stellen Sie sich Folgendes vor: Sie sind Erdöl-Verkäufer und müssen den Transport des Öls von den Ölfeldern im persischen Golf bis zum Endabnehmer, dem Besitzer eines Einfamilienhauses in Berlin, organisieren. Hierbei kommen verschiedene Verkehrswege ins Spiel: Ein Tanker transportiert das Öl auf dem Meer in den Hamburger Hafen. Dort muss es in viele Eisenbahnwagons umgeladen werden, da die MTU auf der Schiene kleiner ist als auf dem Meer. Im Berliner Bahnhof muss jeder Eisenbahnwagon auf mehrere Tanklaster aufgeteilt werden, da die MTU des Transportwegs 25. Oder zumindest, bis einer der Router resettet, umkonfiguriert oder ersetzt wird. 55 56 8 IP Straße noch kleiner ist als auf der Schiene. Am Ziel angekommen, wird das Öl aus den vielen einzelnen Lastern in ein einzelnes großes Silo geladen. Die Paketgröße muss also bei jedem Übergang von einem zu einem anderen Transportmedium angepasst werden. Am Ende wird die Nutzlast aus den vielen Teilen wieder zu einem großen Ganzen zusammengefügt. Genauso verhält es sich auch im Internet. Wenn ein Router ein Paket erhält und über eine Route weiterleiten soll, für die das Paket zu groß ist, fragmentiert der Router das Paket. Dabei wird die Nutzlast der IP-Pakets in ausreichend kleine Teile aufgespalten und auf mehrere einzelne IP-Pakete verteilt. Diese Fragment-Pakete weisen einige Besonderheiten auf, die Sie im Header sehen können: h h h Das Kennung-Feld ist bei allen Fragment-Paketen identisch. Hierüber erkennt der Zielhost, welche Pakete zusammengehören. In dem Feld Flags gibt es ein Bit More Fragments (weitere Fragmente), das festlegt, ob nach diesem Fragment noch weitere folgen. Bei jedem Fragment, bis auf das letzte, ist dieser Wert auf 1 gesetzt. Das letzte Fragment (oder ein nicht framentiertes Paket) hat hier den Wert 0. Damit erkennt der Empfänger, wann er alle Pakete erhalten hat. Im Feld Fragment-Offset wird die Position des Framents im Originalpaket festgehalten. Dies ist notwendig, um die Fragmente später auch in der richtigen Reihenfolge zusammenzusetzen. Mit diesen drei Informationen kann der Zielhost Fragmente wieder zum Original-IP-Paket zusammensetzen. Wenn das Feld Fragment Offset gesetzt ist, weiß der Host, dass er ein Fragment vor sich hat. Dann sammelt er alle Fragmente mit derselben Kennung ein, bis zum letzten, das More Fragments auf 0 gesetzt hat. Sobald er alle hat, baut er aus den Teilen wieder das alte Paket zusammen. 8.5 Zusammenfassung Das IP-Protokoll ist das Transportmedium, das die Datenpakete vom Absender zum Zielhost transportiert. Durch die weltweit eindeutigen IP-Adressen kann IP den Empfänger eines IP-Pakets im Internet finden und ihm das Paket zustellen. Dabei verfügt IP über einige nützliche Funktionen, die ihm die Aufgabe erst ermöglichen: h h h Validierung des Headers über Prüfsummen Verwerfen alter Pakete mit Hilfe der TTL Fragmentierung von Paketen Aufgaben zur Selbstkontrolle 1. Warum wird IP als verbindungsloses Protokoll bezeichnet? 2. Warum wird IP als unzuverlässig bezeichnet? 3. Wie und warum prüft jeder Router ein IP-Paket auf Beschädigungen? 4. Was ist die Aufgabe des TTL-Felds im IP-Header? 5. Was versteht man unter der Fragmentierung eines IP-Pakets? 6. Warum muss IP Fragmentierung beherrschen? 92 14 14 ANWENDUNGSSCHICHT Anwendungsschicht In dieser Lektion lernen Sie: h h h dass in der Anwendungsschicht viele unterschiedliche Protokolle arbeiten. dass jedes Protokoll dieser Schicht über mindestens einen festen Port verfügt. dass diese Protokolle entweder aus TCP oder UDP aufbauen. 14.1 Aufgaben der Anwendungsschicht Die Anwendungsschicht ist die Schicht, die uns als Netzwerker eigentlich gar nicht mehr interessiert. Das Datenpaket hat seinen Zielhost erreicht und wurde an das richtie Programm weitergeleitet. Was weiter mit dem Paket passiert, hängt nun von der jeweiligen Applikation ab. Ein Paket, das eine E-Mail enthält, wird nun vom Mailserver weiterverarbeitet, also entweder weitergeschickt oder in einem Postfach abgelegt. Ein Paket mit einer HTTP-Anfrage bringt den Webserver dazu, dass er nachsieht, ob für die angeforderte URL ein Dokument existiert, und er dieses dann ausliefert oder eine Fehlermeldung zurücksendet. Diese Schicht gehört ganz den Anwendungsentwicklern und ist für den Netzwerker an sich weniger von Bedeutung. Wenn Sie sich allerdings mit den entsprechenden Diensten näher befassen35, werden die passenden Protokolle sehr wichtig. Ohne solide Kenntnisse von HTTP werden Sie nur schwer einen Webserver so konfigurieren, dass er alles so tut, wie Sie es von ihm wollen. Ohne zu wissen, wie SSH funktioniert, werden die vielen Optionen zu privaten und öffentlichen Schlüsseln, Authentifizierung und Kryptografie nur wenig Sinn für Sie ergeben. Aus diesem Grund werden in diesem Lehrgang diese Protokolle zusammen mit den Diensten besprochen. An dieser Stelle möchte ich Ihnen nur einen kleinen Überblick über die Protokolle geben, die Sie in Ihrer Netzwerker-Karriere wahrscheinlich noch näher kennenlernen werden. 14.2 Wichtige Protokolle der Anwendungsschicht 14.2.1 HTTP HTTP, das Hypertext Transfer Protocol, wird für die Übertragung von Ressourcen über ein TCP/IP-Netzwerk verwendet. Im Normalfall bestehen diese Daten aus HTML-Webseiten oder darin eingebetteten Dokumenten wie Javascript, Bildern oder auch Videos. Der Zugriff auf die Resourcen erfolgt über URLs. Über HTTP tauschen Client und Server sogenannte Nachrichten aus, wobei eine Nachricht immer ein Request (Anfrage) ist, auf die der Kommunikationspartner eine Response (Antwort) sendet. Da das Thema Sicherheit immer wichtiger wird, gibt es eine verschlüsselte Variante von HTTP, genannt HTTPS. Im Prinzip handelt es sich dabei um normales HTTP, das in einer SSL-geschützten Sitzung transportiert wird. Der Standardport von HTTP ist 80/TCP, der von HTTPS 443/TCP. 35. Wovon ich mal ausgehe, da diese Schulungsunterlage Teil eines Lehrganges ist, der unter anderem die Konfiguration von Web-, Mail, FTP- und SSH-Servern beinhaltet. 14.2 WICHTIGE PROTOKOLLE DER ANWENDUNGSSCHICHT 14.2.2 FTP FTP, das File Transfer Protocol ist, wie der Name vermuten lässt, für die Übertragung von Dateien über TCP/IP-Netzwerke zuständig. Dabei ist für den Dateiaustausch ein Login auf dem Server notwenig, wobei auch ein anonymer Login konfiguriert werden kann. Die Verbindung zwischen Server und Client läuft unverschlüsselt ab, es werden also auch sensible Daten wie Benutzernamen und Passwörter im Klartext übertragen. Daher wird FTP in einigen Bereichen langsam aber sicher durch andere Protokolle wie SSH verdrängt. Eine Alternative ist, FTP über eine SSLVerbindung zu tunneln (FTPS). Das FTP-Protokoll hat eine Besonderheit, das es von den anderen Protokollen der Applikationsschicht unterscheidet. Es verwendet zwei TCP-Verbindungen, eine für die Übertragung von Kommandos, die andere für die eigentliche Datenübertragung. Diese Besonderheit verursacht oft Probleme im Zusammenhang mit Firewalls, die den zweiten Kanal gerne blockieren. Der Kontrollkanal verwendet den Port 21, der Datenkanal Port 20. 14.2.3 SMTP SMTP, das Simple Mail Transfer Protocol, ist das Protokoll, über das im Internet E-Mails ausgetauscht werden. Der Standardport von SMTP ist 25/TCP. Mit SMTP kommunizieren entweder zwei Mailserver, kurz MTA36 genannt, untereinander, wenn ein Server eine E-Mail an den zweiten weiterleiten möchte, oder es kommuniziert ein Mailclient mit einem MTA. Im zweiten Fall kommuniziert der Client mit dem Mailserver, der im Client konfiguriert wurde, um eine E-Mail an einen beliebigen Absender zu schicken. haben viele Menschen tatsächlich eine falsche Vorstellung, was genau passiert. Viele den) Hier ken, ihr Mailclient kommuniziert direkt mit dem Mailserver der Zieladresse. Stattdessen redet der Client immer nur mit dem konfigurierten Server des eigenen Providers, also dem MTA, den Sie im Client eingestellt haben. Beispiel Sie haben in Ihrem Mailclient einen Account von googlemail.com konfiguriert. Eines schönen Tages schreiben Sie eine E-Mail an einen Freund, dessen Account bei web.de gehostet wird. Ihr Mailclient kommuniziert niemals direkt mit dem MTA von web.de. Stattdessen versendet der Client die E-Mail an den MTA von googlemail.com. Dieser kümmert sich dann darum, die Mail an den eigentlichen Empfänger zu versenden. 14.2.4 POP3 Das Post Office Protocol Version 3 (POP3) wird zum Abholen von E-Mails aus Postfächern verwendet. Während SMTP zum Versand von E-Mails dient, wird POP3 erst aktiv, wenn die Mail bereits im Postfach des Empfängers liegt. Der Standardport ist 110/TCP. POP3 ist ein relativ einfach aufgebautes Protokoll, das nur wenige Funktionen bereitstellt. POP3 erlaubt es, E-Mails auf dem Server aufzulisten, diese herunterzuladen und zu löschen. Weitergehende Funktionen wie die Verwaltung von mehreren Mail-Ordnern oder das Verschieben von E-Mails auf dem Server sind mit POP3 nicht möglich. 14.2.5 IMAP Genau an dieser Schwachstelle von POP3 setzt IMAP, das Internet Message Access Protocol, an. Er erfüllt dieselben Aufgaben, also das Abrufen von E-Mails aus Postfächern, bietet darüber hinaus aber wesentlich mehr Funktionen als POP3. Der Standardport ist 143/TCP. 36. MTA steht für Mail Transfer Agent. 93 94 14 ANWENDUNGSSCHICHT Der grundlegende Unterschied ist, dass IMAP die E-Mails direkt auf dem Server verwaltet, während POP3 nur das Abrufen und Löschen beherrscht. IMAP ist in der Lage, mehrere Mail-Ordner zu verwalten, Mails zwischen Ordnern oder sogar Konten zu kopieren oder zu verschieben, oder auch direkt auf dem Server Filterregeln anzuwenden. 14.2.6 DNS Das Domain Name System, kurz DNS, ist für die Auflösung von Namen in IP-Adressen zuständig. Ohne DNS könnten wir im Browser nicht einfach URLs wie http://www.example.com/ eingeben, sondern müssten uns die IP-Adresse jedes Webservers merken. Der Standardport für DNS-Anfragen ist 53, wobei DNS in den meisten Fällen UDP als Transportprotokoll einsetzt. Einige Funktionen von DNS benötigen allerdings auch TCP, weshalb DNS den Port 53 für TCP und UDP reserviert. Weitere Funktionen des DNS sind zum Beispiel die umgekehrte Auflösung von IP-Adressen zu Namen und die Festlegung der Mailserver, die für eine Domäne zuständig sind. 14.2.7 Telnet Telnet ermöglicht den Zugriff auf die Kommandozeile eines entfernten Hosts. Es wurde entwickelt, damit Administratoren auf einem entfernten Server wie auf einer lokalen Shell arbeiten können. Auf diese Weise müssen Administratoren nicht zum physikalischen Standort des Servers reisen, um Änderungen an der Konfiguration vorzunehmen oder Wartungsarbeiten durchzuführen. Stellen Sie sich vor, für jede kleine Änderung am Server, jedes Anlegen eines Benutzerkontos, jeden Einblick in die Logdateien wäre eine Reise in das nächste Rechenzentrum notwendig. Inzwischen ist Telnet weitgehend durch SSH abgelöst worden, da es heutigen Sicherheitsanforderungen nicht mehr genügt. Der Standardport ist 23/TCP. 14.2.8 SSH SSH, die Secure Shell, bietet die gleichen Funktionen wie Telnet, nämlich den Shellzugang zu einem Server über das Internet. Im Gegensatz zu Telnet läuft dieser Zugriff bei SSH allerdings verschlüsselt ab. Telnet überträgt die vollständige Kommunikation inklusive aller Kommandos und der eingegebenen Passwörter im Klartext, was heute nicht mehr tragbar ist. Neben dem verschlüsselten Shellzugriff bietet SSH zusätzlich noch erweiterte Authentifizierungsmöglichkeiten, wie zum Beispiel die Public Key Authentication, und stellt mit SFTP eine verschlüsselte Alternative zum FTP-Protokoll zur Verfügung. Der Standardport ist 22/TCP. 14.3 Zusammenfassung Die Protokolle der Anwendungsschicht sind die Vermittler zwischen den Anwendungsprogrammen, wie Browser oder Mailclient, und dem Internet. Mit TCP oder UDP-Paketen als Transportmedium ermöglichen sie die vielen Dienste des Internet, die Sie täglich nutzen. Für uns als Netzwerker sind die Details dieser Protokolle eher uninteressant, da sie nichts mehr mit der eigentlichen Datenübertragung zu tun haben. Für uns als Administratoren und/oder Webentwickler sind diese Protokolle allerdings sehr interessant. Ohne ein zumindest grundlegendes Verständnis dieser Protokolle ist es nicht möglich, die entsprechenden Dienste effektiv zu konfigurieren oder Anwendungen auf Basis der Protokolle zu entwickeln. Einen Mailserver ohne Kenntnisse über SMTP sicher und reibungslos am Laufen zu halten, wird Ihnen kaum gelingen. Genauso ist es nicht möglich, ohne tiefere Kenntnisse von IMAP ein Webmail-Anwendung zu programmieren. Aufgaben zur Selbstkontrolle 1. Welcher Port wird von HTTP standardmäßig verwendet? 2. Welcher Port wird von SMTP standardmäßig verwendet? INDEX 115 Index ting Client-Server-Prinzip CSMA/CD CSNET Zahlen 10 Gigabit-Ethernets 10Base-2 10Base5 10BaseT 3-Wege Handshake 64 14 42 15 D 40 39 39 39 86 A Access Point 35 ACK-Flag 88 Address Resolution Protocol 45 ADSL 35 ADSL-Modem 35 Anwendungsschichten 22 ARIN 17 ARP 45 ARPA 15 ARPANET 15 ARP-Request 45 B Backbones 15 Bandbreite 31 bidirektional 14 BITNET 15 Bitübertragungsschicht 22 Blacklist 96 Bridge 41 Broadcast 25, 46 Bus-Topologie 38 C Caching Proxy 98 Carrier Sense Multiple Access/Collision Detection 42 CIDR 64 Classless Inter-Domain Rou- Datentransferrate 31 Datenübertragungsrate 31 Default Route 69 Demultiplexing 23, 77, 81 DENIC 18 DNS 94 Domain Name System 94 Downsizing 13 downstream 35 dynamische Routen 50 E Ethernet EUnet 15 15 Kollisionsdomäne 40 93 41 93 60 49 40 H halboffene Verbindung 87 Hops 49 HTTP 92 Hub 39–40 Hypertext Transfer Protocol 92 42 L LAN Layer-3-Switch G Gateway Gateways Gigabit Ethernets IAB 16 IANA 16 ICANN 17 ICMP 48 IETF 16 illegale IP-Adressen 70 IMAP 93 IMP 15 Internet Activities Board 16 Internet Architect 16 Internet Control Message Protocol 48 Internet Message Access Protocol 93 Internet Protocol 48 Internet Society 16 Internetwork 15 IP 25, 48 IP-Adresskonflikt 69 IPnG 70 IPv6 70 ISDN 33 ISOC 16 K F Fast-Ethernets File Transfer Protocol Frame FTP I 18 48 M MAC-Adresse 44 MAC-Adressen 40 Mainframes 12 Maximum Transfer Unit 42 MILNET 15 MTU 42, 55 Multicast 82 Multiplexing 23, 77, 81 multiuserfähig 12 116 INDEX N NAT NCP Netzwerkkarte NIC NSFNET 69 15 27 17 15 P Patchkabel 39 Peer To Peer 13 Personal Computer 13 ping 74 POP3 93 Post Office Protocol Version 3 93 Proxy 98 PSH-Flag 89 Public Key Authentication 94 R RARP 47 Registered Ports 78 Relay 98 Repeater 38, 40 Request 14, 92 Request for Comment 16 Response 14, 92 RFC 16 RIPE 17 RIRs 17 RJ45 39 Router 48 Routing 49 Routingprotokolle 50 Routingtabelle 49 S Secure Shell 94 Server 13 Sicherungsschicht 22 Simple Mail Transfer Protocol 93 Sliding Window Algorithmus 90 SMTP 93 Splitter 35 SSH 94 Stateful-Inspection-Firewall 97 statische Routen 50 Stern-Topologie 39 Subnetting 65 Subnetzmaske 60 Switch 41 Systemschichten 22 T Task Force 16 TCP 79 TCP/IP-Protokoll 15 Teilnetzfeld 65 Telnet 94 Terminals 12 Thin Clients 14 Token 32 Token Passing 32 Toplevel Domains 17 traceroute 75 Transceiver 39 Transmission Control Protocol 79 Twisted Pair 39 U UDP UMTS Unicast upstream URG-Flag USENET User Datagram Protocol 78 36 46 35 89 15 78 V Vermittlungsschicht 22 W WAN Well Known Ports Whitelist 18 78 96 Wireless Local Area Network 35 WLAN 35