Resumen

  • Una confederación BGP hace que varios Member-AS aparezcan como un único AS Confederation Identifier. AS_CONFED_SEQUENCE y AS_CONFED_SET conservan el recorrido dentro del dominio, pero deben eliminarse antes de anunciar la ruta a un peer externo.
  • La ocultación no vuelve irrelevante la topología interna. La membresía, LOCAL_PREF, MED, NEXT_HOP, los candidatos visibles y route reflection pueden cambiar una decisión o el forwarding sin alterar el AS_PATH que observa Internet.
  • El derecho a comprimir varias superficies operativas en una identidad pública depende de conservar la prueba anterior a la sanitización, asignar un responsable a cada frontera y poder revertir una migración de Member-AS con RIB, FIB y paquetes comprobados.

La escena ocurre durante una reorganización cuidadosamente planificada. Delta debe abandonar Member-AS 65021 y comenzar a operar en 65031. Ambos son miembros de la confederación 64500. Ningún contrato externo cambia: proveedores y clientes seguirán viendo el mismo ASN y no deberían conocer la estructura interna.

A la 01:40, el sistema de cambios marca Delta como completado. Sus sesiones externas están arriba. El route collector conserva 64500. La validez de origen pública no cambia. Desde la perspectiva del borde mundial, la red cumple exactamente el diseño.

Echo conserva una versión anterior de la pertenencia. Delta abre la conexión como 65031; Echo aún espera al miembro 65021. Una plataforma impide la adjacency por desacuerdo. Una ruta alternativa sigue activa, pero arrastra un NEXT_HOP que el nuevo IGP no alcanza. En otro nodo, el cambio de candidatos altera qué MED resulta comparable. El customer peer sigue verde mientras el prefijo desaparece de la forwarding table.

El incidente es sintético. La pérdida de información no lo es. RFC 5065 ordena quitar el recorrido de miembros en el borde externo. La confederación evita que una reforma interna se convierta en un cambio para todo Internet. Sin embargo, esa ventaja obliga a construir observabilidad dentro: el registro público nunca fue diseñado para demostrar qué miembro tomó una decisión.

Una identidad externa y varias autoridades locales

El AS Confederation Identifier representa a toda la confederación frente a speakers no miembros. Un Member-AS es uno de los sistemas autónomos internos; su Member-AS Number lo identifica ante los demás miembros. Esas identidades cumplen funciones distintas.

El router utiliza el identificador de confederación en OPEN y en el AS_PATH enviado fuera. En una sesión con otro miembro utiliza su número interno. El enlace entre miembros se establece con mecánica EBGP, aunque RFC 5065 exige tratar sus rutas como internas en partes importantes del proceso de selección.

La estructura reduce el full mesh que exigiría un único IBGP de gran tamaño. Cada Member-AS mantiene todavía su propio mesh o route-reflector design. También puede mantener un IGP, policy owner y presupuesto de fallo distintos. La confederación coordina esos dominios sin revelar cada ajuste a los vecinos públicos.

El número común es una especificación mínima para interoperar. No prueba que todas las decisiones estén centralizadas ni que todos los equipos compartan la misma información. Tampoco indica quién aceptó la ruta, quién asignó LOCAL_PREF, qué router resolvió el next hop o qué ASIC transportó el paquete. Confundir identidad con control convierte una comodidad de routing en una autoridad que el protocolo nunca otorgó.

El historial interno tiene fecha de caducidad

AS_CONFED_SEQUENCE registra de forma ordenada los Member-AS recorridos. AS_CONFED_SET conserva un conjunto no ordenado asociado, por ejemplo, a una agregación. Cuando un router anuncia hacia otro miembro, antepone su Member-AS Number al sequence o crea el segmento.

La secuencia participa en loop detection. Si un miembro recibe su propio número dentro de un segmento confederado, debe tratar la ruta como un bucle. Si encuentra el Confederation Identifier local en el camino ordinario, también reconoce el retorno de su identidad externa.

Al anunciar a un vecino que no pertenece a la confederación, el router debe eliminar todos los AS_CONFED segments. Después procesa el AS_PATH restante y antepone el identificador público como AS_SEQUENCE. RFC 6793 prohíbe transportar esos segmentos en AS4_PATH, de modo que la compatibilidad de ASN de cuatro octetos tampoco exponga la trayectoria interna.

El observador externo obtiene una verdad reducida: AS 64500 transportó la ruta. No puede deducir qué miembros la atravesaron. Esa limitación no es una carencia del collector; es el contrato. La evidencia útil para atribuir un fallo debe capturarse antes de que el borde ejecute la sanitización.

Una organización puede decidir que tal ocultación es apropiada. Lo que no puede hacer es usar el mismo registro reducido para afirmar que la política interna fue correcta. El campo borrado no deja de importar por haber sido borrado.

La membresía debe coincidir en ambos extremos

Un diagrama compartido no configura BGP. Cada neighbor necesita una interpretación ejecutable de su AS local, del peer AS y de la confederación. La referencia actual de Juniper advierte que las adjacencies no se forman si dos vecinos discrepan sobre si la conexión está dentro de una confederación.

RFC 5065 también exige que una ruta procedente de otro Member-AS comience con AS_CONFED_SEQUENCE. Un speaker no debe enviar esos segments fuera. Todo participante interno debe reconocerlos. Los externos no necesitan implementar la extensión porque nunca deberían verlos.

Una anomalía de formato no siempre derriba la sesión. RFC 7606 aplica treat-as-withdraw a un AS_PATH malformado: retira los NLRI afectados, conserva la conexión y evita destruir rutas no relacionadas. Es una reducción del daño, no una garantía de servicio. Dos routers internos pueden terminar con estados diferentes y causar blackhole, path subóptimo o loop persistente.

