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
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.
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.
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.
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. |
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
traceroute example.com Klasický příkaz traceroute na těchto platformách obvykle používá UDP sondy, podle konkrétní implementace.
tracert example.com Ve Windows se používá název tracert a typicky se posílají ICMP echo requesty.
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.