Ada skenario di mana seseorang ingin mengetahui rute yang diikuti oleh koneksi. Yang kami maksud dengan rute di sini adalah alamat IP dari semua entitas penerusan (seperti router di antaranya).
Meskipun tidak ada jaminan bahwa rute akan tetap sama untuk semua paket koneksi tetapi biasanya sama. Informasi terkait rute ini bisa sangat berguna saat men-debug masalah terkait jaringan.
utilitas traceroute mencetak rute lengkap ke tujuan tertentu. Dalam artikel ini kita akan membahas cara kerja traceroute dan melihat beberapa contoh praktisnya.
Bagaimana Traceroute Bekerja?
Sebelum memulai dengan contoh, mari kita pahami konsep di mana traceroute bekerja.
Utilitas Traceroute menggunakan bidang TTL di header IP untuk mencapai operasinya. Untuk pengguna yang baru mengenal bidang TTL, bidang ini menjelaskan berapa banyak hop yang akan diambil paket tertentu saat bepergian di jaringan.
Jadi, ini secara efektif menguraikan masa pakai paket di jaringan. Bidang ini biasanya diatur ke 32 atau 64. Setiap kali paket disimpan di router perantara, nilai TTL berkurang 1. Ketika router menemukan nilai TTL 1 dalam paket yang diterima, paket tersebut tidak diteruskan tetapi sebaliknya dibuang.
Setelah membuang paket, router mengirimkan pesan kesalahan ICMP "Waktu terlampaui" kembali ke sumber dari mana paket dihasilkan. Paket ICMP yang dikirim kembali berisi alamat IP router.
Jadi sekarang dapat dengan mudah dipahami bahwa traceroute beroperasi dengan mengirimkan paket dengan nilai TTL mulai dari 1 dan kemudian bertambah satu setiap kali. Setiap kali router menerima paket, ia memeriksa bidang TTL, jika bidang TTL adalah 1 maka ia membuang paket dan mengirimkan paket kesalahan ICMP yang berisi alamat IP-nya dan inilah yang dibutuhkan traceroute. Jadi traceroute secara bertahap mengambil IP semua router antara sumber dan tujuan.
Anda juga harus memahami bidang header IP yang telah kita bahas beberapa waktu lalu.
Contoh Traceroute
1. Bagaimana cara menjalankan traceroute?
$ traceroute <server-name>
Nama server di atas adalah nama tujuan atau alamat IP. Misalnya, traceroute digunakan untuk menemukan jalur jaringan dari mesin saya ke google.com :
$ traceroute google.com traceroute to google.com (74.125.236.132), 30 hops max, 60 byte packets 1 220.224.141.129 (220.224.141.129) 89.174 ms 89.094 ms 89.054 ms 2 115.255.239.65 (115.255.239.65) 109.037 ms 108.994 ms 108.963 ms 3 124.124.251.245 (124.124.251.245) 108.937 ms 121.322 ms 121.300 ms 4 * 115.255.239.45 (115.255.239.45) 113.754 ms 113.692 ms 5 72.14.212.118 (72.14.212.118) 123.585 ms 123.558 ms 123.527 ms 6 72.14.232.202 (72.14.232.202) 123.499 ms 123.475 ms 143.523 ms 7 216.239.48.179 (216.239.48.179) 143.503 ms 95.106 ms 95.026 ms 8 bom03s02-in-f4.1e100.net (74.125.236.132) 94.980 ms 104.989 ms 104.954 ms
Setiap baris memberikan rincian interaksi dengan setiap router yang ditemui. Jadi kita melihat bahwa traceroute tidak hanya memberikan alamat IP dari router perantara tetapi juga tiga kali perjalanan pulang pergi untuk router tertentu karena untuk setiap router perintah traceroute menjalankan tiga paket.
Bidang '*' di output
Ada kalanya seseorang bisa menemukan '*' dalam output daripada nilai. Ini menggambarkan bahwa bidang yang diperlukan tidak dapat diambil. Alasannya bisa apa saja, mulai dari kegagalan pencarian DNS terbalik hingga paket yang tidak mengenai router target hingga paket yang hilang dalam perjalanan kembali. Jadi kami melihat bahwa alasannya bisa banyak tetapi untuk semua jenis kasus ini, utilitas traceroute memberikan * pada output.
2. Nonaktifkan pemetaan alamat IP dan nama host
Traceroute menyediakan opsi di mana pemetaan alamat IP dengan nama host (yang dicoba traceroute) dinonaktifkan. Opsi untuk melakukan ini adalah '-n' . Contoh berikut menggambarkan hal ini :
$ traceroute google.com -n traceroute to google.com (173.194.36.7), 30 hops max, 60 byte packets 1 220.224.141.129 109.352 ms 109.280 ms 109.248 ms 2 115.255.239.65 131.633 ms 131.598 ms 131.573 ms 3 124.124.251.245 131.554 ms 131.529 ms 131.502 ms 4 115.255.239.45 131.478 ms 131.464 ms 199.741 ms 5 72.14.212.118 199.674 ms 199.637 ms 199.603 ms 6 209.85.241.52 199.578 ms 199.549 ms 209.838 ms 7 209.85.241.187 199.488 ms 177.264 ms 177.196 ms 8 173.194.36.7 177.159 ms 187.463 ms 187.434 ms
Jadi kita melihat bahwa tidak ada nama host yang ditampilkan di output.
3. Konfigurasikan Waktu Tunggu Respons
Waktu tunggu utilitas traceroute setelah mengeluarkan probe juga dapat dikonfigurasi. Ini dapat dilakukan melalui opsi '-w' yang disediakannya. Opsi -w mengharapkan nilai yang akan diambil oleh utilitas sebagai waktu respons untuk menunggu. Dalam contoh ini, waktu tunggu adalah 0,1 detik dan utilitas traceroute tidak dapat menunggu respons apa pun dan ia mencetak semua *.
$ traceroute google.com -w 0.1 traceroute to google.com (74.125.236.101), 30 hops max, 60 byte packets 1 * * * 2 * * * 3 * * * .. 26 * * * 27 * * * 28 * * * 29 * * * 30 * * *
Jadi kami melihat bahwa traceroute mencoba 30 upaya (upaya hop maksimum) dan kemudian menyerah karena tidak ada paket ICMP yang diterima dalam 0,1 detik.
4. Konfigurasi Jumlah Query per Hop
Seperti yang sudah dijelaskan sebelumnya, utilitas traceroute mengirimkan 3 paket per hop untuk menyediakan 3 kali perjalanan pulang pergi. Nilai default 3 ini dapat dikonfigurasi menggunakan opsi '-q'. Opsi ini mengharapkan bilangan bulat yang ditetapkan sebagai nilai baru dari jumlah probe per hop.
$ traceroute google.com -q 5 traceroute to google.com (173.194.36.46), 30 hops max, 60 byte packets 1 220.224.141.129 (220.224.141.129) 91.579 ms 91.497 ms 91.458 ms 91.422 ms 91.385 ms 2 115.255.239.65 (115.255.239.65) 91.356 ms 91.325 ms 98.868 ms 98.848 ms 98.829 ms 3 124.124.251.245 (124.124.251.245) 94.581 ms 107.083 ms 107.044 ms 107.017 ms 106.981 ms 4 115.255.239.45 (115.255.239.45) 106.948 ms 106.918 ms 144.432 ms 144.412 ms 144.392 ms 5 72.14.212.118 (72.14.212.118) 115.565 ms 115.485 ms 115.446 ms 115.408 ms 115.381 ms 6 72.14.232.202 (72.14.232.202) 115.351 ms 87.232 ms 117.157 ms 117.123 ms 117.049 ms 7 209.85.241.189 (209.85.241.189) 126.998 ms 126.973 ms 126.950 ms 126.929 ms 126.912 ms 8 bom04s02-in-f14.1e100.net (173.194.36.46) 126.889 ms 95.526 ms 95.450 ms 95.418 ms 105.392 ms
Jadi kita melihat bahwa setelah mengonfigurasi jumlah probe menjadi 5, output mulai menunjukkan lima kali perjalanan pulang pergi per hop.
5. Konfigurasikan nilai TTL untuk memulai dengan
Utilitas Traceroute cukup fleksibel untuk menerima nilai TTL yang diinginkan pengguna untuk memulai utilitas. Secara default nilainya adalah 1 yang berarti dimulai dengan router pertama di jalur tetapi menggunakan opsi '-f' (yang mengharapkan nilai baru TTL) nilai baru bidang TTL dapat diatur. Misalnya, saya mencoba operasi traceroute normal dan kemudian mencoba traceroute dengan nilai TTL yang berbeda.
$ traceroute google.com traceroute to google.com (74.125.236.132), 30 hops max, 60 byte packets 1 220.224.141.129 (220.224.141.129) 89.181 ms 101.540 ms 101.503 ms 2 115.255.239.65 (115.255.239.65) 101.468 ms 101.431 ms 101.324 ms 3 124.124.251.245 (124.124.251.245) 121.373 ms 121.350 ms 158.694 ms 4 115.255.239.45 (115.255.239.45) 101.223 ms 141.135 ms 123.932 ms 5 72.14.212.118 (72.14.212.118) 123.867 ms 123.832 ms 123.802 ms 6 72.14.232.202 (72.14.232.202) 123.773 ms 123.742 ms 587.812 ms 7 216.239.48.179 (216.239.48.179) 587.723 ms 587.681 ms 587.642 ms 8 bom03s02-in-f4.1e100.net (74.125.236.132) 577.548 ms 577.524 ms 587.512 ms $ traceroute google.com -f 8 traceroute to google.com (74.125.236.129), 30 hops max, 60 byte packets 8 bom03s02-in-f1.1e100.net (74.125.236.129) 96.961 ms 96.886 ms 96.849 ms
Jadi kita melihat bahwa setelah menggunakan opsi -f dengan nilai 8, hanya baris terakhir (ke-8) dari output sebelumnya yang ditampilkan.