Icmp: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 1: Zeile 1:
=Internet Control Message Protocol=
+
= Internet Control Message Protocol (ICMP) =
*ICMP ist Bestandteil jeder IP- Implementierung und hat die Aufgabe Fehler- und Diagnoseinformationen für IP zu transportieren.
+
 
*ICMP ist im RFC 792 spezifiziert.
+
* ICMP ist Bestandteil jeder IP-Implementierung und transportiert Fehler- und Diagnoseinformationen (RFC 792).
*Oft wird ICMP auch für Testzwecke verwendet, etwa um zu ermitteln, ob ein Host derzeit empfangsbereit ist.
+
* Verwendung: Diagnose und Testzwecke (z. B. Erreichbarkeit eines Hosts prüfen).
*ICMP hat sehr unterschiedliche Informationen zu transportieren.
+
* Aufbau: Der Grundaufbau des ICMP-Headers ist konstant, die Bedeutung der weiteren Felder variiert je nach Nachrichtentyp.
*Deshalb ist nur der Grundaufbau des ICMP-Headers immer gleich, die Bedeutung der einzelnen Felder im Protokollkopf wechselt jedoch.
+
* Kapselung: Jede ICMP-Nachricht wird in einem IP-Datagramm eingekapselt.
*Jeder ICMP- Nachrichtentyp wird in einem IP-Datengramm eingekapselt.
+
 
*Der ICMP-Header (allgemeiner Aufbau).
 
 
[[Bild:MessageProtocol.png]]
 
[[Bild:MessageProtocol.png]]
=Einsatz von icmp=
+
 
*IP verwendet ICMP zum versenden von Fehler- und Diagnosemeldungen, während ICMP zur Übertragung seiner Nachrichten IP benutzt.
+
= Einsatz von ICMP =
*Das bedeutet, wenn eine ICMP-Nachricht verschickt werden muß, wird ein IP- Datengramm erzeugt.
+
 
*Die ICMP-Meldung in den Datenbereich des IP-Datengramms eingekapselt (siehe Abbildung).
+
* IP nutzt ICMP für Fehler- und Diagnosemeldungen; ICMP nutzt IP zur Übertragung.
 +
* Bei Bedarf wird ein IP-Datagramm erzeugt und die ICMP-Meldung in den Datenbereich eingebettet.
  
 
[[Bild:icmp.png]]
 
[[Bild:icmp.png]]
=ICMP-Nachrichten-Einkapselung.=
 
*Das Datengramm wird dann wie üblich versendet.
 
*Eine ICMP-Nachricht wird immer als Antwort auf ein Datengramm verschickt.
 
*Entweder ist ein Datengramm auf ein Problem gestoßen, oder das Datengramm enthält eine ICMP-Anfrage
 
*Auf diese dann  eine Antwort versendet versendet werden muß.
 
*In beiden Fällen sendet ein Host oder Router eine ICMP-Nachricht an die Quelle des Datengramms zurück.
 
=Die derzeit wichtigsten ICMP-Nachrichtentypen sind=
 
  
==Destination Unreachable (Ziel nicht erreichbar)==
+
* ICMP-Nachrichten sind immer Antworten auf ein Datagramm (aufgrund eines Problems oder einer Anfrage).
Diese Nachricht wird verwendet, wenn:
+
* Ein Host oder Router sendet die ICMP-Nachricht immer an die Quelle des ursprünglichen Datagramms zurück.
ein Netzwerk, Host, Protokoll oder Port nicht erreichbar ist,
+
 
ein Paket nicht fragmentiert werden kann, weil das DF-Bit gesetz ist,
+
= Wichtige ICMP-Nachrichtentypen =
die Source Route Option nicht erfolgreich ist.
+
 
===Host unreachable===
+
== Destination Unreachable (Ziel nicht erreichbar) ==
*IP 192.168.240.100 > 192.168.244.2: ICMP host 192.168.255.67 unreachable, length 36
+
* Verwendung bei: Nichterreichbarkeit von Netzwerk, Host, Protokoll oder Port.
===Net unreachable===
+
* '''Sonderfall MTU:''' Tritt auf, wenn ein Paket nicht fragmentiert werden kann (DF-Bit gesetzt), aber die MTU des nächsten Hops zu klein ist (Type 3, Code 4). Dies ist die Basis für die '''Path MTU Discovery (PMTUD)'''.
*IP 192.168.255.3 > 192.168.244.2: ICMP net 65.21.34.0/24 unreachable, length 92
+
* '''Firewalls:''' Viele Administratoren blockieren ICMP Type 3, was die Fehlersuche erschwert, da Pakete ohne Rückmeldung einfach verworfen werden ("Black Hole").
===Port unreachable===
+
 
