Résumé

  • RFC 3063 faisait attendre l’allocation du label jusqu’au retour du fil ; la prévention d’une boucle devenait une condition d’établissement du chemin, plutôt qu’une déduction tirée de la seule route.
  • La couleur, le compteur de sauts et le TTL du fil tenaient dans un état de taille fixe ; la garantie restait toutefois celle de la procédure, sans prouver le déploiement ni la livraison des paquets.

Le label venait en dernier

Le choix le plus intéressant de RFC 3063 n’est pas simplement de détecter une boucle. Il consiste à relier cette détection à un acte décisif : tant que le fil de contrôle n’a pas été rembobiné, le nœud ne diffuse pas la correspondance de label dans le mode de prévention.

MPLS ne demande pas à chaque routeur de relire toute la route pour chaque paquet. Un routeur de commutation par labels associe un label à une classe d’équivalence de transfert, ou FEC. Si le prochain saut change alors que l’état de routage de couche 3 forme une boucle, distribuer trop tôt le label peut installer un LSP qui hérite de cette boucle. RFC 3063 fait donc de l’établissement du chemin un sas : le chemin candidat doit d’abord satisfaire les règles du fil ; la correspondance vient ensuite.

Publié en février 2001, le texte est expérimental : il ne définit pas une norme Internet. Il décrit le fil comme une suite de messages de contrôle de chemin, dotée de trois attributs : une couleur, un compteur de sauts et un TTL. La couleur associe l’adresse IP du nœud initiateur à un identifiant d’événement local censé être unique. Une couleur répétée ou revenue vers un nœud révèle le retour d’un fil. Le compteur de sauts maintient une mesure croissante le long du chemin ; une valeur spéciale « inconnue » traite certains cas de boucle. Le TTL limite la portée d’un message qui continuerait à circuler.

Il protège contre une circulation indéfinie, mais ne constitue pas à lui seul la preuve d’absence de boucle.

Les routeurs peuvent prolonger un fil vers la sortie, fusionner des fils compatibles, immobiliser celui qui revient avec une couleur déjà observée, le retirer après la perte d’un prochain saut, ou le rembobiner en renvoyant des accusés de réception le long du trajet. Le mode de prévention attend ce rembobinage avant d’envoyer le label. Le mode de détection est différent : le routeur peut répondre immédiatement avec une correspondance quand il reçoit un fil coloré, mais cette réponse ne rembobine pas le fil. Parler d’un seul comportement de « prévention » effacerait donc une distinction opérationnelle importante.

Le coût de contrôle est lui aussi délimité. Contrairement à un vecteur de chemin dont la taille augmente avec la longueur du LSP, l’objet fil reste de taille fixe. Les routeurs conservent temporairement couleur et compteur de sauts sur les liens concernés ; après le retour du fil, la couleur active peut être abandonnée et le compteur suffit. RFC 3063 soutient que ce choix borne la taille des messages et ne mobilise, lors d’un changement de prochain saut, que les nœuds en aval du chemin candidat. Il s’agit de l’argument de conception des auteurs, pas d’une mesure publiée sur un réseau exploité.

Le texte permet aussi de conserver l’ancien chemin si le nouveau rencontre une boucle de couche 3, mais il laisse ce choix à l’implémentation. Il décrit l’adaptation aux deux modes d’allocation ordonnée, la coexistence avec ou sans fusion VC et le partage de charge par des fils distincts. Ces possibilités élargissent l’algorithme proposé ; elles ne prouvent pas qu’un équipement l’ait implémenté ni qu’un opérateur l’ait utilisé.

Un reçu du plan de contrôle, pas une trace de paquets

L’architecture MPLS de RFC 3031 distingue les procédures de distribution des labels de leur application dans le plan de transfert. Un fil rembobiné atteste donc un état précis du plan de contrôle examiné par l’algorithme. Il ne montre pas que toutes les tables de transfert ont reçu le bon label, que des paquets ont parcouru le chemin ni qu’aucune boucle transitoire n’est survenue dans un autre ordre d’événements. Pour cela, il faut des éléments du plan de données : état FIB, compteurs, sondes et fenêtre d’observation définie.

La spécification LDP ultérieure RFC 5036 décrit une détection de boucle configurable avec des TLV Path Vector et Hop Count. Le vecteur répertorie les identifiants des routeurs traversés ; une répétition ou une limite configurée entraîne le traitement d’une boucle. Cette méthode de la spécification LDP sur la voie des normes diffère du fil expérimental de RFC 3063. Sa présence ultérieure ne mesure pas la part de déploiement de ce fil et ne prouve pas que le processus de normalisation l’ait écarté pour des raisons techniques.

RFC 5715 traite plus tard de la convergence sans boucle après des changements de topologie : problème voisin, mais distinct de celui d’empêcher l’établissement d’un LSP cyclique.

La leçon historique ne demande donc ni proclamation de succès ni récit d’échec. RFC 3063 plaçait un reçu du plan de contrôle avant la diffusion du label et évitait d’embarquer un vecteur de chemin toujours plus long. Le chemin obtenu était sans boucle selon le modèle du RFC ; l’implémentation réelle, le maintien de l’ancien chemin et la livraison des paquets restent des questions séparées.