Letar du efter Traceroute på RHEL 8? Prova Tracepath

By rik

Nätverksdiagnostik är en central uppgift för alla nätverks- och systemadministratörer. Detta innefattar att analysera och felsöka olika sorters nätverksproblem.

Att förstå hur ett IP-paket färdas mellan två punkter i ett nätverk kan ge värdefull information för en erfaren analytiker.

Ett välkänt och frekvent använt verktyg, oberoende av operativsystem, för att analysera och felsöka nätverksvägar är traceroute.

I grund och botten kartlägger traceroute vägen för ett IP-paket mellan dess ursprung och slutdestination. Detta görs genom att sända ut sonderingspaket (vanligtvis ICMP ECHO eller TCP SYN) och sedan lyssna efter ICMP-svar med ”tidsgräns överskriden”. TTL (Time To Live) för dessa paket sätts initialt till ett och ökas gradvis tills ett ICMP-meddelande om ”port oåtkomlig” erhålls, vilket indikerar att destinationen nåtts eller att det maximala antalet hopp (standard är 30) överskridits.

Ett typiskt utdata från traceroute ser ut ungefär så här:

$ 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
$

Standardutdata från traceroute, som illustrerats ovan, visar TTL, eller svarstiden för tre paket, maximalt antal hopp, paketstorlek i byte, samt IP-adressen och det matchande domännamnet, när detta är tillgängligt.

Traceroute är ovärderligt för att undersöka svarstider och routing mellan två noder. Det underlättar också identifieringen av felpunkter i en rutt mot destinationen. Observera att många brandväggar och routrar blockerar traceroute-meddelanden på Internet, vilket kan leda till att dess utdata inte alltid är korrekt.

Det finns vissa metoder för att kringgå detta, till exempel att ändra typen av sonderingsmeddelanden, men dessa lösningar är inte alltid tillräckliga. Det är därför viktigt att vara medveten om denna begränsning när man använder verktyget.

Vissa avancerade funktioner i traceroute kräver förhöjda privilegier, som tillåter modifiering av råpaket.

Kommandot tracepath

I Red Hat Enterprise Linux, eller RHEL 8, och dess relaterade Linux-distributioner, medföljer inte traceroute-kommandot som standard. Det kan vara en betydande förändring för användare som är vana vid traceroute från tidigare versioner av Red Hat Linux eller CentOS.

Istället finns ett lika kraftfullt kommando, tracepath, tillgängligt som standard i RHEL8. Tracepath erbjuder liknande funktionalitet som traceroute och är redo att användas direkt efter installationen av operativsystemet.

Tracepath stödjer även MTU-alternativet (Maximum Transmission Unit), vilket möjliggör upptäckt av det största paketet som kan skickas via nätverket.

Ett exempel på utdata från tracepath visas nedan:

$ 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
$

Standardutdata från tracepath, som demonstrerats ovan, visar TTL, eller tur- och returtiden för ett paket, MTU som kan skickas över nätverket, samt det matchande domännamnet, där det är möjligt.

tracepath Syntax

Syntaxen för kommandot tracepath är följande:

$ tracepath <alternativ> <destination DNS eller IP>

#1. Utan några flaggor visar tracepath vägen till destinationen som i exemplet nedan:

$ 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. Om du bara vill se IP-adressen kan du använda flaggan -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. Om du vill se både värdnamn och IP-adresser, använd flaggan -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. För att ange en anpassad paketlängd istället för tracepaths standardvärde (65535) använder du flaggan -l och anger önskat värde:

$ 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. Vi kan ange den initiala destinationsporten med flaggan -p, till exempel:

$ 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. Maximalt antal hopp, som är 30 som standard, kan justeras med flaggan -m, som nedan:

$ 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
$

Det är viktigt att notera att tracepath inte stöder förhöjda superanvändarbehörigheter, vilket gör att den saknar avancerad paketmodifieringsfunktionalitet, som finns i traceroute.

Sammanfattning

Den här artikeln har sammanfattat hur kommandot traceroute används, dess tillämpning vid felsökning av nätverk, samt hur motsvarande uppgifter kan utföras i RHEL8-system med hjälp av kommandot tracepath.

För att lära dig mer om dessa kommandon, använd respektive manualsida.

$ man traceroute
$ man tracepath