Traceroute - ukaz Linux Linux - Unix

traceroute - natisnite pakete poti do omrežnega gostitelja

Povzetek

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g prehod ]

[ -i iface ] [ -m max_ttl] [ -p pristanišče ]

[ -q nqueries ] [ -s src_addr ] [ -t tos ]

[ -w waittime ] [ -z pausemsecs ]

gostitelj [ pakirani ]

Opis

Internet je velika in zapletena združitev omrežne strojne opreme, ki je povezana s prehodi. Spremljanje poti, po katerem sledijo paketi (ali iskanje napačnega prehoda, ki zavrže vaše pakete), je lahko težavno. Traceroute uporablja protokol IP "čas za življenje" in poskuša izvesti odziv ICMP TIME_EXCEEDED iz vsakega prehoda po poti do nekega gostitelja.

Edini obvezni parameter je ime ciljnega gostitelja ali številka IP . Privzeta podatkovna dolžina sonde je 40 bajtov , vendar se lahko to poveča z navedbo dolžine paketa (v bajtih) po imenu ciljnega gostitelja.

Druge možnosti so:

-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. (Za to naredite še drugo zastavo (glejte oznako -s ).

-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 namembnem gostitelju ne bo nobenega poslušanja na bazi vrat UDP, da bi osnovali + nhops-1 (zato 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 bil vmesnik padel z usmerjenim (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. (Za to lahko naredite drugo glejte oznako -i .)

-t

Vrsta vrste storitve v paketih sonde nastavite na naslednjo vrednost (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 uporabljate 4,4 milijarde funtov, je to morda akademsko, saj običajne omrežne storitve, kot sta telnet in ftp, ne omogočajo nadzora TOS-a). Vse vrednosti TOS niso zakonite ali smiselne - glej specifikacijo 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 ip kontrolne opcije. To običajno preprečuje traceroute pri izračunu ip kontrolnih vsot. 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, da ne izračuna kontrolnih vsot, in z uporabo -x jih povzroči računanje). Pri uporabi ICMP ECHO sond ( -I ) navadno potrebujete kontrolne opombe za zadnjo hmelj. Zato se vedno uporabljajo pri uporabi ICMP.

-z

Nastavite čas (v milisekundah) za premor med sondami (privzeto 0). Nekateri sistemi, kot so Solaris in usmerjevalniki, kot so Ciscos stopnja omejitev icmp sporočil. Dobra vrednost za uporabo s tem je 500 (npr. 1/2 sekunde).

Ta program poskuša izslediti pot, ki bi jo paket IP-ja sledil nekemu internetnemu gostitelju, tako da bi sprožil pakete sonde UDP z majhnim ttl (čas za življenje), nato pa poslušal, da je ICMP prekoračil odgovor s prehodom. Začenjamo sonde s ttl enim in povečamo z enim, dokler ne pridemo do ICMP "pristanišča nedosegljivega" (kar pomeni, da moramo "gostiti") ali zadeti max (ki privzame 30 hmelja in se lahko spremeni z -m zastava). V vsaki nastavitvi ttl se pošljejo tri sonde (sprememba z -q zastavico) in črta se vrstica, ki prikazuje ttl, naslov prehoda in čas zaokroževanja vsake sonde. Če sonde odgovori prihajajo iz različnih prehodov, bo naslov vsakega odziva sistema natisnjen. Če v 5 sekundah ni odgovora. časovni interval (spremenjen z zastavico -w ), se za to sondo natisne "*".

Ne želimo, da ciljni gostitelj obdeluje pakete sonde UDP, tako da je namembno pristanišče nastavljeno na malo verjetno vrednost (če katera koli tarča na destinaciji uporablja to vrednost, jo lahko spremenite z zastavico -p ).

Uporaba in proizvodnja vzorca sta lahko:

[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 vrstici 2 in 3 enaki. To je posledica hrapavega jedra na 2. hmeljnem sistemu - lbl-csam.arpa - ki usmerja pakete z ničlo ttl (napaka v porazdeljeni različici 4.3BSD). Upoštevajte, da 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 12, 14, 15, 16 in 17 oddaljeni oddaljeni niti ne pošiljajo sporočil ICMP "čas preseženi" ali jih pošljejo s ttl premajhnim, da bi nas dosegli. 14 - 17 izvajajo kodo MIT C Gateway, ki ne pošlje "preseženega časa" s. Bog ve, kaj se dogaja z 12.

Tihi prehod 12 v zgornjem primeru je lahko posledica napake v 4. [23] Omrežna koda BSD (in njegovi izvedeni elementi): 4.x (x <= 3) pošlje sporočilo, ki ga ni mogoče doseči, ne glede na to, ali ostane v originalu datagram. Ker je za prehode 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 obstaja 12 "prehodov" (13 je končni cilj) in natančno zadnja polovica jih "manjka". Kar se res dogaja, je, da Rip (Sun Sun 3 OS Sun OS3.5) uporablja ttl iz prihajajočega datagrama kot ttl v odgovoru ICMP. Torej, odgovor bo čas na povratni poti (brez obvestila, ki se pošlje nikomur, odkar se ICMP ne pošiljajo za ICMP), dokler ne sondiramo s ttl, ki je vsaj dvakratna od dolžine poti. Torej, rip je res samo 7 hmelja stran. Odgovor, ki se vrne s ttl od 1, je znak, da ta težava obstaja. Traceroute natisne "!" po času, če je ttl <= 1. Ker prodajalci pošiljajo veliko zastarelih (DEC's Ultrix, Sun 3.x) ali nestandardne programske opreme (HPUX), pričakujte, da bodo te težave pogosto videli in / ali poskrbeli za to, gostitelj sond.

Druge možne opombe po času so ! H ,! N ali ! P (gostiteljica, omrežje ali protokol nedosegljiv),! S (izvorna pot ni uspela),! F- (potrebna je fragmentacija - prikaže se vrednost RTC1191 Path MTU Discovery), ! X (komunikacija je administrativno prepovedana) ,! V (kršitev prednostnega gostitelja) ,! C (ućinkovitost primarnega pretoka) ali ! (ICMP nedosegljiva koda). Ti so opredeljeni z RFC1812 (ki nadomešča RFC1716). Če bi skoraj vse sonde povzročilo nekakšno nedosegljivo, 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 naložili v omrežju, je nesmiselno uporabljati traceroute med običajnimi operacijami ali avtomatskimi skripti.

Poglej tudi

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