IT Explained

IT Explained:

Ping




Was ist Ping?

ping

Ping ist ein Befehlszeilentool, das für praktisch jedes Betriebssystem mit Netzwerkkonnektivität verfügbar ist und das als Test eingesetzt wird, um festzustellen, ob ein Netzwerkgerät erreichbar ist.

Der Ping-Befehl sendet eine Anforderung über das Netzwerk an ein bestimmtes Gerät. Ein erfolgreicher Ping führt zu einer Antwort des gepingten Computers zurück zum ursprünglichen Computer.

Wofür steht Ping?

Seinem Erschaffer zufolge ist die Bezeichnung „Ping“ ein Begriff aus dem Bereich der Echolotung. Bei der Echolotung ist ein Ping eine hörbare Schallwelle, die ausgesendet wird, um ein Objekt zu finden. Wenn der Schall auf das Objekt trifft, wird die Welle reflektiert und kehrt ähnlich einem Echo zur Quelle zurück. Entfernung und Position des Objekts lassen sich durch Messung der Zeit und der Richtung der zurückkehrenden Schallwelle ermitteln.

Auf ähnliche Weise sendet der Ping-Befehl eine Echoanforderung aus. Wenn er das Zielsystem findet, sendet der Remotehost eine Echoantwort zurück. Die Entfernung (Anzahl der Hops) zum Remotesystem kann aus der Antwort und den dazwischen liegenden Bedingungen (Paketverlust und Reaktionszeit) bestimmt werden. Während der Autor des Ping-Hilfsprogramms angab, dass der Name einfach auf dem Klang des Echolots basierte, wird auch manchmal behauptet, dass Ping ein Akronym für „Packet InterNet Groper ist“.

Wie funktioniert Ping?

 

Das Ping-Hilfsprogramm setzt Echoanforderungs- und Echoantwortmeldungen innerhalb des Internet Control Message Protocol (ICMP) ein, das fester Bestandteil jedes IP-Netzwerks ist. Bei Ausgabe eines Ping-Befehls wird ein Echoanforderungspaket an die angegebene Adresse gesendet. Wenn der Remotehost die Echoanforderung empfängt, antwortet er mit einem Echoantwortpaket.

Standardmäßig sendet der Ping-Befehl mehrere Echoanforderungen, gewöhnlich vier oder fünf. Das Ergebnis jeder Echoanforderung wird dargestellt und zeigt, ob die Anforderung eine erfolgreiche Antwort erhielt, wie viele Bytes als Antwort empfangen wurden, die Gültigkeitsdauer (TTL), wie lange es dauerte, um die Antwort zu empfangen, sowie Statistiken zu Paketverlust und Roundtripzeiten.

Format der Ping-Meldung

 

Die Echoanforderung („Ping“) ist wie folgt strukturiert:

 

Byte 0 Byte 1 Byte 2 Byte 3
Type (8 = IPv4, ICMP; 128 = IPv6, ICMP6) Code Header Checksum
Identifier Sequence Number
Payload

 

Die Echoantwort muss die exakte Nutzlast enthalten, die in der Anforderung empfangen wurde:

 

Byte 0 Byte 1 Byte 2 Byte 3
Type (0 = IPv4, ICMP; 129 = IPv6, ICMP6) Code Header Checksum
Identifier Sequence Number
Payload

Das Ping-Hilfsprogramm

Das Ping-Hilfsprogramm ist in praktisch jedes Betriebssystem mit Netzwerkunterstützung integriert. Während Echoanforderung und Echoantwort ICMP-Meldungen sind, variiert die genaue Implementierung des Ping-Hilfsprogramms leicht von Hersteller zu Hersteller.

In seiner einfachsten Form kann das Ping-Hilfsprogramm mit nichts weiter als dem Ping-Befehl und einem Ziel ausgeführt werden. Der Remotehost kann entweder durch Name oder Adresse angegeben werden. 

ping 168.93.37.2

ping ftp.microsoft.com

 

Es folgt die Ausgabe eines einfachen Ping an den Zielhost paessler.com:

ping paessler.com
Pinging paessler.com [104.16.182.252] with 32 bytes of data:
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57

Ping statistics for 104.16.182.252:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 4ms, Maximum = 4ms, Average = 4ms

 

Das Ping-Hilfsprogramm enthält jedoch auch mehrere anpassbare Optionen.

Ping-Parameter und Optionen

