Resumen

  • Cada hablante BGP escucha TCP 179 y también puede iniciar. Si ambos arrancan juntos, dos conexiones completas pueden representar un solo peering; RFC 4271 obliga a cerrar una.
  • Sobrevive la conexión iniciada por el hablante con mayor BGP Identifier. Si dos pares externos usan el mismo Identifier, RFC 6286 desempata con el mayor número de AS.
  • Es un orden determinista, no autenticación. Hacen falta identificadores únicos y estables, protección del transporte y un canario que prediga el socket ganador.

Al acabar el mantenimiento, A abre hacia B y B hacia A. Cada intento llega al listener contrario. Durante unos instantes existen dos cuádruplas invertidas, dos espacios TCP, dos FSM BGP y dos OPEN.

Esto no es el simultaneous open de TCP, donde SYN cruzados convergen en una sola conexión. Aquí ya hay dos conexiones independientes. BGP no puede fusionar sus secuencias, temporizadores e historial; mantenerlas crearía dos autoridades para un peering.

Una elección compartida, no una carrera

RFC 4271 define la colisión cuando origen y destino de una conexión son el inverso de la otra para los mismos hablantes. OPEN revela el Identifier remoto y permite agrupar los FSM.

Se comparan como enteros sin signo de cuatro octetos. Se conserva la conexión iniciada por el hablante con Identifier mayor. Si el local es menor, cierra su conexión OpenConfirm existente y acepta la iniciada por el remoto; de lo contrario, descarta la nueva.

“Nueva” y “existente” cambian según el extremo, pero la comparación común hace que ambos elijan el mismo transporte. El número mayor no otorga jerarquía; solo impide que la latencia decida.

RFC 4486 asigna Cease 7, Connection Collision Resolution. Explica el cierre, pero la prueba debe seguir además la cuádrupla superviviente hasta KEEPALIVE y rutas.

No toda sesión paralela es colisión

Dos routers pueden configurar varios peerings con pares de direcciones distintos. Una sesión de loopback y otra de interfaz pueden tener políticas independientes. Agrupar por ASN y dejar una destruye redundancia; separar solo por puerto efímero esconde la colisión.

El inventario debe unir direcciones, instancia y política. Activo y pasivo son roles TCP temporales. Una vez Established, BGP no trata distinto al extremo que usó el puerto 179.

RFC 6286 separó el Identifier de IPv4

RFC 6286 lo redefine como entero no nulo de cuatro octetos, único dentro del AS, sin exigir una dirección IPv4 unicast. Los valores antiguos siguen siendo válidos.

Dos AS diferentes pueden usar el mismo valor. En una colisión externa con Identifiers iguales, sobrevive la conexión iniciada por el mayor AS. No se aplica dentro de un AS: allí la igualdad viola unicidad. Una confederación completa cuenta como un AS.

La igualdad externa solo es segura si ambos lados soportan la revisión. Sin prueba bilateral, el caso límite puede recibir decisiones incompatibles.

El valor participa en más estado

El Identifier también aparece en agregación, reflexión y algunas comparaciones finales. Cambiarlo puede reiniciar sesiones y alterar identidad reflejada y diagnóstico.

FRRouting expone bgp router-id y advierte que sin datos de interfaces el automático puede quedar en el inválido 0.0.0.0. BIRD exige valor no nulo y único, con otra selección por defecto. Por eso se fija e inventaría por proceso y VRF.

Clones, reemplazos e interfaces tardías pueden duplicar o mover el valor. El registro necesita AS, instancia, configuración, OPEN observado, fuente, dominio de unicidad y vida prevista.

Una corrección determinista también puede oscilar

Una colisión única puede ser sana: aparecen dos sockets, ambos extremos calculan igual, uno cierra y otro queda Established. Contar cada Cease como caída genera falsos positivos.

Mirar solo Established oculta ciclos. Identifier inestable, firewall que bloquea al ganador, configuración distinta o automatización repetitiva producen dos conexiones, descarte, fallo del ganador y nuevo intento. Cada vuelta puede retirar rutas y cargar CPU y logs.

La regla garantiza acuerdo sobre cuál debería vivir, no que pase firewall, clave o KEEPALIVE. La telemetría agrupa dos sockets y dos OPEN en un episodio y alerta por repetición, fallo del ganador y churn.

Orden no es identidad

El Identifier en OPEN es una afirmación. RFC 4272 describe un ataque acotado: quien pueda completar TCP/BGP en el momento preciso y elegir un valor ganador podría provocar el descarte legítimo. No basta un OPEN cualquiera; secuencias, tiempo, admisión y autenticación son barreras.

RFC 2385 define TCP MD5 y RFC 5925 TCP-AO. Protegen segmentos bajo claves configuradas, no validan UPDATE ni impiden que un vecino legítimo duplique su Identifier. Cobertura de direcciones, custodia, rotación y alarmas forman parte del mismo cambio.

El canario debe predecir al ganador

Primero documentar un peering: direcciones, AS, Identifiers y claves, excluyendo otra sesión intencional. Después hacer que ambos inicien juntos en alcance limitado y capturar SYN, cuádruplas, OPEN y FSM.

Antes de observar, calcular el ganador por Identifier o, en igualdad externa compatible, por AS. Registrar Cease 7, cierre, eliminación de FSM y reintento. La conexión prevista debe alcanzar Established.

Luego comprobar rutas de entrada y salida, ausencia de duplicados y retiradas, FIB y paquetes cuando se reclama continuidad. El rollback restaura valor único, claves conocidas y un par documentado; no repite clear hasta tener suerte.