Internet Control Message Protocol (ICMP)

Ähnliche Dokumente
ICMP Internet Control Message Protocol. Michael Ziegler

ICMP Protokoll & Anwendung Einige Risiken von ICMP erkennen und verstehen! FRITZ Gerald

Version: Das Versionsfeld gibt an ob es sich um IPv4 oder um IPv6 handelt.

UDP User Datagramm Protokoll

Chapter 8 ICMP. CCNA 2 version 3.0 Wolfgang Riggert, FH Flensburg auf der Grundlage von

Internet Protokolle. ICMP & Ping Internet Controll Message Protokolls

Internetanwendungstechnik (Übung)

Peer-to-Peer- Netzwerke

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 6 (27. Mai 31. Mai 2013)

Grundlegende Steuer- und Verwaltungsfunktionen (ICMP)

Grundlagen der Rechnernetze. Internetworking

UDP-/ICMP-Erweiterung für fwtest

IPv4- und IPv6 Header Analyse und Vergleich

Adressierung eines Kommunikationspartners in der TCP/IP-Familie

4.4 statisches Routen 4.5 Routing- Algorithmen. 4.1 Einleitung 4.2 Aufbau eines Routers 4.3 IP Internet Protocol. 4.6 Routing im Internet

Internet Protokoll. Die Funktionen von IP umfassen:

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

shri Raw Sockets Prof. Dr. Ch. Reich

ARP, ICMP, ping. Jörn Stuphorn Bielefeld, den 4. Mai Mai Universität Bielefeld Technische Fakultät

Internet Protokoll IP Routing Routing Protokolle. Internet Control Message Protocol (ICMP, RFC792) Wichtige ICMP Typen

Multicast & Anycast. Jens Link FFG2012. jenslink@quux.de. Jens Link (jenslink@quux.de) Multicast & Anycast 1 / 29

Rechnernetze 2. Internetzwerke

Themen. Vermittlungsschicht. Routing-Algorithmen. IP-Adressierung ARP, RARP, BOOTP, DHCP

Telekommunikationsnetze 2

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2017

Internetprotokoll und Adressvergabe

Statisches Routing. Jörn Stuphorn Bielefeld, den Juni Juni Universität Bielefeld Technische Fakultät

Grundlagen der Rechnernetze. Internetworking

Mobilkommunikationsnetze - TCP/IP (und andere)-

TCP. Transmission Control Protocol

UDP-, MTU- und IP- Fragmentierung

TCP/IP Troubleshooting

Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Hochschule Bonn-Rhein-Sieg. Modul 4: IPv4

Übung 7. Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen Mo-T1 / Di-T11 SS 2016) Dennis Fischer

Grundlagen TCP/IP. C3D2 Chaostreff Dresden. Sven Klemm

Netzwerkgrundlagen. OSI-Modell. Layer 1 Physikal Layer. Layer 2 Data Link Layer. Layer 3 Network Layer

Der Internet Layer. Internet layer/ip. Internet Protocol (IP) Internet Control Message Protocol (ICMP) Routing Information Protocol (RIP)

Systeme II 4. Die Vermittlungsschicht

TCP/IP Troubleshooting. Jochen Reinwand RRZE-Kolloquium Praxis der Datenkommunikation 5. November 2014

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018

Stefan Dahler. 1. Konfiguration von Extended Routing. 1.1 Einleitung

Kommunikationsnetze. Praxis Internet. Version 4.0

Praktikum Rechnernetze Aufgabe 3: Messung mit dem Protokollanalyzer

Grundkurs Routing im Internet mit Übungen

IP Internet Protokoll

KV Betriebssysteme: IP Minifassung

TCP/IP. Internet-Protokolle im professionellen Einsatz

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Mobile IP. Jeremi Dzienian. 29. Januar Universität Freiburg. Jeremi Dzienian (Universität Freiburg) Mobile IP 29. Januar / 13

Rechnernetze Übung 11

Evaluation of QoS- Aspects of mobile IPv6 Clients in an IEEE Network. Folkert Saathoff Oktober 2oo5

Vermittlungsschicht im Internet - Bsp. Forschungseinrichtungen DFN als Provider für Hochschulen und Universitäten Kopplung von Providernetzen zum

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018

Internetanwendungstechnik. TCP/IP- und OSI-Referenzmodell. Gero Mühl

Netzwerk-Programmierung. Netzwerke.

Technische Praxis der Computersysteme I 2. Vorlesung

IP-Netzwerke und Protokolle

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2017

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

Adressierung und Routing

TCP/IP Troubleshooting

Rechnern netze und Organisatio on

