V tomto článku probereme vše, co chcete vědět o linuxovém příkazu traceroute a jak jej používat ve své každodenní praxi.
Traceroute je obslužný program příkazového řádku, který vytiskne cestu (nebo skoky), kterou paket potřebuje k dosažení jiného hostitele. Používá se pro diagnostiku sítě. Jak již název napovídá, hlavním účelem traceroute je sledovat cestu IP od zdroje k cíli v rámci sítě IP, což umožňuje správcům lépe řešit problémy s konektivitou. Traceroute vám nejen sdělí, zda máte konektivitu, ale také vám ukáže, kde přesně je problém a proč k tomu dochází.
Traceroute vám poskytuje úplné informace o cestě, po které se vaše data dostanou do cíle. Pokud je například váš počítač (zdroj) v Los Angeles v Kalifornii a server v New Yorku (cíl) traceroute identifikuje úplnou cestu, každý skok (počítače, routery nebo jakákoli zařízení, která přicházejí mezi zdrojem a cílem) na cestě a čas, který trvá přechod a návrat.
Na internetu jsou však zprávy Traceroute často blokovány směrovači v různých autonomních systémech, takže Traceroute je v některých případech nepřesný.
Jak Traceroute funguje
Traceroute nejčastěji používá echo pakety ICMP (Internet Control Message Protocol) s proměnnými hodnotami TTL (Time to Live). Aby byla zaručena přesnost, každý skok je dotazován několikrát a je vypočtena doba odezvy každého skoku.
Příkaz traceroute pro Linux funguje tak, že manipuluje s TTL. Účelem TTL je omezit dobu, po kterou budou data žít v síti IP. Každému paketu dat, který je odeslán, je přiřazena hodnota TTL. Když datový paket dosáhne skoku na cestě k cílovému zařízení, hodnota TTL se sníží o 1.
Když router sníží hodnotu počtu skoků paketu na nulu, odešle chybovou zprávu ICMP „překročení času“ zpět na zdrojovou IP adresu v paketu, jinak paket přepošle dál.
Nástroj traceroute odesílá pakety na cílovou IP adresu s TTL nastaveným na 1, takže první směrovač, kterého pakety dosáhnou, odešle zpět chybu „překročení času“. Když se chyba vrátí, nástroj traceroute zaznamená identitu prvního směrovače a dobu oběhu, zvýší TTL a odešle nové pakety, přičemž tento proces opakuje, dokud buď poslední paket nedosáhne cílové IP nebo nebudou zahozeny dvě sady paketů.
Jak používat příkaz traceroute v systému Linux
Začněme jednoduchým příkladem. Spusťte traceroute
příkaz pro www.google.com
doména.
traceroute www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.210 ms 0.268 ms 0.214 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.311 ms 0.317 ms 0.354 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 1.260 ms 2.320 ms 2.304 ms
4 as15169.dal33.ip4.gtt.net (199.229.230.118) 3.595 ms 2.464 ms 1.365 ms
5 108.170.240.129 (108.170.240.129) 2.636 ms 108.170.240.193 (108.170.240.193) 1.501 ms 108.170.240.129 (108.170.240.129) 2.620 ms
6 142.251.60.143 (142.251.60.143) 1.480 ms 1.499 ms 142.251.60.145 (142.251.60.145) 1.473 ms
7 dfw25s44-in-f4.1e100.net (142.251.33.4) 1.425 ms 1.622 ms 1.587 ms
První řádek nám poskytuje následující informace:
- Cíl (www.google.com) a jeho IP adresa (142.251.33.4).
- Počet skoků
traceroute
zkusí, než to vzdá (30 skoků). - Velikost paketů UDP, které odesíláme (60 bajtů).
Zbytek výstupu zobrazuje všechny směrovače, kterými prošly naše pakety. Na každém z řádků najdeme informace o jménu a IP adrese hostitele. Další tři hodnoty představují doby zpáteční cesty pro daný router.
V našem případě pro připojení k www.google.com musí požadavek projít sedmi různými routery. Ve výstupu vidíme, že poslední (142.251.33.4) je cílovým hostitelem pro www.google .com.
Skrytí názvů zařízení
Jak jsme viděli, někdy uvedení názvů zařízení vede k nepřehlednému displeji. Pro snazší zobrazení dat můžete v Linuxu použít příkaz traceroute s -n
možnost.
traceroute -n www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 0.142 ms 0.224 ms 0.207 ms
2 69.174.3.1 0.306 ms 0.303 ms 0.323 ms
3 213.254.230.210 11.812 ms 11.784 ms 11.771 ms
4 199.229.230.118 6.516 ms 1.851 ms 4.416 ms
5 108.170.240.129 2.944 ms 108.170.240.193 2.009 ms 108.170.240.129 2.920 ms
6 142.251.60.143 1.928 ms 1.928 ms 1.933 ms
7 142.251.33.4 1.937 ms 1.922 ms 1.926 ms
Nastavení maximálního počtu skoků pomocí příkazu traceroute pro Linux
Přidáním dalšího -m
parametr můžeme zadat maximální počet skoků traceroute
bude zkoumat:
traceroute -m 3 www.google.com
traceroute to www.google.com (142.251.33.4), 3 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.170 ms 0.187 ms 0.172 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.299 ms 0.300 ms 0.301 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 2.727 ms 2.753 ms 2.736 ms
Nyní bude výstup sestávat pouze z prvních tří routerů. Výchozí hodnota pro -m
parametr je 30. Proto jej zvyšte v případech, kdy počet skoků může přesáhnout 30.
Nastavení počtu paketů sondy na skok
Ve výchozím nastavení traceroute
odešle tři UDP pakety do každého skoku. Můžeme použít -q
možnost upravit toto nahoru nebo dolů.
Pro urychlení traceroute
zadáme následující, abychom snížili počet paketů sondy UDP na jeden:
traceroute -q 1 www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.160 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.272 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 2.190 ms
4 as15169.dal33.ip4.gtt.net (199.229.230.118) 1.853 ms
5 108.170.240.129 (108.170.240.129) 3.063 ms
6 142.251.60.145 (142.251.60.145) 1.993 ms
7 dfw25s44-in-f4.1e100.net (142.251.33.4) 1.952 ms
Závěr
Linuxový traceroute
Command je skvělý nástroj pro zkoumání směrování sítě, kontrolu rychlosti připojení nebo identifikaci úzkých míst. Je k dispozici ve všech populárních distribucích Linuxu. Při používání tohoto nástroje budete často používat metody popsané v tomto článku.
Další informace o traceroute
příkaz v systému Linux, podívejte se na stránku jeho příručky.