55 votes

Pourquoi puis-je envoyer un ping à une adresse IP mais pas la "traceroute" ?

Je peux envoyer un ping à une adresse IP, mais je ne peux pas la tracer. Comment cela peut-il être possible ?

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

Le cinquième CENSORED L'adresse IP dans le traceroute n'est pas la même que dans le "ping CENSORED.CENSORED".

50voto

Zakir_SZH Points 111

Essayez d'utiliser une méthode différente dans votre traceroute, par exemple TCP SYN ou ICMP au lieu de la méthode UDP par défaut.

Notez par exemple la différence entre ICMP et 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  * * *

26voto

Rhys Gibson Points 4478

Traceroute est basé sur les paquets ICMP ou UDP. Il sonde effectivement chaque routeur sur le chemin entre vous et censuré.censuré. Il augmente le temps de vie (TTL) pour chaque paquet qu'il envoie (de 1 à 30 normalement) en espérant qu'à chaque fois qu'un paquet est envoyé avec un TTL plus élevé que le dernier, le routeur suivant sur le chemin renvoie un code d'erreur.

Si le saut 6 ne répond pas, il est probablement en train de bloquer spécifiquement les messages ICMP/UDP. Le Ping fonctionne donc parce que les routeurs entre vous et lui transmettent les paquets ICMP/UDP au lieu d'y répondre, comme ils le font avec un traceroute.

15voto

Je n'ai pas vu de réponse à la por qué partie des questions.

Plusieurs fournisseurs d'accès sont connus pour rendre leurs routeurs invisibles à traceroute de deux manières : soit ils ne décrémentent pas le TTL dans les paquets IP (ce qui fait d'eux des trous de ver IP), soit ils ne répondent pas au TTL expiré tout en continuant à transmettre les ICMP.

La raison est de garder la topologie de leur réseau interne privée. C'est tout.

Délivrer traceroute depuis/vers plusieurs sources/destinations révèle des informations sur la topologie du réseau, ce que tout le monde n'apprécie pas.

4voto

alvatar Points 1304

Parfois, cela vaut la peine d'utiliser ping pour obtenir des informations de type traceroute :

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

En appelant ping avec un argument -t $TTL, vous pouvez parfois échapper au pare-feu, et trouver les adresses IP et autres des routeurs derrière les pare-feu.

2voto

LawrenceC Points 70381

Traceroute s'appuie sur les messages ICMP, auxquels certains routeurs peuvent être configurés pour ne pas répondre.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X