Internet Control Message Protocol: Unterschied zwischen den Versionen

Aus Foxwiki
Markierung: Manuelle Zurücksetzung
 
(50 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''ICMP''' ('''I'''nternet '''C'''ontrol '''M'''essage '''P'''rotocol) tauscht Statusinformationen der IP-Verbindung aus
'''I'''nternet '''C'''ontrol '''M'''essage '''P'''rotocol (ICMP) - Austausch von Statusinformationen der IP-Verbindung


== Beschreibung ==
== Beschreibung ==
* Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebige Pfade
* Treten dabei Fehler auf, kann ICMP den Absender informieren
; Mögliche Probleme
* Gerät oder Dienst ist nicht erreichbar
* Header-Daten wurden verfälscht
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen
* die Pufferkapazität des Empfängers ist erschöpft
; OSI-Schicht 3
* Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP & UDP geschieht, obwohl ICMP kein Transportprotokoll ist
* ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist
== Fehlerermittlung ==
; Situationen, die eine ICMP-Fehlermeldung auslösen
{| class="wikitable options"
! Grund !! Fehler !! Auslöser
|-
| Ziel nicht erreichbar || Destination Unreachable || Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt
|-
| Zeit überschritten || Time Exceeded ||
|-
| Ungültige Parameter || Parameter Problem ||
|-
| Senderate reduzieren || Source Quench ||
|-
| Umleitung im Netzwerk || Redirect ||
|}
* Prüfung auf Erreichbarkeit eines Gerätes
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad
== Paketstruktur ==
=== Header ===
[[File:ICMP4.png|mini|500px]]
Der ICMP-Header folgt direkt auf den IPv4-Header
* wird an der Protokollnummer erkannt
* Erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen
* Länge: 8 Byte + Datenabschnitt variabler Größe
: Format der ersten vier Bytes
* Mit dem ersten Byte wird der Typ der Nachricht kodiert
* Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code
* Das dritte und vierte Byte bilden eine Prüfsumme des Headers
* Die folgenden vier Bytes sind vom Typ der ICMP-Nachricht abhängig
{| class="wikitable options big"
|-
! Typ !! Typname !! Code !! Bedeutung
|-
| 0 || Echo Reply || 0 || Echo-Antwort
|-
|rowspan="7"| 3 || rowspan="7"| Destination Unreachable || 0 || Netzwerk nicht erreichbar
|-
| 1 || Host (Zielstation) nicht erreichbar
|-
| 2 || Protokoll nicht erreichbar
|-
| 3 || Port nicht erreichbar
|-
| 4 || Fragmentierung nötig, '''D'''on’t '''F'''ragment aber gesetzt
|-
| 5 || Route nicht möglich
|-
| 13 || Paket wird von der Firewall des Empfängers geblockt
|-
| 4 || Source Quench || 0 || Datagramm verworfen, da Warteschlange voll
|-
|rowspan="4"| 5 || rowspan="4"| Redirect Message || 0 || Benachrichtigung über eine Umleitung für das angegebene Netzwerk
|-
| 1 || Benachrichtigung über eine Umleitung für den ausgewählten Host
|-
| 2 || Umleitung für den angegebenen Dienst & das Netz
|-
| 3 || Umleitung für den angegebenen Dienst & den Host
|-
| 8 || Echo Request || 0 || Echo-Anfrage (Ping)
|-
| 9 || Router Solicitation || 0 || Suche nach einem Router
|-
| 10 || Router Advertisement || 0 || Bekanntmachung eines Routers
|-
|rowspan="2"| 11 || rowspan="2"| Time Exceeded || 0 || TTL (Time To Live, Lebensdauer) abgelaufen
|-
| 1 || Zeitlimit während der Defragmentierung überschritten
|}
=== Daten ===
Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, einen unterschiedlichen Inhalt und sind verschieden strukturiert
* Oft wird der IP-Header wiederholt und im Anschluss daran die ersten 64 Bit des ursprünglichen Datagramms
* Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht
== Anwendung ==
{| class="wikitable options big"
|-
| Erreichbarkeit prüfen || [[ping]]
|-
| Weg nachvollziehen || [[traceroute]]
|-
| Maximale Path-MTU ermitteln || [[Path MTU Discovery]]
|-
| Umleitung im Netzwerk || [[IPv4/ICMP/Redirect]]
|}


<noinclude>
<noinclude>
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Sicherheit ====
----
===== Ping flood =====
{{Special:PrefixIndex/ICMP}}
* Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge ''Echo Request''-Nachrichten an das Opfer.
* Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so dass ein zufälliger Rechner mit den resultierenden ''Echo Reply''-Antworten des Opfers bombardiert wird.
* Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes ('''D'''enial '''o'''f '''S'''ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.
 
===== Ping of Death =====
* Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten.
* Beim ''Ping of Death'' wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten.
* Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65'535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.


==== Dokumentation ====
==== Dokumentation ====
Zeile 23: Zeile 121:


==== Links ====
==== Links ====
===== Projekt =====
===== Weblinks =====
===== Weblinks =====


[[Kategorie:IPv4]]
[[Kategorie:IPv4]]
[[Kategorie:ICMP]]
</noinclude>
</noinclude>

Aktuelle Version vom 27. Februar 2024, 20:32 Uhr

Internet Control Message Protocol (ICMP) - Austausch von Statusinformationen der IP-Verbindung

Beschreibung

  • Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebige Pfade
  • Treten dabei Fehler auf, kann ICMP den Absender informieren
Mögliche Probleme
  • Gerät oder Dienst ist nicht erreichbar
  • Header-Daten wurden verfälscht
  • die Lebenszeit (TTL) eines Datagramms ist abgelaufen
  • die Pufferkapazität des Empfängers ist erschöpft
OSI-Schicht 3
  • Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP & UDP geschieht, obwohl ICMP kein Transportprotokoll ist
  • ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist

Fehlerermittlung

Situationen, die eine ICMP-Fehlermeldung auslösen
Grund Fehler Auslöser
Ziel nicht erreichbar Destination Unreachable Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt
Zeit überschritten Time Exceeded
Ungültige Parameter Parameter Problem
Senderate reduzieren Source Quench
Umleitung im Netzwerk Redirect
  • Prüfung auf Erreichbarkeit eines Gerätes
  • Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet
  • Ermittlung der maximalen Größe des Datagramms auf diesem Pfad

Paketstruktur

Header

Der ICMP-Header folgt direkt auf den IPv4-Header

  • wird an der Protokollnummer erkannt
  • Erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen
  • Länge: 8 Byte + Datenabschnitt variabler Größe
Format der ersten vier Bytes
  • Mit dem ersten Byte wird der Typ der Nachricht kodiert
  • Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code
  • Das dritte und vierte Byte bilden eine Prüfsumme des Headers
  • Die folgenden vier Bytes sind vom Typ der ICMP-Nachricht abhängig
Typ Typname Code Bedeutung
0 Echo Reply 0 Echo-Antwort
3 Destination Unreachable 0 Netzwerk nicht erreichbar
1 Host (Zielstation) nicht erreichbar
2 Protokoll nicht erreichbar
3 Port nicht erreichbar
4 Fragmentierung nötig, Don’t Fragment aber gesetzt
5 Route nicht möglich
13 Paket wird von der Firewall des Empfängers geblockt
4 Source Quench 0 Datagramm verworfen, da Warteschlange voll
5 Redirect Message 0 Benachrichtigung über eine Umleitung für das angegebene Netzwerk
1 Benachrichtigung über eine Umleitung für den ausgewählten Host
2 Umleitung für den angegebenen Dienst & das Netz
3 Umleitung für den angegebenen Dienst & den Host
8 Echo Request 0 Echo-Anfrage (Ping)
9 Router Solicitation 0 Suche nach einem Router
10 Router Advertisement 0 Bekanntmachung eines Routers
11 Time Exceeded 0 TTL (Time To Live, Lebensdauer) abgelaufen
1 Zeitlimit während der Defragmentierung überschritten

Daten

Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, einen unterschiedlichen Inhalt und sind verschieden strukturiert

  • Oft wird der IP-Header wiederholt und im Anschluss daran die ersten 64 Bit des ursprünglichen Datagramms
  • Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht

Anwendung

Erreichbarkeit prüfen ping
Weg nachvollziehen traceroute
Maximale Path-MTU ermitteln Path MTU Discovery
Umleitung im Netzwerk IPv4/ICMP/Redirect


Anhang

Siehe auch


Dokumentation

RFC
  1. https://tools.ietf.org/html/rfc792

Links

Weblinks