Traceroute - príkaz Linux - príkaz Unix

traceroute - vytlačiť pakety trasy do sieťového hostiteľa

synopse

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g brána ]

[ -i iface ] [ -m max_ttl] [ -p port ]

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

[ -w čakacia doba ] [ -z pausemsecs ]

hostiteľ [ packetlen ]

popis

Internet je veľká a zložitá agregácia sieťového hardvéru, prepojená bránami. Sledovanie paketov trasy nasleduje (alebo nájdenie nesprávnej brány, ktorá vyradí vaše pakety) môže byť ťažké. Traceroute využíva IP protokol `time to live 'pole a pokúša sa vyvolať ICMP TIME_EXCEEDED odpoveď z každej brány pozdĺž cesty k nejakému hostiteľovi.

Jediným povinným parametrom je názov hostiteľa alebo číslo IP . Predvolená dĺžka datagramu sondy je 40 bajtov , toto sa však môže zvýšiť zadaním dĺžky paketu (v bajtoch) po názve cieľového hostiteľa.

Ďalšie možnosti sú:

-f

Nastavte počiatočný čas potrebný na používanie v prvom odchádzajúcom sondovom pakte.

-F

Nastavte bit "nezlomiť".

-d

Povoliť ladenie úrovne soketu.

-g

Zadajte bránu voľnej zdrojovej trasy (maximum 8).

-i

Určte sieťové rozhranie na získanie zdrojovej adresy IP pre odchádzajúce sondové pakety. Toto je zvyčajne užitočné iba na hostiteľovi s viacerými hostiteľmi. (Pozri príznak -s pre iný spôsob, ako to urobiť.)

-I

Použite ECMP ECHO namiesto UDP datagramov.

-m

Nastavte maximálny časový úsek (maximálny počet chmeľu) použitý v paketoch odchádzajúcich sond. Predvolená hodnota je 30 chmeľov (rovnaké predvolené používanie pre pripojenia TCP).

-n

Tlačiť adresy chmeľu skôr ako symbolicky a číselne (ukladá vyhľadávanie názvov adresárov na meno pre každú bránu nachádzajúcu sa na ceste).

-p

Nastavte základné číslo portu UDP používané v sondách (štandardne je 33434). Traceroute dúfa, že na hostiteľovi cieľového hostiteľa nie je počúvanie na základňach UDP portov na základňu + nhops - 1 (tak sa vráti správa ICMP PORT_UNREACHABLE na ukončenie trasovania trasy). Ak sa na portu v predvolenom rozsahu počúva niečo, môžete túto voľbu použiť na výber nepoužívaného rozsahu portov.

-r

Vynechajte bežné smerovacie tabuľky a posielajte priamo hostiteľovi na pripojenú sieť. Ak hostiteľ nie je na priamo pripojenej sieti, vráti sa chyba. Táto možnosť môže byť použitá na ping lokálneho hostiteľa cez rozhranie, ktoré cez ne nemá žiadnu trasu (napr. Po prepustení rozhrania smerované (8C)).

-s

Použite nasledujúcu adresu IP (ktorá je zvyčajne uvedená ako IP adresa, nie názov hostiteľa) ako zdrojovú adresu v odchádzajúcich sondách. Na hostiteľoch s viacerými hostiteľmi (s viacerými IP adresami) sa táto možnosť môže použiť na to, aby sa zdrojová adresa stala niečím iným ako je IP adresa rozhrania, na ktoré je vyslaný paket sondy. Ak adresa IP nie je jedným z adries rozhrania tohto zariadenia, vráti sa chyba a nič sa neodošle. (Pozri príznak -i pre iný spôsob ako to urobiť.)

-t

Nastavte typ služby v sondových paktoch na nasledujúcu hodnotu (štandardná nula). Hodnota musí byť desatinné celé číslo v rozmedzí od 0 do 255. Táto možnosť sa môže použiť na zistenie, či rôzne typy služieb vedú k rôznym cestám. (Ak nepoužívate program 4.4bsd, môže to byť akademický, pretože bežné sieťové služby ako telnet a ftp nenechajú ovládať TOS). Nie všetky hodnoty TOS sú legálne alebo zmysluplné - pozrite si špecifikácie IP pre definície. Užitočné hodnoty sú pravdepodobne ` -t 16 '(nízke oneskorenie) a` -t 8 ' (vysoká priepustnosť).

-v

Podrobný výstup. Prijaté pakety ICMP iné ako TIME_EXCEEDED a UNREACHABLEs sú uvedené.

-w

Nastavte čas (v sekundách) na čakanie na odpoveď na sondu (predvolené 5 sekúnd).

-X

Prepnite kontrolné súčty ip. Zvyčajne to zabraňuje traceroute pri výpočte kontrolných súčtov ip. V niektorých prípadoch môže operačný systém prepísať časti odchádzajúceho paketu, ale prepočítať kontrolný súčet (v niektorých prípadoch je predvolené nevyčíslenie kontrolných súčtov a použitie -x spôsobuje ich výpočet). Všimnite si, že kontrolné súčety sú zvyčajne potrebné pre posledný hop, keď používate sondy ICMP ECHO ( -I ). Takže sú vždy vypočítané pri používaní protokolu ICMP.

-z

