[MTR (My traceroute)](http://www.bitwizard.nl/mtr/) est un outil de diagnostic réseau combinant les fonctionnalités des programmes _traceroute_ et _ping_.
Pour décrire l'itinéraire emprunté, MTR utilise les paquets ICMP _Time Exceeded_ renvoyés par les routeurs intermédiaires et les paquets ICMP _Echo Reply_ renvoyés par l'hôte de destination. Les paquets ICMP envoyés ont des TTLs augmentant progressivement jusqu'à la destination. Le TTL (Time To Live) contrôle le nombre de sauts qu'un paquet fera avant d'expirer. De cette façon après un saut (TTL=1), le premier routeur décrémentera le TTL de 1, le passant à 0. Ainsi le paquet expirera et un paquet ICMP _Time Exceeded_ sera transmis à l'émetteur contenant l'IP du routeur. S'en suivra un paquet avec un TTL à deux, puis trois, et ainsi de suite jusqu'à ce que l'hôte de destination renvoie un paquet ICMP _Echo Reply_. Parallèlement, MTR collecte des informations supplémentaires tel que le temps d'aller-retour et la perte de paquets éventuelle pour chacun des équipements traversés jusqu'à la destination. Cela en fait un outil idéal pour diagnostiquer des problèmes réseau.
Lorsque l'on souhaite faire une analyse avec MTR, on observe deux paramètres importants, la perte de paquets et la latence. Le première chose à regarder concerne la perte de paquets. Une perte observée sur le chemin n'est pas toujours pertinente. Une pratique commune consiste à faire du rate limiting sur l'ICMP. Vous pouvez alors observer une perte à un saut particulier. Il est facile de déterminer si la perte est à considérer ou non. Si les sauts suivants rapportent 0.0% de perte alors il s'agit de rate limiting ICMP, pas d'inquétude à avoir.
On peut voir ici que la perte ne concerne que le quatrième saut et nous avons bien 0% de perte à la destination. On est bien ici dans un cas de rate limiting ICMP.
Ici le cinquième saut est concerné par une perte liée à du rate limiting ICMP car les sauts suivants ne sont concernés que par une perte de 40%. La perte réelle à considérer est toujours celle observée sur les sauts suivants.
Il est important d'avoir en tête que parfois la perte est due à un problème sur le chemin du retour. Les paquets peuvent arriver correctement à destination mais se perdre sur le retour ce pourquoi il est toujours conseillé de lancer un MTR dans les deux sens.
Outre la perte de paquets, MTR permet la mise en évidence de la latence. Elle est bien sûr liée avant tout à des contraintes physiques et augmente avec le nombre de sauts. Cette augmentation doit idéalement être constante. La nature de la connexion affectera la latence que vous observez, les connexions ADSL auront une latence beaucoup plus élevée que les connexions par fibre par exemple.
Soit l'hôte de destination est injoignable, soit celui-ci reçoit les paquets mais n'est pas en mesure d'y répondre ce qui probablement alarmant (défaut de configuration).
* [A Practical Guide to (Correctly) Troubleshooting with Traceroute Troubleshooting with Traceroute](https://www.nanog.org/meetings/nanog47/presentations/Sunday/RAS_Traceroute_N47_Sun.pdf)