Traceroute - příkaz Linux - příkaz Unixu

traceroute - vytiskněte pakety trasy do síťového hostitele

Synopse

traceroute [ -dFInrvx ] [ -f první_ttl ] [ -g brána ]

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

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

[ -w čekací doba ] [ -z pausemsecs ]

hostitel [ packetlen ]

Popis

Internet je rozsáhlá a složitá agregace síťového hardwaru, propojená bránou. Sledování trasy paketů, které následují (nebo nalezení špatné brány, která vylučuje vaše pakety) může být obtížné. Traceroute využívá pole "čas k životu" protokolu IP a pokouší se vyvolat odpověď ICMP TIME_EXCEEDED z každé brány podél cesty k nějakému hostiteli.

Jediným povinným parametrem je název hostitele nebo číslo IP . Výchozí délka datagramu sondy je 40 bajtů , ale může se zvýšit zadáním délky paketu (v bajtech) za názvem hostitele.

Další možnosti jsou:

-F

Nastavte počáteční časový úsek použitý v prvním odchozím sondě.

-F

Nastavte bit "nerozdělovat".

-d

Povolit ladění úrovně soketu.

-G

Určete bránu volné zdrojové cesty (maximálně 8).

-i

Určete síťové rozhraní pro získání zdrojové adresy IP pro odchozí datové pakety. To je obvykle užitečné pouze u hostitele s více hostiteli. (Viz příznak -s pro jiný způsob, jak to provést.)

-I

Použijte ICMP ECHO namísto UDP datagramu.

-m

Nastavte maximální časový limit (max. Počet chmele) použitý v odchozích sondách. Výchozí hodnota je 30 chmelů (stejné platí pro připojení TCP).

-n

Tiskněte adresy hopu číselně, nikoliv symbolicky a číselně (ukládá vyhledávací adresu jmenného adresáře na název každé brány nalezené na cestě).

-p

Nastavte základní číslo portu UDP použitého v sondách (výchozí hodnota je 33434). Traceroute doufá, že na portu UDP na základně + nhops - 1 v cílovém hostiteli není nic nasloucháno (takže zpráva o ICMP PORT_UNREACHABLE bude vrácena k ukončení trasování trasy). Pokud se na portu ve výchozím rozsahu naslouchá něco, lze tuto volbu použít k výběru nepoužívaného rozsahu portů.

-r

Obejdejte běžné směrovací tabulky a odesílejte přímo hostitelům na připojené síti. Pokud hostitel není na přímo připojené síti, vrátí se chyba. Tato volba může být použita pro ping lokálního hostitele přes rozhraní, které nemá cestu přes něj (např. Po propuštění rozhraní směrováním (8C)).

-s

Použijte následující adresu IP (která je obvykle zadána jako číslo IP, nikoliv název hostitele) jako zdrojová adresa v odchozích sondách. U hostitelů s více adresami (s více adresami IP) může být tato možnost použita k tomu, aby se zdrojová adresa stala jinou než je adresa IP rozhraní, na které je odeslán sondový paket. Pokud adresa IP není adresami rozhraní tohoto stroje, vrátí se chyba a nic není odesláno. (Viz příznak -i pro jiný způsob, jak to udělat.)

-t

Nastavte typ služby v sondě paketů na následující hodnotu (výchozí nula). Hodnota musí být desetinné celé číslo v rozmezí 0 až 255. Tato možnost může být použita k zjištění, zda různé typy služeb v různých cestách. (Pokud neběžíte 4.4bsd, může to být akademické, protože běžné síťové služby jako telnet a ftp nenechte ovládat TOS). Ne všechny hodnoty TOS jsou legální nebo smysluplné - viz specifikace IP specifikací. Užitečné hodnoty jsou pravděpodobně ` -t 16 '(nízké zpoždění) a` -t 8 ' (vysoká propustnost).

-proti

Podrobný výstup. Přijaté pakety ICMP jiné než TIME_EXCEEDED a UNREACHABLEs jsou uvedeny.

-w

Nastavte čas (v sekundách) počkat na odpověď na sondu (výchozí 5 sekund).

-X

Přepínejte kontrolní součet ip. Normálně to brání traceroute před výpočtem kontrolních součtů ip. V některých případech operační systém může přepsat části odchozího paketu, ale přepočítat kontrolní součet (takže v některých případech není výchozí výpočet kontrolních součtů a použití -x způsobuje jejich výpočet). Všimněte si, že kontrolní součet je obvykle požadován pro poslední hop při použití sond ICMP ECHO ( -I ). Takže jsou vždy vypočítávány při použití protokolu ICMP.

-z

Nastavte čas (v milisekundách) pro pauzu mezi sondami (výchozí 0). Některé systémy, jako například Solaris a směrovače, jako je Cisco, omezují rychlost zpráv ICMP. Dobrou hodnotou pro použití s ​​tímto je 500 (např. 1/2 sekundy).

