Jak používat příkaz traceroute v systému Linux

Příkaz traceroute pro Linux můžete použít k odhalení pomalého úseku cesty síťového paketu a řešení problémů s pomalým síťovým připojením. Ukážeme vám, jak na to!

Jak traceroute funguje

Když oceníte, jak traceroute funguje, mnohem snadněji pochopíte výsledky. Čím složitější je trasa a síťový paket tím těžší je určit, kde by mohlo dojít ke zpomalení.

Malá organizace místní síť (LAN) může být relativně jednoduché. Pravděpodobně bude mít alespoň jeden server a router nebo dva. Složitost se zvyšuje na a rozlehlá síť (WAN), která komunikuje mezi různými místy nebo přes internet. Váš síťový paket pak narazí (a je předáván a směrován) s velkým množstvím hardwaru, jako jsou směrovače a brány.

Záhlaví metadat na datových paketech popisují jejich délku, odkud pochází, kam směřuje, protokol, který používá, a tak dále. Specifikace protokolu definuje hlavičku. Pokud dokážete identifikovat protokol, můžete určit začátek a konec každého pole v záhlaví a přečíst metadata.

traceroute používá TCP/IP sadu protokolů a odesílá Protokol uživatele Datagram pakety. Záhlaví obsahuje Čas žít (TTL), které obsahuje osmibitovou celočíselnou hodnotu. Navzdory tomu, co název napovídá, představuje počet, nikoli trvání.

Paket cestuje ze svého původu do cíle přes router. Pokaždé, když paket dorazí do routeru, sníží počítadlo TTL. Pokud hodnota TTL někdy dosáhne jedničky, router, který paket přijme, sníží hodnotu a všimne si, že je nyní nulová. Paket je poté zahozen a není předán do dalšího skoku své cesty, protože „vypršel časový limit“.

Router odešle Internet Message Control Protocol (ICMP) Čas překročen zprávu zpět do původu paketu, aby věděl, že paket vypršel. Zpráva Time Exceeded obsahuje původní hlavičku a prvních 64 bitů dat původního paketu. Toto je definováno na straně šest Žádost o komentáře 792.

Pokud tedy traceroute odešle paket, ale pak nastaví hodnotu TTL na jedničku, paket se dostane pouze k prvnímu směrovači, než bude zahozen. Od routeru obdrží zprávu o překročení času ICMP a může zaznamenat dobu, kterou trvala cesta tam a zpět.

  Jak nainstalovat GitCola na Linux

Poté zopakuje cvičení s TTL nastaveným na 2, které po dvou skocích selže. traceroute zvýší TTL na tři a zkusí to znovu. Tento proces se opakuje, dokud není dosaženo cíle nebo dokud není otestován maximální počet skoků (ve výchozím nastavení 30).

Některé routery nehrají dobře

Některé routery mají chyby. Snaží se přeposílat pakety s nulovým TTL místo toho, aby je zahodili a vyvolali zprávu o překročení času ICMP.

Podle Cisco, někteří poskytovatelé internetových služeb (ISP) rychlostně omezují počet zpráv ICMP přenášených jejich směrovači.

Některá zařízení jsou nakonfigurována tak, aby nikdy neodesílala pakety ICMP. Často je to proto, aby bylo zajištěno, že zařízení nemůže být nevědomky donuceno k účasti na a distribuované odmítnutí služby, jako šmoulí útok.

traceroute má výchozí časový limit pro odpovědi pět sekund. Pokud neobdrží odpověď do těchto pěti sekund, pokus se zruší. To znamená, že odpovědi z velmi pomalých směrovačů jsou ignorovány.

Instalace traceroute

traceroute byl již nainstalován na Fedoře 31, ale musí být nainstalován na Manjaro 18.1 a Ubuntu 18.04. Chcete-li nainstalovat traceroute na Manjaro, použijte následující příkaz:

sudo pacman -Sy traceroute

The

Chcete-li nainstalovat traceroute na Ubuntu, použijte následující příkaz:

sudo apt-get install traceroute

The

Pomocí traceroute

Jak jsme uvedli výše, účelem traceroute je vyvolat odpověď ze směrovače při každém přeskoku z vašeho počítače do cíle. Někteří mohou být upjatí a nic neprozrazovat, zatímco jiní pravděpodobně bez obav rozsypou fazole.

Jako příklad spustíme traceroute k Hrad Blarney webové stránky v Irsku, domov slavných Blarney Stone. Legenda praví, že pokud políbíte Blarneyův kámen, budete požehnáni „darem žvásty“. Doufejme, že routery, se kterými se cestou setkáme, jsou vhodně upovídané.

Zadáme následující příkaz:

traceroute www.blarneycastle.ie

The

První řádek nám poskytuje následující informace:

Cíl a jeho IP adresa.
Počet chmelů, které traceroute zkusí, než to vzdá.
Velikost paketů UDP, které odesíláme.

Všechny ostatní řádky obsahují informace o jednom z chmelů. Než se však ponoříme do podrobností, můžeme vidět, že mezi naším počítačem a webem Blarney Castle je 11 přeskoků. Hop 11 nám také říká, že jsme dorazili do cíle.

Formát každého skokového řádku je následující:

  Jak nainstalovat téma Vimix GTK na Linux

Název zařízení nebo, pokud se zařízení neidentifikuje, IP adresa.
IP adresa.
Čas, který trvala zpáteční cesta pro každý ze tří testů. Pokud je zde hvězdička, znamená to, že na tento test nebyla žádná odpověď. Pokud zařízení vůbec nereaguje, uvidíte tři hvězdičky a žádný název zařízení ani IP adresa.

