Možete koristiti Linux komandu traceroute da identifikujete spore tačke na putu mrežnog paketa i rešite probleme sa sporim mrežnim vezama. Pokazaćemo vam kako to da uradite!
Kako Funkcioniše Traceroute
Razumevanje načina na koji traceroute funkcioniše olakšava interpretaciju rezultata. Što je putanja kompleksnija, a mrežni paket mora da prođe da bi stigao do svog odredišta, teže je otkriti gde dolazi do usporavanja.
Manja organizacija sa lokalnom mrežom (LAN) može biti relativno jednostavna. Verovatno će imati barem jedan server i ruter ili dva. Složenost raste sa širokom mrežom (WAN) koja komunicira između različitih lokacija ili putem interneta. Vaš mrežni paket tada prolazi (i se prosleđuje i rutira) kroz mnogo hardvera, kao što su ruteri i gejtveji.
Zaglavlja metapodataka na paketima podataka opisuju njihovu dužinu, odakle dolaze, gde idu, protokol koji koriste, itd. Specifikacija protokola definiše zaglavlje. Ako možete da identifikujete protokol, možete odrediti početak i kraj svakog polja u zaglavlju i pročitati metapodatke.
Traceroute koristi TCP/IP skup protokola i šalje User Datagram Protocol pakete. Zaglavlje sadrži Time To Live (TTL) polje koje sadrži osmobitnu celobrojnu vrednost. Uprkos sugestivnom imenu, predstavlja broj, a ne trajanje.
Paket putuje od svog izvora do odredišta preko rutera. Svaki put kada paket stigne do rutera, on smanjuje TTL brojač. Ako TTL vrednost ikada dostigne jedan, ruter koji prima paket smanjuje vrednost i primeti da je sada nula. Paket se zatim odbacuje i ne prosleđuje dalje jer mu je „isteklo vreme“.
Ruter šalje Internet Control Message Protocol (ICMP) Time Exceeded poruku nazad do izvora paketa, obaveštavajući ga da je paket istekao. Poruka Time Exceeded sadrži originalno zaglavlje i prvih 64 bita podataka originalnog paketa. Ovo je definisano na strani šest Zahteva za komentare 792.
Dakle, ako traceroute pošalje paket, ali zatim postavi TTL vrednost na jedan, paket će stići samo do prvog rutera pre nego što bude odbačen. Od rutera će primiti poruku o prekoračenju ICMP vremena i može snimiti vreme potrebno za povratno putovanje.
Zatim ponavlja vežbu sa TTL podešenim na 2, što neće uspeti nakon dva skoka. Traceroute povećava TTL na tri i pokušava ponovo. Ovaj proces se ponavlja sve dok se ne stigne do odredišta ili dok se ne testira maksimalan broj skokova (30, po default-u).
Neki Ruteri Ne Sarađuju Najbolje
Neki ruteri imaju greške. Pokušavaju da proslede pakete sa TTL od nula umesto da ih odbace i podignu ICMP poruku o prekoračenju vremena.
Prema Cisco, neki internet provajderi (ISP) ograničavaju broj ICMP poruka koje njihovi ruteri prenose.
Neki uređaji su konfigurisani da nikada ne šalju ICMP pakete. Ovo se često radi kako bi se osiguralo da uređaj ne može biti nesvesno prisiljen da učestvuje u distribuiranom napadu uskraćivanja usluge, kao što je Smurf napad.
Traceroute ima podrazumevano vremensko ograničenje za odgovore od pet sekundi. Ako ne dobije odgovor u roku od tih pet sekundi, pokušaj se odustaje. To znači da se odgovori veoma sporih rutera ignorišu.
Instaliranje Traceroute
Traceroute je već instaliran na Fedora 31, ali mora biti instaliran na Manjaro 18.1 i Ubuntu 18.04. Da biste instalirali traceroute na Manjaro, koristite sledeću komandu:
sudo pacman -Sy traceroute
Da biste instalirali traceroute na Ubuntu, koristite sledeću komandu:
sudo apt-get install traceroute
Korišćenje Traceroute
Kao što smo gore napisali, svrha traceroute-a je da izazove odgovor rutera pri svakom skoku od vašeg računara do odredišta. Neki možda neće želeti da otkrivaju nikakve podatke, dok će drugi verovatno deliti informacije bez zadrške.
Kao primer, pokrenućemo traceroute do veb-sajta Blarney Castle u Irskoj, domu poznatog Blarney Stone. Legenda kaže da ako poljubite Blarney Stone, bićete blagosloveni „darom govora“. Nadajmo se da su ruteri na koje naiđemo na putu dovoljno rečiti.
Ukucavamo sledeću komandu:
traceroute www.blarneycastle.ie
Prvi red nam daje sledeće informacije:
Odredište i njegova IP adresa.
Broj skokova koje će traceroute pokušati pre nego što odustane.
Veličina UDP paketa koje šaljemo.
Svi ostali redovi sadrže informacije o jednom od skokova. Međutim, pre nego što zaronimo u detalje, možemo videti da postoji 11 skokova između našeg računara i veb-sajta Blarney Castle. Skok 11 nam takođe govori da smo stigli na odredište.
Format svake linije skoka je sledeći:
Naziv uređaja ili, ako se uređaj ne identifikuje, IP adresa.
IP adresa.
Vreme koje je bilo potrebno za svaki od tri testa. Ako je ovde zvezdica, to znači da nije bilo odgovora za taj test. Ako uređaj uopšte ne reaguje, videćete tri zvezdice i nema imena uređaja ili IP adrese.
Hajde da pregledamo šta imamo u nastavku:
Skok 1: Prva stanica je DrayTek Vigor ruter na lokalnoj mreži. Tako naši UDP paketi napuštaju lokalnu mrežu i dolaze na internet.
Skok 2: Ovaj uređaj nije reagovao. Možda je konfigurisan da nikada ne šalje ICMP pakete. Ili, možda je reagovao, ali je bio prespor, pa je vremensko ograničenje traceroute isteklo.
Skok 3: Uređaj je odgovorio, ali nismo dobili njegovo ime, samo IP adresu. Imajte na umu da se u ovom redu nalazi zvezdica, što znači da nismo dobili odgovor na sva tri zahteva. Ovo može ukazivati na gubitak paketa.
Skokovi 4 i 5: Još anonimnih skokova.
Skok 6: Ovde ima mnogo teksta jer je svaki od naša tri UDP zahteva obradio drugi udaljeni uređaj. Odštampana su (prilično duga) imena i IP adrese za svaki uređaj. Ovo se može dogoditi kada naiđete na „bogato naseljenu“ mrežu na kojoj postoji mnogo hardvera za rukovanje velikim obimom saobraćaja. Ovaj skok je unutar jedne od najvećih mreža ISP-a u UK. Dakle, bilo bi malo čudo da isti komad udaljenog hardvera obrađuje naša tri zahteva za povezivanje.
Skok 7: Ovo je skok koji su naši UDP paketi napravili kada su napustili mrežu ISP-a.
Skok 8: Opet, dobijamo IP adresu, ali ne i naziv uređaja. Sva tri testa su se uspešno vratila.
Skokovi 9 i 10: Još dva anonimna skoka.
Skok 11: Stigli smo na veb-sajt Blarney Castle. Zamak je u Korku, Irska, ali, prema podacima za Geolokaciju IP adrese, veb-sajt se nalazi u Londonu.
Dakle, ovo je bila mešovita situacija. Neki uređaji su sarađivali, neki su se javili, ali nam nisu rekli svoja imena, a drugi su ostali potpuno anonimni.
Međutim, stigli smo do odredišta, znamo da je udaljeno 11 skokova, a vreme povratnog putovanja za putovanje je bilo 13,773 i 14,715 milisekundi.
Sakrivanje Imena Uređaja
Kao što smo videli, ponekad uključivanje naziva uređaja dovodi do pretrpanog ekrana. Da biste lakše videli podatke, možete koristiti opciju -n (bez mapiranja).
Da bismo to uradili sa našim primerom, ukucavamo sledeće:
traceroute -n blarneycastle.ie
Ovo olakšava odabir velikih brojeva za vreme povratnog putovanja koje bi moglo ukazivati na usko grlo.
Skok 3 počinje da izgleda sumnjivo. Prošli put je odgovorio samo dva puta, a ovog puta samo jednom. U ovom scenariju, to je naravno van naše kontrole.
Međutim, ako istražujete sopstvenu korporativnu mrežu, vredelo bi da kopate malo dublje u taj čvor.
Podešavanje Vremenskog Ograničenja Traceroute
Možda ćemo, ako produžimo podrazumevani vremenski period (pet sekundi), dobiti više odgovora. Da bismo to uradili, koristićemo opciju -w (vreme čekanja) da bismo je promenili na sedam sekundi. (Imajte na umu da je ovo broj sa pokretnim zarezom.)
Ukucavamo sledeću komandu:
traceroute -w 7.0 blarneycastle.ie
To nije napravilo veliku razliku, tako da odgovori verovatno ističu. Verovatno je da su anonimni skokovi namerno tajni.
Podešavanje Broja Testova
Podrazumevano, traceroute šalje tri UDP paketa svakom skoku. Možemo koristiti opciju -q (broj upita) da ovo podesimo naviše ili naniže.
Da bismo ubrzali test traceroute, ukucavamo sledeće da bismo smanjili broj UDP probnih paketa koje šaljemo na jedan:
traceroute -q 1 blarneycastle.ie
Ovo šalje jednu sondu na svaki skok.
Podešavanje Početne TTL Vrednosti
Možemo podesiti početnu vrednost TTL-a na nešto drugo osim jedan i preskočiti neke skokove. Obično se TTL vrednosti postavljaju na jedan za prvi skup testova, dve za sledeći set testova itd. Ako ga postavimo na pet, prvi test će pokušati da preskoči pet i preskoči skokove jedan do četiri.
Pošto znamo da je veb-sajt Blarney Castle udaljen 11 skokova od ovog računara, ukucavamo sledeće da bismo prešli direktno na skok 11:
traceroute -f 11 blarneycastle.ie
To nam daje lep, sažet izveštaj o stanju veze sa odredištem.
Budite Oprezni
Traceroute je odličan alat za istraživanje rutiranja mreže, proveru brzine veze ili identifikaciju uskih grla. Windows takođe ima komandu tracert koja funkcioniše slično.
Međutim, ne želite da bombardujete nepoznate uređaje bujicama UDP paketa i budite oprezni sa uključivanjem traceroute u skripte ili poslove bez nadzora.
Opterećenje koje traceroute može postaviti na mrežu može negativno uticati na njene performanse. Osim ako niste u situaciji da popravite probleme odmah, možda bi trebalo da ga koristite van uobičajenog radnog vremena.