Niveau :
Résumé : traceroute -I ; mtr ; tcptracetroute
J'imagine que vous connaissez tous le fonctionnement d'IP. Vous êtes connectés à un routeur lui-même connecté à d'autres routeurs, etc.
Et donc chaque connexion que vous faites passe par un certain nombre de routeurs plus ou moins lents. Comment les connaître ? Hé bien il existe tout ce qu'il faut dans le protocole IP pour cela et donc des commandes qui vont avec.
Ping
La première est ping. Bon, je ne vous apprendrai pas à vous en servir. C'est uniquement pour vous indiquer l'option -R qui permet de mémoriser par où passent les paquets. Mais cela ne marche que pour les routeurs qui l'acceptent et uniquement lorsqu'il y a moins de 9 routeurs sur votre chemin.
$ ping -R www.net
Traceroute
La commande suivante est traceroute. Tout routard d'internet connaît un peu traceroute. Par défaut celui-ci envoie des paquets UDP avec un TTL de plus en plus long. Le TTL limitant le nombre de routeurs qu'un paquet peut traverser, lorsque la limite est atteinte, le routeur préviendra l'émetteur que son paquet est perdu (si sa conf ne lui interdit pas). On peut donc avoir progressivement les informations sur tous les routeurs d'un chemin et leur temps de réponse.
$ traceroute www.net
Traceroute vous affiche alors la liste des routeurs traversés avec le temps de réponse. Une étoile indique qu'il n'y a pas eu de réponse.
En général, on utilise l'option -I qui utilise des paquets ICMP plutôt qu'UDP, ceci pour la simple raison que les routeurs acceptent plus souvent les paquets ICMP qu'UDP. En effet, il ne faut pas oublier que le flux doit être ouvert jusqu'au bout. Vous pouvez ajouter l'option -p si vous savez qu'un port UDP spécifique est ouvert.
$ traceroute -I www.net
Mtr
Traceroute est outil bien pratique, mais il date quand même de l'Ancien régime. Les gens fun et bigarrés utilisent mtr qui est bien plus rapide. Mtr a l'avantage de pouvoir fonctionner dans un serveur X si vous voulez faire joli et de repasser en mode texte si ceci ne fonctionne pas. Son utilisation basique (en forçant le mode texte) est la suivante :
$ mtr -t www.net
Mtr vous affiche alors en continu les résultats de ses envois de paquets avec statistiques détaillées. Touche q pour l'arrêter.
La touche d permet de faire un affichage temporel des résultats. C'est plus visuel. Utilisez o pour changer les colonnes affichées et h pour les détails des raccourcis.
Pour une utilisation de mtr bien plus proche de traceroute mais en beaucoup plus rapide :
$ mtr -c1 -r www.net
Par contre mtr ne peut utiliser que les paquets ICMP pour faire son analyse.
Tcptraceroute
Il existe une dernière commande qui sait faire un traceroute, mais avec des paquets TCP cette fois. Ceci est bien pratique lorsque vous êtes sur un réseau très "limitatif". Il s'utilise avec un numéro de port que vous savez ouvert en paramètre.
$ tcptraceroute www.net http
Comments