tracepath-commando: hops en pad-MTU controleren in plaats van traceroute

TestomgevingRHEL-familieAlmaLinux 9.8iputils 20210202root-accountDebian 12 · traceroute 2.1.2 gewoon account
Netwerkcommando'stracepathLocatie/usr/bin/tracepath

Op een Linux-server kun je met het commando tracepath zonder root-rechten nagaan welk pad (hops) pakketten naar een bestemming afleggen en wat de pad-MTU is. Op een AlmaLinux 9-server zonder traceroute hebben we het aantal hops beperkt tot 10 en het pad naar example.com gecontroleerd: tot de vierde hop waren responstijden en een pad-MTU van 1500 te zien, en de zes hops daarna gaven geen antwoord.

De uitvoer hieronder komt van een AlmaLinux 9.8-server (root-account); de traceroute-versie en de pakketstatus zijn gecontroleerd op een Debian 12-server (gewoon account). De IPv6-adressen van de eerste hop en de tussenliggende routers zijn vervangen door voorbeeldadressen voor documentatie, en de responstijden en pmtu-waarden zijn ongewijzigd gelaten.

1️⃣ Het tracepath-commando gebruiken

  • ↪️ Hops en pad-MTU tot de bestemming controleren

tracepath neemt één bestemmingsnaam of IP-adres, stuurt UDP-pakketten en toont de hops die antwoorden, één regel per hop in TTL-volgorde. Het standaard maximum aantal hops is 30 en is te wijzigen met -m.

Voor example.com hebben we -m 10 toegevoegd om alleen tot de tiende hop te controleren.

tracepath -n -m 10 example.com
 1?: [LOCALHOST]                        0.006ms pmtu 9001
 1:  fe80::1%eth0                                          0.077ms pmtu 1500
 1:  2001:db8:a::5b                                        2.627ms asymm  8 
 2:  2001:db8:a::52                                        1.473ms asymm 12 
 3:  2001:db8:b::1e                                       19.653ms asymm  9 
 4:  2001:db8:c::                                          3.642ms asymm 11 
 5:  no reply
 6:  no reply
 7:  no reply
 8:  no reply
 9:  no reply
10:  no reply
     Too many hops: pmtu 1500
     Resume: pmtu 1500 

Deze server stuurde de pakketten naar het IPv6-adres van example.com, en tot de vierde hop verschenen responstijden. Vanaf de vijfde hop volgde no reply, waardoor de regel reached, die aangeeft dat de bestemming binnen tien hops is bereikt, niet verscheen, en de uitvoering duurde ongeveer 18 seconden.

Zonder -m naar dezelfde bestemming was de uitvoering na 30 seconden nog niet klaar. Bij paden met veel hops die niet antwoorden, verklein je met -m het aantal te controleren hops.

De geïnstalleerde tracepath-versie controleer je met -V; op deze server was het iputils 20210202.

tracepath -V
tracepath from iputils 20210202

2️⃣ tracepath-uitvoer lezen

  • ↪️ Hopnummer, pmtu, asymm, reached

Elke uitvoerregel toont achtereenvolgens het hopnummer, het adres dat antwoordde en de rondetijd. Waar de pad-MTU verandert staat pmtu, en als heen- en terugweg een verschillend aantal hops hebben staat asymm. Dit controleer je per regel.

UitvoerBetekenis
1?:Veld van het hopnummer — een ? staat bij een geschat nummer als het antwoord geen TTL gaf
[LOCALHOST]De regel van de server zelf, voordat het pakket het netwerk op gaat
0.077msRondetijd tot die hop
pmtu 1500Pad-MTU (bytes) die op dat punt verandert — staat er alleen bij een wijziging
asymm 8Verschil in aantal hops tussen heen- en terugweg — volgens de officiële handleiding geen betrouwbare waarde
no replyHop die niet antwoordde op het pakket dat met die TTL is verstuurd
reachedRegel waarin de bestemming is bereikt
Too many hopsStopt na controle tot het met -m ingestelde aantal hops
Resume: pmtu … hops … back …MTU van het hele pad, aantal hops tot de bestemming en geschat aantal hops terug

