Traceroute: trasa, hopy a latence v praxi

Traceroute ukáže, přes které routery váš provoz míří do cíle a na kterém místě po cestě začíná růst latence. Když je web, API nebo server pomalý nebo nedostupný, pomůže rychle odlišit, jestli problém vzniká u vás, u providera, nebo až blízko cílové služby.

Co traceroute skutečně ukazuje

Traceroute vypisuje mezilehlé routery, kterým se běžně říká hopy, mezi vaším zařízením a cílovým hostitelem. U každého hopu měří, za jak dlouho přišla odpověď. Díky tomu lze rozpoznat, jestli zpoždění vzniká už v lokální síti, někde uvnitř ISP, nebo až blízko cílové služby.

Nejde jen o test typu funguje nebo nefunguje. Traceroute dává hrubou mapu trasy i orientační časové údaje. Právě proto se často používá spolu s pingem při diagnostice pomalých webů, nestabilních API nebo občasné ztráty paketů.

Kdy se traceroute používá

Web nebo API je pomalé

Traceroute pomůže ověřit, jestli zpomalení začíná už ve vaší síti, objevuje se u konkrétního upstream providera, nebo až těsně před cílovou službou.

Služba funguje odněkud, ale jinde ne

Porovnání traceroute z různých regionů může ukázat odlišné routing cesty, peering problém nebo výpadek u konkrétního providera.

Potřebujete oddělit lokální a externí problém

Když jsou první hopy už pomalé nebo ztrácí odpovědi, bývá problém blízko vašeho zařízení nebo ISP. Když začátek vypadá dobře a problém se objeví později, je příčina pravděpodobně mimo vaši síť.

Potřebujete podklad pro ticket

Výstup z traceroute dává konkrétní informaci o trase a časech, což je užitečné při hlášení problému poskytovateli internetu, hostingu nebo internímu síťovému týmu.

Jak traceroute funguje

01

Začíná s nízkým TTL

Traceroute pošle testovací paket s TTL, tedy time to live, nastaveným na 1. Každý router po cestě TTL sníží o jedničku.

02

Každý router odhalí jeden hop

Když TTL klesne na 0, router paket zahodí a obvykle vrátí ICMP odpověď time exceeded. Díky tomu traceroute zjistí, na který hop se paket dostal.

03

TTL se postupně zvyšuje

Traceroute celý postup opakuje s TTL 2, pak 3, 4 a dál. Tím postupně odhalí trasu hop po hopu, dokud paket nedorazí až k cíli.

04

Měří se čas odpovědi

U každého hopu se měří, za jak dlouho dorazí odpověď zpět. Právě tyto časy pomáhají najít skoky v latenci nebo neobvyklé zpoždění na trase.

Jak číst výstup traceroute

Typický řádek obsahuje číslo hopu, hostname nebo IP adresu a několik naměřených časů. Zjednodušený příklad:

traceroute to example.com (93.184.216.34), 30 hops max
 1  router.home (192.168.1.1)   1.1 ms   0.9 ms   1.0 ms
 2  isp-gateway (203.0.113.1)   8.4 ms   8.1 ms   8.5 ms
 3  * * *
 4  core1.provider.net           18.9 ms  19.2 ms  18.7 ms
 5  example.com (93.184.216.34) 24.3 ms  24.0 ms  24.1 ms

Číslo hopu

Číslo na začátku řádku říká, jak daleko paket došel. Hop 1 bývá váš lokální router, pak následují routery ISP, transit sítě a nakonec cíl.

Hostname a IP adresy

Traceroute může ukázat reverzní DNS jméno, IP adresu nebo obojí. Chybějící hostname je běžný a sám o sobě neznamená problém.

Tři naměřené časy

Většina nástrojů posílá na každý hop více sond, proto jsou často vidět tři časy. Menší rozdíly jsou normální, větší rozptyl může ukazovat na přetížení nebo nekonzistentní routing.

Poslední hop

Když cílový server odpoví, poslední řádek potvrzuje, že se sonda dostala až do cíle. Pokud se neobjeví, může cíl blokovat odpovědi nebo se trasa přerušuje dřív.

Co znamenají hvězdičky a timeouty

Řádek `* * *` znamená, že traceroute na danou sondu nedostal odpověď včas. Automaticky to neznamená, že provoz na tom hopu opravdu selhává.

Mnoho routerů omezuje odpovědi na traceroute, dává nižší prioritu ICMP nebo určitý typ sond úplně blokuje. Pokud další hopy odpovídají normálně, tichý hop bývá často jen diagnosticky neviditelný, ne skutečný problém.

Traceroute vs ping

Téma Traceroute Ping
Hlavní otázka Kudy provoz jde a kde po cestě začíná zpoždění nebo výpadek? Odpovídá cíl a jaká je celková doba odezvy?
Nejlepší použití Analýza routingu, troubleshooting po hopech, problémy u providerů. Rychlý test konektivity, ztrátovosti a základní latence.
Typ výstupu Více hopů s oddělenými časy pro každý krok po trase. Opakované odpovědi jen od jednoho cíle.
Související článek

Chcete nejdřív rychle ověřit dostupnost?

Ping je nejrychlejší první test pro základní reachability, round-trip latenci a packet loss, než přejdete k detailní analýze trasy pomocí traceroute.

Přečíst článek o pingu

Jak interpretovat typické situace

Latence vyskočí na 8. hopu a dál už zůstane vysoká

Pokud se časy výrazně zvednou na jednom hopu a zůstanou vysoké i na všech dalších, může právě tam nebo v síti za ním vznikat reálné zpoždění.

Jeden prostřední hop ukazuje hvězdičky, ale další hopy jsou v pořádku

Obvykle to znamená, že router neodpovídá na traceroute sondy, ne že by se tam nutně zastavil běžný provoz.

Neodpovídá jen poslední hop

Cílový server může blokovat ICMP nebo UDP odpovědi a přitom samotná aplikace může stále fungovat. Samotný traceroute tedy ještě nedokazuje, že je služba down.

Trasa se liší podle regionu

Různé zdrojové lokality mohou používat jiné providery nebo peering cesty. Proto může služba z jednoho místa vypadat zdravě a z jiného degradovaně.

Důležitá omezení

  • Traceroute ukazuje dopřednou cestu sond, ale návratový provoz může jít jinudy.
  • Routery často zacházejí s diagnostickým provozem jinak než s běžným aplikačním provozem.
  • Některé sítě filtrují ICMP, UDP nebo TCP sondy, což může skrýt část trasy nebo zkreslit výsledek.
  • Pomalá odpověď jednoho routeru neznamená vždy, že stejně pomalu přeposílá produkční provoz.

Jak traceroute spustit

Linux a macOS
traceroute example.com

Klasický příkaz traceroute na těchto platformách obvykle používá UDP sondy, podle konkrétní implementace.

Windows
tracert example.com

Ve Windows se používá název tracert a typicky se posílají ICMP echo requesty.

Pokročilejší varianta
mtr example.com

MTR kombinuje principy pingu a traceroute a hodí se, pokud chcete průběžně sledovat ztrátovost i latenci.

Časté dotazy

Traceroute pomůže při jedné diagnostice. Monitoring pomůže dřív, než si problému všimnou uživatelé.

Traceroute je skvělý pro ruční analýzu ve chvíli, kdy už něco nefunguje správně. nsmon to doplňuje průběžným měřením dostupnosti a latence z více lokalit, takže problémy odhalíte dříve a můžete porovnat chování mezi regiony.