Pourquoi traceroute affiche-t-il plusieurs adresses IP pour le même saut?

14

Voici le chemin de l'itinéraire de ma maison à sina.com.cn.

 traceroute -n   sina.com.cn
traceroute to sina.com.cn (202.108.33.60), 30 hops max, 60 byte packets
 1  192.168.31.1  0.476 ms  0.587 ms  0.695 ms
 2  140.0.5.1  2.557 ms  2.699 ms  3.065 ms
 3  221.11.155.65  4.501 ms * 221.11.165.9  5.045 ms
 4  * 221.11.156.18  26.480 ms 221.11.165.233  22.950 ms
 5  219.158.9.97  14.176 ms * 219.158.19.149  21.472 ms
 6  219.158.9.97  18.142 ms 219.158.8.81  44.856 ms  52.539 ms
 7  124.65.194.190  53.162 ms 219.158.8.81  50.614 ms 124.65.194.190  47.266 ms
 8  124.65.194.190  50.760 ms 61.148.143.26  49.351 ms  53.515 ms
 9  210.74.176.138  43.056 ms  43.286 ms 61.148.143.26  53.712 ms
10  202.108.33.60  46.385 ms 210.74.176.138  42.896 ms  46.931 ms

192.168.31.1 est mon routeur domestique.
140.0.5.1 est mon adresse IP publique fournie par le FAI.

curl  ifconfig.me
140.0.5.1 

Dans la troisième ligne, il est dit

3  221.11.155.65  4.501 ms * 221.11.165.9  5.045 ms

Pourquoi il y a deux adresses IP 221.11.155.65 et 221.11.165? Qu'est-ce que ça veut dire?

Est -ce que le saut de paquets de 140.0.5.1 à 221.11.155.65, puis saute de 221.11.155.65 la 221.11.165?

grincheux
la source
Une précision. Si le FAI vous a donné une adresse IP, elle n'est pas censée apparaître dans les commandes traceroute que vous exécutez. Et si vous deviez faire un traceroute vers l'adresse IP, cela apparaîtrait comme le saut 1. Plus probablement, vous n'avez pas d'adresse IP et 140.0.5.1c'est une sorte de CGN qui se comporte de manière un peu inhabituelle.
kasperd

Réponses:

4

Ce que fait traceroute, c'est d'utiliser les champs d'option car il envoie des paquets de protocole de message de contrôle Internet (icmp). Chaque passerelle ou point de routage du réseau lit les paquets sur une interface, décide où ils doivent aller et les écrit sur une autre interface. Cette interface est probablement plus proche de la destination. Pendant que le routeur transfère le paquet, il modifie également l'en-tête du paquet. Il réduit le «temps de vie» ou le champ du nombre de sauts de un. Chaque passerelle sur le chemin du paquet vers la destination diminue ce champ.

Lorsque le champ du nombre de sauts tombe à zéro, de nombreux routeurs renvoient un message icmp indiquant où le paquet a été déposé. Afin de trouver quelle adresse IP est à une distance spécifique, traceroute enverra des paquets avec les options de temps pour vivre et me donnera une réponse quand il expirera. les messages dont le nombre de sauts commence à 1 et augmentent progressivement renverront chacun l'adresse IP de routeurs progressivement plus éloignés. Parce que traceroute le fait plusieurs fois, vous allez obtenir (si vous avez un réseau richement connecté, tout comme Internet) plusieurs réponses à certains points. il se peut qu'une passerelle particulière réponde à des quantités différentes car la route vers cette passerelle a traversé différents sauts.

ElderDelp
la source
11

Ce qui traceroutevous donne ici des informations, c'est que vous avez au moins 2 itinéraires pour atteindre votre destination à partir du routeur:

           IP adresses                 Internet operator

           140.0.5.1                   Firstmedia - Indonesia
             /    \
            /      \
221.11.155.65      221.11.165.9        China Unicom - China

C'est une situation normale pour un grand opérateur Internet: avoir de nombreuses voies pour résister aux incidents normaux sur Internet.

L' -aoption de traceroutepeut vous aider à identifier à quel opérateur appartient chaque adresse IP.

Voici un exemple d'une plus grande arborescence de routes que vous pouvez obtenir même à partir de votre téléphone mobile via un outil réseau comme le serveur http://ping.eu/traceroute/ : traceroute vers 140.0.5.1

dan
la source
Aucune option -a pour ma traceroute dans debian9.
scrapy
traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate, ...] [-i device] [-m max_ttl] [-p port] [-s src_addr] [-q nqueries] [-N squeries] [ -t tos] [-l flow_label] [-w waittimes] [-z sendwait] [-UL] [-D] [-P proto] [--sport = port] [-M method] [-O mod_options] [ --mtu] [--back] host [packet_len]
scrapy
J'utilisais celui de FreeBSD ici.
dan
8

Du traceroute(8)manuel sur OpenBSD:

Trois sondes (le nombre exact peut être modifié à l'aide de l' -q option) sont envoyées et une ligne est imprimée indiquant la limite TTL ou de saut, l'adresse de la passerelle et le temps d'aller-retour de chaque sonde. Si les réponses de la sonde proviennent de différentes passerelles, l'adresse de chaque système répondant sera imprimée.

Le manuel Linux aura un libellé similaire.

Les adresses IP multiples que vous voyez sont les passerelles répondant aux sondes individuelles à des limites de sauts spécifiques.

Dans votre cas, les trois sondes ont abouti à des réponses qui, à la limite de saut 3, vous sont revenues des passerelles au 221.11.155.65 et au 221.11.165.9.

Donc, la réponse est: non, le paquet ne saute pas entre les deux hôtes répertoriés sur cette ligne, il y a trois sondes envoyées et elles empruntent deux routes différentes à partir de 140.0.5.1.

Kusalananda
la source
1
@RuiFRibeiro J'ai clarifié ma réponse pour répondre à la question explicite posée.
Kusalananda
En effet, j'ai confirmé, au moins dans Debian, traceroute a la même formulation.
Rui F Ribeiro