La commande Unix traceroute
trace les adresses IP des nœuds d'un nœud source à un nœud de destination. Chaque nœud intermédiaire a une interface entrante et sortante.
L'exécution de traceroute -n dst
on src
affichera les adresses IP de src, dst et toutes les interfaces entrantes des sauts intermédiaires.
Mais comment tracer les adresses IP sortantes?
Mise à jour
J'ai essayé la ping -R
suggestion mais cela ne semble pas fonctionner. Voici la traceroute vers un serveur Web public:
$ ping -n -c 1 -R 212.227.222.9 PING 212.227.222.9 (212.227.222.9) 56 (124) octets de données. 64 octets de 212.227.222.9: icmp_req = 1 ttl = 57 temps = 47,4 ms RR: 192.168.2.111 169.254.1.1 87.186.224.94 62.154.76.34 62.154.12.175 212.227.117.13 212.227.117.8 10.71.3.253 212.227.222.9 --- 212.227.222.9 statistiques ping --- 1 paquets transmis, 1 reçu, 0% de perte de paquets, temps 0 ms rtt min / moy / max / mdev = 47,441 / 47,441 / 47,441 / 0,000 ms
Et ceci est l'adresse IP de ma connexion d'accès à distance.
$ curl -s https://toolbox.googleapps.com/apps/browserinfo/info/ | jq -r .remoteAddr 93.192.75.247
Mais il n'a pas été enregistré par la commande ping. Quelle peut être la raison?
ping
traceroute
ceving
la source
la source
curl ifconfig.me
. La chose la plus simple sur Internet. Les doigts dans le nez.Réponses:
Je ne suis pas exactement la réponse à votre question, mais c'est une façon simple (mais limitée) de faire (dans certains cas) ce que vous voulez. J'adopte-poste l'option -R de la page de manuel ping:
Ainsi, vous pouvez également voir le chemin de retour de ECHO_REQUEST, ce n'est pas l'interface de sortie (que vous demandez) sauf si le chemin sortant est le même que le chemin de retour. Dans ce cas uniquement, le chemin de retour est l'adresse IP de l'interface sortante que vous demandez.
C'est un vrai exemple sur mon réseau de fournisseur Internet, peut-être pas si clair, mais je n'ai pas pour l'instant de routeur pour se relier :)
la source
-R
option. Le quatrième saut était le premier, qui a répondu à la demande. Mais la réponse ne contient pas mon adresse publique. Et bien que ce ne soit que le quatrième saut, la réponse contient 9 adresses.ping -R
doit être utile uniquement pour un saut très limité. Je dis avant que c'est une voie restreintetraceroute 212.227.222.9
puis fais unping -R
au troisième saut que tu as trouvé dans la traceroute. De cette façon, vous avez le même schéma que j'ai fait pour lire la réponse. Le total de neuf routes signifie aller et revenir, donc si vous le faites, vous neping -R 212.227.222.9
pouvez pas voir le chemin complet, mais seulement la dernière partieSelon RFC1812, l'adresse source du message ICMP généré par le routeur devrait être celle de l'interface de sortie sur laquelle le paquet retournerait normalement à l'expéditeur.
En réalité, il est très probable que vous fassiez face à un comportement non standard où le routeur fournira la réponse ICMP avec la source de l'interface d'entrée. Cela facilite généralement la lecture du traceroute.
Pour faire suite à la question de YLearn, je publie un schéma de réseau et quelques sorties.
Supposons que nous gâchons le traceroute du bouclage de R5 5.5.5.5 au bouclage de R1 1.1.1.1. Comme vous pouvez le voir, le chemin aller se fait via R4-R2, tandis que le chemin inverse est R3-R4.
La sortie traceroute de R5 se présente comme suit:
Ainsi, alors que le trafic ICMP réel généré par R1 revient à R5 via R3, l'en-tête IP du message ICMP inaccessible aura la source de l'interface d'entrée 10.1.12.1.
D'après mon expérience sur le comportement des routeurs Cisco et Juniper, je ne suis pas sûr des autres fournisseurs.
la source