Resumen

  • RFC 9524 hace que un Replication-SID invoque una lista local de ramas en un nodo SR. Una raíz, un tránsito, una hoja y un nodo Bud necesitan estados distintos.
  • Segmentos válidos por separado pueden componer un grafo incorrecto. Un bucle multiplica paquetes hasta que se agota el TTL MPLS o el Hop Limit de IPv6.
  • Para declarar activo un árbol hacen falta tres recibos sobre la misma versión: grafo dirigido sin ciclos, lectura de lo instalado en cada nodo y observación de las entregas previstas.

La trampa de sumar acuses positivos

Una raíz A replica hacia B y C. B conserva por error una rama de la versión anterior que devuelve tráfico a A. A encuentra su estado, B también, los siguientes saltos resuelven y ambos equipos contestan que la programación fue satisfactoria. Un monitor que solo cuenta acuses positivos verá salud perfecta. El conjunto forma un ciclo.

RFC 9524 describe la consecuencia: el aprovisionamiento incorrecto de Replication segments puede encadenarlos en un bucle, en particular cuando se configuran directamente los nodos sin plano de control. Las copias pueden provocar una tormenta hasta que el TTL de MPLS o el Hop Limit de IPv6 llega a cero. El campo de vida pone final al paquete, pero no valida el diseño.

La lección no es que los acuses carezcan de valor. Prueban una acción local concreta. El error consiste en concederles autoridad para una afirmación global: que todos los estados instalados, vistos como un grafo, forman el árbol completo, acíclico y ligado al servicio correcto.

El identificador apunta a una realidad local

Un Replication segment es una construcción lógica local de un nodo de replicación. Conecta ese nodo con un conjunto de nodos descendentes. Se identifica por <Replication-ID, Node-ID> y usa un Replication-SID en el plano de datos: una etiqueta en SR-MPLS o un SID en SRv6.

Al activarse, el SID consulta el Replication state local. Ese estado es conceptualmente una lista de ramas. Cada rama incluye nodo descendente, Replication-SID descendente y la forma de alcanzarlo. Puede tratarse de interfaz y siguiente salto, ruta con restricciones, lista de SID o SR Policy. El estado puede configurarse en el equipo o programarse desde un plano de control.

Por eso el valor del SID no es una descripción compacta del árbol. Necesita nodo propietario, generación de estado, rol, ramas y periodo de vigencia. Si un inventario conserva solo el número, guarda el índice y pierde aquello que el índice nombraba.

Una lista vacía puede ser el resultado correcto

La lista de ramas puede estar vacía. En una hoja no hay que continuar replicando; aun así, su Replication-SID puede identificar el servicio multipunto. RFC 9524 mantiene el nombre Replication segment por generalización. Un Bud es simultáneamente nodo de replicación y hoja, de modo que replica hacia abajo y entrega localmente.

El mismo dato, cero ramas, significa «terminal correcto» para una hoja prevista y «entrega cortada» para una raíz o tránsito. Una comprobación de presencia no decide entre ambos casos. Tampoco sirve imponer que toda lista tenga elementos. La evaluación necesita rol esperado, ramas esperadas, ramas leídas y comportamiento observado.

El tiempo forma parte de esa evaluación. Un cambio de hoja a Bud, o una modificación del conjunto de hojas, invalida la interpretación anterior aunque el número del SID continúe visible.

Lo que ejecutan SR-MPLS y SRv6

En SR-MPLS, el nodo extrae el Replication-SID activo y crea una copia por cada rama local. En cada copia introduce el Replication-SID descendente y las etiquetas necesarias para el trayecto. La entrega local en hojas y Bud depende todavía de la configuración del nodo.

En SRv6, End.Replicate obtiene el estado mediante la parte funcional del SID. Si no existe, descarta. Comprueba y reduce el Hop Limit, procesa la información SRH permitida y crea una copia por rama. La dirección destino de cada copia pasa a ser el Replication-SID descendente y puede añadirse una lista de segmentos.