Für den Ping-Befehl stehen zahlreiche Parameter zur Verfügung, die die Anpassung der Standardeinstellungen für spezifischere Zwecke ermöglichen. Leider gibt es keine plattformübergreifende Konsistenz für die unterschiedlichen Parameter. Bei Windows wird zum Beispiel ein -n (für „number“ = Zahl) verwendet, um die Anzahl der zu sendenden Pings einzustellen, während bei den meisten Unix-Systemen ein -c (für „count“ = Anzahl) verwendet wird.

Es folgen einige Beispiele von Ping-Parametern. Im Allgemeinen resultiert die Verwendung von ping -? in einer Liste von Parametern zusammen mit dem entsprechenden Buchstaben zur Verwendung der Optionen im Betriebssystem.

Number (or count) – Stellt die Anzahl der zu sendenden Echoanforderungen bzw. Pings ein. Standardmäßig sind dies vier bei den meisten Windows-Systemen und fünf bei den meisten Unix-Systemen. Wenn eine höhere Zahl eingestellt wird, kann der Ping weiter laufen, um zum Beispiel entweder mehr Daten zu sammeln, um festzustellen, ob unterschiedliche Reaktionszeiten vorliegen, oder um sicherzustellen, dass ein System weiterhin reaktionsfähig ist.

Timeout – Ändert das Zeitlimit, während dessen das Hilfsprogramm auf eine Antwort vom Zielgerät wartet. Bei Windows-Systemen ist der Standardwert 4000 Millisekunden bzw. 4 Sekunden.

Size – Ändert die Größe des Ping-Pakets. Der Standardwert bei Windows ist 32 Bytes, bei vielen Unix/Linux-Systemen 64 Bytes.

TTLStellt eine andere Gültigkeitsdauer ein.

IP4 or IP6 – Antwortet mit IPv4- oder IPv6-Adressen (ping -4/ping -6 bei Windows, ping oder ping6 bei Linux).

Until stopped – Lässt den Ping laufen, bis er vom Benutzer gestoppt wird (-t bei Windows).

Ping-Befehlssyntax für Windows

-t Pingt den angegebenen Host an, bis der Ping gestoppt wird. Zum Stoppen wird Strg-C verwendet.
-a Auflösung der Adressen in Hostnamen

-n

Anzahl der zu sendenden Echoanforderungen
-l  Sendepuffergröße
-f Einstellung von Don't Fragmet flag im Paket (nur IPv4)
-i Einstellung von Time To Live
-v Einstellung von Type of Service (veraltete Einstellung)
-r Aufzeichnung der Route zur Zählung der Hops (nur IPv4)
-s Zeitstempel zur Zählung der Hops (nur IPv4)
-j Lose Quellroute entlang Hostliste (nur IPv4)
-k Strikte Quellroute entlang Hostliste (nur IPv4)
-w Zeitlimit in ms beim Warten auf jede Antwort
-R Verwendung eines Routingheaders, um auch die umgekehrte Route zu testen (nur IPv6, veraltet nach RFC 5095)
-S Zu verwendende Quelladresse
-c Routing compartment identifier
-p Anpingen der Adresse eines Anbieters für die Hyper-V-Netzwerkvirtualisierung
-4 Erzwungene Verwendung von IPv4
-6 Erzwungene Verwendung von IPv6

 

Test Your Ping Speed

Wie Ping verwendet wird

Für so ein kleines, grundlegendes Hilfsprogramm kann der Ping-Befehl in zahlreichen Situationen ein wertvolles Tool sein. Als befehlszeilenbasiertes Hilfsprogramm lässt sich Ping leicht in unterschiedlichen Skripts verwenden, sodass zahlreiche Pings für alle möglichen Anwendungsarten ausgeführt und aufgezeichnet werden können. Zum Beispiel lässt sich die Ausgabe des Ping-Befehls leicht in eine Textdatei weiterleiten, um später überprüft zu werden.

Problembehebung mit Ping

Die häufigste Verwendung des Ping-Hilfsprogramms liegt vielleicht bei der Problembehebung. Beim Versuch, Anwendungen oder Systeme über ein Netzwerk einzusetzen, ist es am wichtigsten zu wissen, ob tatsächlich eine funktionierende Verbindung besteht. Mit einer Reihe von Ping-Befehlen lässt sich bestimmen, wo das Problem liegt.

Durch einen kurzen Ping nach IP-Adresse wird bestätigt, dass das System eingeschaltet ist, dass eine Verbindung besteht und dass die beiden Maschinen miteinander kommunizieren können.

Ping 172.168.9.13

 

Wenn der Ping nach Name und IP-Adresse erfolgreich ist, die Reaktionszeiten jedoch lang sind, kann ein Routing-, Netzwerkgeschwindigkeits- oder Überlastungsproblem vorliegen. Sogar nicht erfolgreiche Pings können wertvolle Informationen bei der Problembehebung bringen.

