Résumé

  • Pour une interface distante directement raccordée, PROBE restitue l’état de la table ARP ou du cache de voisins du proxy ; l’interface désignée n’émet pas elle-même la réponse.
  • Un code zéro, un temps très court et une ligne ressemblant à un ping réussi peuvent être exacts sans prouver la connectivité de bout en bout ni la santé du service.

La console présentait tous les signes visuels d’un ping réussi : taille, numéro de séquence, TTL et quelques millisecondes. À droite, trois champs ajoutaient active=1 ipv4=0 ipv6=0. Dans l’urgence, l’œil a reconnu la silhouette familière avant de lire son démenti. Le circuit a été classé comme rétabli.

Or l’interface concernée n’avait rien renvoyé à la sonde. Le message venait du proxy.

Ce scénario est une reconstruction, non le récit d’un incident nommé. Il s’appuie sur le retour d’expérience consigné dans la révision 06 de PROBE: A Utility for Probing Interfaces. Les premiers clients affichaient les résultats à la manière de ping. Le document observe que cette ressemblance incitait à lire une réussite là où les bits IPv4 et IPv6 ne l’indiquaient pas, puis recommande une formulation humaine explicite.

L’enjeu dépasse l’ergonomie. PROBE rend possible une observation précisément parce qu’il ne demande pas une connectivité bidirectionnelle entre la sonde et l’interface observée. Il demande cette connectivité avec un proxy. La provenance n’est donc pas une métadonnée facultative ; elle définit la portée du résultat.

Deux instruments cachés sous un même nom

Avec ping, l’Echo Request atteint l’interface visée et l’Echo Reply revient. Cette séquence fournit un constat de circulation dans les deux sens entre les deux interfaces. Avec PROBE, l’ICMP Extended Echo Request se termine sur l’interface du proxy. L’Interface Identification Object nomme une autre interface et le bit L précise sa position.

Lorsque L vaut 1, l’interface appartient au nœud proxy. Celui-ci consulte son oper-status. RFC 8343 décrit up comme prêt à transmettre des paquets ; seul cet état allume le bit A. Tous les autres états opérationnels sont résumés par inactive. Il s’agit d’une déclaration locale du système qui répond.

Lorsque L vaut 0, l’interface est sur un nœud directement raccordé. Le proxy ne sollicite pas une réponse PROBE de ce voisin. Il lit sa propre table ARP pour IPv4 ou son Neighbor Cache pour IPv6. Une absence donne No Such Table Entry ; une présence fournit un état de table.

Transformer ces deux résultats en un unique champ « interface saine » supprime l’observateur et le mécanisme. Le bit A local et un état de cache distant n’ont ni la même horloge, ni les mêmes conditions d’invalidation, ni la même autorité.

REACHABLE garde la mémoire d’une confirmation

RFC 4861 interdit de traiter le cache IPv6 comme un inventaire intemporel. REACHABLE signifie qu’une confirmation positive récente a établi que le chemin aller du proxy vers son voisin fonctionnait. STALE signifie que cette confirmation est devenue trop ancienne : la joignabilité actuelle n’est plus connue. DELAY accorde un délai aux couches supérieures ; PROBE indique une vérification active par Neighbor Solicitation ; INCOMPLETE signale une résolution d’adresse inachevée.

Une entrée présente n’est donc pas une attestation permanente. Un état STALE n’est pas davantage une panne certaine. L’énoncé défendable est daté et situé : à l’instant de la réponse, ce proxy conservait cet état selon son propre historique de détection.

Les adresses link-local réutilisées peuvent laisser l’identité ouverte. Aucun voisin, un seul voisin non désambiguïsé ou plusieurs interfaces peuvent satisfaire la demande. Le code Multiple Interfaces Satisfy Query exprime honnêtement cette limite ; il n’autorise pas le logiciel à choisir arbitrairement.

« No Error » qualifie le traitement

Les codes séparent requête malformée, interface locale inconnue, entrée de table absente et correspondances multiples. Le code 0, No Error, indique qu’aucune de ces erreurs de traitement n’est survenue. Il ne promet ni service fonctionnel, ni chemin retour, ni rétablissement.

Même le chronomètre doit rester attaché à son trajet. L’application décrite en annexe peut envoyer des requêtes successives et afficher un aller-retour. La section de gestion précise que ce temps mesure la route entre la sonde et le proxy, pas une propriété de l’interface observée. Un proxy très proche peut annoncer très vite un voisin dans un état indéterminé.

La hiérarchie de réalité évite cette promotion abusive. Une trame peut être valide, la route vers le proxy rapide et le cache fidèlement encodé, alors que l’application reste indisponible. La primauté du code en fonctionnement ne transforme pas un reçu en réalité physique ; elle oblige à nommer la couche où il a été produit.

Le silence n’a pas une cause unique

Extended Echo est désactivé par défaut. L’opérateur doit autoriser la fonction, les valeurs du bit L, les types de requête et les préfixes sources. Une requête non admise est silencieusement abandonnée. Un délai expiré peut donc traduire la politique, un filtre, l’absence d’implémentation, une limitation de débit ou une perte ; il ne diagnostique pas seul l’interface.

Ces précautions protègent des renseignements sensibles : noms et nombres d’interfaces, adresses, indices de bande passante, de constructeur ou de système. La révision 06 impose aussi de ne rien révéler entre VPN, network instances ou logical network elements. Une séparation doit produire No Such Interface, même si le matériel connaît l’autre côté.

Enfin, le checksum ICMP détecte les erreurs accidentelles, pas une modification volontaire. Le brouillon reconnaît qu’un attaquant sur le chemin peut falsifier la requête ou la réponse et recommande IPsec lorsque l’intégrité est nécessaire. « Paquet bien formé » et « témoignage attribuable au bon proxy » sont deux contrôles distincts.

Une révision compatible qui corrige le sens

La révision 06 est un Internet-Draft actif du groupe INTAREA, marqué Standards Track. Elle propose d’obsoléter RFC 8335, sans être encore un RFC. Les implémentations connues resteraient compatibles car les changements clarifient format et traitement sans modifier le comportement sur le fil.

Son enseignement le plus concret porte sur les mots. Présenter PROBE comme proche de ping a encouragé des raccourcis d’implémentation incompatibles avec RFC 4884. Présenter la sortie comme ping a ensuite encouragé des raccourcis de jugement. Une spécification initiale minimale peut être compacte ; elle ne doit pas devenir équivoque.

Le texte reste prudent sur la maturité : quelques expériences ont traversé des portions de l’Internet public, mais il n’existe pas de résultats expérimentaux étendus. Les sources ne prouvent ni déploiement généralisé, ni performance, ni incident réel.

Construire une chaîne de reçu

Une utilisation automatisée doit conserver l’identité des interfaces de sonde et de proxy, l’horodatage, l’identifiant cible, son type et le bit L, puis Code, State et A/4/6 sans réduction. Elle doit joindre l’autorisation, le network instance, la version d’implémentation, une observation indépendante du transfert et le résultat du service. La décision, son propriétaire et son retour arrière complètent le dossier.

PROBE peut faire progresser le diagnostic. Il ne doit pas, seul, certifier la joignabilité de bout en bout ou fermer l’incident. Le proxy est un témoin utile ; il n’est ni l’interface, ni tout le chemin, ni l’application.

Sources