In de uitvoer voor example.com was de pmtu op de eerste regel [LOCALHOST] 9001 en die veranderde bij de eerste hop in 1500. Dat de regel met TTL 1 twee keer verschijnt met alleen een ander adres, past ook bij het voorbeeld in de officiële handleiding. Volgens de handleiding verschijnt dezelfde TTL-regel nog een keer als het eerste pakket bij de eerste hop wordt geweigerd vanwege de pad-MTU.

Is de bestemming bereikt, dan staat reached aan het eind van de regel en toont de laatste Resume-regel het aantal hops tot de bestemming. Bij versturen naar 127.0.0.1 verscheen reached na één hop en was de Resume-regel [pmtu 65535 hops 1 back 1].

tracepath -n 127.0.0.1
 1:  127.0.0.1                                             0.047ms reached
     Resume: pmtu 65535 hops 1 back 1 

Een pad dat zonder reached eindigt met Too many hops kreeg binnen de met -m ingestelde hops geen antwoord van de bestemming. Ook het pad naar example.com had tot tien hops geen reached, dus bleef op de Resume-regel alleen pmtu over, zonder aantal hops.

3️⃣ tracepath-opties

  • ↪️ -n, -b, -m en pakketlengte -l

tracepath heeft maar acht opties: -4, -6, -n, -b, -l, -m, -p en -V; zonder bestemming verschijnt deze lijst als gebruiksinstructie. Zonder opties zet het antwoordende adressen om in namen; bij versturen naar localhost stond localhost in het hopveld.

tracepath localhost
 1?: [LOCALHOST]                        0.003ms pmtu 65536
 1:  localhost                                             0.048ms reached
 1:  localhost                                             0.030ms reached
     Resume: pmtu 65536 hops 1 back 1 

[tracepath -n] toont alleen IP-adressen zonder namen op te zoeken. Met -n voor dezelfde localhost veranderde het hopveld in het IPv6-adres ::1, en ook het pad naar example.com met -n toonde alleen adressen in het hopveld.

tracepath -n localhost
 1?: [LOCALHOST]                        0.005ms pmtu 65536
 1:  ::1                                                   0.039ms reached
 1:  ::1                                                   0.010ms reached
     Resume: pmtu 65536 hops 1 back 1 

-b toont naam en adres samen. Met -b voor 127.0.0.1 kwam het adres tussen haakjes achter de naam: [localhost (127.0.0.1)].

tracepath -b 127.0.0.1
 1:  localhost (127.0.0.1)                                 0.050ms reached
     Resume: pmtu 65535 hops 1 back 1 

-m stelt het maximum aantal te controleren hops in en accepteerde waarden van 0 tot 255. Met -m 0 verschenen zonder hopregels meteen alleen Too many hops en de Resume-regel, en 256 werd geweigerd met [out of range].

tracepath -m 0 127.0.0.1
     Too many hops: pmtu 65535
     Resume: pmtu 65535 

-l is de lengte van het eerste verstuurde pakket; standaard 65535 bytes voor IPv4 en 128000 bytes voor IPv6. Met -l 1500 voor 127.0.0.1 veranderde de pmtu op de Resume-regel van 65535 in 1500.

tracepath -l 1500 -n 127.0.0.1
 1:  127.0.0.1                                             0.028ms reached
     Resume: pmtu 1500 hops 1 back 1 

-p stelt de eerste UDP-bestemmingspoort in. Met -p 33434 voor 127.0.0.1 was het resultaat hetzelfde als zonder.

OptieKopiërenUitleg
-nAlleen IP-adressen tonen, zonder namen op te zoeken
-bNaam en adres samen tonen
-mhopsMaximum aantal te controleren hops instellen, standaard 30
-llengteLengte van het eerste pakket instellen, standaard IPv4 65535, IPv6 128000
-VVersie tonen en afsluiten
OptieKopiërenUitleg
-4Stuurt alleen naar IPv4-adressen
-6Stuurt alleen naar IPv6-adressen
-pPoortEerste UDP-bestemmingspoort instellen

4️⃣ Verschil tussen tracepath en traceroute

  • ↪️ Installatie, rechten, verstuurde pakketten