Por eso la secuencia de prueba incluye configuración, OPEN observado, segment type, policy action, Adj-RIB-In, Loc-RIB, recursion, FIB y paquete. “Peer up” solo describe la supervivencia de la conversación, no la validez de lo que queda en ella.

Externo en la sesión, interno en la decisión

La frontera entre miembros tiene dos naturalezas. La sesión es EBGP porque conecta AS numbers diferentes. La ruta se trata como interna para la preferencia IBGP/EBGP dentro de la misma confederación. Los segments confederados no cuentan en la longitud de AS_PATH.

LOCAL_PREF puede pasar entre miembros. NEXT_HOP y MED pueden conservarse. Esto permite que los subdominios formen un sistema común de policy, pero también exporta dependencias invisibles. Un next hop válido en un IGP compartido puede ser irresoluble si cada miembro ejecuta su propio IGP. RFC 5065 contempla que una policy deba modificarlo.

La comparación MED normalmente omite los segmentos confederados y examina el primer AS_SEQUENCE ordinario. Algunas implementaciones ofrecen comparaciones adicionales entre rutas recibidas de diferentes miembros. Una migración puede cambiar el conjunto de candidatos y, por tanto, el resultado, aunque los valores y el camino público parezcan iguales.

Ninguna ficha que diga solo “confed EBGP” expresa ese contrato. El runbook debe declarar por AFI/SAFI qué attributes cruzan, qué next hops son alcanzables, cómo se comparan rutas y quién puede cambiar la policy.

El ciclo que el collector no puede observar

Una configuración incorrecta puede producir rutas duplicadas, consumo innecesario, flaps y convergencia tardía. RFC 5065 también remite al persistent route oscillation de RFC 3345. Confederaciones y route reflectors pueden ofrecer conjuntos de candidatos distintos en lugares distintos; ciertas decisiones MED crean entonces un ciclo estable de inestabilidad.

El primer nodo selecciona A y deja de propagar B. Esa ausencia cambia la elección de otro nodo, que devuelve información capaz de hacer ganar B. El siguiente ciclo restaura A. El proceso puede continuar sin que el AS_PATH externo revele los confederation segments o los candidatos descartados.

IGP metrics congruentes con la topología, tie-breaks coherentes, filtros de duplicados y una distribución más rica de candidatos ayudan en escenarios concretos. Ninguno es un certificado universal. La prueba requiere guardar qué opciones vio cada decision point, qué MED eran comparables y por qué desapareció cada alternativa.

Una gráfica de best path solo registra el resultado. Para explicar oscilación se necesitan los inputs y el topology epoch. La diferencia determina si el operador puede reproducir el fallo o solo atribuirlo a “BGP inestable”.

Privado no significa único

Los rangos de private-use ASN definidos por RFC 6996 son 64512–65534 y 4200000000–4294967294. Se usan con frecuencia para Member-AS porque sus valores se eliminan antes del anuncio externo. RFC 5065, sin embargo, no obliga a elegir ASN privados; exige identidad coherente dentro del dominio.

Dos empresas pueden utilizar 65021 sin interferencia mientras sus redes estén separadas. Una adquisición o un interconnect de transición une los scopes y convierte la coincidencia en conflicto. Loop detection, filtros, logs y ownership pueden asignar dos significados al mismo número.

Hace falta un registro de Member-AS con owner, región, IGP, RR cluster, familias, capacidad de cuatro octetos, policy namespace y fecha de retiro. La revisión previa a una fusión debe comparar esos inventarios antes de conectar los backbones.

remove-private no demuestra que la confederación esté bien sanitizada. Juniper documenta que la eliminación de ASN privados se ejecuta después de retirar Member-AS confederados. Son controles distintos y deben tener observaciones distintas.

Un ledger situado antes del borde

Cada adjacency necesita un registro por AFI/SAFI: Member-AS local, peer esperado, identificador común, OPEN real, capacidades, AS_PATH raw, LOCAL_PREF, MED, NEXT_HOP, versión de policy, best-path reason y error action.

La evidencia se conserva en secuencia: Adj-RIB-In pre-policy y post-policy, candidatos Loc-RIB, Adj-RIB-Out hacia el siguiente miembro y Adj-RIB-Out externo ya sanitizado. El hash de la topología y la configuración une cada decisión al estado que la produjo.

Después se prueba recursion, FIB/ASIC y tráfico. Un camino BGP correcto no prueba reachability del next hop. Una entrada instalada no prueba el egress esperado. El collector público demuestra el statement final, no el proceso interno.

Las alertas deben detectar diferencias aunque nada caiga: peer AS inesperado, confed segment de un externo, ausencia del segmento entre miembros, collision privado, treat-as-withdraw con sesión viva, cambio de best path sin cambio público y repetición de un ciclo MED.

Renumerar es migrar un protocolo

El Member-AS Number participa en path construction, loop detection, policy matching, telemetry y responsabilidad. Cambiarlo puede reclasificar neighbors, modificar un RR domain y romper supuestos sobre NEXT_HOP. No es una etiqueta administrativa.

La matriz de cambio abarca routers, peers, policies, communities, monitoring, collectors y owners. Debe probar que el nuevo número es único en todos los scopes que se conectarán y que cada equipo soporta las extensiones y ASN de cuatro octetos necesarios.

El canary elige una frontera redundante, una familia y prefixes controlados. Compara en ambos sentidos OPEN, segments, candidates, selection, recursion, FIB y packets. La ventana de observación debe permitir que aparezcan cycles MED y efectos retardados de reflection.

Rollback significa restaurar número, membership list, peer type, policies, RR relationship, labels y route state. También define qué stale routes se limpian. Volver al fichero anterior sin demostrar el estado de forwarding no revierte el cambio.