Die Netzwerkdiagnose ist ein wesentlicher Bestandteil der Arbeit eines jeden Netzwerk-/Systemadministrators, der die Analyse und Fehlerbehebung verschiedener Arten von Netzwerkproblemen umfasst.
Die Kenntnis des Pfades, den ein IP-Paket zwischen zwei Punkten in einem Netzwerk durchläuft, wirft viele nützliche Informationen für das geschulte Auge ein.
Ein solches beliebtes und häufig verwendetes plattformübergreifendes Tool, das bei der netzwerkpfadbezogenen Analyse und Fehlerbehebung hilft, ist traceroute
.
In einfachen Worten, traceroute
verfolgt den Pfad eines IP-Pakets zwischen Quelle und Ziel, indem Prüfpakete (wahrscheinlich ICMP ECHO oder TCP SYN) gesendet und dann deren ICMP-Antworten auf „Zeitüberschreitung“ abgehört werden. Die TTL dieser Pakete wird absichtlich als eins beibehalten und um eins erhöht, bis wir ICMP „port unreachable“ erhalten, was bedeutet, dass wir den Host erreicht haben oder den maximalen Wert erreicht haben (standardmäßig als 30 Hops).
Ein Beispiel traceroute
Ausgabe sieht in etwa so aus:
$ 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
$
Standard traceroute
Die Ausgabe, wie oben gezeigt, zeigt TTL (Time To Live) oder Round-Trip-Zeit von drei Paketen, maximale Hop-Nummer und Paketgröße in Bytes und IP-Adresse und aufgelöster Domänenname, wenn möglich.
Traceroute
ist sehr nützlich, um Antwortverzögerungen und das Routing zwischen zwei Knoten zu bestimmen. Darüber hinaus hilft es, Fehlerpunkte in einer Route zum Ziel zu bestimmen. Viele Firewalls und Router blockieren Traceroute-Nachrichten im Internet, daher ist die Ausgabe möglicherweise nicht immer korrekt.
Bis zu einem gewissen Grad sind Problemumgehungen möglich, indem der Typ der Prüfnachrichten geändert wird, aber es kann nur bis zu einem gewissen Grad helfen, dieses Problem zu umgehen. Man muss dies also im Hinterkopf behalten, wenn man dieses Dienstprogramm verwendet.
Einige Optionen in traceroute
erfordern erhöhte Superuser-Privilegien, die Änderungen an Rohpaketen ermöglichen.
tracepath Command
Red Hat Enterprise Linux oder RHEL 8 und seine abgeleiteten Linux-Distributionen werden standardmäßig nicht mit dem Traceroute-Befehl installiert. Dies kann für diejenigen, die daran gewöhnt sind, wie eine signifikante Veränderung erscheinen traceroute
Dienstprogramm auf früheren Versionen von Red Hat Linux oder CentOS.
Aber es gibt einen ebenso leistungsfähigen Befehl, der standardmäßig auf RHEL8 aufgerufen wird tracepath
das ähnliche Fähigkeiten wie sein Gegenstück hat tracepath
und ist mit der Installation des Betriebssystems einsatzbereit.
Außerdem tracepath
unterstützt die MTU-Option, die die Erkennung des MTU- oder Maximum Transmission Unit-Werts ermöglicht, der das größte Paket ist, das es gibt tracepath
über das Netzwerk senden kann.
Stichprobe tracepath
Die Ausgabe ist unten als Referenz dargestellt:
$ 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
$
Standard tracepath
Ausgabe, wie oben gezeigt, zeigt TTL (Time To Live) oder Round-Trip-Zeit eines Pakets, MTU (Maximum Transmission Unit), das über das Netzwerk gesendet werden kann tracepath
und aufgelösten Domänennamen, wo immer möglich.
tracepath Syntax
tracepath
Die allgemeine Verwendungssyntax des Befehls folgt:
$ tracepath <options> <destination DNS or IP>
# 1. Ohne Flaggen, tracepath
zeigt den Weg zum Ziel wie unten gezeigt:
$ 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. Wenn Sie nur die IP-Adresse drucken möchten, können Sie verwenden -n
Flagge:
$ 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. Um sowohl Hostnamen als auch IP-Adressen zu drucken, verwenden Sie -b
Flagge:
$ 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. So legen Sie einen benutzerdefinierten Wert für die Paketlänge fest, anstatt zu verwenden tracepath
's Standardwert, dh, 65535
, geben Sie den Wert mit an -l
Flagge:
$ 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. Wir können auch den anfänglichen Zielport mit festlegen -p
kennzeichnen als:
$ 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. Maximale Sprünge, die standardmäßig auf festgelegt ist 30
kann mit angepasst werden -m
Flagge wie unten gezeigt:
$ 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
$
Beachten Sie, dass tracepath
unterstützt keine erhöhten Superuser-Privilegien wie traceroute
da es die erweiterte Paketmodifikationsfunktion nicht unterstützt.
Zusammenfassung
Diese Artikel zusammengefasst die Verwendung des Traceroute-Befehls, wie er bei der netzwerkbezogenen Fehlerbehebung verwendet wird und wie wir die gleichen Aufgaben in RHEL8-Systemen mit dem Tracepath-Befehl ausführen können.
Um mehr über diese Befehle zu erfahren, verwenden Sie die entsprechende Manpage des Tools.
$ man traceroute
$ man tracepath