Cara Menggunakan Perintah traceroute di Linux

Anda boleh menggunakan tracerouteperintah Linux untuk melihat perlahan perjalanan paket rangkaian dan menyelesaikan masalah sambungan rangkaian yang perlahan. Kami akan menunjukkan caranya!

Bagaimana traceroute Berfungsi

Apabila anda menghargai cara traceroutekerjanya, menjadikan pemahaman hasilnya lebih mudah. Semakin rumit laluan yang harus dilalui oleh paket rangkaian untuk sampai ke tujuannya, semakin sukar untuk menentukan di mana berlakunya pelambatan.

Rangkaian kawasan tempatan (LAN) organisasi kecil mungkin agak mudah. Ia mungkin mempunyai sekurang-kurangnya satu pelayan dan penghala atau dua. Kerumitan meningkat pada rangkaian kawasan luas (WAN) yang berkomunikasi antara lokasi yang berbeza atau melalui internet. Paket rangkaian anda kemudian menemui (dan diteruskan dan dihalakan oleh) banyak perkakasan, seperti penghala dan gerbang.

Tajuk metadata pada paket data menggambarkan panjangnya, dari mana asalnya, ke mana ia pergi, protokol yang digunakannya, dan sebagainya. Spesifikasi protokol menentukan tajuk. Sekiranya anda dapat mengenal pasti protokol, anda dapat menentukan permulaan dan akhir setiap bidang dalam tajuk dan membaca metadata.

traceroutemenggunakan rangkaian protokol TCP / IP, dan menghantar paket Protokol Datagram Pengguna. Header mengandungi medan Time to Live (TTL), yang mengandungi nilai integer lapan-bit. Walaupun apa namanya, itu mewakili hitungan, bukan jangka waktu.

Satu paket bergerak dari asal ke tujuannya melalui penghala. Setiap kali paket tiba di penghala, ia mengurangkan kaunter TTL. Sekiranya nilai TTL pernah mencapai satu, penghala yang menerima paket akan menurunkan nilainya dan menyedari bahawa sekarang adalah sifar. Paket itu kemudian dibuang dan tidak diteruskan ke perjalanan seterusnya kerana ia "tamat."

Penghala menghantar mesej Protokol Kawalan Mesej Internet (ICMP) Masa Melebihi kembali ke asal paket untuk memberitahunya waktu pakej habis. Mesej Time Exceded mengandungi tajuk awal dan 64 bit pertama dari data paket asal. Ini ditakrifkan pada halaman enam Permintaan untuk Komen 792.

Jadi, jika traceroutemenghantar paket keluar, tetapi kemudian menetapkan nilai TTL menjadi satu, paket hanya akan sampai ke penghala pertama sebelum dibuang. Ia akan menerima pesanan ICMP yang melebihi masa dari penghala, dan dapat mencatat waktu yang diperlukan untuk perjalanan pergi dan balik.

Ia kemudian mengulangi latihan dengan TTL diatur ke 2, yang akan gagal setelah dua hop. traceroutemeningkatkan TTL menjadi tiga dan mencuba lagi. Proses ini berulang sehingga tujuan dicapai atau bilangan maksimum hop (30, secara lalai) diuji.

Sebilangan Penghala Tidak Bermain Dengan Baik

Beberapa penghala mempunyai pepijat. Mereka cuba meneruskan paket dengan TTL sifar dan bukannya membuangnya dan meningkatkan masa ICMP melebihi mesej.

Menurut Cisco, sebilangan Penyedia Perkhidmatan Internet (ISP) membatasi kadar mesej ICMP yang disampaikan oleh penghala mereka.

Beberapa peranti dikonfigurasi untuk tidak menghantar paket ICMP. Ini sering dilakukan untuk memastikan peranti tidak dapat dipaksa untuk ikut serta dalam penolakan perkhidmatan yang diedarkan, seperti serangan smurf.

traceroutemempunyai had masa lalai untuk balasan lima saat. Sekiranya tidak mendapat sambutan dalam lima saat tersebut, percubaan itu akan ditinggalkan. Ini bermaksud tindak balas dari penghala yang sangat perlahan tidak diambil kira.