Pojďme se podívat na to, co máme níže:

Hop 1: Prvním portem hovoru (bez slovní hříčky) je směrovač DrayTek Vigor v místní síti. Takto naše UDP pakety opouštějí místní síť a dostávají se na internet.
Hop 2: Toto zařízení nereagovalo. Možná byl nakonfigurován tak, aby nikdy neposílal pakety ICMP. Nebo možná odpověděl, ale byl příliš pomalý, takže traceroute vypršel.
Hop 3: Zařízení odpovědělo, ale nezískali jsme jeho jméno, pouze IP adresu. Všimněte si, že v tomto řádku je hvězdička, což znamená, že jsme nedostali odpověď na všechny tři požadavky. To může znamenat ztrátu paketů.
Chmel 4 a 5: Více anonymních chmelů.
Hop 6: Je zde mnoho textu, protože každý z našich tří požadavků UDP zpracovalo jiné vzdálené zařízení. Byly vytištěny (spíše dlouhé) názvy a IP adresy pro každé zařízení. To se může stát, když narazíte na „bohatě osídlenou“ síť, ve které je spousta hardwaru, který zvládne velké objemy provozu. Tento skok je v rámci jednoho z největších ISP ve Spojeném království, takže by byl malý zázrak, kdyby stejný kus vzdáleného hardwaru zvládl naše tři požadavky na připojení.
Hop 7: Toto je skok, který provedly naše UDP pakety, když opouštěly síť ISP.
Hop 8: Opět dostáváme IP adresu, ale ne název zařízení. Všechny tři testy se úspěšně vrátily.
Hops 9 a 10: Další dva anonymní skoky.
Hop 11: Dorazili jsme na web Blarney Castle. Hrad je v irském Corku, ale podle Geolokace IP adresy, web je v Londýně.

Takže to byl smíšený pytel. Některá zařízení hrála s míčem, některá reagovala, ale neřekla nám svá jména a jiná zůstala zcela anonymní.

Do cíle jsme se však dostali, víme, že je to 11 skoků daleko, a doba zpáteční cesty byla 13,773 a 14,715 milisekund.

Skrytí názvů zařízení

Jak jsme viděli, někdy uvedení názvů zařízení vede k nepřehlednému displeji. Chcete-li usnadnit zobrazení dat, můžete použít volbu -n (bez mapování).

  9 nejlepších aplikací pro domácí server Linux, které by si měl nainstalovat každý

Chcete-li to provést v našem příkladu, zadejte následující:

traceroute -n blarneycastle.ie

The

To usnadňuje výběr velkých čísel pro načasování zpáteční cesty, které by mohly naznačovat úzké místo.

Hop 3 začíná vypadat trochu podezřele. Minule odpověděla pouze dvakrát a tentokrát pouze jednou. V tomto scénáři je to samozřejmě mimo naši kontrolu.

Pokud byste však zkoumali svou podnikovou síť, stálo by za to ponořit se do tohoto uzlu trochu hlouběji.

Nastavení hodnoty časového limitu traceroute

Možná, že pokud prodloužíme výchozí časový limit (pět sekund), dostaneme více odpovědí. K tomu použijeme volbu -w (doba čekání), kterou ji změníme na sedm sekund. (Všimněte si, že se jedná o číslo s plovoucí desetinnou čárkou.)

Zadáme následující příkaz:

traceroute -w 7.0 blarneycastle.ie

The

To se moc nezměnilo, takže odpovědi pravděpodobně vyprší. Je pravděpodobné, že anonymní poskoci jsou záměrně tajní.

Nastavení počtu testů

Ve výchozím nastavení traceroute odesílá tři pakety UDP do každého skoku. Můžeme použít volbu -q (počet dotazů), abychom to upravili nahoru nebo dolů.

Abychom urychlili test traceroute, zadáme následující, abychom snížili počet paketů sondy UDP, které posíláme, na jeden:

traceroute -q 1 blarneycastle.ie

The

Tím se do každého skoku odešle jedna sonda.

Nastavení počáteční hodnoty TTL

Můžeme nastavit počáteční hodnotu TTL na něco jiného než jedna a přeskočit některé skoky. Obvykle jsou hodnoty TTL nastaveny na jednu pro první sadu testů, dvě pro další sadu testů a tak dále. Pokud ji nastavíme na pět, první test se pokusí dostat na skok pět a přeskočit skoky jedna až čtyři.

Protože víme, že web Blarney Castle je z tohoto počítače 11 skoků, zadáme následující, abychom přešli přímo na Hop 11:

traceroute -f 11 blarneycastle.ie

The

To nám dává pěknou, zhuštěnou zprávu o stavu spojení do cíle.

Buďte ohleduplní

traceroute je skvělý nástroj pro zkoumání směrování sítě, kontrolu rychlosti připojení nebo identifikaci úzkých míst. Windows má také příkaz tracert, který funguje podobně.

Nechcete však bombardovat neznámá zařízení torrenty paketů UDP a dávat si pozor na zahrnutí traceroute do skriptů nebo bezobslužných úloh.

Zatížení traceroute, které může být umístěno na síť, může nepříznivě ovlivnit její výkon. Pokud se nenacházíte v situaci, kdy je potřeba něco opravit, možná jej budete chtít používat mimo běžnou pracovní dobu.