Traceroute - Perintah Linux - Perintah Unix

traceroute - cetak paket rute ke host jaringan

Ringkasan

traceroute [ -defirvv ] [ -f first_ttl ] [ -g gateway ]

[ -i iface ] [ -m max_ttl] [ -p port ]

[ -q nqueries ] [ -s src_addr ] [ -tk ]

[ -w waittime ] [ -z pausemsecs ]

tuan rumah [ packetlen ]

Deskripsi

Internet adalah agregasi besar dan kompleks dari perangkat keras jaringan, dihubungkan bersama oleh gateway. Melacak rute yang diikuti paket seseorang (atau menemukan gerbang miscreant yang membuang paket Anda) bisa jadi sulit. Traceroute memanfaatkan bidang protokol IP `time to live 'dan mencoba memperoleh respons ICMP TIME_EXCEEDED dari masing-masing gateway di sepanjang jalur ke beberapa host.

Satu-satunya parameter wajib adalah nama host tujuan atau nomor IP . Panjang datagram probe default adalah 40 byte , tetapi ini dapat ditingkatkan dengan menentukan panjang paket (dalam byte) setelah nama host tujuan.

Pilihan lainnya adalah:

-f

Atur waktu-ke-hidup awal yang digunakan dalam paket probe keluar pertama.

-F

Setel bit "jangan fragmen".

-d

Aktifkan debugging tingkat soket.

-g

Tentukan sebuah gateway rute sumber longgar (8 maksimum).

-saya

Tentukan antarmuka jaringan untuk mendapatkan alamat IP sumber untuk paket probe keluar. Ini biasanya hanya berguna pada host multi-homed. (Lihat bendera -s untuk cara lain untuk melakukan ini.)

-SAYA

Gunakan ICMP ECHO bukan datagram UDP.

-m

Atur waktu maks-to-live (jumlah hop maksimum) yang digunakan dalam paket probe keluar. Standarnya adalah 30 hop (standar yang sama digunakan untuk koneksi TCP).

-n

Cetak alamat hop secara numerik daripada secara simbolis dan numerik (menyimpan pencarian nama-nama-nama-server untuk setiap gateway yang ditemukan di jalur).

-p

Atur nomor port UDP dasar yang digunakan dalam probe (default adalah 33434). Traceroute berharap tidak ada yang mendengarkan pada basis port UDP ke base + nhops - 1 di host tujuan (jadi pesan ICMP PORT_UNREACHABLE akan dikembalikan untuk mengakhiri pelacakan rute). Jika ada sesuatu yang mendengarkan pada port dalam kisaran default, opsi ini dapat digunakan untuk memilih rentang port yang tidak digunakan.

-r

Bypass tabel routing normal dan kirim langsung ke host pada jaringan terlampir. Jika host tidak berada di jaringan yang terhubung langsung, kesalahan akan dikembalikan. Pilihan ini dapat digunakan untuk melakukan ping ke host lokal melalui antarmuka yang tidak memiliki rute melalui itu (misalnya, setelah antarmuka dijatuhkan oleh diarahkan (8C)).

-s

Gunakan alamat IP berikut (yang biasanya diberikan sebagai nomor IP, bukan nama host) sebagai alamat sumber dalam paket probe keluar. Pada host multi-homed (yang memiliki lebih dari satu alamat IP), opsi ini dapat digunakan untuk memaksa alamat sumber menjadi sesuatu selain alamat IP dari antarmuka paket probe yang dikirim. Jika alamat IP bukan salah satu alamat antarmuka mesin ini, kesalahan akan dikembalikan dan tidak ada yang dikirim. (Lihat bendera -i untuk cara lain untuk melakukan ini.)

-t

Setel jenis-layanan dalam paket probe ke nilai berikut (nilai nol default). Nilai harus berupa bilangan desimal desimal dalam rentang 0 hingga 255. Opsi ini dapat digunakan untuk melihat apakah hasil jenis layanan yang berbeda di jalur yang berbeda. (Jika Anda tidak menjalankan 4.4bsd, ini mungkin akademis karena layanan jaringan normal seperti telnet dan ftp tidak membiarkan Anda mengontrol TOS). Tidak semua nilai TOS legal atau bermakna - lihat spesifikasi IP untuk definisi. Nilai yang berguna mungkin ` -t 16 '(penundaan rendah) dan` -t 8 ' (throughput tinggi).

