Interpretacja TTL w wynikach ping


11

Pracuję dla dostawcy usług VoIP i pracuję nad problemem z klientem, który ma kablowe połączenie internetowe, które rzuca mi pętlę.

Ma jeden blok, który będziemy udawać 70.141.15.0/29, z bramą w .1 i routerami w .2 i .3. Oba routery są podłączone do jego modemu kablowego, który, zgodnie z naszą najlepszą wiedzą, jest ustawiony na cokolwiek, co dostawcy kabli wyobrażają sobie jako „tryb mostka”.

Pinguję oba te routery jednocześnie z tego samego urządzenia, które jest systemem linux podłączonym do światłowodu z (prawdopodobnie) poziomu (3). Nie trzeba dodawać, że nikt na tej planecie nie wie, ile jest węzłów między nimi. Ale sprawdź wyniki ping.

Do pierwszego routera:

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

Od drugiego:

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

Sprawdź wartości TTL. Czy to ma sens? Urządzenia te są bezpośrednio przylegające do siebie, podłączone do tego modemu przez osobne porty przełącznika. Jak można mieć prawie 200 chmielu więcej? Z pingowania innych stron mam wrażenie, że TTL nie jest po prostu zaimplementowane w sposób, jaki uważam. Wątpię, czy istnieje 200 przeskoków między mną a 4.2.2.2 lub woot.com, ale otrzymuję wyniki poniżej 50 TTL.

Jeden z tych routerów (ten z wyższym TTL) pochodzi z Fortinet, a drugi to niestandardowe urządzenie oparte na systemie Linux. Jestem prawie pewien, że Forti ma domowej sieci stos, podczas gdy Linux używa tego, co dostarczono ze źródłowym archiwum, pobranym przez programistów. Czy prawdopodobne jest, że echo ICMP jest zaimplementowane w dziwnej formie na jednym z nich i celowo wysyła wszystkie odpowiedzi z TTL 50?

Zauważyłem również, że jedną z niewielu stron, na które mogę odpowiedzieć z rozsądnym TTL, jest slashdot i mogę sobie wyobrazić, że ich serwery i routery mogą być nieco mniej „czymkolwiek, co znaleźliśmy w garażu”, niż przeciętna strona internetowa, która w pewnym sensie sprawia, że ​​czuję, że mogę być na dobrej drodze z tym ostatnim przypuszczeniem.

Podsumowując: czy TTL na ping oznacza cokolwiek wiarygodnego?


3
Czytałem gdzieś, że Windows XP i Windows 7 ustawiają tam TTL na 128, a dla systemów Linux zazwyczaj mają TTL 64. Nie jest to idealne, ale czasem bardzo przydatne, aby wiedzieć.
Sean

Odpowiedzi:


22

Nie trzeba dodawać, że nikt na tej planecie nie wie, ile jest węzłów między nimi.

Wiem ile węzłów. Jest dokładnie 16. Powodem, dla którego otrzymujesz różne odpowiedzi, jest to, że różne systemy operacyjne używają różnych wartości początkowych dla TTL. Niektóre urządzenia używają 255, podczas gdy inne używają 63. Tak więc jedno z pingowanych urządzeń wysyła odpowiedź z TTL ustawionym na 255. Zanim do ciebie wróci, zmniejszyło się do 239. To 16 przeskoków.

Drugie pingowane urządzenie ustawia TTL na 63. Więc kiedy do ciebie dotrze, wartość wynosi 47.

255–239 ​​= 63–47 = 16.

Jeśli chcesz mieć pewność co do liczby przeskoków między tobą a celem, użyj traceroute.


Dziękuję Ci! Przyjąłem założenie, które teraz zdaję sobie sprawę, że było bezpodstawne (że pakiet zwrotny TTL był w jakikolwiek sposób podyktowany przez pakiet żądania TTL). Jeszcze jedno pytanie: czy wartości oparte na standardach 255 i 63 są arbitralne? Czy mogę bezpiecznie założyć, że jakikolwiek trzycyfrowy TTL rozpoczął życie jako 255 itd.?
Daniel Thompson

3
Nie sądzę, że istnieją w tym „standardy”. OTOH, nigdy nie widziałem systemu, który nie byłby ani jednym, ani drugim.
Ron Trunk

63 brzmi jak niezwykła wartość dla początkowej wartości TTL.
JeanPierre

2

Wartości TTL są określane przez zdalną maszynę. Na przykład, jeśli pingujesz maszynę z Linuksem, jej początkowa wartość TTL wynosi 64. W zależności od liczby przecinających się sieci, aby się z tobą skontaktować, TTL jest odejmowane od wartości 1. Więc jeśli pingujesz 8.8.8.8, która jest Serwer nazw Googles ma wartość początkową 128. Zanim do ciebie wróci, może mieć wartość 121 (robi to dla mnie). To znaczy, że do mnie dotarło 7 sieci i była to maszyna z systemem Windows.

Wspólne wartości TTL

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

0

128-Windows, 64-najbardziej Linux i routery, 60-bardzo rzadko, 32-Windows 95.

I nikt nie używa 63, prawdopodobnie uderza w inny router na ścieżce powrotnej.


0

spróbuj „Tracert [ADRES IP]”, aby zobaczyć całkowitą liczbę tras.

Jeśli system uruchomi się o 64 TTL, to jeśli TRACERTUJ urządzenie w odległości jednego skoku, otrzymasz TTL = 63.

Próbowałem i właśnie to mam. Zawsze zastanawiam się, TTL ... hmm super 😎


To nie odpowiada na zadane pytanie.
Teun Vink
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.