Icmp: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Internet Control Message Protocol=
+
= Internet Control Message Protocol (ICMP) =
  
Das Internet Control Message Protocol (ICMP) ist Bestandteil jeder IP-
+
* ICMP ist Bestandteil jeder IP-Implementierung und transportiert Fehler- und Diagnoseinformationen (RFC 792).
Implementierung und hat die Aufgabe Fehler- und
+
* Verwendung: Diagnose und Testzwecke (z. B. Erreichbarkeit eines Hosts prüfen).
Diagnoseinformationen für IP zu transportieren. ICMP ist im RFC 792
+
* Aufbau: Der Grundaufbau des ICMP-Headers ist konstant, die Bedeutung der weiteren Felder variiert je nach Nachrichtentyp.
spezifiziert. Oft wird ICMP auch für Testzwecke verwendet, etwa um zu
+
* Kapselung: Jede ICMP-Nachricht wird in einem IP-Datagramm eingekapselt.
ermitteln, ob ein Host derzeit empfangsbereit ist.
 
ICMP hat sehr unterschiedliche Informationen zu transportieren. Deshalb
 
ist nur der Grundaufbau des ICMP-Headers immer gleich, die Bedeutung
 
der einzelnen Felder im Protokollkopf wechselt jedoch. Jeder ICMP-
 
Nachrichtentyp wird in einem IP-Datengramm eingekapselt.
 
Der ICMP-Header (allgemeiner Aufbau).
 
  
<center>[[Bild:MessageProtocol.png]]</center>
+
[[Bild:MessageProtocol.png]]
  
===Einsatz von icmp===
+
= Einsatz von ICMP =
  
IP verwendet ICMP zum versenden von Fehler- und Diagnosemeldungen,
+
* IP nutzt ICMP für Fehler- und Diagnosemeldungen; ICMP nutzt IP zur Übertragung.
während ICMP zur Übertragung seiner Nachrichten IP benutzt. Das
+
* Bei Bedarf wird ein IP-Datagramm erzeugt und die ICMP-Meldung in den Datenbereich eingebettet.
bedeutet, wenn eine ICMP-Nachricht verschickt werden muß, wird ein IP-
 
Datengramm erzeugt und die ICMP-Meldung in den Datenbereich des IP-
 
Datengramms eingekapselt (siehe Abbildung).
 
  
<center>[[Bild:icmp.png]]</center>
+
[[Bild: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.
  
ICMP-Nachrichten-Einkapselung.
+
= Wichtige ICMP-Nachrichtentypen =
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 die 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.
 
  
 +
== 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").
  
Die derzeit wichtigsten ICMP-Nachrichtentypen sind:
+
=== 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 ===
  
==Destination Unreachable (Ziel nicht erreichbar)==
 
Diese Nachricht wird verwendet, wenn:
 
ein Netzwerk, Host, Protokoll oder Port nicht erreichbar ist,
 
ein Paket nicht fragmentiert werden kann, weil das DF-Bit gesetz ist,
 
die Source Route Option nicht erfolgreich ist.
 
===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 ausgesendet, wenn ein Router feststellt, daß ein Paket falsch weitergeleitet wurde. Der sendende Host wird damit aufgefordert, die angegebene Route zu ändern.
 
*IP 192.168.244.2 > 192.168.242.28: ICMP redirect 8.8.8.8 to host 192.168.240.100, length 92
 
====Time Exceeded (Zeit verstrichen)====
 
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.255.3 > 192.168.244.2: ICMP time exceeded in-transit, length 92
 
====Echo Request, Echo Reply====
 
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).
 
*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 (Quelle löschen)===
 
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.
 
===Parameter Problem===
 
Verständigt den Absender eines Datengramms darüber, daß das Paket aufgrund einer fehlerhaften Angabe im IP-Header verworfen werden mußte.
 
====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.
 
===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  ||    ||
 
|-
 
| 0      || 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)