-v

Verbose output. Paket ICMP yang diterima selain TIME_EXCEEDED dan UNREACHABLEs terdaftar.

-w

Setel waktu (dalam detik) untuk menunggu respons terhadap probe (default 5 detik).

-x

Alihkan checksum ip. Biasanya, ini mencegah traceroute dari menghitung checksum ip. Dalam beberapa kasus, sistem operasi dapat menimpa bagian paket yang keluar tetapi tidak menghitung ulang checksum (jadi dalam beberapa kasus defaultnya adalah tidak menghitung checksum dan menggunakan -x menyebabkan mereka dikalsifikasikan). Perhatikan bahwa checksum biasanya diperlukan untuk hop terakhir ketika menggunakan ICMP ECHO probes ( -I ). Jadi mereka selalu dihitung saat menggunakan ICMP.

-z

Setel waktu (dalam milidetik) untuk menjeda antar probe (default 0). Beberapa sistem seperti Solaris dan router seperti Ciscos rate membatasi pesan icmp. Nilai yang baik untuk digunakan dengan ini adalah 500 (misalnya 1/2 detik).

Program ini mencoba untuk melacak rute paket IP akan mengikuti ke beberapa host internet dengan meluncurkan paket probe UDP dengan ttl kecil (waktu untuk hidup) kemudian mendengarkan untuk ICMP "waktu terlampaui" balasan dari gateway. Kita mulai probe kita dengan satu ttl satu dan naik satu sampai kita mendapatkan ICMP "port unreachable" (yang berarti kita harus "host") atau tekan max (yang default ke 30 hop & dapat diubah dengan -m bendera). Tiga probe (berubah dengan -q bendera) dikirim pada setiap pengaturan ttl dan garis dicetak menunjukkan ttl, alamat gateway dan waktu round trip setiap probe. Jika jawaban probe berasal dari gateway yang berbeda, alamat setiap sistem yang merespons akan dicetak. Jika tidak ada respons dalam 5 detik. batas waktu (berubah dengan bendera -w ), sebuah "*" dicetak untuk probe itu.

Kami tidak ingin host tujuan memproses paket probe UDP sehingga port tujuan disetel ke nilai yang tidak mungkin (jika beberapa gumpalan di tujuan menggunakan nilai itu, itu dapat diubah dengan tanda -p ).

Contoh penggunaan dan keluaran mungkin:

[yak 71]% traceroute nis.nsf.net. traceroute ke nis.nsf.net (35.1.1.48), 30 hop max, 38 byte paket 1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32. 216.1) 39 ms 39 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms 5 ccn -nerif22.Berkeley.EDU (128.32.168.22) 39 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms 8 129.140. 70.13 (129.140.70.13) 99 ms 99 ms 80 ms 9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms 10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms 11 nic.merit.edu (35.1 .1.48) 239 ms 239 ms 239 ms

Perhatikan bahwa garis 2 & 3 adalah sama. Ini disebabkan oleh kernel buggy pada sistem hop ke-2 - lbl-csam.arpa - yang meneruskan paket dengan nol ttl (bug dalam versi terdistribusi 4.3BSD). Perhatikan bahwa Anda harus menebak jalur apa yang digunakan oleh paket untuk melakukan lintas negara karena NSFNet (129.140) tidak menyediakan terjemahan alamat-ke-nama untuk NSSenya.

Contoh yang lebih menarik adalah:

