logo

Linuxový príkaz traceroute

Úvod do traceroute

Príkaz traceroute pre Linux je nástroj na riešenie problémov so sieťou, ktorý nám pomáha určiť počet skokov a paketov, ktoré cestujú cestu potrebnú na dosiahnutie cieľa. Používa sa na zobrazenie spôsobu prenosu údajov z lokálneho počítača na vzdialený počítač. Načítanie webovej stránky je jedným z bežných príkladov traceroute. Načítaním webovej stránky sa údaje prenášajú cez sieť a smerovače. Traceroute môže zobraziť trasy, IP adresy a názvy hostiteľov smerovačov v sieti. Môže to byť užitočné pri diagnostike problémov so sieťou.

Vo výpočtovej technike sú tracert a traceroute príkazy na diagnostiku počítačovej siete na zobrazenie možných trás a meranie oneskorení prenosu paketov cez sieť IP. História trasy sa zaznamenáva ako spiatočný čas paketu zo všetkých po sebe nasledujúcich hostiteľov na trase; súčet priemerného času v každom skoku je celkový čas strávený vytvorením spojenia.

Príkaz traceroute pokračuje, pokiaľ sa každý odoslaný balík nestratí viac ako dvakrát; spojenie sa stratí a cesta sa nedá vyhodnotiť. Na druhej strane príkaz ping meria iba posledné časy obojsmernej cesty cez cieľový bod. Niekedy má nástroj podobný názov, tracert6 a traceroute6, pre IPv6.

Syntax:

 traceroute [OPTION...] HOST 

Možnosti:

Príkaz traceroute podporuje nasledujúce možnosti príkazového riadka:

-f, --first-hop=NUM: Používa sa na nastavenie počiatočnej vzdialenosti skoku.

-g, --gateways=BRÁNKY: Používa sa na zobrazenie zoznamu brán pre voľné smerovanie zdroja.

-Ja, --icmp: Je špecifikované použitie ICMP ECHO ako sondy.

-m, --max-hop=NUM: Používa sa na nastavenie maximálneho počtu skokov, predvolená hodnota je 64.

-M, --type=METÓDA: Špecifikuje METÓDU (icmp alebo udp) pre operácie traceroute, predvolená metóda je udp.

-p, --port=PORT: Je definovaný na použitie cieľového portu PORT, predvolený PORT je 33434.

-q, --tries=NUM: Používa sa na preposielanie NUM testovacích paketov na skok, predvolená hodnota je 3.

--resolve-hostnames: Používa sa na rozlíšenie názvov hostiteľov.

-t, --tos=NUM: Používa sa na nastavenie typu služby (TOS) na NUM.

-w, --wait=NUM: Používa sa na čakanie v sekundách na odpoveď, predvolená hodnota je 3.

-?, --Pomoc: Používa sa na zobrazenie príručky pomocníka, ktorá obsahuje stručný popis podporovaných možností príkazového riadka a použitia.

--použitie: Zobrazí krátku správu o používaní.

-V, --verzia: Používa sa na zobrazenie informácií o verzii traceroute.

Pozrime sa na rýchly index témy:

  • Nainštalujte príkaz traceroute
  • Ako to funguje?
  • Sledujte trasu pomocou Ipv6
  • Sledujte trasu pomocou Ipv4
  • Zakázať mapovanie adresy IP a názvu hostiteľa
  • Nastavte počet dopytov na skok
  • Nastavte čas čakania na odozvu
  • Zadajte rozhranie, ktoré sa má použiť
  • Nastavte počiatočnú hodnotu TTL
  • Nastavte maximálny počet skokov
  • Získanie pomoci

Implementácia traceroute

Príkaz traceroute je dostupný na niekoľkých moderných operačných systémoch. V systémoch podobných Unixu, ako sú Linux, macOS a FreeBSD, je k dispozícii ako nástroj pre príkazový riadok. Traceroute je tiež graficky prístupný v rámci balíka Network Utilities v systéme macOS; tieto nástroje boli zastarané od vydania macOS Big Sur.

ReactOS a Microsoft Windows ponúkajú program s názvom tracert, ktorý implementuje podobnú funkciu sledovania trasy. Operačné systémy založené na Windows NT tiež ponúkajú PathPing, ktorý môže kombinovať funkčnosť príkazu ping s tracert. Vydanie ReactOS bolo integrované spoločnosťou Get Murphy a je licencované pod licenciou GPL.

