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

Waarom kan ik een IP-adres wel pingen maar niet tracerouten?

Ik kan een IP adres pingen, maar ik kan het niet tracerouten. Hoe zou dit kunnen?

[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 ~]$

Het vijfde CENSORED IP adres in de traceroute is niet hetzelfde als bij de “ping CENSORED.CENSORED”.

Antwoorden (7)

42
42
42
2011-05-04 12:21:00 +0000

Probeer een andere methode te gebruiken in uw traceroute, bijvoorbeeld TCP SYN of ICMP in plaats van de standaard UDP-methode.

Let bijvoorbeeld op het verschil tussen ICMP en TCP:

x@x:~$ ping -qc4 94.254.2.51
PING 94.254.2.51 (94.254.2.51) 56(84) bytes of data.
--- 94.254.3.90 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 7.781/7.807/7.836/0.067 ms

x@x:~$ sudo traceroute -I 94.254.2.51
traceroute to 94.254.2.51 (94.254.2.51), 30 hops max, 40 byte packets
1 <REDACTED>
2 <REDACTED>
3 <REDACTED>
4 <REDACTED>
5 netnod-ix-ge-a-sth-1500.bahnhof.net (194.68.123.85) 1.307 ms 1.299 ms 1.432 ms
6 sto-cr1.sto-cr3.bahnhof.net (85.24.151.165) 7.166 ms 7.364 ms 7.336 ms
7 sto-cr3.gav-cr1.bahnhof.net (85.24.151.195) 7.251 ms 7.099 ms 7.220 ms
8 zitius-a322-gw-c.bahnhof.net (85.24.153.249) 7.059 ms 7.074 ms 7.145 ms
9 h-2-51.A322.priv.bahnhof.se (94.254.2.51) 7.619 ms 7.750 ms 8.070 ms

x@x:~$ sudo traceroute -T 94.254.2.51
traceroute to 94.254.2.51 (94.254.2.51), 30 hops max, 40 byte packets
1 <REDACTED>
2 <REDACTED>
3 <REDACTED>
4 <REDACTED>
5 netnod-ix-ge-a-sth-1500.bahnhof.net (194.68.123.85) 1.621 ms 1.683 ms 1.817 ms
6 sto-cr1.sto-cr3.bahnhof.net (85.24.151.165) 8.530 ms 7.861 ms 7.820 ms
7 sto-cr3.gav-cr1.bahnhof.net (85.24.151.195) 7.724 ms 7.539 ms 7.486 ms
8 zitius-a322-gw-c.bahnhof.net (85.24.153.249) 7.572 ms 7.537 ms 7.553 ms
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
23
23
23
2011-05-04 11:11:20 +0000

Traceroute is gebaseerd op ICMP of UDP pakketten. Het pingt effectief elke router op het pad tussen jou en censored.censored. Het verhoogt de Time-To-Live (TTL) voor elk volgend pakket dat het verstuurt (normaal van 1-30) in de verwachting dat als elk pakket wordt verstuurd met een verhoogde TTL ten opzichte van het laatste, de volgende router op het pad een foutcode zal retourneren.

Als hop 6 niet reageert, blokkeert hij waarschijnlijk specifiek ICMP/UDP-berichten. Ping werkt dus omdat de routers tussen jou en hop 6 gewoon de ICMP/UDP pakketten naar hem doorsturen in plaats van erop te antwoorden, zoals ze doen bij een traceroute.

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

Ik zag geen antwoord op het waarom deel van de vragen.

Van diverse ISP’s is bekend dat ze hun routers op twee manieren onzichtbaar maken voor traceroute: ze verlagen de TTL in IP pakketten niet (waardoor ze zelf IP wormgaten worden) of ze reageren niet op verlopen TTL terwijl ze nog wel ICMP doorsturen.

De reden is om hun interne netwerk topologie privé te houden. Dat is alles.

Het uitgeven van traceroutes van/naar meerdere bronnen/bestemmingen onthult informatie over de netwerktopologie, en dat is iets wat niet iedereen op prijs stelt.

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

Traceroute vertrouwt op ICMP berichten, waarvan sommige routers geconfigureerd kunnen zijn om er niet op te reageren.

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

Soms is het de moeite waard om ping te gebruiken om traceroute-achtige informatie te krijgen:

#!/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

Door ping aan te roepen met een -t $TTL argument, kun je soms de firewall omzeilen, en IP adressen en dergelijke te weten komen van routers achter firewalls.

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

Ofwel reageren alle knooppunten vanaf 6 niet op UDP pakketten ofwel blokkeert knooppunt 6 zelf UDP pakketten. Je kan de volgende methodes proberen, waarvan ik hoop dat ze werken op basis van welk knooppunt in het pad naar de bestemming ICMP/TCP SYN blokkeert :

  1. Gebruik ICMP om te tracerouten : $ sudo traceroute -I

  2. Gebruik TCP syn om te tracerouten : $ sudo traceroute -T

  3. Als het de hops zijn die het overschrijdt, gebruik dan een van de volgende : $ sudo traceroute -I -m 60

OF

$ sudo traceroute -T -m 60

De laatste werkte voor mij tijdens het tracerouten naar een ftp over het continent.

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

Om ping commando te gebruiken om traceroute in unix omgeving, probeer dit :

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