Memasang traceroute

traceroutetelah dipasang pada Fedora 31 tetapi harus dipasang pada Manjaro 18.1 dan Ubuntu 18.04. Untuk memasang traceroutedi Manjaro gunakan arahan berikut:

sudo pacman -Sy traceroute

Untuk memasang traceroutedi Ubuntu, gunakan arahan berikut:

sudo apt-get install traceroute

Menggunakan traceroute

Seperti yang telah kita bahas di atas, traceroute'stujuannya adalah untuk mendapatkan respons dari penghala pada setiap hop dari komputer Anda ke tujuan. Sebilangan mungkin memerah dan tidak memberikan apa-apa, sementara yang lain mungkin akan menumpahkan kacang tanpa keraguan.

Sebagai contoh, kami akan traceroutemelayari laman web Istana Blarney di Ireland, kediaman Batu Blarney yang terkenal. Legenda memilikinya jika anda mencium Batu Blarney anda akan diberkati dengan "pemberian gab." Mari kita berharap penghala yang kita temui di sepanjang jalan sesuai.

Kami menaip arahan berikut:

traceroute www.blarneycastle.ie

Baris pertama memberi kami maklumat berikut:

  • Destinasi dan alamat IPnya.
  • Jumlah hop traceroute akan mencuba sebelum menyerah.
  • Saiz paket UDP yang kami hantar.

Semua baris lain mengandungi maklumat mengenai salah satu hop. Namun, sebelum kita mengetahui lebih terperinci, kita dapat melihat terdapat 11 hop antara komputer kita dan laman web Blarney Castle. Hop 11 juga memberitahu bahawa kami telah sampai ke destinasi kami.

Format setiap baris hop adalah seperti berikut:

  • Nama peranti atau, jika peranti tidak mengenal pasti dirinya sendiri, alamat IP.
  • Alamat IP.
  • Masa yang diperlukan untuk setiap tiga ujian. Sekiranya tanda bintang berada di sini, ini bermakna tidak ada tindak balas untuk ujian itu. Sekiranya peranti tidak bertindak balas sama sekali, anda akan melihat tiga tanda bintang, dan tidak ada nama atau alamat IP peranti.

Mari kaji apa yang kita ada di bawah:

  • Hop 1: Port panggilan pertama (tidak ada yang dimaksudkan) adalah DrayTek Vigor Router di rangkaian tempatan. Ini adalah bagaimana paket UDP kami meninggalkan rangkaian tempatan dan masuk ke internet.
  • Hop 2: Peranti ini tidak bertindak balas. Mungkin ia dikonfigurasi untuk tidak menghantar paket ICMP. Atau, mungkin ia bertindak balas tetapi terlalu perlahan, jadi  traceroutetamat masa.
  • Hop 3: Peranti bertindak balas, tetapi kami tidak mendapat namanya, hanya alamat IP. Perhatikan ada tanda bintang di baris ini, yang bermaksud kami tidak mendapat respons terhadap ketiga permintaan tersebut. Ini dapat menunjukkan kehilangan paket.
  • Hops 4 dan 5: Lebih banyak hop tanpa nama.
  • Hop 6: Terdapat banyak teks di sini kerana peranti jauh yang berbeza menangani setiap tiga permintaan UDP kami. Nama (agak panjang) dan alamat IP untuk setiap peranti dicetak. Ini boleh berlaku apabila anda menemui rangkaian "penduduk yang ramai" di mana terdapat banyak perkakasan untuk menangani trafik yang banyak. Hip ini adalah salah satu ISP terbesar di UK Oleh itu, adalah keajaiban kecil sekiranya sekeping perkakasan jarak jauh yang sama menangani tiga permintaan sambungan kami.
  • Hop 7: Inilah hop paket UDP kami yang dibuat ketika mereka meninggalkan rangkaian ISP.
  • Hop 8: Sekali lagi, kami mendapat alamat IP tetapi bukan nama peranti. Ketiga-tiga ujian kembali berjaya.
  • Hops 9 dan 10: Dua lagi hop tanpa nama.
  • Hop 11: Kami telah tiba di laman web Istana Blarney. Istana ini berada di Cork, Ireland, tetapi, menurut lokasi geolokasi IP, laman web tersebut berada di London.