V predvolenom nastavení odosiela traceroute poradie paketov UDP (User Datagram Protocol) na operačných systémoch podobných Unixu s číslami cieľových portov v rozsahu od 33434 do 33534. Implementácie traceroute dodávané s macOS, DragonFly BSD, OpenBSD, NetBSD, FreeBSD a Linux majú možnosť využiť pakety ICMP Echo Request, ako sú TCP a UDP pomocou paketov ICMP alebo TCP SYN. V predvolenom nastavení tracert prenáša pakety ICMP Echo Request na Windows namiesto prenosov UDP paketov traceroute.

Použitie traceroute

Väčšina implementácií má aspoň nejaké možnosti na definovanie počtu dotazov na prenos na skok, čakacej doby na odpoveď, limitu skoku a použitého portu. Ak nevyvoláme traceroute so zadanými voľbami, zobrazí sa zoznam dostupných volieb, zatiaľ čo príkaz man traceroute predstavuje viac podrobností, ako sú príznaky chýb.

Pôvod traceroute

Manuálová stránka traceroute uvádza, že skutočný program traceroute bol špecifikovaný Van Jacobsonom v roku 1987 na základe odporúčania Steva Deeringa, s špecificky presvedčivými opravami a odporúčaniami od C. Philipa Wooda, Kena Adelmana a Tima Seavera. Mike Muuss, autor programu ping, uvádza, že traceroute bol špecifikovaný s podporou jadra ICMP, ktoré predtým zakódoval na aktiváciu surových ICMP soketov, zatiaľ čo pôvodne špecifikoval program ping.

Obmedzenia traceroute

Obmedzenia traceroute sú neslávne známe a mali by sa zvážiť pri používaní nástroja. Traceroute napríklad rozpoznáva cesty na úrovni rozhrania, ale nie na úrovni trasy. Ďalšie obmedzenia sa vyskytujú, keď smerovače nereagujú na kontrolu alebo keď smerovače obsahujú obmedzenie pre odpovede ICMP.

Traceroute môže predstavovať cestu, ktorá neexistuje pri existencii vyrovnávania dopravného zaťaženia. Na minimalizáciu tohto problému je k dispozícii modifikácia traceroute známa ako Paris-traceroute, ktorá spravuje identifikátor toku vyšetrenia tak, aby ignoroval vyvažovanie záťaže.

Nainštalujte príkaz traceroute

Traceroute nie je predvolená pomôcka programu Linux systém. Ak chcete použiť traceroute, musíme ho nainštalovať manuálne. Ak ho chcete nainštalovať, vykonajte jeden z nasledujúcich príkazov:

 sudo apt install inetutils-traceroute sudo apt install traceroute 

Vyššie uvedené príkazy nainštalujú nástroj traceroute do nášho systému. Po úspešnej inštalácii bude výstup vyzerať takto:

Linux traceroute

Ako to funguje?

Ak chcete sledovať trasu pripojeného sieťového hostiteľa, zadajte názov servera alebo IP adresu, ku ktorej sa chcete pripojiť. Ak chcete napríklad sledovať trasu servera „javatpoint.com“, vykonajte nasledujúci príkaz:

 traceroute javatpoint.com 

Vyššie uvedený príkaz zobrazí skoky, pakety a mnoho ďalších informácií o danej trase. Zvážte nasledujúci výstup:

Linux traceroute

Z vyššie uvedeného výstupu môžeme vidieť niekoľko vecí. pochopme každú časť výstupu:

  • Prvý riadok zobrazuje názov hostiteľa a IP adresu, ktorá sa má dosiahnuť, skoky, o ktoré sa pokúsi príkaz traceroute, a veľkosť paketov, ktoré sa majú odoslať.
  • Z druhého riadku každý riadok zobrazuje skok do cieľa. A názov hostiteľa, za ktorým nasleduje IP adresa hostiteľa, čas spiatočnej cesty. Čas spiatočnej cesty je súčet času, ktorý je potrebný na odoslanie signálu, a času potrebného na odpoveď hostiteľovi.
  • Štandardne odosiela tri pakety pre každého hostiteľa, takže sú uvedené tri časy odozvy.
  • Symbol '*' predstavuje stratu paketu. K strate paketov dochádza v dôsledku výpadku siete, vysokého preťaženia siete alebo možno, že firewall znižuje prevádzku. Pri veľkej strate paketu traceroute zobrazí chybu ako „cieľ nie je dosiahnutý“.

