Trippy

Trippy

C'EST QUOI ?

Trippy est un outil de diagnostic réseau en Rust qui réunit traceroute et ping dans une interface terminal. trip example.com découvre les sauts jusqu'à la cible puis mesure en continu, pour chacun, perte de paquets, latences (dernière, moyenne, meilleure, pire), écart type et gigue. Le README dit s'inspirer largement de mtr et reprendre des idées de libparistraceroute et de Dublin Traceroute, deux outils conçus pour tracer à travers le routage multi-chemins.

POURQUOI C'EST INTÉRESSANT ?

  • Trois protocoles de sonde : ICMP, UDP et TCP, en IPv4 et IPv6, avec ports source et destination, taille et motif des paquets, TTL et champ TOS réglables.
  • Routage multi-chemins (ECMP) : stratégies classic, paris et dublin, et isolation de chaque flux pour voir les chemins parallèles qu'emprunte le trafic au lieu d'une moyenne qui les mélange.
  • Ce que traceroute ne montre pas : détection de NAT, extensions ICMP de la RFC 4884 dont les piles de labels MPLS, numéro et nom d'AS de chaque saut.
  • Plusieurs cibles à la fois : une seule instance trace plusieurs destinations, avec graphiques d'historique et de distribution des RTT, carte GeoIP et masquage des premiers sauts pour publier une capture sans révéler son réseau.
  • Rapports pour les scripts : sortie JSON, CSV, tableau texte ou Markdown, rapport par flux et graphe Graphviz dot, sur un nombre de cycles fixé.
  • Large distribution : Linux, macOS, Windows, FreeBSD, NetBSD et OpenBSD, avec des paquets pour Debian 13, Homebrew, WinGet, Arch, Nix ou une image Docker.

Trippy ouvre des sockets bruts et réclame donc des privilèges : sudo, le bit setuid ou, sous Linux, la capacité CAP_NET_RAW, que l'outil abandonne une fois les sockets créés. Sous Windows, il faut les droits administrateur et, si Windows Defender bloque l'ICMP entrant, une règle de pare-feu que la doc fournit en PowerShell. Le mode sans privilèges (--unprivileged) ne fonctionne que sous macOS dans la 0.13.0, et sans les stratégies paris et dublin. Les numéros d'AS viennent du service DNS de Team Cymru, donc d'une requête externe, et la carte GeoIP demande de fournir soi-même une base MaxMind ou IPinfo au format mmdb.

La dernière version publiée, la 0.13.0, date du 5 mai 2025. La branche principale reçoit toujours des commits, surtout des mises à jour de dépendances, et son changelog annonce pour la prochaine version un changement cassant : la famille d'adresses par défaut passe à system.

CAS D'USAGE

  • Trouver le saut où apparaît la perte de paquets sur un lien instable, en laissant tourner la trace plusieurs minutes.
  • Tracer en TCP vers le port 443 d'un serveur quand l'ICMP est filtré en chemin.
  • Comparer les chemins d'un trafic réparti par ECMP chez un opérateur, flux par flux.
  • Joindre un rapport JSON ou Markdown à un ticket ouvert chez un hébergeur ou un FAI.