Was ist My Traceroute (MTR)?

My Traceroute, oder MTR, kombiniert Traceroute und Ping, um den Zustand eines Netzwerkpfads zu messen.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • „Traceroute“ und „MTR“ definieren
  • Verstehen, wie Traceroute und MTR funktionieren
  • MTR-Ergebnisse lesen, um Probleme in einem Netzwerkpfad zu diagnostizieren

Ähnliche Inhalte


Möchten Sie noch mehr erfahren?

Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!

Lesen Sie die Cloudflare Datenschutzrichtlinie, um zu erfahren, wie wir Ihre persönlichen Daten sammeln und verarbeiten.

Link zum Artikel kopieren

Was ist ein Traceroute?

Traceroute ist ein Tool, mit dem Sie Probleme in einem Netzwerkpfad diagnostizieren können. Traceroute wird verwendet, um den Weg zu verstehen, den IP-Pakete von einem Computer (Quell-IP-Adresse) zu einem anderen (Ziel-IP-Adresse) nehmen. Der Befehl traceroute (unter Linux oder macOS) oder tracert (unter Windows) ermöglicht es, den Weg nachzuvollziehen:

  • Den Weg, den Ihre Pakete nehmen (einschließlich der IP-Adressen der einzelnen Router)
  • Die RTT* zwischen der Quelle und jedem Hop bzw. Router, den die Pakete auf dem Netzwerkpfad durchlaufen

*Die Round-Trip-Time (RTT) ist die Zeit, die Daten benötigen, um einen bestimmten Punkt in einem Netzwerk zu erreichen und wieder zu verlassen.

Hier ist ein Beispiel für eine Traceroute zu 1.1.1.1. Die Zeilen mit Sternchen (* * *) stellen Hops dar, von denen keine Pakete zurückgegeben wurden; dies kann passieren, wenn Router so konfiguriert sind, dass sie Traceroute-Pakete ignorieren. Die Millisekunden-Zeiten in jeder Zeile sind die Umlaufzeiten von der Quelle zu diesem Hop für jedes Paket (traceroute sendet jeweils drei Pakete, um die Ergebnisse zu überprüfen).

Traceroute-Beispiel
traceroute zu 1.1.1.1 (1.1.1.1), max. 64 Hops, 52-Byte-Pakete
1 myrouter (192.168.47.1) 2.755 ms 1.452 ms 1.325 ms
2 * * *
3 69.168.32.65 (69.168.32.65) 18.159 ms 18.658 ms 15.091 ms
4 * * *
5 206.126.237.30 (206.126.237.30) 30.453 ms 50.242 ms 24.342 ms
6 one.one.one.one (1.1.1.1) 29.000 ms 26.784 ms 26.017 ms

Was ist ein Netzwerkpfad?

Ein Netzwerkpfad bezieht sich auf die Abfolge der Netzwerke, die ein Paket durchläuft, um sein Ziel zu erreichen.

Das Internet ist eine riesige Sammlung von Netzwerken, die über Routing miteinander verbunden sind. Die meisten Endpunkte im Internet – z. B. ein Webbrowser, der auf eine Website zugreifen möchte, und der Server, der diese Website hostet – sind nicht Teil desselben Netzwerks. Das heißt, wenn der Webbrowser eine Anfrage an die Server der Website sendet, muss die Anfrage wahrscheinlich zwischen mehreren zwischengeschalteten Netzwerken hin und her springen.

Wie funktioniert Traceroute?

Ein Traceroute-Tool sendet Pakete an eine Ziel-IP und mit einer auf 1 gesetzten Time-to-Live (TTL), sodass der erste Router, den die Pakete erreichen, einen Fehler zurücksendet („Zeit überschritten“). Wenn der Fehler zurückkommt, zeichnet das Traceroute-Tool die Identität des ersten Routers und die Umlaufzeit auf, erhöht die TTL und sendet neue Pakete. Dieser Vorgang wird so lange wiederholt, bis entweder 1) das letzte Paket die Ziel-IP erreicht oder 2) zwei Sätze von Paketen verworfen werden.

Auf diese Weise können Sie den Weg, den Ihre Pakete nehmen, und die Umlaufzeit für jeden Hop nachvollziehen, sodass Sie Paketverluste und Latenz beheben können.

Traceroute stützt sich auf das ICMP-Protokoll (Internet Control Message Protocol). ICMP ist ein Protokoll der Netzwerkebene, das für Fehlertests verwendet wird. Es hat kein zugehöriges Transportprotokoll und läuft direkt auf dem Internetprotokoll (IP). Wenn die TTL eines vom Traceroute-Tool gesendeten Pakets überschritten wird, sendet der Router ein ICMP-Paket vom Typ 11 (Time Exceeded Error) zurück.

