Linux Netzwerk Analyse mit mtr
Das Netzwerk-Diagnose-Tool mtr (My Traceroute) kombiniert in einem einzelnen Programm die Funktionalität der beiden Tools traceroute und ping. Es kann als textbasiertes ncurses Programm oder als grafisches GTK+ Programm benutzt werden. mtr wird von der holländischen Firma BitWard B.V. entwickelt.
Inhaltsverzeichnis |
Funktionsweise
Das Programm wird auf der Kommandozeile zusammen mit einem Host als Parameter aufgerufen. Als Host gibt man jenen Hostnamen bzw. jene IP an, zu welcher man die Verbindung vom aktuellen Rechner aus überprüfen will:
mtr www.google.com
Nach der DNS Ausflösung sendet mtr mehrere ICMP echo requests (Pings) an die aufgelöste IP Adresse. Dabei wird allerdings im IP Paket die TTL (Time to live) limitiert. Der erste ICMP echo request hat nur eine TTL von 1, der nächste request eine TTL von 2, etc. Durch diese limitierte TTL wird das IP Paket bereits beim ersten, zweiten, etc. Hop (Router) verworfen. Der jeweilige Router antwortet daraufhin mit einer ICMP Time-to-live exceeded Nachricht. mtr bekommt dadurch von jedem Router eine solche Nachricht zurück und weiß somit welche Router auf den Weg hin zum Host vorhanden sind.
Nachdem die TTL so lange erhöht wurde, bis der Host schließlich erreicht wird, beginnt mtr wieder von vorne. Mit der Zeit ermittelt mtr dann so Durchschnittswerte/Best-Case-Werte/Worst-Case-Werte.
Installation
mtr liegt bereits den meisten Linux-Distributionen direkt bei. Es kann über das jeweilige Paketmanagement mit folgenden Paketnamen installiert werden:
- Red Hat/CentOS/Fedora/SuSE: mtr (Textversion), mtr-gtk (grafische Version)
- Debian/Ubuntu: mtr-tiny (Textversion), mtr (grafische Version)
Beispiele
Die folgenden Beispiele zeigen einige mtr Abfragen. Die ersten drei Hops wurden dabei jeweils anonymisiert.
Interaktive Ausgabe
Die folgende Ausgabe zeigt den Aufruf von:
mtr www.google.com
My traceroute [v0.75]
tpw (0.0.0.0) Tue Sep 8 13:26:54 2009
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. XXXXXXXXXXXXXX 0.0% 201 0.8 1.0 0.8 5.3 0.8
2. XXXXXXXXXXXXXX 0.0% 201 3.4 8.0 2.5 248.7 21.4
3. XXXXXXXXXXXXXX 0.0% 201 6.0 10.8 4.9 98.8 13.2
4. 195.3.118.50 0.0% 200 18.5 22.5 17.2 113.5 13.1
5. 72.14.198.241 0.0% 200 21.7 22.2 17.1 90.2 11.7
6. 209.85.255.176 0.0% 200 17.5 23.0 17.3 131.0 15.2
7. 209.85.248.182 0.0% 200 30.3 27.9 24.0 82.5 7.5
8. 64.233.175.246 0.0% 200 29.1 30.0 26.8 73.7 6.1
9. 72.14.239.197 0.0% 200 39.4 29.9 27.4 57.1 3.0
72.14.239.199
10. 209.85.255.110 0.0% 200 29.8 34.7 27.5 52.7 5.1
209.85.255.98
209.85.255.102
209.85.255.106
11. ew-in-f147.google.com 0.0% 200 30.2 30.0 27.4 42.3 2.2
Report Ausgabe
mtr kann auch in einem Report-Modus (-r) ausgeführt werden. Die Anzahl der Abfragen wird mit dem Parameter -c angegeben. Mittels -w erreicht man, dass lange Hostnamen vollständig anzeigt und nicht abgeschnitten werden:
[root@tpw ~]# mtr -r -w -c 10 www.google.com HOST: tpw Loss% Snt Last Avg Best Wrst StDev 1. XXXXXXXXXXXXXX 0.0% 10 0.8 0.8 0.8 1.0 0.1 2. XXXXXXXXXXXXXX 0.0% 10 3.1 3.5 2.6 4.4 0.7 3. XXXXXXXXXXXXXX 0.0% 10 6.2 6.9 5.5 12.7 2.1 4. 195.3.118.50 0.0% 10 23.2 24.7 17.5 64.0 14.5 5. 72.14.198.241 0.0% 10 20.1 19.6 17.5 28.3 3.2 6. 209.85.255.176 0.0% 10 19.2 18.4 17.5 20.9 1.0 7. 209.85.248.182 0.0% 10 26.4 30.0 24.5 58.6 10.2 8. 64.233.175.246 0.0% 10 27.2 28.7 27.2 32.1 1.7 9. 72.14.239.199 0.0% 10 28.1 29.4 28.1 31.3 1.0 10. 209.85.255.98 0.0% 10 33.1 33.8 29.0 40.6 4.6 11. ew-in-f147.google.com 0.0% 10 28.1 29.0 27.5 30.7 1.0 [root@tpw ~]#
Grafische Ausgabe
Die grafische Version wird mit dem Kommando xmtr gestartet:
xmtr www.google.com
Analyse
Bei weiter entfernten Seiten kann man durch die jeweilige round trip time erkennen zwischen welchen Hops (Routern) Seekabel-Verbindungen (beispielsweise über den Atlantik) vorliegen. Beim Anaylisieren der Verbindung zu www.areca.com.tw sieht man das z.B. sehr schön:
[root@tpw ~]# mtr -r -w -c 10 www.areca.com.tw HOST: tpw Loss% Snt Last Avg Best Wrst StDev 1. XXXXXXXXXXXXXX 0.0% 10 0.8 0.8 0.8 1.0 0.1 2. XXXXXXXXXXXXXX 0.0% 10 3.7 4.6 2.6 6.7 1.4 3. XXXXXXXXXXXXXX 0.0% 10 9.3 14.0 6.4 54.5 15.9 4. iix10-aux11.highway.telekom.at 0.0% 10 8.8 7.1 5.0 8.8 1.1 5. 193.159.227.13 0.0% 10 7.0 7.0 5.1 10.1 1.6 6. 217.239.40.34 0.0% 10 110.7 108.6 107.2 110.7 1.4 7. 192.205.34.149 0.0% 10 106.6 107.5 105.4 111.1 2.2 8. cr1.n54ny.ip.att.net 0.0% 10 175.1 175.4 173.9 177.2 0.9 9. cr2.cgcil.ip.att.net 0.0% 10 175.4 175.7 174.3 176.6 0.8 10. cr1.cgcil.ip.att.net 0.0% 10 175.6 175.7 174.4 178.0 1.2 11. cr2.dvmco.ip.att.net 0.0% 10 175.7 175.3 174.7 176.2 0.6 12. cr1.slkut.ip.att.net 0.0% 10 179.6 176.6 174.9 179.6 1.4 13. cr2.la2ca.ip.att.net 0.0% 10 192.3 192.4 190.7 194.4 1.2 14. gar2.lsnca.ip.att.net 0.0% 10 175.9 176.7 173.7 182.6 2.5 15. 12.118.42.38 0.0% 10 214.4 183.1 175.5 214.4 14.6 16. 202.39.93.53 0.0% 10 196.9 192.8 189.1 198.1 2.9 17. la-c12r11.usa-la.router.hinet.net 0.0% 10 175.2 226.2 174.4 408.5 80.4 18. r32-fo.ty.hinet.net 10.0% 10 317.6 319.3 316.2 323.4 2.2 19. ty-fo-crs12.router.hinet.net 10.0% 10 310.1 309.1 308.5 310.1 0.6 20. ch-c2-c12r12.router.hinet.net 10.0% 10 310.2 312.6 310.2 320.4 3.2 21. tc-c12r12.router.hinet.net 10.0% 10 314.3 313.7 311.0 331.2 6.6 22. tcwh-c76r2.router.hinet.net 10.0% 10 313.3 312.8 311.3 316.8 1.8 23. tc-fy-c12r2.router.hinet.net 10.0% 10 311.0 313.5 311.0 321.0 3.0 24. 203-69-42-38.hihosting.hinet.net 10.0% 10 311.1 311.6 309.7 314.5 1.8 [root@tpw ~]#
Bei dieser Abfrage geht es offensichtlich zwischen folgenden Routern über eine längere Seekabelverbindung durch ein Meer:
- zwischen Hop 5 und 6
- zwischen Hop 17 und 18
Weitere Informationen
- Informationen zum normalen traceroute unter Linux: Linux Netzwerk Analyse mit traceroute