Ukaz traceroute se uporablja v Linuxu za preslikavo potovanja, s katerim se paket podatkov od svojih virov do cilja. Ena uporaba za traceroute je določitev, kdaj pride do izgube podatkov v celotnem omrežju, kar bi lahko pomenilo, da je vozlišče nižje.
Ker vsak hmelj v zapisu odraža nov strežnik ali usmerjevalnik med izvirnim računalnikom in predvidenim ciljem, pregled rezultatov sledenja traceroute vam omogoča tudi prepoznavanje počasnih točk, ki lahko negativno vplivajo na omrežni promet.
Kako deluje
Vrednotenje specifične poti, ki jo sledi omrežnemu prometu (ali iskanje napačnega prehoda, ki zavrže vaše pakete), predstavlja več težav z odpravljanjem težav. Traceroute uporablja protokol IP čas za življenje polje, da zahteva odziv ICMP TIME_EXCEEDED iz vsakega prehoda vzdolž poti do ciljnega gostitelja.
Edini parameter, ki ga morate vključiti, ko izvršite ukaz traceroute, je ime gostitelja ali naslov IP cilja.
Sintaksa in stikala Traceroute

traceroute -DFInrvx -f first_ttl -g prehod -jaz iface -m max_ttl -p pristanišče -q nqueries -s src_addr -t tos -w Časovno obdobje -z pausemsecs gostitelj pakirano
Medtem ko je zgoraj navedeno, kako je treba ukaz ukaz traceroute izpisati, da bi lahko delali v ukazni vrstici, se zmogljivost ali izhod ukaza lahko spremeni z določitvijo ene ali več dodatnih stikal.
- -f: Nastavite začetni čas v živo, ki se uporablja v prvem paketu izhodne sonde.
- -F: Nastavite bit "ne delite".
- -d: Omogočite razhroščevanje ravni vtičnice.
- -g: Določite prehod prehodnega kanala vira (največ 8).
- -jaz: Navedite omrežni vmesnik za pridobitev izvornega IP-naslova za odhodne pakete sonde. To je običajno koristno samo za gostiteljico z več homo. (Glej-s zastava za drug način za to.)
- -JAZ: Uporabite ICMP ECHO namesto datagramov UDP.
- -m: Nastavite največji čas za življenje (največje število hmelja), ki se uporablja v paketih odhodne sonde. Privzeta vrednost je 30 hopsov (enaka privzeta vrednost za povezave TCP).
- -n: Print hop se naslavlja numerično in ne simbolično in številčno (pri vsakem prehodu, ki ga najdete na poti, shrani ime-imenskega naslova po imenu).
- -p: Nastavite osnovno številko vrat UDP, ki se uporablja v sondah (privzeto je 33434). Traceroute upa, da na pristaniščih UDP nič ne posluša bazo do osnove + delavnice - 1 na ciljnem gostitelju (tako bo vrnjeno sporočilo ICMP PORT_UNREACHABLE za prekinitev sledenja poti). Če nekaj posluša v pristanišču v privzetem obsegu, se ta možnost lahko uporabi za izbiro neuporabljenega obsega vrat.
- -r: Preusmerite običajne usmerjevalne tabele in pošljite neposredno na gostitelja v priloženem omrežju. Če gostitelj ni na neposredno priključenem omrežju, se vrne napaka. To možnost lahko uporabite za ping lokalnega gostitelja preko vmesnika, ki nima poti po njej (npr. Po tem, ko je vmesnik padel preusmerjen (8C)).
- -s: Uporabite naslednji naslov IP (ki je običajno podan kot številka IP, ne ime gostitelja) kot naslov vhodnih paketov za odhodne sonde. Na gostujočih gostiteljih (tiste z več kot enim naslovom IP) se lahko ta možnost uporabi za prisilo, da je naslov vira nekaj drugega kot naslov IP vmesnika, na katerega se pošlje sondni paket. Če IP-naslov ni eden od naslovov vmesnika tega računalnika, se vrne napaka in nič ni poslano. (Glej-jaz zastava za drug način za to.)
- -t: Nastavite vrsta storitve v paketi sonde do naslednje vrednosti (ničelna privzeta vrednost). Vrednost mora biti decimalno celo število v razponu od 0 do 255. To možnost lahko uporabite, če želite videti, ali različne vrste storitev povzročijo različne poti. (Če ne delate 4,4 milijarde evrov, je to morda akademsko, saj običajne omrežne storitve, kot sta telnet in ftp, ne omogočajo nadzora TOS-a.) Niso vse vrednosti TOS-a zakonite ali smiselne-poglejte specifikacije IP za definicije. Uporabne vrednosti so verjetno `-t 16 '(nizka zakasnitev) in'-t 8 '(visoka zmogljivost).
- -v: Verbose output. Sprejeti so bili paketi ICMP, ki niso TIME_EXCEEDED in UNREACHABLEs so navedeni.
- -w: Nastavite čas (v sekundah), da počakate na odgovor na sondo (privzeto 5 sekund).
- -x: Preklopi preverjanje IP. Običajno to preprečuje, da bi traceroute izračunali preverjanje IP. V nekaterih primerih lahko operacijski sistem prepiše dele odhajajočega paketa, ne pa ponovno izračunava kontrolne vsote; zato je v nekaterih primerih privzeto izračunavanje kontrolnih vsot in uporaba-x povzroča njihovo izračunavanje. Upoštevajte, da se pri zadnjem hmelju pri uporabi sond ICMP ECHO običajno zahtevajo kontrolne-JAZ), zato jih vedno izračunamo pri uporabi ICMP.
- -z: Nastavite čas (v milisekundah) za premor med sondami (privzeto 0). Nekateri sistemi, kot so Solaris in usmerjevalniki podjetja Cisco, določajo omejitve ICMP sporočil. Dobra vrednost za uporabo s tem je 500 (npr. 1/2 sekunde).
Razlaga rezultatov
Traceroute opisuje pot, ki jo IP-paket sledi internetnemu gostitelju, tako da sproži pakete sonde UDP z majhnim TTL (čas za življenje), nato pa posluša odgovor ICMP-ja "presegel čas" prek vrat. Sonde začnemo s TTL enim in povečamo z enim, dokler ne pridemo do ICMP "pristanišča nedosegljivega" (kar pomeni, da je paket prispel na cilj) ali zadel največjo vrednost poskusov, ki je privzeta za 30 hmelja in jih je mogoče spremeniti z na-m zastava.
Ko se izvede traceroute, v vsaki nastavitvi TTL pošlje tri sonde, nato pa na konzolo natisne vrstico, ki prikazuje TTL, naslov prehoda in čas zaokroževanja vsake sonde. Če odgovori na sondo prihajajo iz različnih prehodov, se odziva naslov vsakega odziva sistema. Če ni odgovora v pet-sekundnem časovnem intervalu (spremenjen z-w flag), je za to sondo natisnjena zvezdica.
Da bi namesto ciljnega gostitelja preobremenili obdelavo paketa sonde UDP, je ciljna vrata nastavljena na vrednost, za katero ta naprava verjetno ne bo uporabila. Če omrežje ali storitev na ciljnem mestu uporablja ta vrata, spremenite vrednost z uporabo-p zastava.
Uporaba in proizvodnja vzorca bo vrnila rezultate, podobne temu primeru:
yak 71% traceroute nis.nsf.net. traceroute na nis.nsf.net (35.1.1.48), 30 hops max, 38 bajtnih paketov 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 -serif22.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
Upoštevajte, da sta druga in tretja vrstica enaka. Ta rezultat se nanaša na buggy jedro na drugem sistemu hmelja-lbl-csam.arpa-ki posreduje pakete z ničelnim TTL (napaka v porazdeljeni različici 4.3 BSD). Morate uganiti, kakšno pot paketov poteka čez državo, ker NSFNet (129.140) ne priskrbi prevodi naslova po imenu za svoje NSS.
Bolj zanimiv primer je:
yak 72% traceroute allspice.lcs.mit.edu. traceroute do allspice.lcs.mit.edu (18.26.0.115), 30 hops 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
Upoštevajte, da prehodi na 12, 14, 15, 16 in 17 oddaljenih hmelja ne pošiljajo ICMP "časovno preseženih" sporočil ali jih pošiljajo s TTL premajhnim, da bi prišli do nas. V linijah 14 do 17 je nameščena koda MIT C Gateway, ki ne pošilja sporočil »čas presežena«.
Tihi prehod 12 v zgornjem primeru je morda posledica napake v 4. 23 omrežna koda BSD in njegovi izpeljani izdelki: stroji, ki delujejo s kodo 4.3 in prej, pošljejo sporočilo brez dostopa z uporabo katere koli TTL ostane v izvirnem datagramu. Ker je za prehoda preostali TTL nič, ICMP "čas presežen" je zagotovljen, da nam ne bo uspelo. Obnašanje te napake je nekoliko zanimivo, če se pojavi na ciljnem sistemu:
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 gospa ! 39 ms! 39 ms!
Upoštevajte, da je 12 "prehodov" (13 je končni cilj), zadnja polovica pa manjka. Kaj se res dogaja je, da je strežnik imenovan počivaj v miru (Sun-3, ki teče Sun OS 3.5) uporablja TTL iz našega prihajajočega datagrama kot TTL v odgovoru ICMP. Torej, odgovor bo čas na poti povratka (brez obvestila, poslanega nikomur, odkar se ICMP ne pošiljajo za ICMP), dokler ne sondiramo s TTL, ki je vsaj dvakratna od dolžine poti - z drugimi besedami, rip je res samo sedem hmelj proč.
Odgovor, ki se vrne s TTL od 1, je znak, da ta težava obstaja. Traceroute natisne "!" po času, če je TTL manjši ali enak 1. Ker prodajalci pošiljajo veliko zastarele programske opreme DEC (Ultrix, Sun 3.x) ali nestandardne programske opreme (HPUX), pričakujte, da boste to težavo videli pogosto in pazite, ciljne gostitelje svojih sond.
Drugi možni komentarji po času soH, ! N, aliP! (gostitelj, omrežje ali protokol nedosegljiv),! S (izvorna pot ni uspela),! F- (potrebna je fragmentacija - prikaže se vrednost RFC1191 Path MTU Discovery),X (komunikacija je administrativno prepovedana),V (kršitev prednosti gostitelja),C (ućinkovitost prednosti), ali! (ICMP nedosegljiva koda). Te kode so določene z RFC1812, ki nadomešča RFC1716. Če bodo skoraj vse sonde imele nekakšnega nedosegljivega gostitelja, se bo traceroute odrekel in zapustil.
Ta program je namenjen uporabi pri testiranju, merjenju in upravljanju omrežja. Uporabiti bi ga bilo treba predvsem za ročno odpravo napak. Zaradi obremenitve, ki bi jo lahko nalagal v omrežju, ni smiselno uporabljati traceroute med običajnimi operacijami ali avtomatskimi skripti.