Tento program se pokusí vysledovat trasu, kterou by paket IP následoval k některému hostiteli internetu spuštěním paketů UDP sondou s malým ttl (časem na živo) a posloucháním ICMP "překročení doby" odpovědi z brány. Začínáme sondami ttl jednoho a zvyšujeme o jeden, dokud nedosáhneme ICMP "port nedosažitelný" (což znamená, že jsme se dostali k "hostiteli") nebo hit max (což je výchozí 30 chmelů a může být změněno s parametrem -m vlajka). Tři sondy (změna s příznakem -q ) se odesílají při každém nastavení ttl a vytiskne se řádek se zprávou ttl, adresou brány a dobou zpáteční doby každé sondy. Pokud odpovědi sondy pocházejí z různých brán, vytiskne se adresa každého systému, který odpovídá. Není-li během 5 sekund žádná odpověď. časový interval (změněn s příznakem -w ), pro danou sondu se vytiskne "*".

Nechceme, aby cílový hostitel zpracoval pakety UDP sond, takže cílový port je nastaven na nepravděpodobnou hodnotu (pokud nějaký clod v cílovém umístění používá tuto hodnotu, může být změněn pomocí parametru -p ).

Ukázka použití a výstupu může být:

[yak 71]% traceroute nis.nsf.net. traceroute do nis.nsf.net (35.1.1.48), 30 chmelů max, 38 paketů 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 (129.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šimněte si, že řádky 2 a 3 jsou stejné. Je to kvůli chybějícímu jádru na systému 2. hop - lbl-csam.arpa - který předává pakety s nulovým ttl (chyba v distribuované verzi 4.3BSD). Všimněte si, že musíte odhadnout, jakou cestu pakety dělají cross-country, protože NSFNet (129.140) neposkytuje překlady adresy k jménům pro své NSSes.

Zajímavějším příkladem je:

[yak 72]% traceroute allspice.lcs.mit.edu. traceroute to allspice.lcs.mit.edu (18.26.0.115), 30 chmelů 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šimněte si, že brány 12, 14, 15, 16 a 17 se skrývá buď neposílají ICMP "překročené časové zprávy", nebo je posílají s příliš malým ttl, aby se k nám dostali. 14 - 17 jsou spuštěny kód brány MIT C, který neposílá čas překročen. Bůh ví jen to, co se děje s 12.

Tichá brána 12 ve výše uvedeném případě může být výsledkem chyby v 4. [23] BSD síťovém kódu (a jeho derivátech): 4.x (x <= 3) pošle nedosažitelnou zprávu s využitím toho, co zůstane ttl v originále datagram. Vzhledem k tomu, že pro brány je zbývající ttl nula, ICMP "čas překročen" je zaručeno, že nám to nevrátí. Chování této chyby je poněkud zajímavější, když se objeví na cílovém systému:

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 slečna ! 39 ms! 39 ms!

Všimněte si, že existuje 12 "bran" (13 je konečný cíl) a přesně poslední polovina je "chybí". Co se vlastně děje, je to, že rip (Sun-3 běžící Sun OS3.5) využívá ttl z našeho datagramu jako ttl ve své odpovědi ICMP. Odpověď se tedy vyprší na zpáteční cestě (aniž by bylo zasláno oznámení nikomu, jelikož protokol ICMP není zaslán ICMP), dokud nebudeme sondy s ttl, který je alespoň dvojnásobný. Tedy, rip je opravdu jen 7 chmele. Odpověď, která se vrací s hodnotou ttl 1, je známkou, že tento problém existuje. Traceroute vytiskne "!" po uplynutí doby, kdy je hodnota ttl <= 1. Protože dodavatelé dopravují hodně zastaralého (DECtrix Ultrix, Sun 3.x) nebo neštandardního (HPUX) software, očekávejte, že se tento problém bude častěji objevovat a / hostitele vašich sond.

Jiné možné poznámky za časem jsou : H , N nebo P (hostitel, síť nebo protokol nedostupný), S (zdrojová trasa se nezdařila),! F- (potřebná fragmentace - je zobrazena hodnota MTU Discovery trasy RFC1191) ! X (komunikace administrativně zakázána) ,! V (porušení priorit hostitele),! C (přednost cutoff effect), nebo ! (Nedostupný kód ICMP). Ty jsou definovány RFC1812 (který nahrazuje RFC1716). Pokud téměř všechny sondy vedou k nějakému nedosažitelnému, traceroute se vzdá a vystoupí.

Tento program je určen pro testování, měření a správu sítí. Měla by být použita především pro manuální izolaci poruch. Vzhledem k zatížení, které by mohlo v síti uložit, není rozumné používat traceroute během běžných operací nebo z automatizovaných skriptů.

Viz též

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