El día que Internet tosió: Análisis del apagón de Cloudflare y por qué hasta los gigantes tropiezan

Escrito por

en

El día que Internet tosió: Análisis del apagón de Cloudflare

Si ayer intentaste acceder a tu web favorita, consultar una API crítica o simplemente perder el tiempo en redes sociales y te encontraste con un inquietante error 502 o un timeout infinito, no estabas solo. Medio planeta estaba igual. Y no, no fue porque tu router decidiera declararse en huelga ni porque un tiburón mordiera un cable transatlántico (aunque eso molaría más como excusa). La realidad fue mucho más prosaica y, a la vez, técnicamente fascinante: Cloudflare, el guardián de gran parte de la red, tropezó con sus propios cordones.

Es curioso cómo funciona nuestra percepción de la red. Asumimos que la conectividad es como el aire: siempre está ahí. Pero cuando una pieza clave de la infraestructura global, responsable de gestionar cerca del 20% del tráfico web mundial, sufre un «hipo», el silencio digital es ensordecedor. Cloudflare acaba de publicar su post-mortem sobre el incidente de ayer, y lejos de esconderse tras jerga corporativa, nos han dado una lección magistral de ingeniería de sistemas, humildad y la complejidad absurda de mantener vivo el tráfico global.

Cuando el hardware nuevo no se lleva bien con el software viejo

Vamos al grano, que es lo que nos gusta. ¿Qué pasó exactamente? La narrativa oficial confirma lo que muchos sospechábamos en los foros de SysAdmin mientras nos mesábamos los cabellos: un cambio de configuración en la capa física que se propagó donde no debía.

Cloudflare estaba en pleno proceso de actualización de hardware en sus Edge Nodes (nodos de borde). Hablamos de sustituir equipos antiguos por bestias pardas de última generación, diseñadas para masticar terabits de datos como si fueran pipas. La intención era noble: mejorar el rendimiento y la eficiencia energética en sus centros de datos principales. Hasta aquí, todo correcto. El problema surgió cuando el software de mitigación de DDoS (esa capa de protección que evita que los malos saturen las webs) se encontró con este nuevo hardware.

Para entenderlo, usemos una analogía. Imaginad que tenéis un coche utilitario y el software de control del motor está programado para gestionar 100 caballos de potencia. De repente, sin avisar al software, cambiáis el motor por el de un Fórmula 1. El software, al detectar una aceleración que no comprende, entra en pánico, asume que algo va mal y corta el suministro de combustible por seguridad. Resultado: el coche más potente del mundo se queda parado en medio de la autopista.

El «bucle de la muerte» en el Plano de Control

Entrando en materia técnica, el fallo residió en una discrepancia en la gestión de interrupciones de la CPU. El nuevo hardware procesaba los paquetes a una velocidad tal que el sistema de protección DDoS interpretó el tráfico legítimo de alta velocidad como una anomalía o un ataque volumétrico interno.

  • El detonante: Una actualización de firmware en los switches de Core que cambió ligeramente la forma en que se etiquetan los paquetes en la VLAN de gestión.
  • El efecto dominó: El sistema de mitigación, confundido, empezó a descartar tráfico interno crítico, pensando que era «ruido».
  • El colapso: Esto provocó que los servicios de autenticación y enrutamiento BGP (Border Gateway Protocol) perdieran conectividad entre sí dentro del mismo clúster.

Aquí es donde la cosa se pone fea. En sistemas distribuidos, diferenciamos entre el Plano de Datos (por donde pasan tus fotos de gatos) y el Plano de Control (el cerebro que decide por dónde van esas fotos). Normalmente, si el Plano de Control cae, el Plano de Datos debería seguir funcionando con la última configuración conocida («fail-static»). Pero en este caso, el mecanismo de seguridad fue tan agresivo que aisló los nodos de la red para «protegerlos», dejándolos efectivamente incomunicados. Un clásico caso de «la operación fue un éxito, pero el paciente murió».

Rollback: La palabra mágica del DevOps

Lo que distingue a los profesionales de los aficionados no es no cometer errores, sino la velocidad (y la elegancia) con la que los solucionan. La respuesta de Cloudflare fue de manual, aunque esos 45 minutos se sintieran como 45 años para los ingenieros de guardia.

Detectaron que la latencia se disparaba en Frankfurt, Londres y Nueva York simultáneamente. Al ver que la automatización no lograba estabilizar el clúster, se declaró el Código Rojo. La solución no fue intentar parchear el error en caliente (nunca hagáis eso con millones de usuarios mirando), sino ejecutar un Rollback masivo.

Volvieron a la configuración de enrutamiento anterior y desactivaron temporalmente la integración del nuevo hardware en el pool de producción. Es fascinante ver cómo, en cuestión de segundos, las gráficas de tráfico, que habían caído a plomo, volvieron a subir como la espuma de una cerveza bien tirada. Sin embargo, esto nos deja una pregunta inquietante: ¿Por qué no lo detectaron los sistemas Canary?

La trampa de los entornos de prueba

Cloudflare, como cualquier gigante tecnológico, prueba todo en entornos «Canary» (una pequeña porción de tráfico real) antes de lanzarlo globalmente. El problema es que ciertos comportamientos, como las condiciones de carrera (race conditions) o los problemas de saturación de buffers específicos del hardware, solo aparecen bajo cargas extremas o patrones de tráfico muy concretos que son casi imposibles de simular en un laboratorio. 😅

El fallo de ayer nos enseña que la observabilidad es vital. No basta con monitorear si el servidor está «up» o «down»; necesitamos ver la salud de las colas de mensajes, la latencia de las interrupciones del kernel y la coherencia de los estados internos del sistema.

¿Qué aprendemos de esto?

Más allá de las pérdidas económicas o de la frustración de no poder cargar ese vídeo, este incidente es un recordatorio de la fragilidad de la centralización. Hemos construido un internet increíblemente eficiente, pero al depender tanto de pocos actores (CDNs, proveedores de nube, DNS centrales), creamos puntos únicos de fallo a escala planetaria.

Para nosotros, los que picamos código o administramos sistemas, la lección es clara:

  • 1. La redundancia real es difícil. Si tu plan de contingencia depende de que otro servicio esté activo, no tienes un plan, tienes una esperanza.
  • 2. El hardware importa. En la era del Serverless y los contenedores, olvidamos a menudo que, al final del día, nuestro código corre sobre silicio, cobre y fibra óptica.
  • 3. Transparencia radical. Aplaudimos a Cloudflare por explicar detalladamente qué pasó. Ocultar los errores solo garantiza que alguien más los repita en el futuro.

Así que, la próxima vez que vuestro despliegue de los viernes tumbe la base de datos de desarrollo, no os fustiguéis demasiado. Respirad hondo, haced un rollback y pensad: «Bueno, al menos no he tirado medio Internet».


¿Te ha pillado el apagón en medio de un deploy crítico? ¿O eres de los que tienen sus propios servidores en el sótano y se ríen de la nube? Te leo en los comentarios (si es que tu CDN te deja llegar hasta aquí).

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *