Resumen

  • Los 96 bits de RFC 8092 resuelven la falta de espacio para ASN de cuatro octetos y dos datos locales completos. No autentican al escritor, no preservan integridad de extremo a extremo y no obligan al AS nombrado a actuar.
  • El control real aparece cuando la política receptora vincula vecino, relación, función y parámetro a una acción. La prueba debe recorrer UPDATE, Adj-RIB-In, normalización, regla, Loc-RIB, Adj-RIB-Out, FIB y paquetes.
  • El despliegue seguro limpia órdenes no autorizadas del namespace propio, conserva señales extranjeras legítimas, define conflictos y agregación, ensaya emisores negativos y hace rollback de estado, no solo de configuración.

Doce octetos no son una credencial

Supongamos que AS 4200004100 compra tránsito a dos proveedores y participa en un route server. Uno de los proveedores publica una función para reducir LOCAL_PREF en una zona y otra para evitar la exportación hacia una clase de peers. Durante congestión, el cliente añade ambos tripletes a un prefijo de canario.

El proveedor A comprueba que la sesión pertenece al cliente autorizado, que las dos funciones forman parte de su contrato y que los parámetros están dentro del dominio permitido. Conserva la entrada original, registra el match y muestra el cambio de preferencia. Sus Adj-RIB-Out delimitan la propagación; la FIB y las sondas confirman el movimiento de tráfico.

El proveedor B tiene una migración partida. Algunos bordes reciben Large Communities, pero una plantilla antigua elimina el atributo antes de la política central. Las sesiones y el número de rutas parecen normales. La orden no se rechaza ni se ejecuta: desaparece. Un panel basado en verde/rojo no detecta la diferencia.

En el proveedor C, cualquier vecino puede adjuntar el namespace del propio operador. La regla busca el triplete, no la identidad del principal. Así, una ruta perfectamente codificada desde una relación no autorizada accede a un mando interno. No hay falsificación sintáctica; hay una delegación involuntaria.

Esta distinción importa más que la compatibilidad de plataforma. Que un router pueda leer un atributo no dice quién puede escribir una instrucción, qué versión de significado se aplicó ni si el resultado llegó al plano de datos.

El problema que resolvió RFC 8092

RFC 1997 creó Communities de cuatro octetos. La costumbre ASN:valor dividió ese espacio en dos mitades de 16 bits. Funcionó mientras el número que debía figurar a la izquierda cabía allí. La transición a ASN de cuatro octetos eliminó esa suposición.

Las Extended Communities disponen de ocho octetos y tipos propios. RFC 5668 incluye un formato cuyo Global Administrator admite un ASN completo, pero deja dos octetos para Local Administrator. No permite expresar cómodamente dos componentes locales de 32 bits, algo habitual en políticas que quieren identificar función y parámetro sin comprimirlos.

Large Communities ofrecen tres enteros de cuatro octetos: Global Administrator, Local Data Part 1 y Local Data Part 2. IANA registra el atributo con type code 32. RFC 8195 describe una convención útil: ASN:Función:Parámetro.

La norma no crea un repertorio universal. Cada operador controla la semántica de su espacio. Esa decisión mantiene el mecanismo pequeño y adaptable, en el espíritu de una especificación inicial mínima: la coordinación futura puede crecer donde haya adopción. También impide atribuir al formato la autoridad que solo existe en la política local en ejecución.

El ASN de la izquierda nombra; no firma

Cuando el Global Administrator es un ASN, su titular define cómo interpretar los dos campos locales. Eso ordena nombres. No asegura quién adjuntó cada instancia del triplete.

Una ruta con 64497:9:3 pudo recibir la marca en el origen, en un tránsito intermedio o en el vecino inmediato. El valor pudo haberse conservado, sustituido o añadido. RFC 8092 permite esas operaciones y advierte que el atributo no protege su integridad. Por tanto, ni el primer campo demuestra autoría ni el conjunto demuestra una cadena de custodia.

La prohibición operativa de algunos valores tampoco es autenticación. RFC 8092 desaconseja 0, 65535 y 4294967295 como Global Administrator. Aun así, un valor reservado o sin asignar no convierte automáticamente el atributo en bytes malformados. Validar estructura, evaluar plausibilidad y autorizar un emisor son decisiones separadas.

Proteger la sesión identifica al par del salto, no a todos los escritores anteriores de un atributo transitivo. RPKI origin validation responde otra pregunta: si el origin AS está autorizado a originar el prefijo conforme a un ROA. No certifica quién puso una comunidad ni si puede cambiar la preferencia dentro de un tercero.

Telemetría y mando ocupan la misma forma

RFC 8195 separa comunidades informativas y de acción. Las primeras describen, por ejemplo, lugar de ingreso, tipo de relación o audiencia. Las segundas solicitan alterar anuncio, LOCAL_PREF, next-hop o AS_PATH prepend.

El receptor solo sabe a qué grupo pertenece una función consultando su diccionario. Si ese diccionario es privado, ambiguo o distinto entre routers, un mismo valor puede ser observación en un equipo y orden en otro. El error aparece aunque todos los parsers sean conformes.

Conviene asignar rangos distintos a información y acción. Para cada acción hay que declarar dueño, emisores permitidos, dominio del parámetro, AFI/SAFI, precedencia frente a otras funciones, caducidad y método de reversión. Una región debe ser un conjunto definido, no una intuición. Un prepend count debe tener límite. «No exportar a peers» necesita una clasificación de relaciones y una respuesta cuando coexiste con «anunciar a todos».