*IP 192.168.240.100 > 192.168.244.2: ICMP 192.168.240.100 udp port 44444 unreachable, length 36
+
=== Host unreachable ===
===Redirect===
+
* IP 192.168.240.100 > 192.168.244.2: ICMP host 192.168.255.67 unreachable, length 36
Wird ausgesendet, wenn ein Router feststellt, daß ein Paket falsch weitergeleitet wurde. Der sendende Host wird damit aufgefordert, die angegebene Route zu ändern.
+
=== Net unreachable ===
*IP 192.168.244.2 > 192.168.242.28: ICMP redirect 8.8.8.8 to host 192.168.240.100, length 92
+
* IP 192.168.255.3 > 192.168.244.2: ICMP net 65.21.34.0/24 unreachable, length 92
====Time Exceeded (Zeit verstrichen)====
+
=== Port unreachable ===
Diese Nachricht wird an den Absender eines Datengramms gesendet,dessen Lebensdauer den Wert 0 erreicht hat. Diese Nachricht ist ein Zeichen dafür, daß Pakete in einem Zyklus wandern, daß Netz überlastet ist oder die Lebensdauerfür das Paket zu gering eingestellt wurde
+
* IP 192.168.240.100 > 192.168.244.2: ICMP 192.168.240.100 udp port 44444 unreachable, length 36
*IP 192.168.255.3 > 192.168.244.2: ICMP time exceeded in-transit, length 92
+
 
====Echo Request, Echo Reply====
+
== Redirect ==
Mit diesen Nachrichten kann festgestellt werden, ob ein bestimmtes Ziel erreichbar ist. Ein Echo Request wird an einen Host gesendet und hat einen Echo Reply zur Folge (falls der Host erreicht wird).
+
* Wird gesendet, wenn ein Router eine Fehlleitung feststellt.
*IP 192.168.244.2 > 136.243.187.66: ICMP echo request, id 30461, seq 1, length 64
+
* Der Host wird aufgefordert, die Route auf ein spezifisches Gateway zu ändern.
*IP 136.243.187.66 > 192.168.244.2: ICMP echo reply, id 30461, seq 1, length 64
+
 
===Source Quench (Quelle löschen)===
+
== Time Exceeded (Zeit verstrichen) ==
Wird ausgesendet, wenn ein Host zu viele Pakete verschickt, die aus Kapazitätsmangel nicht mehr verarbeitet werden können. Der sendende Host muß dann die Rate zum Aussenden von Nachrichten verringern.
+
* Gesendet an den Absender, wenn die Lebensdauer (TTL) den Wert 0 erreicht.
===Parameter Problem===
+
* Ursachen: Routing-Zyklen (Schleifen), Netzüberlastung oder zu geringe initiale Lebensdauer.
Verständigt den Absender eines Datengramms darüber, daß das Paket aufgrund einer fehlerhaften Angabe im IP-Header verworfen werden mußte.
+
* Beispiel: IP 192.168.255.3 > 192.168.244.2: ICMP time exceeded in-transit
====Timestamp Request, Timestamp Reply====
+
 
Diese beiden Nachrichten sind ähnlich den zuvor beschriebenen Nachrichten, außer das die Ankunftszeit der Nachricht und die Sendezeit der Antwort mit erfaßt werden. Mit diesen Nachrichtentypen kann die Netzleistung gemessen werden.
+
== Echo Request, Echo Reply ==
===EXKURS: ICMP TYPES AND CODES===
+
* Prüfung der Erreichbarkeit eines Ziels (Ping-Befehl).
 +
* Echo Request (Type 8) erfordert einen Echo Reply (Type 0) vom Zielhost.
 +
* IP 192.168.244.2 > 136.243.187.66: ICMP echo request, id 30461, seq 1, length 64
 +
* IP 136.243.187.66 > 192.168.244.2: ICMP echo reply, id 30461, seq 1, length 64
 +
 
 +
== Source Quench / Parameter Problem ==
 +