Domain Name Service (DNS)

Hochschule Bonn-Rhein-Sieg. Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Modul 5: IPv6. Netze, BCS, 2.

Institut für Informatik der Ludwig-Maximilians-Universität München Prof. Dr. D. Kranzlmüller, Dr. N. gentschen Felde. Probeklausur

Der TCP/IP Protokollstapel

Herausforderung Multicast IPTV

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

Das TCP/IP Schichtenmodell

Literatur. ITSec SS Teil 6/Paketgeneratoren

IT-Security Teil 6: Paket-Generatoren

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018

Breitband ISDN Lokale Netze Internet WS 2009/10. Martin Werner, November 09 1

Vorlesung SS 2001: Sicherheit in offenen Netzen

IPv4- und IPv6 Header Analyse und Vergleich

Wo geht's lang: I Ro R u o t u i t n i g

Netzwerk Teil 1 Linux-Kurs der Unix-AG

IGMP und MLD wird zwischen dem Endsystem

Praktikum zur Vorlesung Datenkommunikation. Teil I

Übung Prüfen von Ethernet-Rahmen mit Wireshark

SCHICHTENMODELLE IM NETZWERK

Netzwerke. Netzwerk - Programmierung. Alexander Sczyrba. Madis Rumming.

Das IP Nachfolgeprotokoll (IP Next Generation, IPng, IPv6)

Transkript:

Internet Control Message Protocol (ICMP) Einführung Das Internet Control Message Protocol (ICMP) dient dem Zweck der Übertragung von Statusinformationen und Fehlermeldungen der Protokolle IP, TCP und UDP zwischen IP Netzwerkknoten. ICMP nutzt das Internet Protocol (IP) als wäre es selber in einer höheren Schicht als IP angesiedelt. Tatsächlich ist ICMP ein wesentlicher Teil von IP und muß von jedem IP Modul eingebunden werden. ICMP ist zusammen mit IP im OSI Schichtenmodell in der Vermittlungsschicht (Schicht 3) angesiedelt. ICMP wurde definiert, da IP selber keine Funktion zur Status oder Fehlerübermittlung vorsieht. Ein Sender, der ein Datagramm (Paket) per IP überträgt haben weder Anspruch darauf, daß das Paket ankommt, oder falls es ankommt, daß es korrekt übertragen wurde. Auch wird er nicht darüber informiert, wenn letzterer Fall eintritt. An diesem Punkt setzt ICMP an. ICMP wurde im September 1981 im Request For Comments (RFC) Nummer 792 von der Network Working Group auf Basis des IPv4 beschrieben. Mit der Spezifizierung des Internet Protocol Version 6 (IPv6) wurde auch ICMP für IPv6 (kurz ICMPv6) im RFC 1885 vom Dezember 1995 von der Network Working Group neu definiert. Für ICMPv4 wurden im Nachhinein noch diverse Erweiterungen definiert, die sich jedoch in den seltensten Fällen wirklich durchgesetzt haben. Im folgenden wird das zur Zeit noch weit verbreitete ICMPv4 näher erläutert. Interessenten an ICMPv6 werden auf die RFC 1885 verwiesen. ICMPv4 Da von Sender oder Empfänger ein aufgetretener Fehler bei der Übertragung festgestellt wird, ist es sinnvoll diese Information auch zu verwenden. Die Hauptaufgabe von ICMP ist nun eben diese Übertragung von Fehlerinformationen. Weitere Funktionen sind vor allem die Übermittlung von Informationen zu Diagnose oder Optimierungszwecken. Es können auch jederzeit neue Funktionalitäten in ICMP eingebaut werden, so daß eine Anpassung an neue Anforderungen ohne Einführung eines neuen Protokolls möglich ist. Trigger ICMP Nachrichten verschicken sich nicht einfach selbst, sondern es braucht einen Auslöser. Die Ursache für das Versenden einer ICMP Nachricht kann recht vielfältig sein, die wichtigsten Ursachen sind: Fehler beim Weiterleiten eines Pakets durch einen Router z.b.: der Router hat keine Informationen, wohin das Paket weitergeleitet werden soll oder es wurde fehlerhaft übertragen Fehler bei der Verarbeitung eines Pakets durch den Empfänger z.b.: Fehlerhafte Übertragung, das übergeordnete Protokoll ist unbekannt oder ein fragmentiertes Paket ist unvollständig Suboptimaler Zustand z.b.: falsches Routing, Überlastung eines Links Aufruf eines ICMP Requests z.b.: Programm,ping an den Rechner adressierter Request z.b.: durch,ping ausgelöster Echo Request Weiterhin existieren einige Einschränkungen, damit das Netz nicht durch zu viel ICMP Verkehr belastet wird: Vermeidung von Schleifen Wenn der Trigger eine andere ICMP Nachricht ist, wird keine ICMP Nachricht ausgesandt Einschränkung der Bandbreite Es wird vorgeschlagen maximal 1 ICMP Nachricht pro Sekunde zu versenden oder maximal 2% der Bandbreite für ICMP Nachrichten zu verwenden Unterscheidung von Fragmenten Ist ein Fragment der Trigger, wird nur dann eine ICMP Nachricht verschickt, wenn es sich um das erste Fragment (Offset=0) handelt. Diese Einschränkungen gelten nicht für Antworten auf ICMP Requests. 1/5

