Codes utilisés par traceroute(8)

Parce que je n'ai pas été capable de trouver une référence bien lisible des codes affichés par {,tcp}traceroute(8)… et bien lisons un peu de code d'iputils.

Le cas normal est de recevoir un paquet ICMP de type 11/0 ( TTL Expired in Transit). Si l'on reçoit une réponse ICMP type Destination Unreachable (type 3) :

Affiché Erreur Code ICMP
!N Destination Network Unreachable 0
!H Destination Host Unreachable 1
!P Destination Protocol Unreachable 2
!F-%d Fragmentation Needed (avec DF == 1), plus MTU du lien suivant 4
!S Source Route Failed 5
!X Communication Administratively Prohibited 13
!V Host Precedence Violation 14
!C Precedence Cutoff In Effect 15
!<%d> Autre erreur de type Destination Unreachable *

Si l'on reçoit autre chose, rien n'est affiché hors le mode verbeux…

traceroute(8) affiche également un ! tout seul lorsque la réponse arrive avec le TTL de la réponse inférieur ou égal à 1. Pour reprendre l'explication de la documentation, cela arrive lorsque l'émetteur du paquet (la cible finale ou quelqu'un sur le chemin) envoie une réponse ICMP et met comme TTL la même valeur que celle du paquet reçu.

Si c'est une machine sur le chemin qui a ce comportement, alors le paquet ICMP ne nous arrivera jamais (sauf peut-être si c'est le premier saut ?). Si c'est la cible, alors elle semblera être deux fois plus loin qu'elle n'est en réalité (puisque c'est nous, les émetteurs, qui devrons mettre un TTL suffisant pour l'aller et le retour).

tcptraceroute(8) reprend les mêmes codes, et ajoute, toujours dans le cas de Destination Unreachable :

Affiché Erreur Code ICMP
!p Destination Port Unreachable 3
!A Communication with Destination Network is Administratively Prohibited, Communication Administratively Prohibited 9, 13
!C Communication with Destination Host is Administratively Prohibited 10
!U Destination Network Unknown, Destination Host Unknown 6, 7
!I Source Host Isolated 8
!T Destination Network/Host Unreachable for Type of Service 11, 12
Vus : 1011
Publié par Frédéric Perrin : 9