Sledujte trasu pomocou IPv6

Možnosť '6' sa používa na sledovanie trasy do hostiteľskej siete pomocou protokolu Ipv6. Zvážte nasledujúci príkaz:

 traceroute6 google.com 

Vyššie uvedený príkaz bude sledovať cestu na 'google.com' pomocou protokolu Ipv6. Zvážte nasledujúci výstup:

Linux traceroute

Sledujte trasu pomocou protokolu Ipv4

Voľba '4' sa používa na sledovanie trasy do hostiteľskej siete pomocou protokolu Ipv6. Zvážte nasledujúci príkaz:

 traceroute 4 google.com 

Vyššie uvedený príkaz bude sledovať cestu na 'google.com' pomocou protokolu Ipv6. Zvážte nasledujúci výstup:

Linux traceroute

Zakázať mapovanie adresy IP a názvu hostiteľa

Voľba 'n' sa používa na zakázanie mapovania IP adresy a názvu hostiteľa. Zvážte nasledujúci príkaz:

 traceroute n google.com 

Vyššie uvedený príkaz vytvorí výstup nasledovne:

Linux traceroute

Nastavte Počet dopytov na skok

Voľba '-q' sa používa na nastavenie počtu dopytov na skok. Zvážte nasledujúci príkaz:

 traceroute -q 2 google.com 

Vyššie uvedený príkaz vytvorí výstup nasledovne:

Linux traceroute

Nastavte čas čakania na odozvu

Voľba '-w' sa používa na nastavenie času čakania odpovede v traceroute. Určí čas čakania v sekundách na odozvu na sondu. Zvážte nasledujúci príkaz:

 traceroute -w 1 google.com 

Z vyššie uvedeného príkazu je čakacia doba odozvy 1 sekunda. Výstup bude produkovať nasledovne:

Linux traceroute

Zadajte rozhranie, ktoré sa má použiť

Voľba 'i' sa používa na nastavenie sieťového rozhrania, ktoré má traceroute používať. Ak nie je nastavený, nastaví rozhranie podľa smerovacej tabuľky. Zvážte nasledujúci príkaz:

 traceroute i wlp3s0b1 google.com 

Vyššie uvedený príkaz vytvorí výstup nasledovne:

Linux traceroute

Nastavte počiatočnú hodnotu TTL

Počiatočnú hodnotu TTL (time to live) môžeme nastaviť inú ako predvolenú hodnotu. Preskočí to nejaké poskoky. Zvyčajne je nastavený na jeden, dva, tri atď. pre príslušný súbor testov. Takže, ak to nastavíme na sedem, prvý test sa pokúsi o skok sedem a preskočí skoky z jedného na šesť. Zvážte nasledujúci príkaz:

 traceroute -f 7 google.com 

Vyššie uvedený príkaz prejde priamo na skok sedem. Zvážte nasledujúci výstup:

Linux traceroute

Nastavte maximálny počet skokov

Voľba '-m' sa používa na nastavenie maximálneho počtu skokov, aby paket dosiahol cieľ. Predvolená hodnota pre maximálny počet skokov je 30. Zvážte nasledujúci príkaz:

rolovanie myšou nefunguje
 traceroute -m 7 google.com 

Vyššie uvedený príkaz nastaví 7 maximálnych skokov, aby paket dosiahol cieľ. Zvážte nasledujúci výstup:

Linux traceroute

Získanie pomoci

Ak chcete zobraziť príručku pomocníka, ktorá obsahuje zhrnutie použitia a podporovaných možností, vykonajte nasledujúci príkaz:

 traceroute --help 

Vyššie uvedený príkaz zobrazí pomocníka. Výstup bude produkovať nasledovne:

Linux traceroute

K manuálnym stránkam sa môžeme dostať aj vykonaním príkazu man takto:

 man traceroute 

Vyššie uvedený príkaz zobrazí manuálovú stránku príkazu traceroute. Bude to vyzerať nasledovne:

Linux traceroute

Posúvaním stránky si prečítajte viac a stlačením klávesu 'q' ukončite manuálnu stránku.