[yak 72]% traceroute allspice.lcs.mit.edu. traceroute ke allspice.lcs.mit.edu (18.26.0.115), 30 hop max 1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms 5 ccn-nerif22 .Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms 8 129.140.70.13 ( 129.140.70.13) 80 ms 79 ms 99 ms 9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms 10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms 11 129.140.72.17 (129.140.72.17) 300 ms 239 ms 239 ms 12 * * * 13 128.121.54.72 (128.121.54.72) 259 ms 499 ms 279 ms 14 * * * 15 * * * 16 * * * 17 * * * 18 ALLSPICE.LCS.MIT.EDU (18.26 .0.115) 339 ms 279 ms 279 ms

Perhatikan bahwa gateway 12, 14, 15, 16 & 17 melompat baik tidak mengirim ICMP "waktu melebihi" pesan atau mengirim mereka dengan ttl terlalu kecil untuk menghubungi kami. 14 - 17 menjalankan kode C Gateway MIT yang tidak mengirim "waktu terlampaui". Hanya Tuhan yang tahu apa yang terjadi dengan 12.

Gerbang diam 12 di atas mungkin merupakan hasil dari bug dalam kode jaringan [4.11] BSD (dan turunannya): 4.x (x <= 3) mengirim pesan yang tidak dapat dicapai menggunakan ttl apa pun yang tersisa dalam bahasa asli datagram. Karena, untuk gateway, ttl yang tersisa adalah nol, ICMP "waktu terlampaui" dijamin tidak akan mengembalikannya kepada kita. Perilaku bug ini sedikit lebih menarik ketika muncul di sistem tujuan:

1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1 ) 19 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms 5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms 6 csgw. Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 rip.Berkeley.EDU (128.32.131.22) 59 Nona ! 39 ms! 39 ms!

Perhatikan bahwa ada 12 "gerbang" (13 adalah tujuan akhir) dan separuh terakhir dari mereka "hilang". Apa yang sebenarnya terjadi adalah bahwa rip (Sun-3 menjalankan Sun OS3.5) menggunakan ttl dari datagram tiba kami sebagai ttl di balasan ICMP nya. Jadi, balasannya akan keluar di jalur kembali (tanpa pemberitahuan yang dikirimkan ke siapa pun karena ICMP tidak dikirim untuk ICMP) sampai kami memeriksa dengan ttl setidaknya dua kali panjang lintasan. Yaitu, rip benar-benar hanya 7 lompatan jauh. Jawaban yang mengembalikan dengan ttl 1 adalah petunjuk bahwa masalah ini ada. Traceroute mencetak "!" setelah waktu jika ttl adalah <= 1. Karena vendor mengirimkan banyak perangkat usang (DEC's Ultrix, Sun 3.x) atau non-standar (HPUX), berharap untuk melihat masalah ini sering dan / atau berhati-hati dalam memilih target tuan rumah probe Anda.

Anotasi lain yang mungkin setelah waktu adalah ! H ,! N , atau ! P (host, jaringan atau protokol yang tidak dapat dijangkau),! S (rute sumber gagal),! F- (diperlukan fragmentasi - nilai Jalur MTU Discovery RFC1191 ditampilkan), ! X (komunikasi secara administratif dilarang),! V (pelanggaran preseden host),! C (berlaku karena cutoff), atau ! (Kode tidak terjangkau ICMP). Ini didefinisikan oleh RFC1812 (yang menggantikan RFC1716). Jika hampir semua probe menghasilkan sesuatu yang tidak dapat dijangkau, traceroute akan menyerah dan keluar.

Program ini dimaksudkan untuk digunakan dalam pengujian jaringan, pengukuran, dan manajemen. Ini harus digunakan terutama untuk isolasi kesalahan manual. Karena beban itu bisa memaksakan pada jaringan, tidak bijaksana untuk menggunakan traceroute selama operasi normal atau dari skrip otomatis.

Lihat juga

pathchar (8), netstat (1), ping (8)