Op servers waar traceroute niet te installeren is, controleer je het pad met tracepath in plaats van traceroute. De gecontroleerde AlmaLinux 9.8-server had geen traceroute-pakket, terwijl tracepath in het pakket iputils zit en zonder aparte installatie draaide.

rpm -q traceroute
package traceroute is not installed

Bij de Debian 12-server was het andersom: traceroute 2.1.2 was geïnstalleerd, maar het pakket iputils-tracepath met tracepath niet.

traceroute --version
Modern traceroute for Linux, version 2.1.2
Copyright (c) 2016  Dmitry Butskoy,   License: GPL v2 or any later
apt-cache policy iputils-tracepath
iputils-tracepath:
  Installed: (none)
  Candidate: 3:20221126-1+deb12u1

Zoals deze twee servers laten zien, verschilt per distributie welke commando's aanwezig zijn; controleer dus eerst welke er op de verbonden server staat. tracepath heeft geen root-rechten nodig en werkt met elk account dat UDP-pakketten kan versturen. Het tracepath-bestand op de AlmaLinux 9.8-server had ook de rechten rwxr-xr-x, zonder extra capabilities.

Onderdeeltracepathtraceroute
AlmaLinux 9.8-serverZit in het pakket iputils, draait directNiet geïnstalleerd
Debian 12-serverPakket iputils-tracepath niet geïnstalleerdtraceroute 2.1.2 geïnstalleerd
Verstuurde pakkettenUDPStandaard UDP, -I voor ICMP, -T voor TCP
Uitvoer per hopEén regelStandaard drie keer versturen, drie tijden (te wijzigen met -q)
Aantal optiesAcht: -4 -6 -n -b -l -m -p -VMeer dan 20 alleen al op het eerste --help-scherm

Moet je het pad via ICMP of TCP bekijken of per hop meerdere keren versturen om tijden te vergelijken, dan installeer en gebruik je het commando traceroute. Op servers waar installeren lastig is of waar je ook de pad-MTU wilt zien, past tracepath.

🔲 tracepath-commandosimulator

In de simulator hieronder kun je het pad naar example.com opnieuw bekijken met alleen een ander aantal hops, of zelf -n, -b, -m en -l invoeren voor localhost en 127.0.0.1 om de verschillen te zien.

tracepath-commandosimulatoriputils 20210202
[root@server work]#
Werkt alleen in je browser en verstuurt geen echte pakketten. Met ↑↓ haal je eerdere commando's terug.

🔢 FAQ & aanbevolen content

Nee, dat zegt de exitcode niet. Ook toen de uitvoering naar example.com met -m 10 zonder reached eindigde met Too many hops, was de exitcode 0. Een mislukte naamomzetting en een ongeldig argument gaven 1, en uitvoeren zonder bestemming gaf 255. De exitcode onderscheidt alleen uitvoeringsfouten; of de bestemming is bereikt, controleer je aan de regel reached in de uitvoer.

localhost werd verstuurd naar het IPv6-adres ::1, waardoor de eerste regel [LOCALHOST] de MTU van de loopback-interface toonde, 65536. Bij 127.0.0.1, dat IPv4 is, verscheen de standaard IPv4-pakketlengte 65535 ongewijzigd. Ook de met ip link gecontroleerde MTU van de interface lo was 65536.

Met -4 wordt alleen naar IPv4-adressen verstuurd. Met -4 voor localhost verscheen zonder [LOCALHOST]-regel via IPv4 na één hop reached; omgekeerd eindigde -6 voor 127.0.0.1 met [Address family for hostname not supported].

ℹ️ Affiliatemelding
De content van deze site bevat affiliatelinks. Koopt een bezoeker via een van deze links een product of dienst, dan ontvangt deze site een commissie van de verkoper. Het bedrag dat de koper betaalt (bij acties gaat het omlaag ↓) wordt daardoor niet hoger. De vermelde prijzen, kortingen en voorraad gelden op het moment van schrijven en kunnen afwijken; controleer ze daarom vóór je aankoop bij de verkoper. Producten worden gekozen en beoordeeld volgens onze eigen criteria, en commissies hebben geen invloed op de volgorde of de inhoud van de beoordelingen.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Laat zien dat je geen machine bent: 4   +   9   =