Wenn ein Ping nach IP-Adresse erfolgreich ist, ein Ping nach Name jedoch nicht, dann liegt ein Problem mit der Namensauflösung vor. Wenn der Ping ganz fehlschlägt, kann versucht werden, andere Teile des Netzwerks anzupingen, um das Problem zu isolieren. Durch einen erfolgreichen Ping des Standard-Gateways wird bestätigt, dass die Netzwerkverbindung funktioniert, dass jedoch die Verbindung mit dem Remotesystem durch etwas gestört wird.

Wenn Sie mit demselben Subnetz des Remotesystems erfolgreiche Pings durchführen können, jedoch nicht mit dem Zielsystem selbst, dann ist die Netzwerkkonnektivität des Remotehosts zweifelhaft. Wenn das Standard-Gateway nicht angepingt werden kann, die Loopback-Adresse (127.0.01) jedoch zu einem erfolgreichen Ping führt, dann würden Sie wissen, dass die Netzwerkschnittstelle funktioniert, aber keine Verbindung zum Netzwerk besteht.

Ping-Fehler

Wenn der Ping keine Antwort vom Zielhost erhält, zeigen die meisten Ping-Implementierungen entweder gar nichts oder eine Zeitüberschreitungsmeldung an. Das Ergebnis kann zum Beispiel so aussehen:

Pinging 121.242.124.9 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

 

Ermittlung

Ping kann als schnelles und effektives Ermittlungstool eingesetzt werden. Da praktisch jedes mit einem Netzwerk verbundene Gerät auf einen Ping reagiert, würde ein Administrator zum Beispiel durch Anpingen eines Adressenbereichs alle verbundenen Geräte in diesem Bereich finden können – unabhängig vom Gerätetyp oder Betriebssystem.

Überwachung

Ping kann zur Überwachung der Netzwerkverfügbarkeit von Geräten eingesetzt werden. Ein Ping-Befehl, der als geplante Aufgabe ausgeführt wird, kann einen rudimentären Abruf jedes vernetzten Computers oder Geräts vornehmen, ohne dass zusätzliche Softwareagenten installiert oder zusätzliche Ports geöffnet werden müssen. Der grundlegendste aller Aufwärts/Abwärts-Monitore könnte durch Ausführen eines Pings mit der Option „run until stopped“ erzielt werden. Wenn die Pings fehlzuschlagen beginnen, haben sie ein Problem, das System zu erreichen.

Diese Lösungen werden mit einem zusätzlichen Überwachungstool wie PRTG erheblich verbessert, das zwar zugrunde liegende Ping-Befehle verwendet, jedoch nicht davon abhängt, dass jemand die Ausgabe überwacht oder zur Aufzeichnung an einen Datensatz weiterleitet.

Der Standard-Ping v2-Sensor führt Ping-Befehle im Hintergrund aus. Diese Befehle können konfiguriert werden, um in spezifischen Intervallen oder als Reaktion auf ein anderes Ereignis ausgeführt zu werden. Wenn zum Beispiel ein Sensor einen Verbindungsfehler meldet, lässt sich mit einem Ping bestimmen, ob immer noch eine Netzwerkverbindung besteht. Oder Monitore können konfiguriert werden, um einen Administrator zu warnen, wenn die Ping-Zeiten zu lang werden oder zu viel Paketverlust auftritt.

Ein anderer interessanter Ping-basierter Sensor ist der Cloud Ping v2 Sensor, der überwachte Systeme von einer Remote-Cloud verteilter Systeme aus anpingt. Er sorgt für den überaus wichtigen, jedoch schwer zu erkennenden Alarm, wenn an Ihrem Ende alles normal läuft, Ihre Systeme jedoch aus irgendeinem Grund von Remotebenutzern oder -clients von außen nicht erreicht werden können.

Sicherheit

Das bloße Wissen, dass ein System existiert und mit dem Netzwerk verbunden ist, kann genug Information für einen Angreifer sein, um mit dem Angriff zu beginnen. Durch sorgfältige Analyse von Ping-Antworten können weitere Informationen erhalten werden, z. B. welches Betriebssystem das Ziel verwendet, wo sich die Maschine befindet usw.

Viele Hacking-Tools gehen einen ganzen Bereich durch, indem sie jede IP-Adresse in einem Ziel-Netzwerk anpingen, um eine Liste der Systeme zu erhalten, die erreichbar sind und reagieren werden. Infolgedessen sind viele Firewalls so konfiguriert, dass Ping-Anforderungen von nicht vertrauenswürdigen Netzwerken blockiert werden.