Ausgehende Pakete (die vom Ausgangsrouter gesendet werden) können ICMP (Standard unter MacOS- und Linux-Betriebssystemen) oder UDP (Standard unter Windows) verwenden. Die Wahl eines anderen Protokolls für ausgehende Traceroute-Pakete ist eine Möglichkeit, vollständigere Ergebnisse zu erhalten, wenn die Router entlang des Netzwerkpfads so konfiguriert sind, dass sie Pakete mit einem bestimmten Protokoll herausfiltern.

Was ist My Traceroute (MTR)?

My Traceroute (MTR) ist ein Tool, das Traceroute und Ping kombiniert, eine weitere gängige Methode zum Testen der Netzwerkkonnektivität und -geschwindigkeit. Zusätzlich zu den Hops entlang des Netzwerkpfads zeigt MTR kontinuierlich aktualisierte Informationen über die Latenz und den Paketverlust entlang der Route zum Ziel an. Dies hilft bei der Behebung von Netzwerkproblemen, da Sie die Vorgänge entlang des Pfads in Echtzeit verfolgen können.

MTR ermittelt den Netzwerkpfad ähnlich wie Traceroute und sendet dann regelmäßig Pakete, um weitere Informationen zu sammeln und einen aktuellen Überblick über den Zustand und die Geschwindigkeit des Netzwerks zu erhalten.

Wie Traceroute kann MTR ICMP oder UDP für ausgehende Pakete verwenden, verlässt sich aber auf ICMP für Rücksendepakete (Typ 11: Zeitüberschreitung).

Wie man MTR liest

Im Folgenden finden Sie drei Beispiele dafür, wie Sie MTR-Ergebnisse lesen und daraus Schlüsse ziehen können.

MTR #1: Alles klar

Klare MTR
Start: 2020-04-08T13:28:52+0100
HOST: myrouter Verlust%. Snt Zuletzt Durchschn. Beste Schlecht. StDev
1.|-- 10.10.1.1 0,0 % 10 0.3 0,4 0.3 0,4 0,0
2.|-- 141.0.147.177.bcube.co.uk 0,0 % 10 2,7 2,7 2.5 3.1 0,2
3.|-- 172.16.28.38 0,0 % 10 2.8 6.4 2.8 22.2 6.1
4.|-- 172.17.13.76 0,0 % 10 1.1 2.8 1.1 14.6 4,2
5.|-- 172.17.13.49 0,0 % 10 1,4 4.0 1.3 25.0 7.4
6.|-- 172.17.13.24 0,0 % 10 2.5 2,7 2.0 5,1 1.1
7.|-- one.one.one.one 0,0 % 10 1.3 1,2 1,2 1.3 0,0

Dieses Beispiel folgt dem Netzwerkpfad zwischen dem Startrouter und dem DNS-Server 1.1.1.1 von Cloudflare. Die MTR-Ausgabe zeigt keine Probleme an – es dauert 7 Hops, um 1.1.1.1 zu erreichen, und keiner davon zeigt einen Paketverlust an.

MTR #2: Paketverlust – oder doch nicht?

Paketverlust auf dem Weg
Start: 2020-04-08T12:48:28+0000
HOST: myrouter Verlust%. Snt Zuletzt Durchschn. Beste Schlecht. StDev
1.|-- 2400:cb00:207:1000::1 0,0 % 10 1.1 6.0 0,6 15.7 5.9
2.|-- 2404:d400:4000:27::1 0,0 % 10 0,4 0,6 0,2 2.9 0,8
3.|-- 2404:d400:0:8:: 0,0 % 10 125.7 125.7 125.7 126.2 0,2
4.|-- 2001:978:2:42::e:1 50.0 % 10 129.2 129.6 129.2 130.5 0,6
5.|-- be2846.ccr42.fra03.atlas.cogentco.com 80,0 % 10 151.9 139.5 127.1 151.9 17.6
6.|-- be2814.ccr42.ams03.atlas.cogentco.com 80,0 % 10 136.2 137.0 136.2 137.8 1.1
7.|-- be2183.ccr22.lpl01.atlas.cogentco.com 50.0 % 10 146.3 146.2 145.9 146.3 0,10
8.|-- be3043.ccr22.ymq01.atlas.cogentco.com 30.0 % 10 215.3 215.2 215.0 215.4 0,2
9.|-- be3260.ccr32.yyz02.atlas.cogentco.com 90.0 % 10 227.8 227.8 227.8 227.8 0,0
10.|-- be2994.ccr22.cle04.atlas.cogentco.com 30.0 % 10 234.9 234.9 234.5 235.1 0,2
11.|-- be2718.ccr42.ord01.atlas.cogentco.com 70.0 % 10 233.7 233.8 233.7 233.9 0,10
12.|-- be2832.ccr22.mci01.atlas.cogentco.com 50.0 % 10 244.8 245.1 244.8 245.5 0.3
13.|-- be3036.ccr22.den01.atlas.cogentco.com 30.0 % 10 259.6 259.6 259.3 259.8 0,2
14.|-- be3038.ccr32.slc01.atlas.cogentco.com 90.0 % 10 267.2 267.2 267.2 267.2 0,0
15.|-- be3110.ccr22.sfo01.atlas.cogentco.com 10,0 % 10 291.0 291.1 291.0 291.4 0,10
16.|-- be3670.ccr41.sjc03.atlas.cogentco.com 30.0 % 10 292.6 292.7 292.6 292.8 0,10
17.|-- 2001:550:2:1f::29:2 0,0 % 10 312.3 291.5 287.0 312.3 8.6
8.6 0,0 % 10 298.7 299.5 298.7 306.1 2.3
19.|-- ??? 100.0 10 0,0 0,0 0,0 0,0 0,0
20.|-- ??? 100.0 9 0,0 0,0 0,0 0,0 0,0
21.|-- 2400:cb00:36:1008::a29e:40e2 0,0 % 9 302.9 302.9 302.8 303.2 0,10

