Interpretazione del TTL nei risultati del ping


11

Lavoro per un fornitore di servizi VoIP e sto riscontrando un problema con un cliente che dispone di una connessione Internet via cavo che mi sta gettando in loop.

Ha un singolo blocco, che pretendiamo sia 70.141.15.0/29, con gateway a .1 e router a .2 e .3. Entrambi i router sono collegati al suo modem via cavo che, per quanto ne sappiamo, è impostato su qualsiasi provider via cavo immagini che sia "modalità bridge".

Sto eseguendo il ping di entrambi questi router contemporaneamente dalla stessa scatola, che è un sistema Linux collegato alla fibra da (probabilmente) Level (3). Quindi, inutile dirlo, nessuno al mondo sa quanti nodi ci sono tra qui e là. Ma controlla i risultati del ping.

Al primo 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

Dal secondo:

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

Scopri i valori TTL. ha senso? Questi dispositivi sono direttamente uno accanto all'altro, collegati a quel modem tramite porte switch separate. Come si può avere quasi 200 luppoli in più? Dal ping di altri siti ho l'impressione che il TTL non sia implementato come penso. Dubito che ci siano 200 hop tra me e 4.2.2.2, o woot.com, ma ottengo meno di 50 risultati TTL da entrambi.

Uno di questi router (quello con il TTL più alto) proviene da Fortinet, mentre l'altro è un dispositivo personalizzato basato su Linux. Sono abbastanza sicuro che Forti abbia uno stack di rete fatto in casa, mentre il box Linux usa tutto ciò che viene fornito con il tarball di origine scaricato dagli sviluppatori hardware. È probabile che l'eco ICMP sia implementato in una forma bizzarra su una di queste e invii deliberatamente tutte le risposte con un TTL di 50?

Noto anche che uno dei pochi siti che posso trovare che le risposte con un TTL dall'aspetto sano è slashdot e posso immaginare che i loro server e router potrebbero essere un po 'meno "qualunque cosa abbiamo trovato nel garage" rispetto al sito Web medio, che mi fa sentire come se potessi essere sulla strada giusta con l'ultima supposizione.

Per riassumere: TTL sul ping significa qualcosa di affidabile?


3
Ho letto da qualche parte che Windows XP e Windows 7 impostano lì TTL come 128 e per i sistemi Linux generalmente hanno TTL 64. Non perfetto ma molto utile da sapere a volte.
Sean,

Risposte:


22

Quindi, inutile dirlo, nessuno al mondo sa quanti nodi ci sono tra qui e là.

So quanti nodi. Esistono esattamente 16. Il motivo per cui si ottengono risposte diverse è perché sistemi operativi diversi utilizzano valori iniziali diversi per TTL. Alcuni dispositivi usano 255, mentre altri usano 63. Quindi, uno dei dispositivi su cui stai eseguendo il ping invia la risposta con il TTL impostato su 255. Quando torna a te, è diminuito a 239. Sono 16 i salti.

L'altro dispositivo su cui esegui il ping imposta TTL su 63. Quindi, quando arriva a te, il valore è 47.

255-239 = 63-47 = 16.

Se vuoi essere sicuro del numero di salti tra te e il bersaglio, usa traceroute.


Grazie! Stavo assumendo che ora mi rendo conto che era privo di fondamento (che il pacchetto di restituzione TTL era in qualche modo dettato dal pacchetto di richiesta TTL). Un'altra domanda: sono 255 e 63 valori basati su standard o arbitrari? Cioè, posso tranquillamente presumere che qualsiasi TTL a tre cifre abbia iniziato la sua vita come 255, ecc.?
Daniel Thompson,

3
Non credo che ci siano "standard" in merito. OTOH, non ho mai visto un sistema che non fosse l'uno o l'altro.
Ron Trunk,

63 sembra un valore non comune per un TTL iniziale.
JeanPierre,

2

I valori TTL sono determinati dalla macchina remota. Ad esempio, se esegui il ping di una macchina Linux, il suo valore TTL di origine è 64. A seconda di quante reti attraversa per tornare a te, il TTL viene dedotto da un valore di 1. Quindi, se esegui il ping 8.8.8.8, che è Googles nameserver, ha un valore originario di 128. Quando tornerà a te, potrebbe avere un valore di 121 (lo fa per me). Ciò significa che ha attraversato 7 reti per arrivare a me ed era una macchina Windows.

Valori TTL comuni

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

0

128-Windows, 64-maggior parte Linux e router, 60-molto raro, 32-Windows 95.

E nessuno usa 63, probabilmente sta colpendo un altro router sul percorso di ritorno.


0

prova "Tracert [INDIRIZZO IP]" per vedere il numero totale di percorsi.

Se il sistema inizia a 64 TTL, se TRACERT un dispositivo con un salto di distanza otterrai TTL = 63.

Ho provato ed è quello che ho ottenuto. Mi chiedo sempre TTL ... hmm cool 😎


Questo non risponde alla domanda posta.
Teun Vink
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.