ICMP - Internet Control Message Protocol: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(31 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''1. Allgemein''' | |||
Typischer Einsatz für ICMP ist wenn das Ziel eines IP-Pakets unerreichbar ist, weil die Time to Live (TTL - Router reduziert beim Weiterleiten den TTL-Wert um 1) abgelaufen ist. | * ICMP dient, der Kontrolle des IP-basierten Datenverkehrs, bzw. der Fehleranalyse, der Informationsbeschaffung | ||
* Es wird für für Diagnose- und Fehlermeldungen aber auch für das Auskundschaften von Rechner (-netzen) eingesetzt. | |||
* ICMP wurde 1981 in [https://tools.ietf.org/html/rfc777 RFC777] festgelegt . | |||
* Typischer Einsatz für ICMP ist wenn das Ziel eines IP-Pakets unerreichbar ist, weil die Time to Live (TTL - Router reduziert beim Weiterleiten den TTL-Wert um 1) abgelaufen ist. | |||
* Der [https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml ICMP-Typ] beschreibt die gewünschte Hauptfunktion des ICMP-Pakets, die durch den ICMP-Code genauer spezifiziert wird. | |||
* ICMP ist für IPv4 und IPv6 definiert | |||
* Protokollnummer von ICMP ist 1 | |||
'''2. Ping''' | |||
Bekannteste ICMP-Typen sind Type 0 (Echo Reply) und Type 8 (Echo Request). Diese beiden ICMP-Typen werden in der Regel | Bekannteste ICMP-Typen sind Type 0 (Echo Reply) und Type 8 (Echo Request). Diese beiden ICMP-Typen werden in der Regel | ||
zur Feststellung der Erreichbarkeit eines Hosts verwendet. | zur Feststellung der Erreichbarkeit eines Hosts verwendet. | ||
Zeile 14: | Zeile 18: | ||
Host A sendet einen Echo Request an Host B, | Host A sendet einen Echo Request an Host B, | ||
Host B antwortet darauf mit einem Echo Reply. | Host B antwortet darauf mit einem Echo Reply. | ||
'''3. ICMP-Type 3''' | |||
Der ICMP-Type 3 (Destination Unreachable) wird versendet, wenn ein Datagramm nicht zugestellt werden konnte. Genauere Information zum Grund der Fehlzustellung gibt der ICMP-Code an. | |||
Es gibt z.B. folgende Möglichkeiten: | |||
• Code 0: Zielnetzwerk ist nicht erreichbar (z.B. fehlende Routing) | |||
• Code 1 Netzwerk, nicht aber der Host erreichbar. (z.B. falsche Adresse) | |||
• Code 2 Protokoll nicht erreichbar. | |||
• Code 3 Datagramm nicht an Port weitergereichbar | |||
• Code 4 Datagramm wurde mit dem gesetzten Bit "Don’t Fragment" (DF) versandt. Zu groß für die MTU des Netzes | |||
• Code 6 Netzwerk nicht vorhanden | |||
• Code 7 Host nicht vorhanden | |||
• Codes 9 und 10 Kommunikation zum Netzwerk vom Admin untersagt | |||
• Codes 11 und 12 Zielnetzwerk nicht für Type-of-Service erreichbar | |||
• Code 13 Firewall blockt den Traffic | |||
'''4. ICMP-Type 4''' | |||
Wird von einem Empfänger versandt, wenn zu viele Pakete bei ihm eintreffen. Hauptaufgabe ist, überlastete Prozessoren und Netzwerkschnittstellen mit Hilfe der Flusskontrolle zu verhindern. | |||
'''5. ICMP-Type 5''' | |||
ICMP-Type 5 (Redirect) wird zur Umlenkung von Routen verwendet. Wird ein Router verwendet, um ein Paket zuzustellen, und kennt dieser Router zusätzlich einen besseren Pfad zum Ziel als den, der über ihn selbst führt, so kann der Router zum Absender des betreffenden Pakets eine ICMP-Redirect-Nachricht senden. Der Absender wird daraufhin die eigene Routingtabelle so abändern, dass er seine Pakete über den vom Router empfohlenen „besseren“ Router sendet. | |||
[https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#/media/File:ICMPv4_redirect_message_example-en.svg Redirect Message Beispiel] | |||
'''6. ICMP-Type 9 und 10''' | |||
ICMP-Type 9 (Router Advertisement) wird zur Bekanntgabe von Routern verwendet,während Type 10 (Router Solicitation) diese Meldung anfordert. Ein Host kann sich über die im Netzwerk befindlichen Router informieren und Routingtabelle selbst | |||
konfigurieren. | |||
'''7. ICMP-Type 11''' | |||
Eine Nachricht vom Type 11 wird versandt, wenn die TTL eines IP-Datagramms abgelaufen ist. Der Host, bei dem die TTL den Wert 0 erreicht, versendet diese Nachricht an den ursprünglichen Absender des Datagramms (ICMP-Code=0). Kommt mind. eins von | |||
mehreren Fragmenten nicht an, so wird der ICMP-Code auf den Wert 1 gesetzt. | |||
'''8. ICMP-Type 12''' | |||
Ein Parameter Problem liegt vor, wenn im Optionsbereich des IP-Headers ein dem Host unbekannter Parameter gefunden wurde. Der Host verwirft dieses Datagramm und sendet ICMP-Type 12 zum Sender zurück. | |||
'''9. Beispiele für Ping''' | |||
* Syntax | |||
ping [option] hostname or IP address | |||
* Standardnutzung: IP oder Name | |||
''ping google.com'' | |||
oder | |||
''ping 172.217.19.78'' | |||
* IPv4 mit -4 | |||
''ping -4 google.com'' | |||
* Interval anpassen mit -i | |||
''ping –i 0.5 google.com'' | |||
* Packetgröße anpassen mit -s | |||
''ping –s 1000 google.com'' | |||
* Ping Flood mit -f (nur als root) | |||
''root@computer: ping -f 192.168.179.20'' | |||
* Anzahl der Pings begrenzen mit -c | |||
''ping –c 2 google.com'' | |||
* Ping Quiet Mode mit -q (nur eine Zeile und beim Beenden Statistik) | |||
''ping -q google.com'' | |||
* Zeitstempel mit -D hinzufügen | |||
''ping –D google.com'' | |||
* Ping-Version anzeigen mit -V | |||
''ping –V'' | |||
'''10. Beispiel traceroute''' | |||
Das Programm traceroute ermittelt, über welche Router Datenpakete bis zum Ziel vermittelt werden. Der Sender schickt ein IP-Paket an den Empfänger mit Time-to-live (TTL)=1. Router A empfängt das IP-Paket, setzt TTL=0, verwirft das IP-Paket und sendet einn ICMP-Typ 11 mit Code 0 an den Sender. Das IP-Paket wird wird vom Router weitergeleitet und dabei wird der Wert von TTL dekrementiert. Router B empfängt das IP-Paket, setzt TTL=0, verwirft das IP-Paket und sendet die ICMP-Nachricht von Typ 11 Code 0 an Sender. | |||
Wenn jedoch der TTL groß genug ist, dass der Empfänger erreicht wird, sendet dieser eine ICMP-Nachricht vom Typ 3 Code 3 an den Sender. Dadurch kann via ICMP der Weg vom Sender zum Empfänger nachvollzogen werden.<ref>Braun, Christian - Computernetze kompakt, Berlin/Heidelberg 2012 (S. 144/145)</ref> | |||
'''Quellen:''' | |||
Braun, Christian - Computernetze kompakt, Berlin/Heidelberg 2012 | |||
Larisch, Dirk, Lienemann, Gerhard - TCP/IP, Grundlagen und Praxis, Hamburg, 2014 | |||
Wendzel, Steffen - IT-Sicherheit für TCP/IP und IoT-Netzwerke, Wiesbaden, 2018 |
Aktuelle Version vom 6. Februar 2021, 00:37 Uhr
1. Allgemein
- ICMP dient, der Kontrolle des IP-basierten Datenverkehrs, bzw. der Fehleranalyse, der Informationsbeschaffung
- Es wird für für Diagnose- und Fehlermeldungen aber auch für das Auskundschaften von Rechner (-netzen) eingesetzt.
- ICMP wurde 1981 in RFC777 festgelegt .
- Typischer Einsatz für ICMP ist wenn das Ziel eines IP-Pakets unerreichbar ist, weil die Time to Live (TTL - Router reduziert beim Weiterleiten den TTL-Wert um 1) abgelaufen ist.
- Der ICMP-Typ beschreibt die gewünschte Hauptfunktion des ICMP-Pakets, die durch den ICMP-Code genauer spezifiziert wird.
- ICMP ist für IPv4 und IPv6 definiert
- Protokollnummer von ICMP ist 1
2. Ping
Bekannteste ICMP-Typen sind Type 0 (Echo Reply) und Type 8 (Echo Request). Diese beiden ICMP-Typen werden in der Regel zur Feststellung der Erreichbarkeit eines Hosts verwendet. Eine ICMP-Echo-Nachricht besteht aus einem 16-Bit-Identifer sowie einer 16-Bit-Sequenznummer zur Identifikation der Datagramme. Optional können noch Daten an das Paket angehängt werden, um die Netzlast zu erhöhen (z.B. für Performance-Tests).
Beispiel: Host A sendet einen Echo Request an Host B, Host B antwortet darauf mit einem Echo Reply.
3. ICMP-Type 3
Der ICMP-Type 3 (Destination Unreachable) wird versendet, wenn ein Datagramm nicht zugestellt werden konnte. Genauere Information zum Grund der Fehlzustellung gibt der ICMP-Code an.
Es gibt z.B. folgende Möglichkeiten: • Code 0: Zielnetzwerk ist nicht erreichbar (z.B. fehlende Routing) • Code 1 Netzwerk, nicht aber der Host erreichbar. (z.B. falsche Adresse) • Code 2 Protokoll nicht erreichbar. • Code 3 Datagramm nicht an Port weitergereichbar • Code 4 Datagramm wurde mit dem gesetzten Bit "Don’t Fragment" (DF) versandt. Zu groß für die MTU des Netzes • Code 6 Netzwerk nicht vorhanden • Code 7 Host nicht vorhanden • Codes 9 und 10 Kommunikation zum Netzwerk vom Admin untersagt • Codes 11 und 12 Zielnetzwerk nicht für Type-of-Service erreichbar • Code 13 Firewall blockt den Traffic
4. ICMP-Type 4
Wird von einem Empfänger versandt, wenn zu viele Pakete bei ihm eintreffen. Hauptaufgabe ist, überlastete Prozessoren und Netzwerkschnittstellen mit Hilfe der Flusskontrolle zu verhindern.
5. ICMP-Type 5
ICMP-Type 5 (Redirect) wird zur Umlenkung von Routen verwendet. Wird ein Router verwendet, um ein Paket zuzustellen, und kennt dieser Router zusätzlich einen besseren Pfad zum Ziel als den, der über ihn selbst führt, so kann der Router zum Absender des betreffenden Pakets eine ICMP-Redirect-Nachricht senden. Der Absender wird daraufhin die eigene Routingtabelle so abändern, dass er seine Pakete über den vom Router empfohlenen „besseren“ Router sendet. Redirect Message Beispiel
6. ICMP-Type 9 und 10
ICMP-Type 9 (Router Advertisement) wird zur Bekanntgabe von Routern verwendet,während Type 10 (Router Solicitation) diese Meldung anfordert. Ein Host kann sich über die im Netzwerk befindlichen Router informieren und Routingtabelle selbst konfigurieren.
7. ICMP-Type 11
Eine Nachricht vom Type 11 wird versandt, wenn die TTL eines IP-Datagramms abgelaufen ist. Der Host, bei dem die TTL den Wert 0 erreicht, versendet diese Nachricht an den ursprünglichen Absender des Datagramms (ICMP-Code=0). Kommt mind. eins von mehreren Fragmenten nicht an, so wird der ICMP-Code auf den Wert 1 gesetzt.
8. ICMP-Type 12
Ein Parameter Problem liegt vor, wenn im Optionsbereich des IP-Headers ein dem Host unbekannter Parameter gefunden wurde. Der Host verwirft dieses Datagramm und sendet ICMP-Type 12 zum Sender zurück.
9. Beispiele für Ping
- Syntax
ping [option] hostname or IP address
- Standardnutzung: IP oder Name
ping google.com
oder
ping 172.217.19.78
- IPv4 mit -4
ping -4 google.com
- Interval anpassen mit -i
ping –i 0.5 google.com
- Packetgröße anpassen mit -s
ping –s 1000 google.com
- Ping Flood mit -f (nur als root)
root@computer: ping -f 192.168.179.20
- Anzahl der Pings begrenzen mit -c
ping –c 2 google.com
- Ping Quiet Mode mit -q (nur eine Zeile und beim Beenden Statistik)
ping -q google.com
- Zeitstempel mit -D hinzufügen
ping –D google.com
- Ping-Version anzeigen mit -V
ping –V
10. Beispiel traceroute
Das Programm traceroute ermittelt, über welche Router Datenpakete bis zum Ziel vermittelt werden. Der Sender schickt ein IP-Paket an den Empfänger mit Time-to-live (TTL)=1. Router A empfängt das IP-Paket, setzt TTL=0, verwirft das IP-Paket und sendet einn ICMP-Typ 11 mit Code 0 an den Sender. Das IP-Paket wird wird vom Router weitergeleitet und dabei wird der Wert von TTL dekrementiert. Router B empfängt das IP-Paket, setzt TTL=0, verwirft das IP-Paket und sendet die ICMP-Nachricht von Typ 11 Code 0 an Sender. Wenn jedoch der TTL groß genug ist, dass der Empfänger erreicht wird, sendet dieser eine ICMP-Nachricht vom Typ 3 Code 3 an den Sender. Dadurch kann via ICMP der Weg vom Sender zum Empfänger nachvollzogen werden.[1]
Quellen:
Braun, Christian - Computernetze kompakt, Berlin/Heidelberg 2012
Larisch, Dirk, Lienemann, Gerhard - TCP/IP, Grundlagen und Praxis, Hamburg, 2014
Wendzel, Steffen - IT-Sicherheit für TCP/IP und IoT-Netzwerke, Wiesbaden, 2018
- ↑ Braun, Christian - Computernetze kompakt, Berlin/Heidelberg 2012 (S. 144/145)