Publicar el catálogo reduce la asimetría entre proveedor y cliente. Pero la página pública sigue siendo especificación. La verdad ejecutable está en la versión cargada en cada caja. Una auditoría útil compara ambas y registra cuál actuó sobre la ruta concreta.

La frontera correcta no es borrar todo

BCP 194, publicado como RFC 7454, recomienda retirar en ingress las communities que usan el ASN propio, salvo las autorizadas para esa relación. Al mismo tiempo, desaconseja borrar todas las communities extranjeras, porque pueden ser mensajes destinados a redes posteriores.

Traducido a Large Communities, el receptor necesita cuatro clases. Primero, órdenes de namespace propio expresamente concedidas al vecino. Segundo, datos propios que la relación permite transportar. Tercero, valores ajenos que deben seguir transitivos aunque el receptor no los entienda. Cuarto, valores prohibidos, obsoletos o incompatibles.

Preservar sin clasificar permite fabricar una orden del proveedor. Eliminar sin clasificar destruye la capacidad de coordinar con el downstream. Una operación de set que reemplaza el atributo borra además contexto previo; una operación additive lo conserva, pero puede acumular contradicciones si no existe limpieza por versión.

Los route servers muestran por qué no sirve una regla universal de desconfianza. RFC 7948 contempla que un cliente controle qué otros clientes reciben su ruta. Los ejemplos de RFC 8195 incluyen anunciar a todos, anunciar a ninguno y añadir excepciones. Allí el derecho a influir en Adj-RIB-Out es parte del servicio. Sigue siendo necesario autenticar la sesión, limitar las funciones por cliente, resolver valores opuestos y verificar cada salida. Copiar esa política a un tránsito bilateral cambiaría completamente el límite de autoridad.

Las comunidades forman un conjunto, no una frase

RFC 8092 define un conjunto sin orden. La posición de un valor en la codificación no expresa prioridad. Cualquier regla «ejecuta el primero» depende de un detalle que un vecino, una normalización o una nueva versión puede cambiar.

No deben enviarse duplicados; el receptor los elimina silenciosamente. Un duplicado no equivale a dos avales. También hay que distinguir match parcial de igualdad del conjunto completo. contains 64497:9:3, match-any, match-every y exact-set responden preguntas diferentes. IOS XR documenta formas de coincidencia, adición, borrado y filtrado; FRRouting permite inspeccionar valores y conjuntos exactos, también en JSON. La herramienta expone estado, no diseña la política.

La agregación complica aún más la lectura. El aggregate debe incluir la unión de las Large Communities de sus componentes. Esa unión preserva información, pero no indica que todos los more-specific compartieran la petición. Si se va a ejecutar una función heredada por un agregado, debe existir una norma específica y evidencia de sus contribuyentes.

Dos fallos, dos tratamientos

La longitud de un atributo Large Communities ha de ser un múltiplo no nulo de doce octetos. Si no lo es, RFC 8092 aplica el tratamiento revisado de RFC 7606: treat-as-withdraw.

El peer no tiene por qué caer. Precisamente por eso, un monitor de sesiones puede permanecer verde mientras las NLRI afectadas dejan de ser utilizables. La observabilidad debe unir el error de atributo con el delta de Adj-RIB-In, el best path y los paquetes.

Una comunidad de doce octetos bien construida pero emitida por un principal no autorizado no es el mismo caso. La política debe registrar la denegación. Puede quitar solo la función local y conservar la ruta, rechazar el anuncio según contrato o aislarlo. Presentarlo como «atributo inválido» elimina la capacidad de saber si fallaron wire format, vocabulario o permiso.

La coexistencia legacy es una época de riesgo

Durante una migración, algunos sistemas producen la Community antigua, otros la nueva y otros ambas. El doble marcado reduce incompatibilidad, pero puede ejecutar dos veces o producir efectos distintos si los diccionarios dejaron de ser equivalentes. Una ruta que llega a un collector con el triplete nuevo demuestra transporte; no demuestra que la política de decisión lo use.

El ensayo necesita un prefijo inocuo con resultado cuantificable. Hay que capturar comunidades legacy y large tal como entraron, el conjunto tras el scrub, identificador de política, cambio de atributo, selección Loc-RIB, Adj-RIB-Out por vecino, FIB y sondas. Debe incluir una sesión autorizada y otra no autorizada. Los errores de longitud pertenecen al laboratorio. Si se agregan prefijos, también se prueba la unión.

Deshacer el cambio de configuración no siempre deshace el estado. La ruta puede conservar una preferencia hasta una revaluación. Route refresh tiene un alcance; hard reset, otro mucho mayor. Cuando varias redes quedaron en un estado estable pero no deseado —el tipo de BGP wedgie estudiado en RFC 4264— recuperar la intención puede exigir coordinación, no una línea revertida.

Evidencia que no salta capas

El registro mínimo contiene vecino, clase de relación, prefijo, AFI/SAFI, época de sesión, bytes y conjunto recibidos, resultado de parsing, conjunto normalizado, valores retirados o añadidos, versión de diccionario, autorización, regla y atributos resultantes. Después incorpora motivo de selección, Adj-RIB-Out individuales, next-hop instalado y observaciones de tráfico.

Con eso pueden separarse las preguntas: ¿se transportó?, ¿estaba formado?, ¿tenía permiso?, ¿qué significaba aquí?, ¿se ejecutó?, ¿cambió el forwarding?, ¿sobrevivió hacia el siguiente dominio?

Un route collector solo observa una exportación desde un lugar. No autentica al primer escritor, no ve cambios internos de LOCAL_PREF y no explica por sí mismo la ausencia. Esa modestia probatoria evita convertir una captura útil en una autoridad que no posee.

Sources