Kein Rechner ist verpflichtet, ICMP Nachrichten zu versenden, mit einer Ausnahme: Jeder Rechner muß auf ein Echo Request immer mit einem Echo Reply antworten (auch Ping und Pong genannt). Nachrichtenformat Der ICMP Header ist als eine Erweiterung des IP Headers anzusehen. Daher setzt sich der ICMP Header auch aus einem IP Header mit nachfolgenden ICMP Daten zusammen. Der Type of Service indiziert bei ICMP Nachrichten eine Routine Nachricht ohne spezielle Anforderungen. Weiterhin identifiziert protocol mit dem Wert 1 den Inhalt als ICMP Paket. Die anderen Felder werden vom System wie bei jedem anderen IP Paket ausgefüllt, bis auf den ICMP Header, der bei ICMP type beginnt. Unter dem ICMP Protokoll wurden 15 verschiedene Pakettypen festgelegt. Die wesentlichen Felder des ICMP Headers sind das Typfeld (ICMP type) und das Codefeld (ICMP mode), beide jeweils 8 Bit lang. Sie bestimmen gemeinsam die Funktionalität der einzelnen ICMP Pakete. Die eigentlichen Informationen werden im Nachrichtenfeld (ICMP message specific data) eingetragen, dies kann dann auch noch einmal weitere Felder beinhalten. Die wichtigsten ICMP Pakettypen werden im folgenden näher betrachtet. Weitere Einzelheiten sind bei Interesse den RFCs zu entnehmen. Pakettypen Typ Code Bedeutung 0 Echo Reply 3 Destination unreachable 3 0 net unreachable 3 1 host unreachable 3 2 protocol unreachable 3 3 port unreachable 2/5

3 4 fragmentation needed and DF set 3 5 source route failed 4 0 Source Quench 5 Redirect Message 5 0 Redirect datagrams for the Network 5 1 Redirect datagrams for the Host 5 2 Redirect datagrams for the Type of Service and Network 5 3 Redirect datagrams for the Type of Service and Host 8 Echo Request 11 Time Exceeded 11 0 time to live exceeded in transit 11 1 fragment reassembly time exceeded 12 Parameter Problem 12 0 pointer indicates the error 13 Timestamp Request 14 Timestamp Reply 15 Information Request 16 Information Reply Empfängt ein Rechner also eine Nachricht mit Typ=3 und Code=2, so kann er bei Kenntnis von Type und Code recht genau bestimmen, was die Ursache des Fehlers ist, in diesem Fall daß der Absender das vorher angesprochene Protokoll nicht kannte. Kennt er den Code nicht, so weiß er nur, daß der Absender aus irgendeinem Grund nicht erreichbar war. Wenn er auch den Typ nicht kennt, kann er mit der Nachricht natürlich gar nichts anfangen. Die oben aufgeführten Nummern sind allerdings wahrscheinlich allen Rechnern bekannt, aber bei den vielen Erweiterungen muß das nicht der Fall sein. Wenn wir uns das obige Beispiel ansehen, so stellt sich z.b. die Frage, auf welches Paket und welches Protokoll sich die Fehlermeldung bezog. Abhängig vom Typ (und manchmal auch Code) haben die Nachrichten noch entsprechende Informationen im Nachrichtentext. Bei Fehlermeldungen sind dies 32 Bit für weitere Felder und anschließend der IP Header und die ersten 64 Bit des verursachenden Pakets, aber bei anderen Nachrichten kann man die Nachrichtentexte nur auswerten, wenn man den Typ (und den Code) kennt. Die Checksumme dient dazu die Korrektheit der Nachricht zu gewährleisten. Destination Unreachable Eine Destination Unreachable Nachricht wird verschickt, wenn ein Paket nicht zugestellt werden kann, weil der Empfänger nicht erreichbar ist. Die Ursachen können sehr vielfältig sein, z.b. daß der Empfänger nicht existiert, kein passendes Protokoll geladen ist oder das Routing nicht geklappt hat. Packet Too Big Eine Packet Too Big Nachricht wird versandt, wenn ein Paket nicht weitergeleitet werden konnte, weil sie zu lang war, aber nicht fragmentiert werden durfte. Diese Nachricht ist Grundlage für PMTU Discovery, ein 3/5

