Résumé
- Dans RFC 9524, un Replication-SID appelle l’état de branches propre à un nœud SR. La liste peut être remplie à la racine, vide sur une feuille, ou coexister avec une livraison locale sur un nœud Bud.
- Des segments localement valides peuvent composer un graphe fautif. Une boucle de réplication multiplie les paquets jusqu’à épuisement du TTL MPLS ou du Hop Limit IPv6.
- Déclarer un arbre actif suppose trois reçus alignés sur la même version : graphe contrôlé contre les cycles, lecture de l’état réellement installé, puis observation des livraisons attendues.
Trois succès locaux, une catastrophe globale
Prenons une racine A qui duplique vers B et C. Une ancienne branche de B pointe encore vers A. Chaque routeur possède bien son Replication-SID, trouve son prochain saut et exécute la liste qu’il a reçue. Si la supervision additionne les réponses « configuration réussie », elle affiche du vert partout. Le graphe complet contient néanmoins un cycle.
RFC 9524 décrit expressément ce cas. Un mauvais provisionnement peut former une chaîne bouclée de Replication segments, notamment lorsque chaque nœud est configuré sans plan de contrôle. Les copies peuvent alors provoquer une tempête jusqu’à ce que le TTL MPLS ou le Hop Limit IPv6 atteigne zéro. Cette extinction borne la durée d’un paquet ; elle ne certifie ni la structure ni le service.
La distinction est décisive pour l’automatisation. Un équipement peut attester qu’il a accepté et exécuté son état. Il ne peut, par cette seule attestation, garantir que les états de tous les autres équipements s’assemblent en un arbre complet, sans cycle et rattaché au bon service.
Ce que désigne réellement le SID
Le Replication segment est une construction logique locale au nœud de réplication. Il relie ce nœud à un ensemble de nœuds aval. Son identité est le couple <Replication-ID, Node-ID>. Le Replication-SID est son identifiant dans le plan de données : étiquette pour SR-MPLS ou SID pour SRv6.
Lorsqu’il est actif, le Replication-SID sélectionne un Replication state local. Cet état est, conceptuellement, une liste de branches. Une branche mentionne le nœud aval, son Replication-SID et la manière de l’atteindre. Celle-ci peut être une interface et un prochain saut, un chemin contraint, une liste de SID ou une SR Policy. L’état peut provenir d’une configuration locale ou d’un plan de contrôle.
Le numéro du SID ne résume donc pas l’arbre. Il prend son sens avec son nœud propriétaire, le rôle, la génération de l’état, les branches et la période d’effet. Conserver uniquement le numéro revient à garder l’index d’un dossier en jetant le contenu et la date de validité.
Une liste vide peut être exacte
La liste de branches peut être vide. Sur une feuille, aucune réplication supplémentaire n’est nécessaire ; son Replication-SID peut néanmoins identifier le service multipoint. RFC 9524 continue à parler de Replication segment par généralisation. Un nœud Bud cumule, lui, les fonctions de réplication et de feuille : il produit des copies en aval tout en livrant localement.
Ainsi, « zéro branche » peut décrire une feuille saine ou une racine cassée. La simple présence d’un état ne prouve pas une action utile, et un seuil uniforme sur le nombre de branches génère de mauvaises conclusions. Il faut comparer rôle attendu, branches attendues, branches installées et comportement observé.
Cette comparaison doit être versionnée. Une feuille transformée en Bud ou un ensemble de feuilles modifié rend l’ancienne interprétation obsolète, même si le SID et le compteur local continuent d’exister.
Deux plans de données, la même limite de preuve
En SR-MPLS, le nœud retire le Replication-SID actif puis crée une copie pour chaque branche de l’état local. Il pousse sur chaque copie le Replication-SID aval et les étiquettes nécessaires au chemin. La livraison locale d’une feuille ou d’un Bud relève encore d’une configuration propre au nœud.
En SRv6, le comportement End.Replicate recherche l’état à partir de la partie fonction du SID. L’absence d’état entraîne l’abandon. Le nœud contrôle puis décrémente le Hop Limit, traite les informations SRH permises localement et fabrique une copie par branche. Chaque copie reçoit le Replication-SID aval comme adresse de destination et, si nécessaire, une liste de segments.
Le succès de ces opérations établit une proposition limitée : ce nœud a trouvé cette version d’état et l’a exécutée. Il ne dit pas que le nœud suivant possède l’état correspondant, que toutes les feuilles sont atteignables, qu’aucune branche ne revient vers un ancêtre ou que le contexte VPN convient au paquet.
L’assemblage change l’objet que l’on doit prouver
Plusieurs Replication segments peuvent être assemblés à la racine, sur les nœuds intermédiaires et aux feuilles pour former un arbre point-à-multipoint. RFC 9524 laisse les procédures d’assemblage à d’autres textes. Il exige toutefois qu’une spécification de plan de contrôle prévienne les boucles, ou les détecte et les atténue en régime stable ; une chaîne configurée localement ne devrait pas boucler.
RFC 9960, publié ensuite, formalise la SR P2MP Policy. Elle comporte une racine, un ensemble de feuilles et des candidate paths. Un candidate path peut instancier un P2MP tree instance dont un contrôleur programme les Replication segments. RFC 10018 rattache plus tard ces arbres aux procédures MVPN et EVPN.
Cette succession montre cinq unités de vérité. Le Replication-SID est un pointeur local. Le Replication state est un plan local de branches. Le tree instance est un graphe composé. L’intention de service définit racine, feuilles et contexte VPN. L’observation de livraison décrit les copies effectivement reçues. Un feu vert au premier niveau n’acquiert pas spontanément l’autorité des quatre suivants.
Le TTL est un fusible, pas un audit de topologie
Dire qu’une boucle finira lorsque le TTL arrivera à zéro revient à confondre limitation et correction. À chaque passage, plusieurs copies peuvent être créées. Le volume total dépend du facteur de branchement, de la durée de vie initiale et de la position du cycle. Une tempête finie reste une tempête.
SRv6 prévoit aussi un IPv6 Hop Limit Threshold facultatif. Un nœud rejette un paquet sous ce seuil et journalise de manière limitée. Cette précaution réduit notamment le risque d’une avalanche de messages ICMPv6 produits lorsque des nœuds de transit amènent le Hop Limit à zéro. Le seuil doit toutefois permettre d’atteindre la feuille légitime la plus éloignée.
Le seuil protège l’exécution contre certaines durées de vie dangereuses. Il ne recherche pas un cycle, ne vérifie pas la complétude des feuilles et ne détecte pas une branche indésirable mais non cyclique. Le contrôle de graphe et le contrôle de durée répondent à deux questions différentes.
Un Echo Reply ne dessine pas les branches
RFC 9524 permet un ping vers le Replication-SID d’une feuille ou d’un Bud. Une requête traversant un nœud de réplication intermédiaire peut être copiée vers d’autres feuilles, qui la rejetteront éventuellement à cause d’une somme de contrôle inadaptée à leur adresse. Le traceroute classique de l’arbre n’est pas disponible, car ce comportement ne génère pas les messages ICMPv6 Time Exceeded attendus sur le chemin répliqué.
Une réponse confirme donc l’accessibilité d’un répondant dans les conditions du test. Elle n’énumère pas les branches, ne prouve pas l’absence de cycle et ne garantit pas la livraison à toutes les feuilles. Le résultat OAM doit garder sa cible, son instant, sa génération d’état et ses limites.
Trois reçus avant le mot « actif »
Le reçu de graphe conserve la version de service et de policy, la racine, les feuilles voulues, les contraintes, le graphe orienté calculé et le résultat de détection des cycles sur cette version précise. Chaque arête doit se résoudre en nœud propriétaire, Replication-SID aval et objet de joignabilité.
Le reçu d’installation provient de chaque nœud concerné. Il contient génération de configuration, rôle, SID local, branches lues après écriture, indication de livraison locale et heure effective. Lors d’un déploiement progressif, l’ordre compte : deux états finaux sûrs peuvent former temporairement une boucle ou un trou noir lorsqu’ils se mélangent.
Le reçu de résultat rapproche les paquets entrants, les copies produites, les compteurs de branches, les abandons TTL ou Hop Limit et les observations de chaque feuille attendue. Une feuille qui reçoit ne représente pas tout l’ensemble ; un rapport copies/entrées qui bondit sans nouvelles feuilles est un signal autonome.
Ces reçus permettent une affirmation rigoureuse : cette version de policy a produit ce graphe ; ces nœuds ont installé les états correspondants ; pendant cet intervalle, ces feuilles ont montré ces résultats. La phrase est bornée, donc vérifiable et révocable.
Sources
- RFC 9524, notice
- RFC 9524, HTML
- RFC 9524, texte
- RFC 9524, XML
- Fiche IETF Datatracker
- API IETF Datatracker
- RFC 8402 : architecture Segment Routing
- RFC 8660 : SR-MPLS
- RFC 8754 : IPv6 Segment Routing Header
- RFC 8986 : programmation SRv6
- RFC 7988 : MVPN avec BIER
- RFC 6513 : multicast dans les VPN IP MPLS/BGP
- RFC 7432 : EVPN fondé sur BGP MPLS
- RFC 9960 : SR P2MP Policy
- RFC 10018 : MVPN et EVPN avec SR P2MP et IR
- Heng Lu : Reality Layers
- Heng Lu : Running-Code Primacy
- Heng Lu : Minimum Initial Specification
Sources
- https://www.rfc-editor.org/info/rfc9524
- https://www.rfc-editor.org/rfc/rfc9524.html
- https://www.rfc-editor.org/rfc/rfc9524.txt
- https://www.rfc-editor.org/rfc/rfc9524.xml
- https://datatracker.ietf.org/doc/rfc9524/
- https://datatracker.ietf.org/api/v1/doc/document/rfc9524/
- https://www.rfc-editor.org/rfc/rfc8402.html
- https://www.rfc-editor.org/rfc/rfc8660.html
- https://www.rfc-editor.org/rfc/rfc8754.html
- https://www.rfc-editor.org/rfc/rfc8986.html
- https://www.rfc-editor.org/rfc/rfc7988.html
- https://www.rfc-editor.org/rfc/rfc6513.html
- https://www.rfc-editor.org/rfc/rfc7432.html
- https://www.rfc-editor.org/rfc/rfc9960.html
- https://www.rfc-editor.org/rfc/rfc10018.html
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
Briefing des membres
Contexte approfondi du profil
Connectez-vous avec le bon niveau d'adhésion pour débloquer le briefing complet et les notes de source.
Réservé à Strategic Circle
Strategic Circle
Ouvert à tous les lecteurs. Débloquez les briefings de profil après adhésion et connexion.
Rejoindre Strategic CircleRéservé aux membres de Leadership Alliance
Leadership Alliance
Réservé aux propriétaires et dirigeants qualifiés d'actifs IP ; connectez-vous pour débloquer les briefings Alliance.
Rejoindre Leadership Alliance
