TTL in Ping-Ergebnissen interpretieren


11

Ich arbeite für einen VoIP-Dienstanbieter und arbeite an einem Problem mit einem Kunden, der über eine Kabel-Internetverbindung verfügt, die mich in eine Schleife stürzt.

Er hat einen einzelnen Block, den wir als 70.141.15.0/29 bezeichnen, mit dem Gateway bei .1 und den Routern bei .2 und .3. Beide Router sind mit seinem Kabelmodem verbunden, das nach unserem besten Wissen auf die Kabelanbieter eingestellt ist, die sich den "Bridge-Modus" vorstellen.

Ich pinge diese beiden Router gleichzeitig von derselben Box aus, bei der es sich um ein Linux-System handelt, das über (wahrscheinlich) Level (3) mit Glasfaser verbunden ist. Es ist also unnötig zu erwähnen, dass niemand auf dem Planeten weiß, wie viele Knoten zwischen hier und da liegen. Überprüfen Sie jedoch die Ping-Ergebnisse.

Zum ersten Router:

64 bytes from 70.141.15.2: icmp_seq=2637 ttl=47 time=45.0 ms
64 bytes from 70.141.15.2: icmp_seq=2638 ttl=47 time=39.2 ms
64 bytes from 70.141.15.2: icmp_seq=2639 ttl=47 time=37.3 ms
64 bytes from 70.141.15.2: icmp_seq=2640 ttl=47 time=46.1 ms
64 bytes from 70.141.15.2: icmp_seq=2641 ttl=47 time=45.8 ms
64 bytes from 70.141.15.2: icmp_seq=2642 ttl=47 time=46.5 ms
64 bytes from 70.141.15.2: icmp_seq=2643 ttl=47 time=40.9 ms

Ab dem zweiten:

64 bytes from 70.141.15.3: icmp_seq=631 ttl=239 time=54.7 ms
64 bytes from 70.141.15.3: icmp_seq=637 ttl=239 time=40.5 ms
64 bytes from 70.141.15.3: icmp_seq=638 ttl=239 time=40.3 ms
64 bytes from 70.141.15.3: icmp_seq=639 ttl=239 time=38.4 ms
64 bytes from 70.141.15.3: icmp_seq=640 ttl=239 time=44.9 ms
64 bytes from 70.141.15.3: icmp_seq=641 ttl=239 time=38.4 ms
64 bytes from 70.141.15.3: icmp_seq=642 ttl=239 time=38.8 ms

Überprüfen Sie die TTL-Werte. Macht das Sinn? Diese Geräte liegen direkt nebeneinander und werden über separate Switch-Ports an dieses Modem angeschlossen. Wie kann man scheinen, fast 200 weitere Hopfen zu haben? Durch das Pingen anderer Websites habe ich den Eindruck, dass TTL einfach nicht so implementiert ist, wie ich es mir vorstelle. Ich bezweifle, dass zwischen mir und 4.2.2.2 oder woot.com 200 Hops liegen, aber ich bekomme von beiden weniger als 50 TTL-Ergebnisse.

Einer dieser Router (der mit der höheren TTL) stammt von Fortinet, während der andere ein benutzerdefiniertes Linux-basiertes Gerät ist. Ich bin mir ziemlich sicher, dass der Forti einen selbst gerollten Netzwerkstapel hat, während die Linux-Box alles verwendet, was mit dem Quell-Tarball geliefert wurde, den die Hardware-Entwickler heruntergeladen haben. Ist es wahrscheinlich, dass ICMP-Echo in einer bizarren Form auf einer dieser implementiert ist und absichtlich alle Antworten mit einer TTL von 50 sendet?

Ich stelle auch fest, dass eine der wenigen Websites, auf denen ich Antworten mit vernünftig aussehender TTL finden kann, ein Schrägstrich ist, und ich kann mir vorstellen, dass ihre Server und Router möglicherweise etwas weniger "was auch immer wir in der Garage gefunden haben" als die durchschnittliche Website sind Ich habe das Gefühl, mit dieser letzten Annahme auf dem richtigen Weg zu sein.

Zusammenfassend: Bedeutet TTL auf Ping überhaupt etwas Zuverlässiges?


3
Ich habe irgendwo gelesen, dass Windows XP und Windows 7 dort TTL auf 128 setzen und für Linux-Systeme im Allgemeinen TTL 64 haben. Nicht perfekt, aber manchmal sehr nützlich zu wissen.
Sean

Antworten:


22

Es ist also unnötig zu erwähnen, dass niemand auf dem Planeten weiß, wie viele Knoten zwischen hier und da liegen.

Ich weiß wie viele Knoten. Es gibt genau 16. Der Grund, warum Sie unterschiedliche Antworten erhalten, ist, dass unterschiedliche Betriebssysteme unterschiedliche Startwerte für TTL verwenden. Einige Geräte verwenden 255, während andere 63 verwenden. Eines der Geräte, die Sie anpingen, sendet die Antwort mit der TTL auf 255. Bis es zu Ihnen zurückkehrt, hat es sich auf 239 verringert. Das sind 16 Hops.

Das andere Gerät, das Sie anpingen, setzt die TTL auf 63. Wenn es Sie erreicht, ist der Wert 47.

255-239 = 63-47 = 16.

Wenn Sie sicher sein möchten, wie viele Sprünge sich zwischen Ihnen und dem Ziel befinden, verwenden Sie traceroute.


Vielen Dank! Ich ging davon aus, dass es jetzt unbegründet ist (dass die TTL des Rückgabepakets in irgendeiner Weise von der TTL des Anforderungspakets vorgegeben wurde). Noch eine Frage: Sind 255 und 63 standardbasierte Werte oder willkürlich? Kann ich also mit Sicherheit davon ausgehen, dass eine dreistellige TTL als 255 usw. begann?
Daniel Thompson

3
Ich glaube nicht, dass es "Standards" dafür gibt. OTOH, ich habe noch nie ein System gesehen, das nicht das eine oder andere war.
Ron Trunk

63 klingt nach einem ungewöhnlichen Wert für eine anfängliche TTL.
JeanPierre

2

TTL-Werte werden von der Remote-Maschine bestimmt. Wenn Sie beispielsweise einen Linux-Computer anpingen, beträgt sein ursprünglicher TTL-Wert 64. Abhängig davon, wie viele Netzwerke er überquert, um zu Ihnen zurückzukehren, wird die TTL von einem Wert von 1 abgezogen. Wenn Sie also 8.8.8.8 anpingen, ist dies der Fall Der Googles-Nameserver hat einen Ursprungswert von 128. Wenn er sich bei Ihnen meldet, hat er möglicherweise einen Wert von 121 (für mich). Das heißt, es hat 7 Netzwerke gekreuzt, um zu mir zu gelangen, und es war eine Windows-Maschine.

Gemeinsame TTL-Werte

  • Router - 255
  • Windows - 128
  • Linux-Mac - 64

0

128-Windows, 64-die meisten Linux und Router, 60-sehr selten, 32-Windows 95.

Und niemand benutzt 63, es trifft wahrscheinlich einen anderen Router auf dem Rückweg.


0

Versuchen Sie "Tracert [IP ADDRESS]", um die Gesamtzahl der Routen anzuzeigen.

Wenn das System bei 64 TTL startet, erhalten Sie TTL = 63, wenn Sie ein Gerät mit einem Sprung entfernt TRACERTEN.

Ich habe es versucht und das habe ich bekommen. Ich frage mich immer, TTL ... hmm cool 😎


Dies beantwortet die gestellte Frage nicht.
Teun Vink
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.