* '''Source Quench:''' Aufforderung zur Drosselung der Senderate bei Überlastung.
 +
* '''Parameter Problem:''' Meldung über Paketverwurf aufgrund fehlerhafter Angaben im IP-Header.
 +
 
 +
=== EXKURS: ICMP TYPES AND CODES ===
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! TYPE   !! CODE !! Description                 !! Q   !! E
+
! TYPE !! CODE !! Description !! Q !! E
|-
 
| 0      || 0    || Echo Reply                  || x  ||
 
|-
 
| 3      || 0    || Network Unreachable          ||    || x
 
|-
 
| 3      || 1    || Host Unreachable            ||    ||
 
|-
 
| 3      || 2    || Protocol Unreachable        ||    ||
 
|-
 
| 3      || 3    || Port Unreachable            ||    ||
 
|-
 
| 3      || 4    || Fragmentation needed but no frag. bit set  ||    ||
 
|-
 
| 3      || 5    || Source routing failed        ||    ||
 
|-
 
| 3      || 6    || Destination network unknow  ||    ||
 
|-
 
| 3      || 7    || Destination host unknow      ||    ||
 
|-
 
| 3      || 8    || Source host isolated (obsolete)  ||    ||
 
|-
 
| 3      || 9    || Destination network administrativelv prohibited  ||    ||
 
|-
 
| 3      || 10    || Destination host administrativelv prohibited  ||    ||
 
|-
 
| 3      || 11    || Network unreachable for TOS  ||    ||
 
|-
 
| 3      || 12    || Host Unreachable for TOS    ||    ||
 
|-
 
| 3      || 13    || Communication administrativelv prohibited by filtering  ||    ||
 
|-
 
| 3      || 14    || Host precedence violation    ||    ||
 
|-
 
| 3      || 15    || Precedence cutoff in effect  ||    ||
 
|-
 
| 4      || 0    || Source quench                ||    ||
 
|-
 
| 5      || 0    || Redirect for network        ||    ||
 
|-
 
| 5      || 1    || Redirect for host            ||    ||
 
 
|-
 
|-
| 5      || 2    || Redirect for TOS and network ||     ||  
+
| 0 || 0 || Echo Reply || x ||  
 
|-
 
|-
| 5      || 3    || Redirect for TOS and host    ||     ||  
+
| 3 || 0 || Network Unreachable ||   || x
 
|-
 
|-
| 8      || 0    || Echo request                || ||
+
| 3 || 1 || Host Unreachable ||   ||  
 
|-
 
|-
| 9      || 0    || Router advertisement        ||     ||
+
| 3 || 2 || Protocol Unreachable ||   ||  
 
|-
 
|-
| 10    || 0    || Route sollicitation          ||     ||
+
| 3 || 3 || Port Unreachable ||   ||  
 
|-
 
|-
| 11    || 0    || TTL equals 0 during transit  ||     || x
+
| 3 || 4 || Fragmentation needed but no frag. bit set ||   ||  
 
|-
 
|-
| 11    || 1    || TTL equals 0 during reassemblv ||     ||
+
| 3 || 9 || Destination network administratively prohibited ||   ||  
 
|-
 
|-
| 12    || 0    || IP header bad (catchall error) ||     ||  
+
| 3 || 10 || Destination host administratively prohibited ||   ||  
 
|-
 
|-
| 12    || 1    || Required options missing    ||     ||
+
| 3 || 13 || Communication administratively prohibited by filtering ||   ||  
 
|-
 
|-
| 13    || 0     || Timestamp request (obsolete) ||     ||
+
| 5 || 0 || Redirect for network ||   ||  
 
|-
 
|-
| 14    || 0    || Timestamp reply (obsolete)  ||     ||
+
| 5 || 1 || Redirect for host ||   ||  
 
|-
 
|-
| 15    || 0     || Information request (obsolete) ||     ||
+
| 8 || 0 || Echo request || x ||  
 
|-
 
|-
| 16    || 0     || Information reply (obsolete) ||     ||  
+
| 11 || 0 || TTL equals 0 during transit ||   || x
 
|-
 
|-
| 17    || 0    || Adress mask request          ||     ||  
+
| 11 || 1 || TTL equals 0 during reassembly ||   ||  
 
|-
 
