Interprétation de TTL dans les résultats de ping


11

Je travaille pour un fournisseur de services VoIP et je travaille un problème avec un client qui a une connexion Internet par câble qui me jette pour une boucle.

Il a un seul bloc, que nous prétendons être 70.141.15.0/29, avec la passerelle à .1 et les routeurs à .2 et .3. Les deux routeurs sont connectés à son modem câble qui, à notre connaissance, est réglé sur ce que les câblo-opérateurs imaginent être le "mode pont".

Je cingle ces deux routeurs simultanément à partir de la même boîte, qui est un système Linux connecté à la fibre du niveau (probablement) (3). Il va donc sans dire que personne sur la planète ne sait combien de nœuds il y a entre ici et là. Mais vérifiez les résultats du ping.

Vers le premier routeur:

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

A partir du second:

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

Découvrez les valeurs TTL. Est-ce que ça a du sens? Ces appareils sont directement adjacents les uns aux autres, connectés à ce modem via des ports de commutation séparés. Comment peut-on sembler avoir près de 200 sauts de plus? En cinglant d'autres sites, j'ai l'impression que TTL n'est tout simplement pas implémenté comme je le pense. Je doute qu'il y ait 200 sauts entre moi et 4.2.2.2, ou woot.com, mais j'obtiens moins de 50 résultats TTL de ces deux.

L'un de ces routeurs (celui avec le TTL le plus élevé) provient de Fortinet, tandis que l'autre est un appareil Linux personnalisé. Je suis à peu près sûr que le Forti a une pile réseau domestique, tandis que la boîte Linux utilise tout ce qui est fourni avec l'archive source téléchargée par les développeurs de matériel. Est-il probable que l'écho ICMP soit implémenté sous une forme bizarre sur l'un d'entre eux et envoie délibérément toutes les réponses avec un TTL de 50?

Je remarque également que l'un des seuls sites sur lesquels je peux trouver des réponses avec un TTL sain est slashdot, et je peux imaginer que leurs serveurs et routeurs pourraient être un peu moins "tout ce que nous avons trouvé dans le garage" que le site Web moyen, qui en quelque sorte, je me sens comme si j'étais sur la bonne voie avec cette dernière supposition.

Pour résumer: TTL sur ping signifie-t-il quelque chose de fiable que ce soit?


3
J'ai lu quelque part que Windows XP et Windows 7 définissaient le TTL sur 128 et pour les systèmes Linux, ils avaient généralement le TTL 64. Pas parfait mais très utile à savoir parfois.
Sean

Réponses:


22

Il va donc sans dire que personne sur la planète ne sait combien de nœuds il y a entre ici et là.

Je sais combien de nœuds. Il y en a exactement 16. La raison pour laquelle vous obtenez des réponses différentes est que différents systèmes d'exploitation utilisent différentes valeurs de départ pour TTL. Certains appareils utilisent 255, tandis que d'autres en utilisent 63. Ainsi, l'un des appareils sur lesquels vous envoyez un ping envoie la réponse avec le TTL défini à 255. Au moment où il vous revient, il a diminué à 239. Cela fait 16 sauts.

L'autre appareil sur lequel vous envoyez un ping définit le TTL à 63. Ainsi, lorsqu'il vous parvient, la valeur est 47.

255-239 = 63-47 = 16.

Si vous voulez être sûr du nombre de sauts entre vous et la cible, utilisez traceroute.


Je vous remercie! Je faisais une supposition que je réalise maintenant était sans fondement (que le paquet de retour TTL était en aucune façon dicté par le paquet de requête TTL). Encore une question: les valeurs normalisées de 255 et 63 sont-elles arbitraires? Autrement dit, puis-je supposer en toute sécurité que tout TTL à trois chiffres a commencé sa vie comme 255, etc.
Daniel Thompson

3
Je ne pense pas qu'il y ait de "normes" à ce sujet. OTOH, je n'ai jamais vu un système qui n'était ni l'un ni l'autre.
Ron Trunk

63 ressemble à une valeur inhabituelle pour un TTL initial.
JeanPierre

2

Les valeurs TTL sont déterminées par la machine distante. Par exemple, si vous envoyez une requête ping à une machine Linux, sa valeur TTL d'origine est 64. En fonction du nombre de réseaux qu'elle traverse pour vous répondre, la TTL est déduite d'une valeur de 1. Donc, si vous envoyez une requête ping à 8.8.8.8, qui est Googles nameserver, il a une valeur d'origine de 128. Au moment où il vous revient, il peut avoir une valeur de 121 (c'est le cas pour moi). Cela signifie qu'il a traversé 7 réseaux pour me rejoindre et que c'était une machine Windows.

Valeurs TTL communes

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

0

128-Windows, 64-plus Linux et routeurs, 60-très rare, 32-Windows 95.

Et personne n'utilise 63, il frappe probablement un autre routeur sur le chemin de retour.


0

essayez "Tracert [ADRESSE IP]" pour voir le nombre total de routes.

Si le système démarre à 64 TTL, alors si vous TRACEZ un appareil à un saut, vous obtiendrez TTL = 63.

J'ai essayé et c'est ce que j'ai obtenu. Je me demande toujours TTL ... hmm cool 😎


Cela ne répond pas à la question posée.
Teun Vink
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.