Dieses Beispiel zeigt den Netzwerkpfad zwischen dem Startrouter und 2400:cb00:36:1008::a29e:40e2, einer IPv6-Adresse. Die Ausgabe zeigt erhebliche Paketverluste auf allen Cogent-Sprungstellen. Auf dem letzten Hop (21) gibt es jedoch keinen Paketverlust. Dies deutet darauf hin, dass der Netzwerkpfad eigentlich nicht problematisch ist. Was hier geschieht, wird oft als „Control Plane Policing“ bezeichnet.

Wie bereits erwähnt, sendet MTR (standardmäßig) ICMP Echo-Pakete mit einer inkrementellen TTL (Time-To-Live) pro Paket aus. Wenn die TTL abläuft, sendet ein Router eine ICMP-Meldung vom Typ 11 (Time Exceeded) zurück. Dort wird angegeben, wie viele Hops zwischen Punkt A und Punkt B liegen.

Viele Netzwerkbetreiber (einschließlich Cloudflare) legen willkürliche Grenzen für die Anzahl der ICMP-Pakete fest, die die Steuerungsebene eines Routers erreichen dürfen. (Die Steuerungsebene ist das Gehirn des Routers.) Ein Paket, das die TTL des Routers überschreitet, muss von der Steuerungsebene verarbeitet werden. Um zu verhindern, dass die Steuerungsebene durch zu viele dieser Pakete überlastet wird, wird eine Durchsatzbegrenzung (oder ein Policer) eingeführt. Deshalb sehen wir die ganzen Verluste auf den Zwischenhops, aber nicht auf dem Endhop: Die Durchsatzbegrenzungen der Steuerungsebene für die Router auf den Zwischenhops wurden überschritten, also wurden Pakete vom Typ 11 für die Traceroute-Pakete nicht zurückgeschickt, wenn sie diese Grenzen überschritten – aber die Pakete konnten sicher zum Ziel gelangen.

MTR #3: Tatsächlicher Paketverlust

Paketverlust auf dem Rückweg
Start: 2020-04-08T13:32:30+0000
HOST: myrouter Verlust%. Snt Zuletzt Durchschn. Beste Schlecht. StDev
1.|-- 162.158.216.129 0,0 % 10 0.7 6,9 0.7 62.6 19.6
2.|-- 118.69.221.209 0,0 % 10 0,2 0.3 0,2 1.3 0.3
3.|-- 118.69.252.172 0,0 % 10 0.7 1,0 0,6 2.9 0.7
4.|-- 118.69.132.169 0,0 % 10 11.4 11.3 11.2 11.5 0,10
5.|-- 118.69.247.64 0,0 % 10 34.2 34.4 33.9 37.2 1,0
6.|-- 13335.sgw.equinix.com 50.0 % 10 27.5 27.9 27.1 29.1 0,8
7.|-- 162.158.161.251 30.0 % 10 26.8 26.8 26.8 26.8 0,0

Dieses Beispiel zeigt den Netzwerkpfad zwischen dem Startrouter und 162.158.161.251. Die Ausgabe zeigt den Paketverlust auf den letzten zwei Hops.

Weitere MTR-Optionen

MTR bietet eine Vielzahl von Optionen. Mehr dazu finden Sie auf der MTR-Hilfeseite: mtr --help

Einige der häufig verwendeten Optionen sind:

  • TCP MTR: TCP anstelle von ICMP-Paketen verwenden. Optional können Sie auch einen Zielport wählen.
  • UDP MTR: UDP anstelle von ICMP verwenden. So können Sie Router umgehen, die ICMP-Pakete blockieren, oder um einen bestimmten Port zu testen.
  • IPs anzeigen: Zeigt die IP-Adressen neben den Datensätzen für jeden Hop an. Das macht es einfacher, Probleme im Vorfeld zu melden.
  • AS-Lookup: Zeigt die AS-Nummer im MTR an.