Hledáte Traceroute na RHEL 8? Zkuste Tracepath
Diagnostika sítě je klíčová činnost každého administrátora sítě nebo systému. Zahrnuje detailní analýzu a řešení rozmanitých problémů, které se v síťovém provozu mohou objevit.
Schopnost sledovat trasu, kterou datový paket (IP paket) urazí mezi dvěma body v síti, poskytuje zkušeným odborníkům cenné informace pro identifikaci a řešení problémů.
Jedním z oblíbených a široce používaných nástrojů pro analýzu síťových cest a odstraňování závad je multiplatformní aplikace traceroute.
Zjednodušeně řečeno, traceroute zjišťuje cestu IP paketu mezi odesílatelem a příjemcem odesláním série testovacích paketů (nejčastěji ICMP ECHO nebo TCP SYN). Poté analyzuje ICMP odpovědi typu "time exceeded" (čas vypršel). TTL (Time To Live) těchto paketů je záměrně nastaveno na 1 a postupně se zvyšuje o 1, dokud není obdržena ICMP zpráva "port nedostupný", což signalizuje dosažení cílového hostitele nebo dosažení maximálního počtu povolených skoků (ve výchozím nastavení 30).
Ukázkový výstup z traceroute vypadá například takto:
$ traceroute google.com traceroute to google.com (172.217.169.14), 30 hops max, 60 byte packets 1 140.91.200.22 (140.91.200.22) 0.129 ms 140.91.200.19 (140.91.200.19) 0.151 ms 140.91.200.77 (140.91.200.77) 0.114 ms 2 linxbgp1.iwscloud.com (195.66.226.34) 0.735 ms 0.701 ms 1.024 ms 3 195.66.224.125 (195.66.224.125) 0.603 ms 0.591 ms 0.591 ms 4 108.170.246.129 (108.170.246.129) 0.583 ms 0.745 ms 0.714 ms 5 209.85.241.95 (209.85.241.95) 1.576 ms 209.85.241.93 (209.85.241.93) 1.545 ms 209.85.241.95 (209.85.241.95) 1.520 ms 6 lhr25s26-in-f14.1e100.net (172.217.169.14) 0.584 ms 0.547 ms 0.507 ms $
Základní výstup traceroute, jak je vidět výše, poskytuje informace o TTL (Time To Live) nebo o době odezvy pro tři odeslané pakety, maximálním počtu povolených skoků, velikosti paketu v bajtech, a také IP adresu a přeložené doménové jméno, pokud je dostupné.
Traceroute je velmi užitečný při zjišťování zpoždění a směrování mezi dvěma body. Kromě toho pomáhá identifikovat body selhání na cestě k cíli. Je však důležité mít na paměti, že mnoho firewallů a routerů blokuje zprávy traceroute na internetu, což může ovlivnit přesnost výstupu.
Existují určité možnosti, jak tento problém obejít změnou typu sondovacích zpráv. Přesto je důležité pamatovat na to při používání tohoto nástroje.
Některé možnosti traceroute vyžadují vyšší, superuživatelská oprávnění, pro úpravu nezpracovaných paketů.
Příkaz tracepath
Distribuce Red Hat Enterprise Linux (RHEL) 8 a jí odvozené varianty nemají ve standardní instalaci zahrnutý příkaz traceroute. Pro uživatele, kteří jsou zvyklí na traceroute z předchozích verzí Red Hat Linux nebo CentOS, to může být významná změna.
RHEL8 však standardně nabízí stejně schopný příkaz tracepath, který plní podobné funkce jako traceroute a je připraven k použití ihned po instalaci operačního systému.
Navíc tracepath podporuje parametr MTU, díky kterému dokáže detekovat hodnotu MTU (Maximum Transmission Unit), což je maximální velikost paketu, kterou je tracepath schopen odeslat přes síť.
Níže je uveden ukázkový výstup tracepath pro demonstraci:
$ tracepath 131.153.76.66
1?: [LOCALHOST] pmtu 9000
1: 140.91.200.23 0.416ms asymm 2
1: 140.91.200.23 0.239ms asymm 2
2: 140.91.200.74 0.194ms pmtu 1500
2: oracle-svc071175-lag003322.ip.twelve99-cust.net 1.344ms
3: ldn-b7-link.ip.twelve99.net 19.996ms asymm 2
4: ldn-bb1-link.ip.twelve99.net 0.803ms asymm 5
5: prs-bb1-link.ip.twelve99.net 8.548ms asymm 6
6: mei-b5-link.ip.twelve99.net 18.111ms asymm 5
7: no reply
8: phoenix-svc071932-ic358857.ip.twelve99-cust.net 179.691ms asymm 7
9: 131.153.47.139 163.358ms asymm 8
10: no reply
11: 131.153.76.66 159.071ms !H
Resume: pmtu 1500
$
Základní výstup tracepath, jak je vidět výše, ukazuje TTL (Time To Live) nebo dobu odezvy paketu, MTU (Maximum Transmission Unit), který může být odeslán přes síť pomocí tracepath, a přeložené doménové jméno, pokud je dostupné.
Syntaxe tracepath
Obecná syntaxe pro používání příkazu tracepath je následující:
$ tracepath <options> <destination DNS or IP>
#1. Bez použití dalších parametrů tracepath zobrazuje cestu k cíli takto:
$ tracepath 131.153.56.85
1?: [LOCALHOST] pmtu 9000
1: 140.91.200.77 0.226ms asymm 2
1: 140.91.200.79 0.497ms asymm 2
2: 140.91.200.74 0.216ms pmtu 1500
2: oracle-svc071174-lag003319.ip.twelve99-cust.net 0.691ms
3: slou-b1-link.ip.twelve99.net 1.249ms asymm 2
4: ldn-bb4-link.ip.twelve99.net 0.749ms asymm 3
5: nyk-bb1-link.ip.twelve99.net 80.617ms asymm 8
6: rest-bb1-link.ip.twelve99.net 153.250ms asymm 21
7: nyk-bb1-link.ip.twelve99.net 83.084ms asymm 6
8: nash-bb1-link.ip.twelve99.net 280.770ms asymm 9
9: no reply
10: dls-b23-link.ip.twelve99.net 110.820ms asymm 9
11: phx-b1-link.ip.twelve99.net 131.524ms
12: phx-b1-link.ip.twelve99.net 131.632ms asymm 11
13: giglinx-ic305413-phx-b1.ip.twelve99-cust.net 132.583ms asymm 12
14: no reply
15: giglinx-ic305414-phx-b1.ip.twelve99-cust.net 142.685ms asymm 12
16: PHOENIX-NAP.ear3.Chicago2.Level3.net 135.245ms asymm 4
17: no reply
18: no reply
19: speedchi.phoenixnap.com 133.809ms reached
Resume: pmtu 1500 hops 19 back 8
$
#2. Pro zobrazení pouze IP adresy použijte parametr -n:
$ tracepath -n 131.153.56.85
1?: [LOCALHOST] pmtu 1500
1: 140.91.200.74 0.393ms asymm 2
1: 140.91.200.21 0.180ms asymm 2
2: 213.248.69.255 0.576ms
3: 213.248.98.246 1.210ms asymm 2
4: 62.115.117.122 1.371ms asymm 3
5: 62.115.133.239 141.920ms asymm 20
6: 62.115.141.244 77.732ms asymm 7
7: no reply
8: 62.115.137.55 881.711ms asymm 9
9: no reply
10: 62.115.137.55 914.855ms asymm 9
11: 62.115.125.97 132.182ms
12: 62.115.125.97 131.686ms asymm 11
13: 62.115.42.6 133.132ms asymm 12
14: no reply
15: 62.115.42.10 143.880ms asymm 12
16: 4.14.13.150 134.869ms asymm 4
17: no reply
18: 4.14.13.150 145.263ms asymm 4
19: 131.153.56.85 133.636ms reached
Resume: pmtu 1500 hops 19 back 8
$
#3. Pro zobrazení hostitelských jmen i IP adres použijte parametr -b:
$ tracepath -b 131.153.56.85
1?: [LOCALHOST] pmtu 1500
1: 140.91.200.19 (140.91.200.19) 0.197ms asymm 2
1: 140.91.200.74 (140.91.200.74) 0.141ms asymm 2
2: oracle-svc071175-lag003322.ip.twelve99-cust.net (213.248.98.247) 1.186ms
3: slou-b1-link.ip.twelve99.net (213.248.98.246) 10.273ms asymm 2
4: ldn-bb4-link.ip.twelve99.net (62.115.141.246) 0.941ms asymm 3
5: prs-bb2-link.ip.twelve99.net (62.115.133.239) 141.858ms asymm 20
6: rest-bb1-link.ip.twelve99.net (62.115.141.244) 76.210ms asymm 7
7: no reply
8: rest-bb1-link.ip.twelve99.net (62.115.141.244) 89.209ms asymm 7
9: no reply
10: dls-b23-link.ip.twelve99.net (62.115.136.119) 110.335ms asymm 9
11: phx-b1-link.ip.twelve99.net (62.115.125.97) 132.091ms
12: phx-b1-link.ip.twelve99.net (62.115.125.97) 131.844ms asymm 11
13: giglinx-ic315451-phx-b1.ip.twelve99-cust.net (80.239.195.78) 142.975ms asymm 14
14: no reply
15: no reply
16: PHOENIX-NAP.ear3.Chicago2.Level3.net (4.14.13.150) 135.233ms asymm 4
17: no reply
18: no reply
19: speedchi.phoenixnap.com (131.153.56.85) 133.871ms reached
Resume: pmtu 1500 hops 19 back 8
$
#4. Chcete-li nastavit vlastní velikost paketu místo výchozí hodnoty tracepath (65535), zadejte hodnotu s parametrem -l:
$ tracepath -l 300 131.153.56.85
1: 140.91.200.77 0.405ms asymm 2
2: oracle-svc071174-lag003319.ip.twelve99-cust.net 0.589ms
3: slou-b1-link.ip.twelve99.net 1.448ms asymm 2
4: ldn-bb4-link.ip.twelve99.net 0.960ms asymm 3
5: nyk-bb1-link.ip.twelve99.net 81.564ms asymm 8
6: rest-bb1-link.ip.twelve99.net 78.414ms asymm 7
7: nyk-bb1-link.ip.twelve99.net 84.286ms asymm 6
8: rest-bb1-link.ip.twelve99.net 87.529ms asymm 7
9: no reply
10: dls-b23-link.ip.twelve99.net 110.534ms asymm 9
11: phx-b1-link.ip.twelve99.net 131.449ms
12: phx-b1-link.ip.twelve99.net 131.303ms asymm 11
13: giglinx-ic315451-phx-b1.ip.twelve99-cust.net 143.059ms asymm 14
14: phx-b1-link.ip.twelve99.net 142.348ms asymm 11
15: giglinx-ic--305416-phx-b1.ip.twelve99-cust.net 143.554ms asymm 12
16: PHOENIX-NAP.ear3.Chicago2.Level3.net 134.790ms asymm 4
17: no reply
18: PHOENIX-NAP.ear3.Chicago2.Level3.net 145.926ms asymm 4
19: speedchi.phoenixnap.com 133.736ms reached
Resume: pmtu 300 hops 19 back 8
$
#5. Počáteční cílový port lze také nastavit pomocí parametru -p, například:
$ tracepath -p 9000 131.153.56.85
1?: [LOCALHOST] pmtu 1500
1: 140.91.200.18 0.160ms asymm 2
1: 140.91.200.74 0.177ms asymm 2
2: oracle-svc071175-lag003322.ip.twelve99-cust.net 1.151ms
3: slou-b1-link.ip.twelve99.net 1.727ms asymm 2
4: no reply
5: nyk-bb1-link.ip.twelve99.net 81.357ms asymm 8
6: rest-bb1-link.ip.twelve99.net 78.325ms asymm 7
7: no reply
8: rest-bb1-link.ip.twelve99.net 87.908ms asymm 7
9: no reply
10: dls-b23-link.ip.twelve99.net 109.797ms asymm 9
11: phx-b1-link.ip.twelve99.net 132.036ms
12: dls-b23-link.ip.twelve99.net 121.404ms asymm 9
13: giglinx-ic315450-phx-b1.ip.twelve99-cust.net 136.322ms asymm 12
14: phx-b1-link.ip.twelve99.net 142.596ms asymm 11
15: no reply
16: PHOENIX-NAP.ear3.Chicago2.Level3.net 135.182ms asymm 4
17: no reply
18: no reply
19: speedchi.phoenixnap.com 133.562ms reached
Resume: pmtu 1500 hops 19 back 8
$
#6. Maximální počet skoků, který je standardně nastaven na 30, lze upravit pomocí parametru -m, jak je znázorněno níže:
$ tracepath -m 20 131.153.56.85
1?: [LOCALHOST] pmtu 1500
1: 140.91.200.18 0.175ms asymm 2
1: 140.91.200.77 0.169ms asymm 2
2: oracle-svc071174-lag003319.ip.twelve99-cust.net 0.669ms
3: slou-b1-link.ip.twelve99.net 2.443ms asymm 2
4: no reply
5: prs-bb2-link.ip.twelve99.net 142.778ms asymm 20
6: rest-bb1-link.ip.twelve99.net 76.756ms asymm 7
7: no reply
8: rest-bb1-link.ip.twelve99.net 89.272ms asymm 7
9: no reply
10: dls-b23-link.ip.twelve99.net 110.378ms asymm 9
11: phx-b1-link.ip.twelve99.net 132.582ms
12: phx-b1-link.ip.twelve99.net 132.135ms asymm 11
13: phx-b1-link.ip.twelve99.net 142.154ms asymm 11
14: no reply
15: giglinx-ic305414-phx-b1.ip.twelve99-cust.net 142.298ms asymm 12
16: PHOENIX-NAP.ear3.Chicago2.Level3.net 134.362ms asymm 4
17: no reply
18: no reply
19: speedchi.phoenixnap.com 133.474ms reached
Resume: pmtu 1500 hops 19 back 8
$
Je důležité si uvědomit, že tracepath nepodporuje zvýšená oprávnění superuživatele, které traceroute používá pro pokročilé úpravy paketů.
Shrnutí
Tento článek shrnul, jak se používá příkaz traceroute při řešení problémů se sítí a jak můžeme stejné úkoly provádět v systémech RHEL8 pomocí příkazu tracepath.
Pro detailnější informace o těchto příkazech si prosím prostudujte příslušné manuálové stránky.
$ man traceroute $ man tracepath