Menafsirkan TTL dalam hasil ping

11

Saya bekerja untuk penyedia layanan VoIP dan saya sedang menangani masalah dengan pelanggan yang memiliki koneksi internet kabel yang membuat saya terputus-putus.

Dia memiliki satu blok, yang akan kita anggap 70.141.15.0/29, dengan gateway di .1 dan router di .2 dan .3. Kedua router terhubung ke modem kabelnya yang, setahu kami, diatur ke penyedia kabel apa pun bayangkan "mode jembatan".

Saya ping kedua router ini secara bersamaan dari kotak yang sama, yang merupakan sistem linux yang terhubung ke fiber dari (mungkin) Level (3). Jadi tak perlu dikatakan, tidak ada seorang pun di planet ini yang tahu berapa banyak node yang ada di sana-sini. Tetapi periksa hasil ping.

Ke router pertama:

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

Dari yang kedua:

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

Periksa nilai TTL. Apakah ini masuk akal? Perangkat ini berbatasan langsung satu sama lain, dicolokkan ke modem melalui port switch terpisah. Bagaimana seseorang bisa memiliki hampir 200 hop lagi? Dari ping situs lain saya mendapat kesan bahwa TTL tidak diimplementasikan seperti yang saya pikirkan. Saya ragu ada 200 hop antara saya dan 4.2.2.2, atau woot.com, namun saya mendapatkan di bawah 50 hasil TTL dari keduanya.

Salah satu router ini (yang dengan TTL lebih tinggi) berasal dari Fortinet, sedangkan yang lainnya adalah perangkat berbasis Linux yang khusus. Saya cukup yakin Forti memiliki setumpuk jaringan rumah-digulung, sedangkan kotak Linux menggunakan apa pun yang datang dengan sumber tarball perangkat keras yang diunduh. Apakah mungkin gema ICMP diimplementasikan dalam bentuk yang aneh pada salah satunya dan dengan sengaja mengirimkan semua balasan dengan TTL 50?

Saya juga memperhatikan bahwa satu-satunya situs yang saya dapat temukan bahwa balasan dengan TTL yang tampak waras adalah slashdot, dan saya dapat membayangkan bahwa server dan router mereka mungkin sedikit kurang "apa pun yang kami temukan di garasi" daripada situs web rata-rata, yang semacam membuatku merasa seperti berada di jalur yang benar dengan anggapan terakhir itu.

Singkatnya: apakah TTL di ping berarti apa pun yang dapat diandalkan?

Daniel Thompson
sumber
3
Saya membaca bahwa Windows XP dan Windows 7 menetapkan TTL sebagai 128 dan untuk sistem Linux mereka umumnya memiliki TTL 64. Terkadang tidak sempurna tetapi sangat berguna untuk diketahui.
Sean

Jawaban:

22

Jadi tak perlu dikatakan, tidak ada seorang pun di planet ini yang tahu berapa banyak node yang ada di sana-sini.

Saya tahu berapa banyak node. Ada persis 16. Alasan Anda mendapatkan respons yang berbeda adalah karena sistem operasi yang berbeda menggunakan nilai awal yang berbeda untuk TTL. Beberapa perangkat menggunakan 255, sementara yang lain menggunakan 63. Jadi, salah satu perangkat yang Anda ping mengirim balasan dengan set TTL ke 255. Pada saat itu kembali kepada Anda, itu telah berkurang menjadi 239. Itu 16 hop.

Perangkat lain yang Anda ping menyetel TTL ke 63. Jadi, ketika sampai kepada Anda, nilainya adalah 47.

255-239 = 63-47 = 16.

Jika Anda ingin memastikan jumlah lompatan antara Anda dan target, gunakan traceroute.

Ron Trunk
sumber
Terima kasih! Saya membuat asumsi yang sekarang saya sadari tidak berdasar (bahwa paket pengembalian TTL dengan cara apa pun ditentukan oleh paket permintaan TTL). Satu pertanyaan lagi: apakah 255 dan 63 nilai berbasis standar atau sewenang-wenang? Yaitu, dapatkah saya dengan aman berasumsi bahwa TTL tiga digit mulai hidup sebagai 255, dll?
Daniel Thompson
3
Saya tidak berpikir ada "standar" tentang ini. OTOH, saya belum pernah melihat sistem yang bukan salah satunya.
Ron Trunk
63 terdengar seperti nilai yang tidak biasa untuk TTL awal.
JeanPierre
2

Nilai TTL ditentukan oleh mesin jarak jauh. Misalnya, jika Anda melakukan ping ke mesin Linux, nilai TTL aslinya adalah 64. Bergantung pada berapa banyak jaringan yang dilintasi untuk kembali kepada Anda, TTL dikurangkan oleh nilai 1. Jadi jika Anda melakukan ping 8.8.8.8, yang merupakan Nameserver Googles, ia memiliki nilai asal 128. Pada saat ia kembali kepada Anda, itu mungkin memiliki nilai 121 (itu berlaku untuk saya). Itu berarti melintasi 7 jaringan untuk sampai ke saya dan itu adalah mesin windows.

Nilai TTL umum

  • Router - 255
  • Windows - 128
  • Linux-Mac - 64
dubu2
sumber
0

128-Windows, 64-kebanyakan Linux dan router, 60-sangat langka, 32-Windows 95.

Dan tidak ada yang menggunakan 63, itu mungkin mengenai router lain di jalur kembali.

Fred Phillips
sumber
0

coba "Tracert [ALAMAT IP]" untuk melihat jumlah total rute.

Jika sistem Mulai pada 64 TTL maka jika Anda TRACERT perangkat dengan satu hop jauhnya Anda akan mendapatkan TTL = 63.

Saya mencoba dan itulah yang saya dapatkan. Saya selalu bertanya-tanya TTL ... hmm keren 😎

pengguna56130
sumber
Ini tidak menjawab pertanyaan yang diajukan.
Teun Vink