Un resultado satisfactorio demuestra que un nodo ejecutó una versión de su lista. No demuestra que el siguiente nodo tenga estado compatible, que todas las hojas sean alcanzables, que ninguna rama regrese a un antecesor ni que la entrega use el contexto VPN apropiado.

Al coser segmentos cambia la unidad de verdad

Los Replication segments de raíz, nodos intermedios y hojas pueden coserse para formar un árbol. RFC 9524 deja el procedimiento concreto a otras especificaciones, pero exige que una especificación de plano de control prevenga los bucles o los detecte y mitigue en estado estable. Las cadenas aprovisionadas localmente no deberían formar ciclos.

RFC 9960 formalizó después la SR P2MP Policy: raíz, conjunto de hojas y candidate paths. Un candidate path puede instanciar un P2MP tree instance, y un controlador programa los Replication segments que lo componen. RFC 10018 conectó estos árboles con los procedimientos MVPN y EVPN.

Son capas relacionadas, no sinónimos. El Replication-SID es un manejador local; el estado, un plan local de ramas; el tree instance, una composición entre nodos; la intención de servicio define raíz, hojas y contexto; la observación dice qué copias llegaron. El éxito de una capa anterior no certifica silenciosamente la posterior.

El TTL limita daños, no inspecciona grafos

Que un paquete en bucle termine al llegar su TTL a cero solo garantiza que no vivirá para siempre. Si cada pasada genera varias copias, el volumen depende del factor de ramificación, la vida inicial y la ubicación del ciclo. Una tormenta acotada puede seguir siendo operativamente devastadora.

SRv6 también permite un IPv6 Hop Limit Threshold. Un nodo descarta por debajo del umbral y registra de forma limitada. Entre sus fines está reducir el riesgo de una tormenta de errores ICMPv6 cuando nodos ordinarios consumen el Hop Limit. A la vez, el umbral debe permitir llegar a la hoja legítima más lejana.

El umbral gobierna la vida restante de una ejecución. No calcula ciclos, no comprueba que estén todas las hojas y no detecta una rama indebida que no cierre un bucle. La prueba estructural y la contención temporal son controles diferentes.

Un ping no enumera la topología

RFC 9524 permite dirigir un ping al Replication-SID de una hoja o Bud. Si la petición cruza un tránsito de replicación, puede copiarse hacia otras hojas, que la descartan por una suma de comprobación incorrecta para su dirección. Tampoco se dispone del traceroute convencional a través del árbol, pues no se originan los ICMPv6 Time Exceeded esperados en el recorrido replicado.

Una respuesta confirma que un destinatario respondió bajo aquel estado. No enumera ramas, no demuestra ausencia de ciclos ni acredita que todas las hojas recibieron tráfico de servicio. La evidencia OAM debe conservar objetivo, hora, generación y limitaciones.

El expediente mínimo de un árbol

El primer recibo corresponde al grafo. Debe contener versión de servicio y policy, raíz, conjunto de hojas, restricciones, grafo dirigido calculado y resultado de la comprobación de ciclos sobre esa misma versión. Cada arista se resuelve a nodo propietario, Replication-SID descendente y objeto de alcance.

El segundo recibo corresponde a la instalación. Cada nodo afectado devuelve generación, rol, SID local, ramas, indicador de entrega local y momento efectivo. En un despliegue gradual se registra el orden, porque dos estados finales seguros pueden formar un bucle transitorio o un agujero negro durante la mezcla.

El tercero corresponde al resultado: paquetes de entrada, copias generadas, contadores por rama, descartes por TTL o Hop Limit y observación en cada hoja prevista. Una hoja activa no representa al conjunto. Un aumento de copias por paquete sin nuevas hojas merece investigación propia.

Los tres permiten una declaración delimitada: esta versión calculó este grafo; estos nodos leyeron estados coincidentes; durante este intervalo se observaron estos resultados. Precisamente porque no promete más, la declaración puede verificarse, automatizarse y revocarse.

Fuentes

Fuentes