Verfahren um automatisch die ideale MTU Größe (Maximum Transfer Unit Größe der einzelnen Paketfragmente) zu ermitteln. Time Exceeded Befindet sich eine Nachricht so lange im Netz, daß die Time To Live abgelaufen ist, so wird eine Time Exceeded Nachricht verschickt. Eine andere Ursache ist das Ausbleiben von Fragmenten einer Nachricht. Parameter Problem Pointer Internet Header + 64 bits of Original Datagram Es ist ein Problem beim Auswerten der Nachricht aufgetreten, das auf fehlerhafte oder unbekannte Parameter zurückzuführen ist. Der Pointer ist hierbei ein Zeiger auf die Position an der das Problem auftrat. Source Quench Hat ein Rechner Probleme, die ankommenden Pakete rechtzeitig zu verarbeiten, so sendet er eine Source Quench Nachricht. Diese veranlaßt den Sender, die Rate seiner Pakete zu vermindern. Dieses Verfahrens ist jedoch angeblich viel zu ineffizient, so daß andere Methoden zur Staukontrolle und vermeidung bevorzugt werden sollten. Da ein Router diese Nachricht auch schon bei hoher Auslastung verschicken kann, ohne daß das Paket verloren geht, kann nicht entschieden werden, ob es sich um einen wirklichen Fehler (Verlust des Paketes) oder nur um eine Information handelt. Redirect Gateway Internet Address Bemerkt ein Router, daß es für eine Nachricht einen besseren Weg gibt, als über diesen Router, so kann er eine Empfehlung verschicken, weitere Nachrichten zum gleichen Ziel, über die angegebene Gateway Adresse zu routen. Da das Paket nicht verloren geht, handelt es sich um eine reine Informationsnachricht. Echo Request / Reply Data Die wohl bekannteste Anwendung, die auf ICMP basiert ist ping, ein Programm zum versenden von Diagnose Nachrichten. Hierbei wird von dem Programm ein Echo Request ausgelöst und zum anderen Rechner geroutet. Dieser muß auf den Request mit einem Reply antworten. Erhält der erste Rechner die Antwort, so erhält der Benutzer eine entsprechende Ausgabe (z.b. rechner2 is alive, ggf. mit Angabe einer Round Trip Time). Ein Echo Request ist die einzige ICMP Nachricht, auf die jeder IP fähige Rechner antworten muß. 4/5

Timestamp Request / Reply Originate Timestamp Receive Timestamp Transmit Timestamp Die Timestamp Request und Timestamp Reply Nachrichten ermöglichen die Zeitsynchronisation zweier Rechner. Da jedoch weitere Protokolle wie NTP oder SNTP eingeführt wurden, ist dieser Nachrichtentyp überflüssig geworden. Information Request / Reply Dieser Nachrichtentyp ermöglicht es einem Host, seine Netz Adresse zu erfahren. Quellenangaben Achim Thesmann, "Internet Control Message Protocol (ICMP) und Path MTU Discovery bei IPv4 und IPv6" 19.02.1997 [http://www.uni koblenz.de/~thesmann/icmp/icmp.html] Internet Control Message Protocol [http://www.snutz.de/computer/icmp.htm] NetworkWorld Germany Glossar:ICMP Protokoll [http://www.gateway.de/knowledge/lexikon/docs/5/f005395.htm] NetworkWorld Germany Glossar:ICMP Header [http://www.gateway.de/knowledge/lexikon/docs/1/f009301.htm] NetworkWorld Germany Glossar:ICMP Pakettypen [http://www.gateway.de/knowledge/lexikon/docs/5/02005395.htm] NetworkWorld Germany Glossar:Aufbau des ICMP Datenrahmens [http://www.gateway.de/knowledge/lexikon/docs/5/01005395.htm] J. Postel, "RFC 792 Internet Control Message Protocol", 01.09.1981 [http://www.uni koblenz.de/~thesmann/icmp/rfc792.txt] A. Conta, S. Deering, "RFC 1885 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6)",04.01.1996 [http://www.uni koblenz.de/~thesmann/icmp/rfc1885.txt] 5/5