Nastavte čas (v milisekundách) na prerušenie medzi sondami (predvolené 0). Niektoré systémy, ako napríklad Solaris, a smerovače, ako napríklad Cisco, obmedzujú rýchlosť správy icmp. Dobrou hodnotou, ktorú možno použiť, je 500 (napr. 1/2 sekundy).

Tento program sa pokúša vysledovať trasu, ktorá by nasledovala IP paket na niektorom internetovom hostiteľovi spustením paketov UDP sondy s malým ttl (čas na prežitie) a potom počúvaním ICMP "prekročenej doby" odpovede z brány. Začneme sondami s ttl jednej a zvýši sa o jeden, kým nedostaneme ICMP "port nedosiahnuteľný" (čo znamená, že sme sa dostali do "hostiteľa") alebo hit max (čo je predvolené na 30 chmeľu a môže byť zmenené s -m flag). Tri sondy (zmena s príznakom -q ) sa posielajú pri každom nastavení ttl a vytlačí sa čiarka s údajmi ttl, adresou brány a dobou spätného odberu každej sondy. Ak odpoveď sondy pochádza z rôznych brán, vytlačí sa adresa každého odpovedajúceho systému. Ak nie je odpoveď v priebehu 5 sekúnd. timeout interval (zmenený s príznakom -w ), pre danú sondu sa vytlačí "*".

Nechceme, aby cieľový hostiteľ spracoval pakety UDP sond, takže cieľový port je nastavený na nepravdepodobnú hodnotu (ak niektorý clod na cieli používa túto hodnotu, dá sa zmeniť s príznakom -p ).

Príklad použitia a výstupu môže byť:

[yak 71]% traceroute nis.nsf.net. traceroute na nis.nsf.net (35.1.1.48), 30 chmeľových max, 38 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 (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

Všimnite si, že riadky 2 a 3 sú rovnaké. Je to spôsobené chybou jadra v systéme 2. hop - lbl-csam.arpa - ktorý posiela pakety s nulovým ttl (chyba v distribuovanej verzii 4.3BSD). Všimnite si, že musíte hádať, akú cestu balíky preberajú, pretože NSFNet (129.140) neposkytuje pre svoje NSS preklady z adresy na meno.

Zaujímavým príkladom je:

[yak 72]% traceroute allspice.lcs.mit.edu. (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1), 30 hopov 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

Všimnite si, že brány 12, 14, 15, 16 a 17 sa zhoršujú buď neposielajú správy ICMP o "prekročenej dobe", alebo ich posielajú s príliš malým ttl, aby sa dostali k nám. 14 - 17 používajú kód brány MIT C, ktorý neposiela "prekročený čas" s. Boh vie len to, čo sa deje s 12.

Tichá brána 12 vo vyššie uvedenom smere môže byť výsledkom chyby v 4. [23] BSD sieťovom kóde (a jeho derivátoch): 4.x (x <= 3) pošle nedosiahnuteľnú správu s použitím toho, čo zostane ttl v pôvodnom datagram. Pretože pre brány zostávajúci ttl je nula, ICMP "čas prekročený" je zaručený, že nám to nevráti. Chovanie tejto chyby je o niečo zaujímavejšie, keď sa objaví na cieľovom systéme:

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) pani ! 39 ms! 39 ms!

Všimnite si, že existuje 12 "brán" (13 je konečný cieľ) a presne posledná polovica z nich je "chýba". Čo sa naozaj deje, je to, že rip (Sun-3 beží Slnko OS3.5) používa ttl z nášho príchodu datagramu ako ttl vo svojej odpovedi ICMP. Takže odpoveď sa vyprší časom na spiatočnej ceste (bez upozornenia odoslaného nikomu, pretože ICMP nie sú posielané do ICMP), kým nebudeme sondy s ttl, ktorý je aspoň dvojnásobný ako dĺžka cesty. Teda, rip je v skutočnosti iba 7 chmeľov. Odpoveď, ktorá sa vráti s ttl 1, je kľúčom k tomuto problému. Traceroute vytlačí "!" po čase, ak je ttl <= 1. Pretože dodávatelia dodávajú veľa zastaralých (DEC ™ Ultrix, Sun 3.x) alebo neštandardných (HPUX) softvérov, očakávajú, že sa tento problém vyskytnú často a / hostiteľa vašich sond.

Ostatné možné anotácie po čase sú : H , N alebo P (hostiteľ, sieť alebo protokol nedosiahnuteľný), S (zdrojová cesta zlyhala),! F- (potrebná fragmentácia - zobrazí sa hodnota MTC Discovery cesty RFC1191) ! X (komunikácia administratívne zakázaná) ,! V (porušenie prioritného hostiteľa) ,! C (priorita cutoff effect), alebo ! (Nedostupný kód ICMP). Tieto sú definované RFC1812 (ktorý nahrádza RFC1716). Ak takmer všetky sondy vyústili do nejakého druhu nedosiahnuteľného, ​​traceroute sa vzdal a skončil.

Tento program je určený na použitie pri testovaní, meraní a správe siete. Mal by sa používať predovšetkým na ručnú izoláciu porúch. Z dôvodu zaťaženia, ktoré by mohol zaviesť do siete, je nerozumné používať traceroute počas bežných operácií alebo z automatizovaných skriptov.

Pozri tiež

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