2011-05-04 10:05:03 +0000 2011-05-04 10:05:03 +0000
47
47

Warum kann ich eine IP-Adresse anpingen, aber nicht 'tracerouten'?

Ich kann eine IP-Adresse anpingen, aber ich kann sie nicht per Traceroute verfolgen. Wie kann das sein?

[USERNAME@HOSTNAME ~]$ ping CENSORED.CENSORED
PING CENSORED.CENSORED (CENSORED) 56(84) bytes of data.
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=1 ttl=49 time=52.8 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=2 ttl=49 time=49.4 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=3 ttl=49 time=49.2 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=4 ttl=49 time=50.4 ms
^C
--- CENSORED.CENSORED ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 49.276/50.494/52.804/1.401 ms
[USERNAME@HOSTNAME ~]$
[USERNAME@HOSTNAME ~]$ traceroute CENSORED.CENSORED
traceroute to CENSORED.CENSORED (CENSORED), 30 hops max, 60 byte packets
 1 CENSORED (CENSORED) 5.733 ms 6.000 ms 5.977 ms
 2 CENSORED (CENSORED) 0.428 ms 0.417 ms 0.393 ms
 3 CENSORED (CENSORED) 1.726 ms 1.718 ms 1.682 ms
 4 CENSORED (CENSORED) 26.699 ms 26.693 ms 26.670 ms
 5 CENSORED (CENSORED) 27.785 ms 27.769 ms 27.746 ms
 6 * * *
 7 * * *
 8 * * *
 9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
[USERNAME@HOSTNAME ~]$

Die fünfte CENSORED IP-Adresse im Traceroute ist nicht die gleiche wie beim “ping CENSORED.CENSORED”.

Antworten (7)

42
42
42
2011-05-04 12:21:00 +0000
23
23
23
2011-05-04 11:11:20 +0000

Traceroute basiert auf ICMP- oder UDP-Paketen. Es pingt effektiv jeden Router auf dem Pfad zwischen Ihnen und censored.censored an. Es erhöht die Time-To-Live (TTL) für jedes nachfolgende Paket, das es sendet (normalerweise von 1-30), in der Erwartung, dass der nächste Router im Pfad einen Fehlercode zurückgibt, wenn jedes Paket mit einer höheren TTL als das letzte gesendet wird.

Wenn Hop 6 nicht antwortet, blockiert er wahrscheinlich gezielt ICMP/UDP-Nachrichten. Ping funktioniert also, weil die Router zwischen Ihnen und ihm die ICMP/UDP-Pakete nur weiterleiten, anstatt auf sie zu antworten, wie sie es bei einem Traceroute tun.

12
12
12
2014-03-09 21:54:36 +0000

Ich habe keine Antwort auf den Warum-Teil der Fragen gesehen.

Einige ISPs sind dafür bekannt, dass sie ihre Router auf zwei Arten für Traceroute unauffällig machen: Entweder dekrementieren sie die TTL in IP-Paketen nicht (wodurch sie sich selbst zu IP-Wurmlöchern machen) oder sie reagieren nicht auf abgelaufene TTL, während sie weiterhin ICMP weiterleiten.

Der Grund ist, dass sie ihre interne Netzwerktopologie geheim halten wollen. Das ist alles.

Das Ausgeben von traceroutes von/zu mehreren Quellen/Zielen verrät Informationen über die Netzwerktopologie, was nicht jeder zu schätzen weiß.

2
2
2
2011-05-04 11:04:50 +0000

Traceroute basiert auf ICMP-Nachrichten, auf die einige Router möglicherweise so konfiguriert sind, dass sie nicht antworten.

2
2
2
2011-05-04 15:44:09 +0000

Manchmal lohnt es sich, ping zu verwenden, um Traceroute-ähnliche Informationen zu erhalten:

#!/bin/bash
for TTL in 1 2 3 4 5 6 7 8 9 10 11 12
do
    ping -c 1 -n -t $TTL a.b.c.d
done

Durch den Aufruf von ping mit dem Argument -t $TTL können Sie manchmal die Firewall umgehen und IP-Adressen und so weiter von Routern hinter Firewalls herausfinden.

0
0
0
2014-03-09 21:24:29 +0000

Entweder antworten alle Knoten ab 6 nicht auf UDP-Pakete oder Knoten 6 selbst blockiert UDP-Pakete. Sie können die folgenden Methoden ausprobieren, die hoffentlich funktionieren, je nachdem, welcher Knoten im Pfad zur Umleitung ICMP/TCP SYN blockiert :

  1. ICMP für traceroute verwenden : $ sudo traceroute -I

  2. Verwenden Sie TCP syn zum traceroute : $ sudo traceroute -T

  3. Wenn es die Hops sind, die es überschreitet, dann verwenden Sie eine der folgenden Möglichkeiten: $ sudo traceroute -I -m 60

ODER

$ sudo traceroute -T -m 60

Letzteres funktionierte bei mir beim Tracerouting zu einem FTP über den Kontinent.

0
0
0
2014-03-09 21:29:44 +0000

Um den Ping-Befehl für Traceroute in einer Unix-Umgebung zu verwenden, versuchen Sie Folgendes:

for ((TTL=1;TTL<30;TTL++));
do
ping -c 1 -t $TTL <IP>;
done