Ich kann eine IP-Adresse verfolgen, aber nicht anpingen

19

Wenn ich unter Windows auf Google zurückgreife, erhalte ich Folgendes:

C:\Users\Dave>tracert -d -w 100 www.google.com

Tracing route to www.google.com [216.58.220.100]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.1.1
  2    17 ms     *       16 ms  [redacted]
  3    17 ms    16 ms    17 ms  [redacted]
  4    34 ms    34 ms    34 ms  150.101.33.18
  5    35 ms    43 ms    33 ms  72.14.221.174
  6    33 ms    33 ms    33 ms  66.249.95.234
  7    31 ms    31 ms    31 ms  209.85.142.11
  8    33 ms    33 ms    38 ms  216.58.220.100

Trace complete.

Wenn ich nun die drittletzte IP-Adresse von 66.249.95.234 anpinge, erhalte ich diese ...

C:\Users\Dave>ping 66.249.95.234

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

Ping statistics for 66.249.95.234:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

Wie kommt es, dass das interne "Ping" zum Tracert irgendwie anders funktioniert als das echte Ping? Wie unterscheiden sie sich? Was muss ich tun, damit Ping wie ein Tracert funktioniert?

DJA
quelle
3
Es kann einfach sein, dass ICMP ECHO blockiert ist.
Burhan Khalid

Antworten:

27

Alles hat damit zu tun, wie Tracert funktioniert. Ping ist direktes ICMP von Punkt A nach Punkt B, das Netzwerke über Routing-Regeln durchquert. Tracert funktioniert sehr unterschiedlich, obwohl es ICMP verwendet.

Tracert zielt auf den letzten Hop ab, begrenzt jedoch die TTL, wartet auf eine Zeitüberschreitung und erhöht sie für die nächste Iteration um eins. Daher ist die Antwort, die sie erhält, keine ICMP-Echoantwort auf die ICMP-Echoanforderung des Hosts auf dem Weg, sondern eine Zeitüberschreitungsnachricht dieses Hosts. Auch wenn ICMP verwendet wird, wird ICMP auf eine ganz andere Weise verwendet .

Sie können mehr Details darüber lesen Sie hier .

MaQleod
quelle
12
Um den letzten Punkt hinzufügen , warum Pings Auszeit: Anscheinend ist die dritte letzten 3 Host Arbeit als Router für den Verkehr so konfiguriert ist , durch sie (die Steuerung ICMP TTL üBERSCHRITT Nachrichten für Ausfälle umfasst das Senden) , sondern zu blockieren Verkehr zu ihm, die speziell auf nicht antworten ICMP ECHO REQ. Übrigens kann der Traceroute-Client alles mit dem endgültigen Hop als Ziel senden - es kann sich um ICMP ECHO REQ handeln, aber auch um TCP SYN (das möglicherweise andere ICMP-Nachrichten auslöst, insbesondere wenn der Ziel-JHOST erreicht ist. Tatsächlich unterscheidet sich die Implementierung zwischen den Betriebssystemen. Und dann gibt es tracepath...
Hagen von Eitzen
@HagenvonEitzen Das wäre eine anständige Antwort für sich (das Beste, IMO!)
Leichtigkeitsrennen mit Monica
3
Erwähnenswert ist auch, dass viele "tracert" -Implementierungen nicht einmal ICMP-Pakete senden. Zumindest ist dies bei den traceroutemeisten Linux-Betriebssystemen der Fall , die UDP-Datagramme senden, obwohl ich nicht sicher bin, was die Windows-Version bewirkt. Intermediate-Hops sollten ICMP TTL EXCEEDED für jede Art von Paket senden, nicht nur für ICMP.
Digitales Trauma
1
@DigitalTrauma Wireshark sagt, dass tracertunter Windows 7 ICMP-Echo-Anforderungen gesendet werden .
Bob
4

Zunächst senden Ihre beiden Befehle Pakete mit unterschiedlichen Ziel-IP-Adressen. Das heißt, sie können unterschiedliche Wege einschlagen.

Wenn Sie 66.249.95.234auf der Route in Richtung sehen 216.58.220.100, können Sie davon ausgehen, dass Pakete mit der Zieladresse 66.249.95.234dieselbe Route verwenden, bis sie diesen Punkt erreichen. Dies ist jedoch keine gültige Annahme.

Es ist völlig gültig, dass die Route nach 66.249.95.234länger ist als die Route nach 216.58.220.100. Manchmal kann es sogar vorkommen, dass es keine Route gibt, über die Ihre Pakete zu diesem Zwischenrouter geleitet werden könnten. In diesem Fall handelt es sich jedoch nicht um ein gut konzipiertes Netzwerk.

Ich weiß nicht, ob die Befehle tracertund ping, die Sie verwenden, dasselbe Protokoll verwenden. Die meisten Ping-Implementierungen verwenden ICMP-Echoanforderungspakete. Es gibt jedoch Traceroute-Implementierungen, die eine breite Palette von Protokollen unterstützen, einschließlich ICMP-Echoanforderung, TCP-SYN- und UDP-Paketen. Wenn die beiden unterschiedliche Protokolle verwenden, kann dies zu unterschiedlichen Ergebnissen führen.

Selbst wenn alle Pakete erreicht würden 66.249.95.234, ist es möglich, dass sich 66.249.95.234das Verhalten je nachdem, ob Folgendes erforderlich ist:

  • Leiten Sie das Paket weiter
  • Erzeugen Sie einen ICMP-Fehler in einem an sich selbst adressierten Paket
  • Erzeugen Sie einen ICMP-Fehler in einem Paket, das an eine andere Person adressiert ist

Die Entscheidung, Pakete in nur einem der drei Fälle stillschweigend zu verwerfen, wird offensichtlich viele Netzwerkdiagnosetools zum Erliegen bringen, was jedoch einige Systemadministratoren nicht davon abhält, dies dennoch zu tun.

Kasperd
quelle
0

Da die Sicherheit im Netzwerk stetig zunimmt, besteht eine einfache Aufgabe vieler Menschen darin, Aspekte des ICMP-Protokolls grundsätzlich zu deaktivieren. Dies verhindert, dass auf Traceroutes geantwortet und der vollqualifizierte Domänenname vom Hop zurückgegeben wird. Manchmal sperren Administratoren Dinge, die nicht funktionieren, selbst wenn ein Ping nicht funktioniert. Dies ist eine Entscheidung des Administrators des betroffenen Systems.

Es besteht auch die Möglichkeit, dass das System eine umfangreiche Netzwerklast bewältigt. ICMP hat im Allgemeinen eine sehr niedrige Priorität bei der Verarbeitung im Vergleich zu realen Daten.

mdpc
quelle
5
Dies beantwortet die Frage nicht wirklich. Die Frage ist, warum Ping fehlschlägt und Traceroute erfolgreich ist, wenn sowohl Traceroute als auch Ping ICMP verwenden.
MaQleod