Icmp: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen von 3 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 =
  
 +
* 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.
  
Die derzeit wichtigsten ICMP-Nachrichtentypen sind:
+
[[Bild:icmp.png]]
 
 
 
 
==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
 
====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.
 
 
 
 
 
====Redirect====
 
 
 
Wird ausgesendet, wenn ein Router feststellt, daß ein Paket falsch
 
weitergeleitet wurde. Der sendende Host wird damit aufgefordert, die
 
angegebene Route zu ändern.
 
 
 
 
 
====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 Lebensdauer für das Paket zu gering eingestellt
 
wurde
 
*IP 192.168.255.3 > 192.168.244.2: ICMP time exceeded in-transit, length 92
 
  
====Echo Reply, Echo Request====
+
* 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.
  
Mit diesen Nachrichten kann festgestellt werden, ob ein bestimmtes
+
= Wichtige ICMP-Nachrichtentypen =
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
+
== Destination Unreachable (Ziel nicht erreichbar) ==
*IP 136.243.187.66 > 192.168.244.2: ICMP echo reply, id 30461, seq 1, length 64
+
* 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").
  
====Timestamp Request, Timestamp Reply====
+
=== 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
  
Diese beiden Nachrichten sind ähnlich den zuvor beschriebenen
+
== Redirect ==
Nachrichten, außer das die Ankunftszeit der Nachricht und die
+
* Wird gesendet, wenn ein Router eine Fehlleitung feststellt.
Sendezeit der Antwort mit erfaßt werden. Mit diesen
+
* Der Host wird aufgefordert, die Route auf ein spezifisches Gateway zu ändern.
Nachrichtentypen kann die Netzleistung gemessen werden.
 
  
===Einsatz von icmp===
+
== 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
  
IP verwendet ICMP zum versenden von Fehler- und Diagnosemeldungen,
+
== Echo Request, Echo Reply ==
während ICMP zur Übertragung seiner Nachrichten IP benutzt. Das
+
* Prüfung der Erreichbarkeit eines Ziels (Ping-Befehl).
bedeutet, wenn eine ICMP-Nachricht verschickt werden muß, wird ein IP-
+
* Echo Request (Type 8) erfordert einen Echo Reply (Type 0) vom Zielhost.
Datengramm erzeugt und die ICMP-Meldung in den Datenbereich des IP-
+
* IP 192.168.244.2 > 136.243.187.66: ICMP echo request, id 30461, seq 1, length 64
Datengramms eingekapselt (siehe Abbildung).
+
* IP 136.243.187.66 > 192.168.244.2: ICMP echo reply, id 30461, seq 1, length 64
  
[[Bild:icmp.png]]
+
== 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 ===
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 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.
 
 
 
 
 
===EXKURS: ICMP TYPES AND CODES===
 
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Type  !! Code  !! Description                 !! !! 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        ||     ||
+
| 0 || 0 || Echo Reply || x ||  
 
|-
 
|-
| 5      || 1    || Redirect for host            ||     ||
+
| 3 || 0 || Network Unreachable ||   || x
 
|-
 
|-
| 5      || 2    || Redirect for TOS and network ||     ||  
+
| 3 || 1 || Host Unreachable ||   ||  
 
|-
 
|-
| 5      || 3    || Redirect for TOS and host    ||     ||  
+
| 3 || 2 || Protocol Unreachable ||   ||  
 
|-
 
|-
| 8      || 0    || Echo request                || ||
+
| 3 || 3 || Port Unreachable ||   ||  
 
|-
 
|-
| 9      || 0    || Router advertisement        ||     ||
+
| 3 || 4 || Fragmentation needed but no frag. bit set ||   ||  
 
|-
 
|-
| 10    || 0    || Route sollicitation          ||     ||
+
| 3 || 9 || Destination network administratively prohibited ||   ||  
 
|-
 
|-
| 11    || 0    || TTL equals 0 during transit  ||     || x
+
| 3 || 10 || Destination host administratively prohibited ||   ||  
 
|-
 
|-
| 11    || 1    || TTL equals 0 during reassemblv ||     ||
+
| 3 || 13 || Communication administratively prohibited by filtering ||   ||  
 
|-
 
|-
| 12    || 0     || IP header bad (catchall error) ||     ||  
+
| 5 || 0 || Redirect for network ||   ||  
 
|-
 
|-
| 12    || 1     || Required options missing    ||     ||
+
| 5 || 1 || Redirect for host ||   ||  
 
|-
 
|-
| 13    || 0     || Timestamp request (obsolete) ||     ||
+
| 8 || 0 || Echo request || x ||  
 
|-
 
|-
| 14    || 0     || Timestamp reply (obsolete)  ||     ||
+
| 11 || 0 || TTL equals 0 during transit ||   || x
 
|-
 
|-
| 15    || 0    || Information request (obsolete) ||     ||
+
| 11 || 1 || TTL equals 0 during reassembly ||   ||  
 
|-
 
|-
| 16    || 0     || Information reply (obsolete) ||     ||
+
| 12 || 0 || IP header bad (catchall error) ||   ||  
|-
 
| 17    || 0    || Adress mask request          ||    ||
 
|-
 
| 18    || 0    || Adress mask reply            ||    ||
 
 
|}
 
|}
 
[[Bild:icmp-types.png]]
 
 
 
[[Bild:icmp-types2.png]]
 
 
 
[[Bild:icmp-types3.png]]
 

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)