Hoe je een Netwerk Diagnose kunt uitvoeren met MTR

Geschatte leestijd: 4 min

 

Introductie

Vandaag gaan we kijken hoe je netwerk problemen kunt diagnosticeren. We zullen hiervoor een diagnosetool gebruiken die ook wel MTR wordt genoemd. Dit is een combinatie van twee veel voorkomende netwerk tools: ping en traceroute. Met MTR kun je identificeren hoe en wanneer er een storing plaatsvindt tussen jouw server en de server die jij probeert te bereiken.

Vereisten

MTR werkt op elke Linux distributie die wij hebben getest inclusief, Ubuntu 16 en 18, Debian 8 en 9. Er zijn ook versies voor Windows en Mac. Je moet administrator toegang hebben tot de machine om het programma te installeren, maar daarna kun je het uitvoeren zonder root permissies.

Stap 1: Installeer MTR

De meest recente instructies om MTR te installeren zijn beschikbaar op de github pagina. Echter kun je in de meeste gevallen MRT installeren door een package manager te gebruiken. Bijvoorbeeld op Ubuntu is het commando gewoon:

sudo apt-get install mtr

Ook op Macs kan je homebrew gebruiken om te installeren:

brew install mtr

Windows gebruikers kunnen gebruikmaken van WinMTR, dit is gemaakt voor Windows machines. Bezoek de volgende site, download de executable en ga verder met de instructies.

Stap 2: Genereer een MTR Rapport

MTR werkt door een aantal verbindingspogingen uit te voeren  met de gewenste website en de resultaten hiervan worden samengevat in een rapport. Om bijvoorbeeld de verbinding met Google te testen kun je het onderstaande commando uitvoeren:

mtr --report google.com

Controleer de uitvoer van jouw commando. MTR doet 10 pogingen om de site te bereiken en de informatie van de genomen stappen woden verzameld.

Stap 3: Lees het Rapport

De output van MTR bevat veel informatie. Het is een soortgelijk voorbeeld als hieronder:

root@debian-server:~# mtr --report google.com
Start: Tue Nov  6 02:05:45 2018
HOST: debian-s-1vcpu-1gb-nyc3-01  Loss% Snt Last Avg Best Wrst StDev
1.|-- 209.97.144.254             0.0% 10 2.3 0.8 0.4 2.3   0.5
2.|-- 138.197.248.40             0.0% 10 0.4 0.4 0.3 0.6   0.0
11.|-- 108.170.227.211            0.0% 10 2.1 2.1 2.0 2.1   0.0
12.|-- lga34s19-in-f14.1e100.net  0.0% 10 1.9 2.0 1.9 2.3   0.0

Laten we dit uitpakken. Elke regel vertelt je welk netwerkverkeer jouw server en de bestemmingserver hebben genomen. De ‘’Loss%’’ regel vertelt jou hoeveel packet verlies er is geweest tussen deze stappen.

De ‘’Snt’’ kolom vertelt jou hoeveel packets er zijn verzonden. MTR stuurt standaard 10 packets om de problemen te identificeren en dit is meestal wel voldoende. Als je alleen maar intermitterende netwerk problemen ziet, dan kun je het aantal packets verhogen door het -c flag commando te gebruiken. Je kunt bijvoorbeeld 100 packets uitvoeren met de onderstaande commando:

mtr --report -c 100 google.com

Nadat je dit hebt gedaan kun je in de laatste kolommen een samenvatting van de statistieken zien met betrekking tot het latency van jouw netwerkverkeer. De meest informatieve statistieken zijn (Avg) en (Wrst), aan de hand van deze informatie kun je zien hoe zien hoe een typische verkeernetwerk eruit hoort te zien.

Stap 4: diagnosticeer het probleem

Als je netwerk problemen hebt, kun je met MTR op verschillende manieren achterhalen wat er aan de hand is.

Een veel voorkomende valkuil is wanneer een bepaalde link in het netwerk hoge packet loss ervaart. In het rapport wordt dit zoals hieronder weergegeven:

root@debian-server:~# mtr --report google.com
Start: Tue Nov  6 02:15:45 2018
HOST: debian-s-1vcpu-1gb-nyc3-01  Loss% Snt Last Avg Best Wrst StDev
1.|-- 209.97.144.254             0.0% 10 2.3 0.8 0.4 2.3   0.5
2.|-- 138.197.248.40             0.0% 10 0.4 0.4 0.3 0.6   0.0
3.|-- 108.170.227.211            3.8% 10 2.1 2.1 2.0 2.1   0.0
4.|-- lga34s19-in-f14.1e100.net  3.8% 10 1.9 2.0 1.9 2.3   0.0

Je kunt aan de hand van de bovenstaande voorbeeld eenvoudig identificeren welke server het probleem veroorzaakt, dit is de server met de veel verliezende hop in de keten. Wanneer je het probleem hebt geïdentificeerd, zul je met je netwerk administrator moeten overleggen en hun het IP adres geven van de veel verliezende link om het probleem op te lossen.

Een belangrijke opmerking: packet loss betekent niet dat er altijd een probleem is. Veel switches en routers hebben limieten voor aanvragen voor MTR om netwerk vertraging te voorkomen. Je kunt dit soort packet loss identificeren wanneer je de  Loss%  alleen zichtbaar is in één rij van het rapport en dat de andere rijeen 0% hebben.

Een ander veel voorkomend probleem is wanneer uitgaand verkeer goed is, maar de laatste regel 100% loss heeft.  In het onderstaand voorbeeld kun je zien hoe dit eruit ziet:

root@debian-server:~# mtr --report google.com
Start: Tue Nov  6 02:13:45 2018
HOST: debian-s-1vcpu-1gb-nyc3-01  Loss% Snt Last Avg Best Wrst StDev
1.|-- 209.97.144.254             0.0% 10 2.3 0.8 0.4 2.3   0.5
2.|-- 138.197.248.40             0.0% 10 0.4 0.4 0.3 0.6   0.0
3.|-- 108.170.227.211            0.0% 10 2.1 2.1 2.0 2.1   0.0
4.|-- lga34s19-in-f14.1e100.net  100.0 10 1.9 2.0 1.9 2.3   0.0

Meestal betekent dit dat er een probleem is met de firewall of ip table configuratie. Het verkeer bereikt de bestemming met succes maar de response van bestemmingsserver raakt verloren. Je zult in dit geval jouw firewall instellingen moeten veranderen zodat je response kunt ontvangen.

Geavanceerde MTR technieken

MTR bevat meerdere diagnostische tools die handig kunnen zijn voor gevanceerde gebruikers. Zoals eerder vermeld, kun je het aantal packets die door MTR worden verstuurd veranderen wanneer je een rapport genereert met  -c flag. Je kunt ook de frequentie van de MTR packets veranderen door de -i flag te gebruiken. De standaard instelling is 1 seconde.

Als je bijvoorbeeld 100 packets in 10 packets per seconde wilt sturen kun je het onderstaande commando gebruiken:

mtr --report -i 0.1 -c 100 google.com

Als de snelheid wordt beperkt, kun je de packets ook langzamer sturen, door de packets elke 2 seconde te sturen:

mtr --report -i 2 -c 100 google.com

MTR gebruikt standaard DNS om de namen van de servers op te zoeken alvorens deze in het rapport worden opgenomen. Je kunt lange hostnamen toevoegen door de -w flag te gebruiken. Tegelijkertijd kun je ook hostnamen uitsluiten en IP adressen opnmen door –no-dns flag te gebruiken.

Afhankelijk van de MTR versie is het ook mogelijk om  -p flag te gebruiken om te specificeren welke poort MTR gebruikt. MTR gebruikt standaard ICMP, deze heeft geen poorts. Als je -p flag gebruikt schakel je MTR over naar het gebruik van TCP met de gespecifeerde poort. Dit kan handig zijn voor het diagnosticeren van problemen die gerelateerd zijn aan bepaalde diensten. Bijvoorbeeld, als je niet via SSHeen verbinding kunt maken met je server, dan kun je dit testen op poort 22.

mtr -rwc 10 -i 2 --no-dns -p 22 myserver.ip

Conclusie

Je hebt nu geleerd hoe je MTR kunt installeren en hoe je een netwerk diagnoserapport kunt genereren. Je bent nu ook in staat om veelvoorkomend netwerk problemen te identificeren via het rapport.

Was dit artikel nuttig?
Niet leuk 0
Weergaven: 586

Reader Interactions

Geef een reactie

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