ICMP & Ping

Was ist ICMP?

Das Internet Control Message Protocol (ICMP) ist kein Datenübertragungsprotokoll – es ist ein Diagnose- und Steuerungsprotokoll auf OSI-Schicht 3. ICMP wird verwendet um Fehlermeldungen und Statusinformationen zwischen Netzwerkgeräten auszutauschen.

ICMP ist direkt in IP integriert – es verwendet keine Ports wie TCP oder UDP. Stattdessen hat ICMP eigene Typ- und Code-Nummern.

Wichtige ICMP-Typen

Typ

Name

Bedeutung

0

Echo Reply

Antwort auf Ping

3

Destination Unreachable

Ziel nicht erreichbar (mit Code-Nummer)

5

Redirect

Router leitet auf bessere Route hin

8

Echo Request

Ping-Anfrage

11

Time Exceeded

TTL abgelaufen (traceroute nutzt das)

12

Parameter Problem

Fehler im IP-Header

Destination Unreachable – Codes

Code

Bedeutung

0

Network Unreachable – Netzwerk nicht erreichbar

1

Host Unreachable – Host nicht erreichbar

2

Protocol Unreachable – Protokoll nicht unterstützt

3

Port Unreachable – Port geschlossen

4

Fragmentation Needed – Paket zu groß, DF-Bit gesetzt

13

Communication Administratively Prohibited – Firewall blockiert

Ping – Echo Request und Reply

Ping ist das bekannteste Netzwerk-Diagnosetool. Es sendet ICMP-Typ-8-Pakete (Echo Request) und wartet auf Typ-0-Pakete (Echo Reply):

ping 192.168.1.1

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.412 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.398 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.421 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss
rtt min/avg/max/mdev = 0.398/0.410/0.421/0.009 ms

Wert

Bedeutung

icmp_seq

Sequenznummer – prüft ob Pakete in Reihenfolge ankommen

ttl

Time to Live des zurückgekommenen Pakets – gibt Hinweis auf Betriebssystem

time

Round Trip Time in Millisekunden – Latenz

packet loss

Paketverlustrate – bei > 0% Netzwerkprobleme

TTL-Werte und Betriebssysteme

Standard-TTL-Werte:
Linux/Android:  TTL = 64
Windows:        TTL = 128
Cisco/Router:   TTL = 255
macOS:          TTL = 64

Wenn TTL = 54 angezeigt wird:
→ Startwert war 64
→ Paket hat 10 Hops durchlaufen
→ 64 - 10 = 54

Traceroute – Den Weg verfolgen

Traceroute zeigt den Weg eines Pakets durch das Netzwerk – jeden einzelnen Router auf dem Weg zum Ziel. Es nutzt ICMP Typ 11 (Time Exceeded):

Prinzip:
1. Paket mit TTL=1 senden → Erster Router antwortet mit "Time Exceeded"
2. Paket mit TTL=2 senden → Zweiter Router antwortet
3. Paket mit TTL=3 senden → Dritter Router antwortet
... und so weiter bis zum Ziel

Windows:
tracert www.google.com

Linux/Mac:
traceroute www.google.com

Ausgabe:
 1  192.168.1.1      1 ms   → Heimrouter
 2  10.0.0.1         8 ms   → ISP-Router
 3  72.14.232.1     12 ms   → Google-Netz
 4  216.239.51.9    13 ms   → Google-Rechenzentrum
 5  142.250.185.46  14 ms   → Ziel erreicht

Ping-Optionen in der Praxis

Windows:
ping 192.168.1.1              → 4 Pings (Standard)
ping -t 192.168.1.1           → Dauerhaft pingen (Strg+C zum Stoppen)
ping -n 10 192.168.1.1        → 10 Pings
ping -l 1000 192.168.1.1      → 1000 Byte große Pakete
ping -4 google.com            → Nur IPv4
ping -6 google.com            → Nur IPv6

Linux/Mac:
ping 192.168.1.1              → Dauerhaft (Strg+C zum Stoppen)
ping -c 5 192.168.1.1         → 5 Pings
ping -s 1000 192.168.1.1      → 1000 Byte große Pakete
ping -i 0.2 192.168.1.1       → Alle 0,2 Sekunden

ICMP und Firewalls

Viele Firewalls blockieren ICMP – aus Sicherheitsgründen aber auch aus Unwissenheit. Das führt zu Diagnoseproblemen:

Wichtige ICMP-Typen die NICHT blockiert werden sollten:
Typ 3  (Destination Unreachable) → Wichtig für PMTUD
Typ 8  (Echo Request)            → Ping – hilfreich für Diagnose
Typ 11 (Time Exceeded)           → Traceroute

Probleme bei vollständiger ICMP-Blockierung:
- Kein Ping möglich → Diagnose schwierig
- PMTUD (Path MTU Discovery) funktioniert nicht → Verbindungsprobleme
- Traceroute zeigt nur Sternchen (*)

ICMPv6 – ICMP für IPv6

Bei IPv6 ist ICMP noch wichtiger als bei IPv4 – viele IPv6-Kernfunktionen basieren auf ICMPv6:

ICMPv6-Typ

Funktion

133 – Router Solicitation

Client sucht Router

134 – Router Advertisement

Router kündigt sich an (SLAAC)

135 – Neighbor Solicitation

Ersatz für ARP – "Wer hat diese IPv6?"

136 – Neighbor Advertisement

Antwort auf Neighbor Solicitation

ICMPv6 darf in IPv6-Netzwerken niemals vollständig blockiert werden – sonst funktioniert IPv6 nicht mehr.

Zusammenfassung

  • ICMP ist ein Diagnose- und Steuerungsprotokoll auf OSI-Schicht 3

  • ICMP verwendet keine Ports – stattdessen Typ- und Code-Nummern

  • Ping verwendet ICMP Typ 8 (Echo Request) und Typ 0 (Echo Reply)

  • Traceroute nutzt ICMP Typ 11 (Time Exceeded) um Router zu identifizieren

  • TTL gibt Auskunft über die Anzahl der Hops und den OS-Typ

  • ICMP sollte nicht vollständig durch Firewalls blockiert werden

  • ICMPv6 ist für IPv6 unverzichtbar – ersetzt unter anderem ARP