Jadi, beg itu adalah beg campuran. Beberapa peranti bermain bola, ada yang memberi respons tetapi tidak memberitahu nama mereka, dan yang lain tetap tidak dikenali.

Namun, kami sampai ke destinasi, kami tahu jaraknya 11 hops, dan waktu perjalanan pergi balik adalah 13.773 dan 14.715 milisaat.

Menyembunyikan Nama Peranti

Seperti yang kita lihat, kadang-kadang termasuk nama peranti membawa ke paparan yang berantakan. Untuk mempermudah melihat data, anda boleh menggunakan pilihan -n(tanpa pemetaan).

Untuk melakukan ini dengan contoh kami, kami taipkan perkara berikut:

traceroute -n blarneycastle.ie

Ini menjadikannya lebih mudah untuk memilih sebilangan besar untuk waktu perjalanan pergi balik yang dapat menunjukkan kemacetan.

Hop 3 mula kelihatan sedikit suspek. Kali terakhir, ia hanya bertindak balas dua kali, dan kali ini, ia hanya sekali menjawab. Dalam senario ini, sudah tentu di luar kawalan kita.

Walau bagaimanapun, jika anda menyiasat rangkaian syarikat anda, ada baiknya menggali sedikit lebih mendalam ke simpul tersebut.

Menetapkan Nilai Waktu Akhir traceroute

Mungkin jika kita memanjangkan jangka masa tamat lalai (lima saat), kita akan mendapat lebih banyak respons. Untuk melakukan ini, kami akan menggunakan pilihan -w(tunggu masa) untuk mengubahnya menjadi tujuh saat. (Perhatikan ini adalah nombor floating-point.)

Kami menaip arahan berikut:

traceroute -w 7.0 blarneycastle.ie

Itu tidak membuat banyak perbezaan, jadi tanggapan mungkin akan habis. Kemungkinan hop tanpa nama sengaja dirahsiakan.

Menetapkan Bilangan Ujian

Secara lalai, traceroutemenghantar tiga paket UDP ke setiap hop. Kita boleh menggunakan pilihan -q(bilangan pertanyaan) untuk menyesuaikannya naik atau turun.

Untuk mempercepat tracerouteujian, kami taipkan yang berikut untuk mengurangkan bilangan paket probe UDP yang kami kirimkan kepada satu:

traceroute -q 1 blarneycastle.ie

Ini menghantar satu siasatan ke setiap hop.

Menetapkan Nilai TTL Permulaan

Kita boleh menetapkan nilai awal TTL ke sesuatu yang lain daripada satu, dan melangkau beberapa hop. Biasanya, nilai TTL ditetapkan satu untuk set ujian pertama, dua untuk set ujian seterusnya, dan seterusnya. Sekiranya kita menetapkannya menjadi lima, ujian pertama akan berusaha untuk mencapai hop lima dan melewati hop satu hingga empat.

Oleh kerana kami tahu laman web Blarney Castle adalah 11 hop dari komputer ini, kami menaip perkara berikut untuk terus ke Hop 11:

traceroute -f 11 blarneycastle.ie

Itu memberi kita laporan ringkas dan ringkas mengenai keadaan sambungan ke destinasi.

Bertimbang rasa

tracerouteadalah alat yang bagus untuk menyiasat perutean rangkaian, memeriksa kelajuan sambungan, atau mengenal pasti kesulitan. Windows juga mempunyai tracertarahan yang berfungsi sama.

Walau bagaimanapun, anda tidak mahu membombardir peranti yang tidak diketahui dengan paket UDP yang banyak, dan berhati-hati termasuk traceroutedalam skrip atau pekerjaan tanpa pengawasan.

Beban yang traceroutedapat dilakukan pada rangkaian mungkin memberi kesan buruk terhadap kinerjanya. Kecuali jika anda berada dalam keadaan seperti sekarang, anda mungkin mahu menggunakannya di luar waktu perniagaan biasa.