|-
| 18    || 0     || Adress mask reply            ||     ||
+
| 12 || 0 || IP header bad (catchall error) ||   ||  
 
|}
 
|}

Aktuelle Version vom 29. März 2026, 10:44 Uhr

Internet Control Message Protocol (ICMP)

  • ICMP ist Bestandteil jeder IP-Implementierung und transportiert Fehler- und Diagnoseinformationen (RFC 792).
  • Verwendung: Diagnose und Testzwecke (z. B. Erreichbarkeit eines Hosts prüfen).
  • Aufbau: Der Grundaufbau des ICMP-Headers ist konstant, die Bedeutung der weiteren Felder variiert je nach Nachrichtentyp.
  • Kapselung: Jede ICMP-Nachricht wird in einem IP-Datagramm eingekapselt.

MessageProtocol.png

Einsatz von ICMP

  • IP nutzt ICMP für Fehler- und Diagnosemeldungen; ICMP nutzt IP zur Übertragung.
  • Bei Bedarf wird ein IP-Datagramm erzeugt und die ICMP-Meldung in den Datenbereich eingebettet.

Icmp.png

  • ICMP-Nachrichten sind immer Antworten auf ein Datagramm (aufgrund eines Problems oder einer Anfrage).
  • Ein Host oder Router sendet die ICMP-Nachricht immer an die Quelle des ursprünglichen Datagramms zurück.

Wichtige ICMP-Nachrichtentypen

Destination Unreachable (Ziel nicht erreichbar)

  • Verwendung bei: Nichterreichbarkeit von Netzwerk, Host, Protokoll oder Port.
  • Sonderfall MTU: Tritt auf, wenn ein Paket nicht fragmentiert werden kann (DF-Bit gesetzt), aber die MTU des nächsten Hops zu klein ist (Type 3, Code 4). Dies ist die Basis für die Path MTU Discovery (PMTUD).
  • Firewalls: Viele Administratoren blockieren ICMP Type 3, was die Fehlersuche erschwert, da Pakete ohne Rückmeldung einfach verworfen werden ("Black Hole").

Host unreachable

  • IP 192.168.240.100 > 192.168.244.2: ICMP host 192.168.255.67 unreachable, length 36

Net unreachable

  • IP 192.168.255.3 > 192.168.244.2: ICMP net 65.21.34.0/24 unreachable, length 92

Port unreachable

  • IP 192.168.240.100 > 192.168.244.2: ICMP 192.168.240.100 udp port 44444 unreachable, length 36

Redirect

  • Wird gesendet, wenn ein Router eine Fehlleitung feststellt.
  • Der Host wird aufgefordert, die Route auf ein spezifisches Gateway zu ändern.

Time Exceeded (Zeit verstrichen)

  • Gesendet an den Absender, wenn die Lebensdauer (TTL) den Wert 0 erreicht.
  • Ursachen: Routing-Zyklen (Schleifen), Netzüberlastung oder zu geringe initiale Lebensdauer.
  • Beispiel: IP 192.168.255.3 > 192.168.244.2: ICMP time exceeded in-transit

Echo Request, Echo Reply

  • Prüfung der Erreichbarkeit eines Ziels (Ping-Befehl).
  • Echo Request (Type 8) erfordert einen Echo Reply (Type 0) vom Zielhost.
  • IP 192.168.244.2 > 136.243.187.66: ICMP echo request, id 30461, seq 1, length 64
  • IP 136.243.187.66 > 192.168.244.2: ICMP echo reply, id 30461, seq 1, length 64

Source Quench / Parameter Problem

  • Source Quench: Aufforderung zur Drosselung der Senderate bei Überlastung.
  • Parameter Problem: Meldung über Paketverwurf aufgrund fehlerhafter Angaben im IP-Header.

EXKURS: ICMP TYPES AND CODES

TYPE CODE Description Q E
0 0 Echo Reply x
3 0 Network Unreachable x
3 1 Host Unreachable
3 2 Protocol Unreachable
3 3 Port Unreachable
3 4 Fragmentation needed but no frag. bit set
3 9 Destination network administratively prohibited
3 10 Destination host administratively prohibited
3 13 Communication administratively prohibited by filtering
5 0 Redirect for network
5 1 Redirect for host
8 0 Echo request x
11 0 TTL equals 0 during transit x
11 1 TTL equals 0 during reassembly
12 0 IP header bad (catchall error)